Skip to content

Conversation

@PGComai
Copy link

@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
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.

@PGComai
Copy link
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
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
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
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