Skip to content

Make tracking local to model#144

Open
PGComai wants to merge 19 commits into
ExpiredPopsicle:mainfrom
PGComai:handfix
Open

Make tracking local to model#144
PGComai wants to merge 19 commits into
ExpiredPopsicle:mainfrom
PGComai:handfix

Conversation

@PGComai
Copy link
Copy Markdown

@PGComai PGComai commented Sep 22, 2025

I've made changes to ModelController.gd, MediaPipeController.gd, and PoseIK.gd which make head and hand tracking local to the model node. This allows the model to freely move and rotate in global space with no effect on tracking (as far as I can tell). The model is meant to be moved by setting the model_transform variable in the ModelController.gd script.

Copy link
Copy Markdown
Contributor

@copygirl copygirl left a comment

Choose a reason for hiding this comment

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

My main complaint is that there's a new property instead of just using the built-in transform of the model controller or the inner model. Is there a reason it can't be used?

Additionally, you touched the Twitch submodule by accident.

Comment thread Core/ModelController.gd Outdated
Comment thread Core/ModelController.gd Outdated
Comment thread Core/ModelController.gd Outdated
Comment thread Mods/MediaPipe/MediaPipeController.gd Outdated
Comment thread Mods/MediaPipe/MediaPipeController.gd Outdated
Comment thread Mods/PoseIK/PoseIK.gd Outdated
@PGComai
Copy link
Copy Markdown
Author

PGComai commented Sep 23, 2025

I have fixed the nags and created a mod called ModelMovementTester which now holds the movement testing code.

@PGComai
Copy link
Copy Markdown
Author

PGComai commented Sep 23, 2025

My main complaint is that there's a new property instead of just using the built-in transform of the model controller or the inner model. Is there a reason it can't be used?

Additionally, you touched the Twitch submodule by accident.

One option could be a convention where movement-focused (multiplayer, game world, etc) mods affect the transform of the model controller while tracking-focused mods like PoseIK affect the transform of the inner model. It's still a bit messy but it would remove the need for that new property.

Something else I have been thinking about is adding certain tags to modules which make them mutually exclusive, which may become necessary if we have multiple mods capable of moving the model controller.

@copygirl
Copy link
Copy Markdown
Contributor

One option could be a convention where movement-focused (multiplayer, game world, etc) mods affect the transform of the model controller

That's what I was thinking, and it's what I did for copyMultiplayer, which spawns additional model controllers for each remote player.

while tracking-focused mods like PoseIK affect the transform of the inner model

Or perhaps the skeleton node?

To me, out of the three nodes (controller, model, skeleton), the model is the most "internal implementation details" feeling. It's as if you had a MeshInstance as a child of a CharacterBody. You only change the relative position of the mesh instance if necessary to fix alignment and that's it.

@PGComai
Copy link
Copy Markdown
Author

PGComai commented Sep 24, 2025

I have updated so movement is done either on the model controller or model itself now, removing the new property at issue.

That's what I was thinking, and it's what I did for copyMultiplayer, which spawns additional model controllers for each remote player.

I was checking copyMultiplayer out yesterday and it is quite cool. Hopefully this change is more compatible with it.

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.

3 participants