- 最后登录
- 2014-10-23
- 注册时间
- 2011-7-19
- 阅读权限
- 90
- 积分
- 81303
 
- 纳金币
- -1
- 精华
- 11
|
程序控制动画角色
Sometimes you want to animate the bones of your character procedurally. For example you might want the head of your character to look at a specific point in 3D space. This is best done with a script. Fortunately, Unity makes this very easy. In Unity all bones are just Transforms which drive the skinned mesh. Thus you can script bones of a character just like any other GameObject.
有时你想要拉动你的角色骨骼通过程序.例如你可能想要你的角色的头看向3D空间的某点.这用脚本很好解决.幸好,Unity做这个很简单.在Unity所有的骨骼是改变驱使表皮网格.因此你能脚本骨骼角色,像其他游戏物体一样.
One important thing to know is that the animation system updates the Transforms after the Update() function and before the LateUpdate() function is called. Thus if you want to do a LookAt() function you should do that in LateUpdate() to make sure that you are really overriding the animation.
要知道的一个很重要的事情是动画系统是在Update()函数之后更新改变,和在LateUpdate()函数之前被呼叫.因此如果你想要使用LookAt()函数,你要让他在LateUpdate()里面,以确保你的动画确实高于一切.
Ragdolls are created in the same way. You simply have to attach Rigidbodies, Character Joints and Capsule Colliders to the different bones. This will then physically animate your skinned character.
玩偶被创建有相同的方式.你直接附上刚体,角色联合和碰撞仓给不同的骨骼.这将为身体动画你的表皮角色.
Animation Class, inherits from Behaviour, IEnumerable
Scripting > Runtime Classes > Animation
The animation component is used to play back animations.
You can assign animation clips to the animation component and control playback from your script.
The animation system in Unity is weight based and supports: Animation Blending, Additive animations, Animation Mixing, Layers and full control over all aspects of animation playback.
For an overview of Character Animation please read this introduction.
To play a simple animation use Animation.Play
To cross-fade between animations use Animation.CrossFade
To change the layer of an animation use AnimationState.layer
To change how animations wrap (Loop, Once, PingPong) use Animation.wrapMode or AnimationState.wrapMode
AnimationState can be used to modify playback speed and for direct control over blending and mixing.
Animation also supports enumerators so you can loop through all AnimationStates like this:
// Make all animations in this character
play at half speed
for (var state : AnimationState in animation) {
state.speed = 0.5;
}
See Also: An overview of Character animation in unity is here.
Variables
clip
The default animation.
playAutomatically
Should the default animation clip (Animation.clip) automatically start playing on startup.
wrapMode
How should time beyond the playback range of the clip be treated?
isPlaying
Are we playing any animations?
this [string name]
Returns the animation state named name.
animatePhysics
When turned on, animations will be executed in the physics loop. This is only useful in conjunction with kinematic rigidbodies.
Functions
Stop
Stops all playing animations that were started with this Animation.
Rewind
Rewinds the animation named name.
Sample
Samples animations at the current state.
IsPlaying
Is the animation named name playing?
Play
Plays the default animation. The animation will be played abruptly without any blending.
CrossFade
Fades the animation with name animation in over a period of time seconds and fades other animations out.
Blend
Blends the animation named animation towards targetWeight over the next time seconds.
CrossFadeQueued
Cross fades an animation after previous animations has finished playing.
PlayQueued
Plays an animation after previous animations has finished playing.
AddClip
Adds a clip to the animation with name newName.
RemoveClip
Remove clip from the animation list.
GetClipCount
Get the number of clips currently assigned to this animation
SyncLayer
Synchronizes playback speed of all animations in the layer.
Inherited members
Inherited Variables
enabled
Enabled Behaviours are Updated, disabled Behaviours are not.
transform
The Transform attached to this GameObject (null if there is none attached).
rigidbody
The Rigidbody attached to this GameObject (null if there is none attached).
camera
The Camera attached to this GameObject (null if there is none attached).
light
The Light attached to this GameObject (null if there is none attached).
animation
The Animation attached to this GameObject (null if there is none attached).
constantForce
The ConstantForce attached to this GameObject (null if there is none attached).
renderer
The Renderer attached to this GameObject (null if there is none attached).
audio
The AudioSource attached to this GameObject (null if there is none attached).
guiText
The GUIText attached to this GameObject (null if there is none attached).
networkView
The NetworkView attached to this GameObject (Read Only). (null if there is none attached)
guiTexture
The GUITexture attached to this GameObject (Read Only). (null if there is none attached)
collider
The Collider attached to this GameObject (null if there is none attached).
hingeJoint
The HingeJoint attached to this GameObject (null if there is none attached).
particleEmitter
The ParticleEmitter attached to this GameObject (null if there is none attached).
gameObject
The game object this component is attached to. A component is always attached to a game object.
tag
The tag of this game object.
name
The name of the object.
hideFlags
Should the object be hidden, saved with the scene or modifyable by the user?
Inherited Functions
GetComponent
Returns the component of Type type if the game object has one attached, null if it doesn't.
GetComponentInChildren
Returns the component of Type type in the GameObject or any of its children using depth first search.
GetComponentsInChildren
Returns all components of Type type in the GameObject or any of its children.
GetComponents
Returns all components of Type type in the GameObject.
CompareTag
Is this game object tagged tag?
SendMessageUpwards
Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour
SendMessage
Calls the method named methodName on every MonoBehaviour in this game object.
BroadcastMessage
Calls the method named methodName on every MonoBehaviour in this game object or any of its children.
GetInstanceID
Returns the instance id of the object.
Inherited Class Functions
operator bool
Does the object exist?
Instantiate
Clones the object original and returns the clone.
Destroy
Removes a gameobject, component or asset.
DestroyImmediate
Destroys the object obj immediately. It is strongly recommended to use Destroy instead.
FindObjectsOfType
Returns a list of all active loaded objects of Type type.
FindObjectOfType
Returns the first active loaded object of Type type.
operator ==
Compares if two objects refer to the same
operator !=
Compares if two objects refer to a different object
DontDestroyOnLoad
Makes the object target not be destroyed automatically when loading a new scene. |
|