stride icon indicating copy to clipboard operation
stride copied to clipboard

[WIP][Rendering] Blendshapes (on behalf of Noa7/Noah7071)

Open Eideren opened this issue 1 year ago • 8 comments

@noa7 / @noah7071 has issues opening pull requests, I'm opening this one on his behalf with his approval

PR Details

Adds blendshape/morphtarget support for models, see #339

  • [x] Importing process: Use the preexisting FBX pipeline, add a new toggle to the import UI to include morph targets, store morph targets into a new collection inside of the model asset. - Eideren: No toggle but I doubt it would see much use anyway
  • [ ] Animation Binding: Importing animations would have to retrieve and include morph target keys as well. When those animations run, the associated morph target of the model being animated should be affected as well.
  • [x] Runtime: ModelComponent would have a new collection of weights, which could be floats with values from 0 to 1 for example. Each of those weights relate to a morph target in the Model referenced. Those values would be controlled from editor or at runtime through C#.
  • [x] Rendering: Applying those morph targets over the model when rendering based on the associated weights, after the skeleton blending pass.
  • [ ] Documentation
    • [ ] Add a new sample for morph target, that sample contains a scene with a model and a small script. The script changes morph target blending at run time to show users how one would set it up.
    • [ ] Add a page to the Animation documentation that explains what morph targets are and how they can be used

Related Issue

Fix #339

Types of changes

  • [ ] Docs change / refactoring / dependency upgrade
  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [x] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • [x] My change requires a change to the documentation.
  • [ ] I have added tests to cover my changes.
  • [ ] All new and existing tests passed.
  • [ ] I have built and run the editor to try this change out. - Eideren: I'll try it out shortly

If @tebjan and/or @ykafia could take a look at this one too that would be great :)

Eideren avatar Jan 31 '24 20:01 Eideren

Will try to take some time to review some things on Thursday/tomorrow :)

ykafia avatar Jan 31 '24 20:01 ykafia

Project("{F

Will try to take some time to review some things on Thursday/tomorrow

@ykafia Thanks Youness. Look forward to your feedback!

noa7707 avatar Feb 01 '24 08:02 noa7707

Thanks a lot for the work, I'll try to have a look at it next week.

tebjan avatar Feb 01 '24 18:02 tebjan

Thanks a lot for the work, I'll try to have a look at it next week.

Thanks @tebjan, Look forward to your feedback!

Noah7071 avatar Feb 02 '24 15:02 Noah7071

Thanks for your work. I'm pretty excited about this development since blendshapes are a feature I waited for for years but lacked the rendering skills and codebase experience to implement.

For anime styled 3D games this will be essential as those rely fully on blendshapes for facial expressions.

SeleDreams avatar Feb 05 '24 23:02 SeleDreams