Garry's Mod

Garry's Mod

Ragdoll Puppeteer
Areus 10 Oct, 2024 @ 6:20am
"Snap to the ground" checkbox request
My point is, that when I want to just quickly use the tool I have to go through the trouble of positioning the ragdoll to the ground myself, while before I just had to check that I want the ragdoll to be teleported to the ground and that was it. I could just choose a ragdoll, animation and boom, it was on the ground, in the pose that I desired, quick and simple. I miss this feature, because now the "Ragdoll Ground" starts in the air and I have to manually move it. Great feature, awesome for customizing and doing animations and all other complex stuff, but so much when I just want to quickly pose a ragdoll. I can position it myself through sliders/physgun, that's all true, but it takes time. When you simply want to make a scene with let's say 10 ragdolls, it's slow and annoying to place 10 times the "Ragdoll Ground" on the ground. Before, with that checkbox, it was quicker and less annoying when you just need to pose a ragdoll and not prepare it precisely. And if that checkbox returned, it would be so easier again to have ragdoll snapped to the ground like before. I really don't understand why it was removed in the first place. It can be achieved, yes, but it was a shortcut.
< >
Showing 1-9 of 9 comments
dim sum un  [developer] 10 Oct, 2024 @ 10:52pm 
Hey Areus, I removed it because it was part of an obsolete walk/run workflow related to the use of the ‘Update Puppeteer Position’ button, which took the ‘Teleport to Ground’ option into account when it came to updating its position. I used this obsolete workflow myself, and I admit it is not as time-efficient. I also haven’t really thought about the quick use of this feature as it was part of the slow process of updating the puppeteer’s position to the ragdoll manually, as opposed to the current method we see today. In addition, any references to this old workflow would clutter up the UI (the Update Puppeteer Position button, the Offset Root checkbox, and the Teleport to Ground checkbox), so it made sense to remove these to introduce the new time-saving workflow.

You do make a good point about quickly posing multiple ragdolls with this option enabled. Time is the main issue here, and when it comes to animating or posing things, we should try to minimize our use of it. I don’t wish to prioritize other things over time, since I made this tool to save time in the first place, but I still want to make this tool more flexible to use—hence, the changes.

Because of that, I’m convinced that this would be a nice feature to have. More settings isn’t too much bloat until it starts to show. I’d like to know (from you or anyone else) some other examples on how this proposed feature could be used, or what other problems it would fix.

And for removing features without question, I’ll make a post and a comment about it, so I can gauge what the audience thinks before I make updates
Areus 11 Oct, 2024 @ 12:56am 
I just got an idea. Since the ragdoll now updates it's position itself initially, when you open the context menu, it could be achieved by simply spawning the "Ragdoll Floor" on the ground instead of in air like it does now. If the checkbox would now be "Spawn Floor on the ground" and if it would be checked, it would spawn on the ground, making ragdolls be standing on the ground when it updates it's position, which is when you open the context menu, and if it would not be checked, the Floor would spawn in the air just like it does now.

I am really glad you see the usefullness and that you are kind and open to suggestions. And also that you didn't just ignored me because I already mentioned this earlier but is instead discussing it with me, I am really grateful you're such a nice person.

As I stated, the time would be saved and it would not be so annoying when using the tool on multiple ragdolls in a scene or etc. Plus I also see usefulness when making animations. Let's say we want to make an animation featuring two ragdolls. You use the tool on one, then on another, you make them walk towards each other and then they will interact. For example fight each other. Fights are one of the most difficult to make, because it requires precise timing and sync between the fighters. Oh, and we are talking about melee combat, just in case I didn't make it obvious. Now we want one to punch the other and the other is supposed to dodge. We can use either Gmod's sequences or our own SMH animations, that doesn't matter. Now if you want to dodge that punch, you need to time it according to how long that dodge animation is together with the punching animation of the other one. This logically requires switching the attention from ragdoll to another very often to make them in sync by frames and to time it correctly. Now can you imagine the frustration when you are doing this and every time you switch to the other ragdoll, it moves into the air and you have to position it back down as it was?

Another example, shorter this time. Imagine you're making a stage show dance of multiple dancers. Like on a concerts or something. To make it more dynamic, some dancers dance differently, but still into the rhytm to the music. Once again, you need timing to still be in sync with the other dancers and to the main one. Now once again imagine the frustration when you're regularly switching between ragdolls to add another frame/s and they go into the T-pose in the air every time.
dim sum un  [developer] 11 Oct, 2024 @ 11:18am 
As for the idea, I have a rough implementation where the floor itself can move around but the puppeteer will be attached to the floor. That way, one person can switch between the two modes quickly, rather than having a checkbox for strictly moving the floor to the ground. I do want to experiment with this option, particularly if I want the puppeteer to be attached to any surface that isn’t strictly the ground (via a checkbox of course to control this). This could potentially enable some cool behaviors, like walking animations on planets or other curved surfaces. Any thoughts on this?

As for the first example, I’ve also have thought of using pre-made sequences/SMH animations to outright replace the manual work of animating the ragdoll. An example workflow of this is as follows:
  1. Moveset animator animates all generic locomotion, attack, and combo movements for different characters.
  2. Fight animator uses the moveset animations with Ragdoll Puppeteer and bakes these animations in SMH, as well as special animations.
  3. VFX animator (or the previous animator) applies VFX (smears, particles, etc.)
Since melee combat tends to happen on the ground, it would make sense to have an option to teleport the puppeteer to the ground, to save time.

The second example may benefit with this workflow too. Instesd of fight animations, it would be a different dance animation per character, and another animator would just place the characters around and bake them to be in sync with another. Since dance animations tend to happen on the ground, it makes sense to teleport the puppeteer to the ground, to save time.

While both examples share a rhythmic theme, the emphasis is still multiple ragdolls. It’s good that you mention these specific examples because then we can think about workflows that minimize the time required to make these animations. For the above workflow, we can generalize it to involve 1) one animator for animation into the pupoeteer, and 2) another animator using the puppeteer to place the animations in other places. Of course, if anyone could suggest a better workflow (which doesn’t use puppeteer at all!), I’m all ears.
Areus 11 Oct, 2024 @ 4:21pm 
I believe this to be a great idea. But I am not sure if I understand it correctly. If the puppeteer is supposed to attach on any surface, but the floor itself can move around how will it work? Isn't the floor and puppeteer one entity as of now?
dim sum un  [developer] 11 Oct, 2024 @ 9:41pm 
(I’ll refer to the floor as the platform so as to not confuse the floor with the ground)

The platform and puppeteer are two different entities. It appears as one as they move and rotate together. However, I think in multiplayer, you can see clearly that they are different, as the puppeteer lags behind as it tries to follow the position and rotation of the platform. (If you want to verify this behavior, follow this guide, go into a map, and use the puppeteer tool.)

To illustrate how this works with your feature in mind, let’s assume the platform is in the air. if ‘Snap To Ground’ is enabled, then the puppeteer will instantly teleport below the platform and attach itself to the ground, with its feet on the ground, standing upright. The puppeteer will always remain below the platform. If it cannot find a ground below it to attach to, it will teleport back and stand on the platform. The puppeteer can face the direction that the platform points, but it will always remain upright (no leaning forward or to the side).

Attaching to different surfaces (like walls or other props) is pending implementation, as I’m not sure how intuitive that would look for other users.
Areus 12 Oct, 2024 @ 3:22am 
I see, now I understand. I never tried the Ragdoll Puppeteer in multiplayer, so I really thought that the platform and puppeteer is one entity. From your description I can positively say that it's a brilliant idea. It makes me really excited for when it will arrive in the next update :D. As for the attachment on the walls and other props, I find it also an interesting feature to have. Especially when I think about using it for example in a model of a spaceship in the air. Walls would be nice for Spider-Man animations, but other than that..... Well, it would still be welcome though. I think anyone can find a use to this and it would serve to perfect the feature.
dim sum un  [developer] 12 Oct, 2024 @ 4:28am 
I really do appreciate your insistence with this feature. I do hope to get more of your comments on it once I implement it soon.

I’ll try to work on this as soon as I get some other features off the queue. For now, if you (or anyone else) have any other questions about this feature, feel free to reply to this post!
dim sum un  [developer] 17 Oct, 2024 @ 10:45am 
Hey Areus. This branch[github.com] has the Attach to Ground feature. You can play around with this feature for yourself on your own time. To install this, just click the green <> Code button, and click download zip, and plop the folder into your addons folder
Areus 18 Oct, 2024 @ 5:33am 
Thank you! This is perfect! Exactly what I wanted! I hope it will make it in the official update, but if not, I am keeping this version :D. It's really great, I love it. Thank you so much!
< >
Showing 1-9 of 9 comments
Per page: 1530 50