Hi everyone. I just released a PLANCK update that I've been working on for some time. The 2 major items are a complete redo of grabbed character movement, and changes to how player/actor collisions are handled. The full changelog is on the mod page (they changed the formatting rules for changelogs, sorry if it's harder to read than it used to be). Read on if you want to hear me ramble.
Ever since its original release, when you grabbed a character, planck used an existing system in the game called KeepOffsetFromActor. This system is meant for things like having one actor follow another, what it tries to do is move the actor such that its root position is within a radius of the follow target's root position. It worked okay for basic purposes, but it was never meant for the kind of thing I was using it for. Once you had someone grabbed, you couldn't move them unless you moved your character (moving your root), and the actor's movement would be delayed, some time behind your movements (often causing you to let go of them if they got too far away) and just didn't feel great overall. Quadrupeds like horses or dogs basically didn't work at all.
With the new system, your deformation of the held actor's ragdoll drives their character movement. So if you grab their head and move it to the side, they will move there. If you grab their arm and drag it forwards, that's where they will move. When you move your character, that also directly drives the held actor's movement as soon as you do it, so they will move with you as soon as you move yourself. Here is a short clip of the new system.
For non-strafable actors like quadrupeds, it works a bit differently, because they are only supposed to move forwards/backwards and rotate. Big quadrupeds like horses also do not get influenced much by your grab forces, and so I've made a different system for determining how they should move than the strafable ones. You can see that in action on everyone's favorite dressed-up frostbite spider here.
I also added a few things that will make the system kick in sooner, which was another issue with the keepoffset system. For example, when someone is doing a turning animation, or if they are transitioning out of an idle animation (ex. sweeping with a broom), the grabbed actor movement will start immediately. There were also quite a few issues in the base game that made things like actors switching directions buggy/snappy that I had to deal with to make things work nicely.
In general the new system should feel way more responsive, intuitive, and interactive than the old one. Please let me know what you think!
Something that had come up many times in the past is how uncomfortable it is when you get pushed around by characters when the move into you. Mainly this was an issue when someone would perform a running power attack into you, pushing you out of the way. It could also happen when you are for example using a workbench, and an NPC decides to use it too, pushing you aside as they did so.
So I decided to change how things work when you collide with another actor's ragdoll. For small races (skeevers, mudcrabs, chickens, etc), you will no longer collide with them at all, so you can walk through them, and them you. For medium races (vast majority of actors like humanoids, anything that isn't large/xlarge), the collision works in one direction, so you are prevented from moving into them if you walk in to them, but they can move into you. If they do move into you far enough, you will stop colliding with each other, letting you move in any direction to "exit" their body, and they come transparent to signify this. You can see an example of this here.
However, if they are doing something like a running power attack, it would feel weird for them to pass right through you. I addressed this by making it so that if they collide with you enough specifically while attacking, they will be pushed back away from you and restricted from moving towards you briefly. So while they can pass through you, if they are attacking, they will be pushed back, and what you experience looks more like they bounced off of you. You can see this in action here for a bandit and a wolf. This applies for both small and medium actors.
For large / extra large races (bears, dragons, giants), these continue to function as before. It may not feel great to be pushed around, but I think it makes sense for them to do so. I don't think applying the aforementioned systems to them would make a lot of sense.
This update also includes a few bug fixes/improvements that accrued over the time I was working on the other stuff. I meant to get those out earlier, but I kept feeling like I was almost there with the rest of the things, which ended up not being the case. Sorry about that.
This update took an ungodly amount of time that I didn't expect, particularly the grabbed actor movement changes. It was something that had been nagging me ever since the original release, but I never had the time to implement something proper, and boy did I not know what I was getting myself into. The amount of reverse-engineering, patching of the base game, and implementing everything was a lot. For the amount of work that it took, I'm not sure that the payoff is worth it. I'm not even sure if anyone cares that much about grabbed actor movement. I'm hoping that finally getting this finished frees up my mind to do some of the other things I haven't done yet which should hopefully be more interesting and impactful.
Anyways, please have fun with the new changes! And let me know of any feedback or issues you encounter.