Add **Nested Animations** for compositing animation clips
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
#include "CreateParticleEmitterFunction.h"
|
||||
#include "CreateAnimationGraphFunction.h"
|
||||
#include "CreateVisualScript.h"
|
||||
#include "CreateAnimation.h"
|
||||
#include "CreateJson.h"
|
||||
|
||||
// Tags used to detect asset creation mode
|
||||
@@ -51,6 +52,7 @@ const String AssetsImportingManager::CreateSceneAnimationTag(TEXT("SceneAnimatio
|
||||
const String AssetsImportingManager::CreateMaterialFunctionTag(TEXT("MaterialFunction"));
|
||||
const String AssetsImportingManager::CreateParticleEmitterFunctionTag(TEXT("ParticleEmitterFunction"));
|
||||
const String AssetsImportingManager::CreateAnimationGraphFunctionTag(TEXT("AnimationGraphFunction"));
|
||||
const String AssetsImportingManager::CreateAnimationTag(TEXT("Animation"));
|
||||
const String AssetsImportingManager::CreateVisualScriptTag(TEXT("VisualScript"));
|
||||
|
||||
class AssetsImportingManagerService : public EngineService
|
||||
@@ -467,6 +469,7 @@ bool AssetsImportingManagerService::Init()
|
||||
{ AssetsImportingManager::CreateMaterialFunctionTag, CreateMaterialFunction::Create },
|
||||
{ AssetsImportingManager::CreateParticleEmitterFunctionTag, CreateParticleEmitterFunction::Create },
|
||||
{ AssetsImportingManager::CreateAnimationGraphFunctionTag, CreateAnimationGraphFunction::Create },
|
||||
{ AssetsImportingManager::CreateAnimationTag, CreateAnimation::Create },
|
||||
{ AssetsImportingManager::CreateVisualScriptTag, CreateVisualScript::Create },
|
||||
};
|
||||
AssetsImportingManager::Creators.Add(InBuildCreators, ARRAY_COUNT(InBuildCreators));
|
||||
|
||||
@@ -108,6 +108,11 @@ public:
|
||||
/// </summary>
|
||||
static const String CreateAnimationGraphFunctionTag;
|
||||
|
||||
/// <summary>
|
||||
/// The create animation asset tag.
|
||||
/// </summary>
|
||||
static const String CreateAnimationTag;
|
||||
|
||||
/// <summary>
|
||||
/// The create visual script asset tag.
|
||||
/// </summary>
|
||||
|
||||
52
Source/Engine/ContentImporters/CreateAnimation.h
Normal file
52
Source/Engine/ContentImporters/CreateAnimation.h
Normal file
@@ -0,0 +1,52 @@
|
||||
// Copyright (c) 2012-2022 Wojciech Figat. All rights reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Types.h"
|
||||
|
||||
#if COMPILE_WITH_ASSETS_IMPORTER
|
||||
|
||||
#include "Engine/Content/Assets/Animation.h"
|
||||
#include "Engine/Serialization/MemoryWriteStream.h"
|
||||
|
||||
/// <summary>
|
||||
/// Creating animation utility
|
||||
/// </summary>
|
||||
class CreateAnimation
|
||||
{
|
||||
public:
|
||||
static CreateAssetResult Create(CreateAssetContext& context)
|
||||
{
|
||||
// Base
|
||||
IMPORT_SETUP(Animation, 1);
|
||||
|
||||
// Serialize empty animation data to the stream
|
||||
MemoryWriteStream stream(256);
|
||||
{
|
||||
// Info
|
||||
stream.WriteInt32(102);
|
||||
stream.WriteDouble(5 * 60.0);
|
||||
stream.WriteDouble(60.0);
|
||||
stream.WriteBool(false);
|
||||
stream.WriteString(StringView::Empty, 13);
|
||||
|
||||
// Animation channels
|
||||
stream.WriteInt32(0);
|
||||
|
||||
// Animation events
|
||||
stream.WriteInt32(0);
|
||||
|
||||
// Nested animations
|
||||
stream.WriteInt32(0);
|
||||
}
|
||||
|
||||
// Copy to asset chunk
|
||||
if (context.AllocateChunk(0))
|
||||
return CreateAssetResult::CannotAllocateChunk;
|
||||
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
|
||||
|
||||
return CreateAssetResult::Ok;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user