Garry's Mod

Garry's Mod

Ragdoll Puppeteer
 此主题已被置顶,因此可能具有重要性
dim sum un  [开发者] 2024 年 9 月 28 日 下午 10:11
Next Update: Improved Puppeteer Offsetting
Hey all. I've noticed that some of the recent suggestions have been hinting at a new feature that I've been developing for the past 3 days. I'm glad to hear that we're thinking almost the same way when it comes to improving this tool.

As you've already guessed, that feature is Improved Puppeteer Offsetting. Special thanks to Paper for helping me test this feature out, as well as to Skerion for inspiring such a feature, and also to Vortexas-A and INF-Scanner Man, who requested this feature.

Note
Before I get to the features, I'd also like to note that this update removes and replaces a few options. For starters, the Update Puppeteer Position has been replaced with the Recover Puppeteer button, which simply teleports the floor to the puppet's root (pelvis). I've also removed the offset root and find floor checkboxes, as this new feature completely replaces it.

What this does
For those who are unable to view the video, you can do the following:
  • Move the puppeteer (and thus the puppet) in any location and orientation using its floor, which is a blue platform below the puppeteer,
  • Get instant feedback of the puppet in the puppeteer's location using +ragdollpuppeteer_playback,
  • Freeze a frame of animation during +ragdollpuppeteer_playback to enable custom SMH workflows, and
  • Easily record a walk/run cycle from SMH or the model sequences using +ragdollpuppeteer_playback and the SMH physics recorder
The first point is the highlight of our tool. The puppeteer's floor is a physics prop that holds the ragdoll's puppeteer. Hence, we can use any tool (physgun, Ragdoll Mover with entity filtering disabled) to manipulate the puppeteer's physics. Combine that with the second or third point, we can move the ragdoll in its pose in any place. This is a huge improvement over the initial implementation, which kept the puppeteer frozen in place.

Running or Walking Animations
The fourth point is especially important, because there are multiple methods for making a character walk or run in a scene. I am aware of three that I have used or seen:
  • Manually animate the character's walk/run in the scene,
  • Make a walk/run cycle, and copy and paste its frames for the duration, and then move the character correctly in each frame, and
  • Use Henry's Animation Tool to move the character, and SMH to perform the walk/run cycle animation.
The first method is laborious. Its inefficient to perform the same poses over the distance of the walk. The second method is a little better than the first, because I just have to copy the motions of the cycle. However, I have to deal with moving the character's root at every frame, and guess and check the speed of the walk so that I could match the timing of the shot. The third method is clever, as it utilizes two different animation tools to manipulate the character. However, I find this one to be a little hacky, and there's extra work of setting up the positions in one animation tool and the cycle in another animation tool.

This tool and the new feature aims to achieve some of the better features of the above methods. For starters, we can make the walk or run cycle in SMH or use an existing one, load it using the Ragdoll Puppeteer tool, and then animate the puppet with +ragdollpuppeteer_playback while moving the puppeteer around in some where. I'd like to mention that since the puppeteer is attached to a floor, which is a physics prop, you can also animate the floor using SMH! If you have +ragdollpuppeteer_playback enabled, and you keyframe your points with the puppeteer floor, you can see the ragdoll puppet animate and move with the puppeteer, which follows the path defined by your keyframes. Don't forget to notice that this is all animated in SMH, so you can make use of SMH's physics recorder to obtain keyframes of the animation that you can manipulate!

Conclusion
Whew, this is a lot to take in. I do believe that there are more use cases out there for this offsetting method than I have mentioned earlier. Hopefully, you are able to make the most out of this feature!

Later updates will mostly focus on UI/UX and bug fixes (which I have mentioned in the earlier post). For instance, I noticed that many people are unaware of the console commands for Ragdoll Puppeteer. I plan to make these features obvious to see in the tool's control panel.
最后由 dim sum un 编辑于; 2024 年 9 月 28 日 下午 10:17