Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skeletal Animation 01 - Asset Managing #491

Merged
merged 6 commits into from
Dec 27, 2023

Conversation

jaremieromer
Copy link
Member

Goal

Add support for managing skeletal animation assets into NcEngine.

Background

SkeletalAnimation assets are generated from FBX files that contain animation clips. NcTools converts the FBX files into .nca files. This PR allows import of those .nca files.

Changes

  1. Added SkeletalAnimationAssetManager to load/unload SkeletalAnimation asset files.
  2. Modified MeshAssetManager to parse armature data from mesh .nca files.
  3. Added unit test for SkeletalAnimationAssetManager
  4. Fixed namespace spacing in a few Asset files

Copy link
Member

@McCallisterRomer McCallisterRomer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes for additional config updates.

@@ -32,17 +33,20 @@ class NcAssetImpl : public NcAsset

void OnBeforeSceneLoad() override;

auto OnBoneUpdate() noexcept -> Signal<const BoneUpdateEventData&>& override;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My initial thoughts are that bones/meshes are not separate assets, therefore they (maybe?) shouldn't need different signals. I'm looking for the receiving code to better understand, but I'm only seeing the emit calls. Is there anything subscribing to this event in this PR, or is that coming down the pike?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My personal preference is to leave it as two signals - we could combine it but I think it makes SkeletalAnimationSystem less clear, and we'd have to do "onSignalReceived() { if mesh.bonesData.has_value() ... } in the system as well, which I'd rather avoid

@jaremieromer jaremieromer merged commit 5bb8cd3 into vnext Dec 27, 2023
@jaremieromer jaremieromer deleted the jare-skeletal-animation-assets branch December 27, 2023 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants