Big post, lots of topics to discuss

Okay, I’ve been playing with Unity for almost a month now, getting to learn the ins and outs of the system (thanks to everyone who made the tutorials and projects to play with… very helpful) and getting to understand JS. The forums have been very helpful in finding small things to get me started.

Here’s my ultimate goal: I want to make a sort of game where you can manipulate a set of mannequins to play a series a short animation of interaction between 3 mannequin characters.

Of course, the mannequins will have a skeleton with bones to manipulate, but here’s is what I envision (and what I’d love to hear feedback from the experts in the community):

-Be able to select body parts of the mannequin and be able to rotate and translate the bodypart (which may mean ik should be baked in, correct…? if you’re pulling on a hand, the arm and body should follow)
-Be able to move forward and backward along a short timeline and watch your animation as you develop it (like an animator would), changing and rotating parts and having thing reinterpolate as you go.
-A simple stage setup where a main camera can be moved about as needed to focus on the mannequins in order to help manipulate them.

Some of the problems I’m seeing may be at my approach. At first I thought just selecting a bodypart and having it highlight upon selection seems very easy if it’s a primitive. I’ve been playing with rigidbodies and that also maybe be my problem. I can select/highlight primitive objects, but selection of bones seems to be more difficult. Would it be simpler to have an interface that would allow you to select the body parts (Pick mannequin, pick bodypart) and have buttons for translating and sliders for rotating (Yaw, Pitch, Roll)? Or could there still be a mouse click select a body part and adjust the parameters in a similar way rather than a series of bodypart buttons (or dials, like Poser). Perhaps keypresses for isolating the dimension want to rotate or translate? I find that it’s easy to find the child of a gameobject, but not very easy to find the parent of a gameobject.

For the second, I think a simple GUI slider bar would be appropriate, where you could press play, stop, ff, rev, step, or drag the bar around to the time (about a minute of time). You can stop the bar at any point and change a body part location and have the game re-interpolate the movement. Would a keyframe button work better, inserting keyframes for where a player wants a bodypart to change? What about a copy keyframe ability? Would that be useful as well?

The big picture is to have people play scenarios, putting together how they would interpret a situation between various characters.

I hope this post isn’t too confusing, and I hope to be asking a lot more questions as time goes on while I work on this. Thanks!

-Ken

Just attach a collider of some kind to each joint and select the parts with OnMouseDown. Unity makes this easy.

Sure you could add transform handles in the run time. The hard part will be making parts follow other parts. Sounds like a job for custom fakie physics. You could try to do it with a ragdoll type setup using rigidbodies but I don’t know how hard that would be to get stable.

This is possible but you will have to code it yourself. Store all the position and rotation data carefully and interpolate.

This is easy.

What I would do is let the player click on colliders attached to each bone and then give the selected part some sort of selection effect (ones I can think of now are a box drawn around it, swapping out many textures on the skin of the mannequin that show different areas selected and possibly accessing vertex colors but I don’t think you can do that on a skinned mesh).

Then either give them transform handles, dials like poser or whatever you want, even physics based grabbing and moving with the mouse. You could combine multiple control methods so there is something for everyone. Probably as you edit you want to store the data to the master animation script.

As long as you have a good base you could try whatever you want as far as displaying keyframes, changing the time variable and whatever. See what works best.

Bottom line is this is very doable with Unity, the question I cannot answer is whether you would have a worse time using rigidbodies or coding your own physics.

First of all, thanks for the quick response, Yoggy.

Just attach a collider of some kind to each joint and select the parts with OnMouseDown. Unity makes this easy.

I’ve been fiddling with some gizmos made of primitives and attaching them to objects that I click on. Pretty easy (except getting it to move WITH the object…). It didn’t work so well with a ragdoll/rigidbody, either. I’ll look at colliders (an area I’m not familiar with yet). Thanks for pointing me in this direction.

Sure you could add transform handles in the run time. The hard part will be making parts follow other parts. Sounds like a job for custom fakie physics. You could try to do it with a ragdoll type setup using rigidbodies but I don’t know how hard that would be to get stable.

I’ve been looking at this, and it may take an independent ik algorithm built into the system (fakie physics). I’ll be happy to just get the joints to work simply, first.

I might try approaching it from a selected collider and play with dials or mouse drags for rotating/translating.