0

Can this be done?

Harry Cash 8 years ago updated by tmpxyz 8 years ago 8

http://creature.kestrelmoon.com/


Please take a look at the above link. It is a great way to animate bones using Motors and IK.

Can this be done for 3d models too?.


It would be great to have this kind of flexibility for animating 3d models. Please leave a reply if you can do it, as I suppose you can surely do it. :)



Under review

Hi, Harry Cash,


Thanks for the feedback, :)


I just took a look at the document, I thought "Motor" means the Physx joint's motor, but it seems that their "Motors" is a term more like Unity's MonoBehaviour;


"A Motor is simply a component that executes a certain type of behavior on a group of bones or a region mesh. Different types of Motors perform different operations."


As for the bone part, Of course we have FK & IK, and we've mesh-manipulator for making vertex-animation.


However we cannot do Physx in editor as Unity doesn't support it.


This "creature" tool looks quite interesting for 2D-anim. So, Could you tell me which feature do you mostly wish that Skele to have too?




You are right about Motors, they perform behaviors on group of bones.


FK-IK are good but Motors would be much better to use. They are physical and mathematical component, and certainly not using Physx. :)


I can Rig Bones in a separate program.


I am interested only in - Bone Motors. They are much easy to manipulate and programmed by the animator.


I already use skele for work but thought you can implement some Creature features too.


You can start with FK Motor, Ik Motor, Bend Physics Motor.

If you can implement these then rest the will be much easier for you to implement.


I am interested in knowing about your Ideas about it.

Thanks.



Hi, Harry Cash,


Thanks for your feedback :)

Sorry for late reply, I missed the previous reply notice.


I pretty like Creature's solution for 2D animation, some assets in AssetStore has done something similar, but not as complete and sophisticated as this one.


back to the motor part,

"They are much easier to manipulate and programmed by the animator. ", Do you mean to manipulate the skeleton in runtime?


As for the FK motor, it has several properties, which are a subset of Transform component.

  • angle This determines the angle in degrees which the bone is pointing at.
  • posX This determines the x position of the bone.
  • posY This determines the y position of the bone.

As for the IK motor, the properties are IK target.

  • targetX This determines the x position of the target point.
  • targetY This determines the y position of the target point.

The FK motor is no different than Transform component in 2D space;

It could be done with Skele in editor, and could be done by setting transform.position/rotation in runtime;


The IK motor is a IK solver, according to its description, it might be the triangulation IK; the smooth IK might be using CCD IK; The two IK algorithms are equipped in Skele, and can be used in runtime.


The Bend Physics motor, it seems easier to setup than Physics, but might not be as versatile.

I've seen several projects trying to bring physics calculation to editor, but have not found something really satisfying though.


I think some of the other motors might look more useful, like "move bounce", "leg", "path". I would consider adding some helpers alike later.


As for "leg" & "path", we've already equipped something alike: (two gifs, could take some time to load)


Check our "spline editor" + "Follow path constraint":

And the walking demo:






I would explain Motors as being Mathematical Components ( Functions) which Manipulate TRS of a Bone or IK Target over time and the functions can also be key framed.


For eg.

Rotate Motor - Start Angle - End Angle - Oscillate Speed.

So the Rotate Motor will oscillate the bone over time without manually key framing the bone.

And all variables Start Angle, End Angle, Oscillate Speed, can also be key framed at different time.


IK Motor - TargetPos at t, TargetPos at t1 etc.

So the IK Motor will Interpolate the TargetPos from t -> t1 etc.

The "TargetPos at t" could be a mathematical formula or user key framed.


Bend Physics Motor - An Idea

Energy = Deviation(lastPositionOfTopMostBonesParent, currentPositionOfTopMostBonesParent)

Apply Energy down the chain of bones.




Editor :

I suppose a separate "Motor Time line" will be needed that will clear and lay key's on the animator time line on a press of a button.


These are some Ideas that can be done with Motors. :)



I think I get your idea,

You mean the motor to be specific functions for the Transforms, and could expose the control variables to Animation timeline for keyframes, like the 'oscillation speed'.


I like the ideas, it would improve the efficiency of developers.

I would see if I can do something with it. :)


I think constraint shares the same concept in some degrees.

Please check this manual, it shows making animation by keyframing IK target pos;

http://www.tmpxyz.com/Skele/docs/83-constraintsys/79-constraint-system-manual?showall=&start=21


Thanks a ton for your feedback :D


Nope. The next main update would be refactoring the UI of the "Skeletion Animation system", in order to improve the usability.


I'll close this ticket for now and open it when we start to work on this one.