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

refactor: create new abstraction layer to support MA/NDMF and generate their components #294

Open
5 of 8 tasks
poi-vrc opened this issue Oct 21, 2023 · 0 comments
Open
5 of 8 tasks

Comments

@poi-vrc
Copy link
Owner

poi-vrc commented Oct 21, 2023

I am trying to shift the original focus of being another large-scale dressing system into a centralized configuration generator. DT2, MA/NDMF and maybe VRCFury will be called switchable frameworks.

I am doing this because DK and NDMF are not directly compatible. Although they are actually similar in concept, they are very different internally, especially about coupling with VRC and MA (they are currently working hard to remove the coupling).

Stage 1 - MA/NDMF support:

  • DT2 script defines
  • support avatar root based dressing instead of using DTCabinet root
  • abstract execution model
  • abstract AnimationDatabase(MA)/AnimationStore(DK), PathRemapper, VRCMenu, VRCParams layer
    • For MA, we would need to generate MA Menu Item in generation phase to deal with VRCMenu/Params
    • MA and NDMF do not have the abstraction layer for AnimationDatabase,PathRemapper. We need to use our implementation (DT2) and provide as a service in NDMF if MA does not exist currently. Probably planning run in hybrid. Specify in the build constraint to run a specific pass in which runtime
graph TD;
    A(DT2)-->C;
    B(...other)-->C;
    C-->D(MA/NDMF);
    C-->E(DK Execution Model + Context);
    C(DK Abstraction)-->F(VRCFury?);
Loading

Stage 2 Single configuration -> Decentralized configuration:

  • expand single JSON configuration design into multiple components later on
  • keep DT2 window but use as one-screen configurator on multiple components
classDiagram
DTMergeAnimLayer--|>DTComponent
DTMenu--|>DTComponent
DTParameters--|>DTComponent
DTOutfit--|>DTComponent
DTWardrobe--|>DTComponent
DTComponent--|>DKComponent
Loading

Stage 3 - High-level abstraction layer:

  • abstract common features
  • allow user to choose to use MA Merge Armature or DT2 Armature Mapping
classDiagram
DT2ArmatureMapping--|>DT2ArmatureMerging 
DT2MAArmatureMerging--|>DT2ArmatureMerging 
DT2VRCFuryArmatureMerging--|>DT2ArmatureMerging 
DT2ArmatureMerging : Transform ArmatureTransform
Loading
@poi-vrc poi-vrc changed the title feat: create new abstraction layer to support MA/NDMF and generate their components refactor: create new abstraction layer to support MA/NDMF and generate their components Oct 21, 2023
@poi-vrc poi-vrc pinned this issue Dec 9, 2023
@poi-vrc poi-vrc unpinned this issue Feb 12, 2024
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

No branches or pull requests

1 participant