- 用户指南
- Components
- 寻路
- 动画组件
- 资源组件
- 音频组件(AudioComponent)
- 音频侦听器(AudioListener)
- 音频源(AudioSource)
- 音频过滤器(AudioFilter)(仅限专业版)
- 混响区域(ReverbZone)
- 麦克风(Microphone)
- 物理组件(PhysicsComponent)
- 箱体碰撞体(BoxCollider)
- 胶囊碰撞体(CapsuleCollider)
- 角色控制器(CharacterController)
- 角色关节(CharacterJoint)
- 可配置关节(ConfigurableJoint)
- 恒定力(ConstantForce)
- 固定关节(FixedJoint)
- 铰链关节(HingeJoint)
- 网格碰撞体(MeshCollider)
- 物理材质(PhysicsMaterial)
- 刚体(Rigidbody)
- (SphereCollider)
- 弹簧关节(SpringJoint)
- 交互布(InteractiveCloth)
- 蒙皮布(SkinnedCloth)
- 车轮碰撞体(WheelCollider)
- 游戏对象(GameObject)
- 图像效果(ImageEffectScripts)
- 高光溢出和镜头光晕(BloomandLensFlare)
- 模糊(Blur)
- 相机运动模糊(MotionBlur)
- 颜色修正曲线(ColorCorrectionCurve)
- 颜色修正(ColorCorrection)
- 颜色修正查找纹理(ColorCorrectionLookupTexture)
- 对比度增强(ContrastEnhance)
- 对比度拉伸(ContrastStretch)
- 起皱(Crease)
- 视野深度(DepthofField)3.4
- 视野深度(DepthofField)
- 边缘检测(EdgeDetection)
- 鱼眼(Fisheye)
- 全局雾(GlobalFog)
- 发光(Glow)
- 灰度(Grayscale)
- 运动模糊(MotionBlur)
- 噪波和颗粒(NoiseAndGrain)
- 噪波(Noise)
- 屏幕叠加(ScreenOverlay)
- 棕褐色调(SepiaTone)
- 边缘检测效应
- 阳光照射(SunShaft)
- 屏幕空间环境光遮蔽(SSAO)(ScreenSpaceAmbientOcclusion(SSAO))
- 倾斜位移(TiltShift)
- 色调映射(Tonemapping)
- 旋转(Twirl)
- 渐晕(Vignetting)(和色差(ChromaticAberration))
- 状态同步详细信息
- 旋涡
- 设置管理器(SettingsManager)
- 网格组件(MeshComponents)
- 网络组
- 效果
- 渲染组件
- 变换组件(TransformComponent)
- UnityGUI组
- 向导
- 地形引擎指南(TerrainEngineGuide)
- 树木创建器指南
- 动画视图指南
- GUI脚本指南
- 网络参考指南
- 移动设备上的网络连接
- 高级网络概念
- Unity中的网络元素
- RPC详细信息
- NetworkLevelLoading
- 主服务器
- 最小化网络带宽
- 社交API
- 内置着色器指南
- Unity的后台渲染
- 着色器参考
- ShaderLab语法:Shader
- ShaderLab语法:Properties
- ShaderLab语法:子着色器(SubShader)
- ShaderLab语法:Pass
- ShaderLabsyntax:Color,Material,Lighting
- ShaderLab语法:剔除和深度测试(Culling&DepthTesting)
- ShaderLab语法:纹理组合器(TextureCombiners)
- ShaderLab语法:雾(Fog)
- ShaderLab语法:Alpha测试(Alphatesting)
- ShaderLab语法:混合(Blending)
- ShaderLab语法:通道标记(PassTags)
- ShaderLab语法:名称(Name)
- ShaderLab语法:绑定通道(BindChannels)
- ShaderLab语法:使用通道(UsePass)
- ShaderLab语法:GrabPass
- ShaderLab语法:子着色器标记(SubShaderTags)
- ShaderLab语法:回退(Fallback)
- ShaderLab语法:自定义编辑器(CustomEditor)
- ShaderLab语法:其他命令
- ShaderLab语法:Pass
- 高级ShaderLab主题
- ShaderLab内置值
- 其他
- 网络视图
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Mecanim 动画系统
- 动画状态机
- 混合树 (Blend Tree)
- 在 Mecanim 中使用动画曲线 (Animation Curves)(仅限专业版 (Pro))
- 循环动画片段
- Animation State Machine Preview (solo and mute)
- 动画参数
- 旧动画系统
- 使用类人动画
- 动画层
- 资源导入与创建
- 音轨模块
- 减少文件大小
- 光照贴图 UV
- 资源准备和导入
- 如何安装或升级标准资源 (Standard Assets)?
- FBX 导出指南
- 从 Maya 中导入对象
- 从 Cinema 4D 中导入对象
- 从 3D Studio Max 中导入对象
- 从 Cheetah3D 中导入对象
- 从 Modo 中导入对象
- 从 Lightwave 中导入对象
- 从 Blender 中导入对象
- 为优化性能建模角色
- 如何使用法线贴图 (NormalMaps)?
- 如何修正已导入模型的旋转?
- 程序材质
- 如何使用水?
- 分析器(仅限专业版)
- 绘制调用批处理
- 遮挡剔除(仅限专业版)
- Unity 中的高动态范围 (High Dynamic Range) 渲染
- 在 Unity 4 中使用 DirectX 11
- 文本场景文件格式(仅限专业版)
- 使用网络播放器模版
- 平台依赖编译
- 日志文件
- 首选项
- 粒子系统曲线编辑器
- 渐变编辑器
- 怎样制作网格粒子发射器?(旧粒子系统)
- 深入了解光照贴图
- 光照贴图快速入门
- 着色器
- 动画脚本(旧版)
- 自定义
- 布局模式
- 扩展编辑器
- 网络实例化
- 材质和着色器
- 如何使用细节纹理?
- 着色器:顶点和片段程序
- Unity 中的阴影
使用动画曲线(旧版)
属性列表
在动画片段 (Animation Clip)中,任何可进行动画处理的属性都可有动画曲线 (Animation Curve),该曲线表示这个属性由动画片段 (Animation Clip) 控制。带动画曲线 (Animation Curve) 的动画视图 (Animation View) 性的属性列表中有彩色曲线标记。有关如何将曲线添加到动画属性的信息,请参阅使用动画视图相关部分。
一个游戏对象 (Game Object) 可有诸多个组件,并且动画视图 (Animation View) 中的属性列表可以很长。若只显示有动画曲线 (Animation Curve) 的属性,请单击动画视图 (Animation View) 左下方的按钮将其状态设置为显示:已经过动画处理 (Show: Animated).
将左下角的切换按钮设置为显示:已经过动画处理 (Show: Animated),从而隐藏属性列表中所有没有动画曲线 (Animation Curve) 的属性。
了解曲线、键和关键帧
一个动画曲线 (Animation Curve) 有多个键 (key),这些键是曲线穿过的控制点。这些键在曲线编辑器 (Curve Editor) 中是可见的,在曲线上显示为小钻石形状。如果某个帧中显示的一个或多个曲线有一个键 (key),则该帧称为关键帧 (keyframe)。关键帧 (keyframe) 在关键帧线 (Keyframe Line) 中显示为白色钻石。
如果某个属性在当前预览的帧中有一个键 (key),则曲线标记会变成钻石形状。
旋转.y (Rotation.y) 属性在当前预览的帧上有一个键 (key)。关键帧线 (Keyframe Line) 标记了所有显示曲线的关键帧 (keyframe)。
关键帧线 (Keyframe Line) 仅显示已显示曲线的关键帧。如果选中属性列表中的某个属性,则仅显示该属性,且关键帧线 (Keyframe Line) 不会标记未显示曲线的键。
选中某个属性后,其他属性则不会显示,且其曲线的键不会显示在关键帧线 (Keyframe Line) 中。
添加和移动关键帧
关键帧线 (Keyframe Line) 显示当前所显示曲线的关键帧 (keyframe)。双击关键帧线 (Keyframe Line) 或使用关键帧 (Keyframe) 按钮可添加关键帧 (keyframe)。
单击关键帧 (Keyframe) 按钮或通过在关键帧应该在的帧双击关键帧线 (Keyframe Line) 将关键帧添加到任何给定的帧。这会立即向所有显示的曲线添加一个键 (key)。也可通过右键单击关键帧线 (Keyframe Line) 并从上下文菜单中选择添加关键帧 (Add Keyframe) 来添加关键帧 (keyframe)。添加后,可以用鼠标左右拖动关键帧 (keyframe)。也可以一次选择多个关键帧 (keyframe) 拖动。通过选中关键帧 (keyframe) 并按删除 (Delete) 可将其删除,也可通过右键单击这些关键帧并从上下文菜单选择删除关键帧 (Delete Keyframe) 来删除。
循环模式
Unity 中的动画片段 (Animation Clip) 可有各种循环模式 (Wrap Mode),例如将动画片段 (Animation Clip) 设置为循环。请参阅“脚本参考”中的循环模式以了解更多信息。可在右下角选择框的动画视图 (Animation View)中设置动画片段 (Animation Clip) 的循环模式 (Wrap Mode)。曲线视图 (Curve View) w会将选中的循环模式 (Wrap Mode)预览为动画片段 (Animation Clip) 时间范围外的白线。
设置动画片段 (Animation Clip) 的循环模式 (Wrap Mode) 会在曲线视图 (Curve View)中预览该循环模式 (Wrap Mode)。
支持的可进行动画处理的属性
动画视图 (Animation View) 可对游戏对象 (Game Object) 进行诸多动画处理,而不仅仅只是处理位置、旋转和缩放。任何组件 (Component) 以及材质 (Material) 的属性都可进行动画处理,即使是自己的脚本组件的公共变量。要制作带有复杂视觉效果和行为的动画,只需对相关属性添加动画曲线 (Animation Curve) 即可。
动画系统支持以下类型的属性:
- 浮点数
- 颜色
- 向量 2
- 向量 3
- 向量 4
- 四元数
除以上列出的属性外,不支持数组、结构体和对象。
动画系统不支持脚本组件中的布尔值,但支持某些内置组件中的布尔值。对于那些布尔值,0 等同于假 (False),而其他值等同于真 (True)。
以下是动画视图 (Animation View) 众多功能使用中的一些例子:
- 对光 (Light) 的颜色 (Color) 和强度 (Intensity) 进行动画处理,使其闪烁,摇曳或跳动。
- 对循环音频源 (Audio Source) 的音高 (Pitch) 和音量 (Volume) 进行动画处理,使流动的风、运行的引擎或流动的水显得真实,同时使声音资源的大小保持到最小。
- 对某种材质 (Material) 的纹理偏移 (Texture Offset) 进行动画处理来模拟传送带、运动轨迹、流水或特殊效果。
- 对多个椭圆粒子发射器 (Ellipsoid Particle Emitters) 的发射 (Emit) 状态和速度 (Velocities) 进行动画处理来制作壮观的烟花或喷泉效果。
- 对自己的脚本组件变量进行动画处理,使组件随时间变化呈现出不同的表现。
使用动画曲线 (Animation Curve) 控制游戏逻辑时,请注意 Unity 中动画播放和取样的方式。
旋转插值类型
在 Unity 内部,旋转表示为四元数 (Quaternion)。四元数由 .x、.y、.z 和 .w值组成。这些值一般不能手动修改,除非您确切知道它们的功能。相反,旋转通常使用欧拉角 (Euler Angle) 进行控制。欧拉角有 .x、.y 和 .z 值,这三个值分别表示围绕这三个轴的旋转。
在两个旋转之间插入时,可以根据四元数数值插入,也可根据欧拉角 (Euler Angle) 值插入。动画视图 (Animation View) 使您能够在对变换 (Transform) 旋转进行动画处理时选择一种插值形式。尽管如此,无论使用哪种插值形式,旋转总是显示为欧拉角 (Euler Angle) 值的形式。
变换 (Transform) 旋转可使用欧拉角 (Euler Angle) 插值或四元数 (Quaternion) 插值。
四元数插值
四元数插值总是会沿两个旋转之间的最短路径生成合适的插值。这避免了万向节锁 (Gimbal Lock) 等旋转插值假象的产生。但是,四元数 (Quaternion) 插值无法表示大于 180 度的旋转,因为此时变短的四元数插值去到了反方向。如果使用四元数 (Quaternion) 插值并将两个键 (key) 分开放置,分开的角度大于 180 度,则即使实际旋转依旧平滑,曲线看起来也会不连贯,因为变短的四元数插值换到了相反方向。如果需要让旋转的角度大于 180 度,则需要在中间放置另外的键。使用四元数 (Quaternion) 插值时,更改曲线的键或切线还可能改变其他两条曲线的形状,因为这三条曲线都是由内部四元数 (Quaternion) 表示创建的。使用四元数 (Quaternion) 插值时,键总是连在一起的,因此在特定时间为三条曲线中的一条创建键还会在同一时间为另两条曲线创建键。
使用四元数 (Quaternion) 时将两个键分开 270 度放置会导致插值反向,即仅为 90 度。
欧拉角插值
大多数人都习惯使用欧拉角 (Euler Angles) 插值。欧拉角 (Euler Angle) 可表示任意大的旋转,并且 .x、.y 和 .z 曲线彼此独立。在同一时间围绕多个轴旋转时,欧拉角 (Euler Angles) 插值可能会受到如万向节锁 (Gimbal Lock) 等假象的影响,但每次只绕一个轴简单旋转便很直观。使用欧拉角 (Euler Angle) 插值时,Unity 会在内部将曲线烘焙为内部使用的四元数 (Quaternion) 表示。这与将动画从外部程序导入到 Unity 中的情况类似。请注意:这种曲线烘焙可能会在烘焙过程中添加额外的键,并且常量 (Constant) 切线类型的切线在子帧级可能不完全精确。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论