以前的案例涉及的动画效果都是平面展现,可是ivx中也能够经过3D世界组件展现3D的效果。今天咱们就以跑马灯为例来说一下ivx中的3D世界是如何使用的。
一.3D世界
3D世界最基础的组成部分就是坐标系和摄像机。坐标系是一个空间直角坐标系,3D世界下的全部组件都会有一个XYZ坐标来决定它在3D世界中的位置,而摄像机负责控制咱们的视角,下图中红圈处就是摄像机的位置,黄线框起来的区域就是咱们的视角范围。
另外咱们还能够在3D世界中添加各类光源,字体,图片,图片序列和物体模型这些具备展现效果的组件,除此以外还有3D容器,他能够做为多个组件的父容器下,统一控制这些子组件的状态。ide
二.跑马灯
1.摄像机位置
首先调整摄像机的坐标位置,而后在3D世界中添加一个3D容器,统一管理跑马灯的8张图片。
咱们点击3D容器,能够看见3D容器自身也拥有一个小坐标系,在不对3D容器进行XYZ轴旋转的状况下其自身坐标系是与3D世界这个父容器的坐标系方向一致的,天然3D容器内部的组件其实也会以3D容器这个父容器的坐标系为基准的。
总结一下就是每一个组件自身的坐标系用于做为其子组件的XYZ坐标的基准和组件自身XYZ轴旋转的基准。好比咱们将3D容器Z轴旋转90度,能够看到其内部的图片1的坐标轴就随之发生了旋转。
2.图片位置
首先将8张图片的原点设置到中心点上,而后能够看到图片自身的坐标系,咱们将图片参照自身Z轴旋转90°把它横过来,最后为了不图片重叠让图片向Y轴正方向移动必定距离,设置图片的Y轴坐标为100。
其它位置的图片同理,不在坐标轴上的图片要同时设置Y坐标和Z坐标,数值是100÷(√2),约等于70.7。至于其余图片的旋转效果易知都是按照图片自身的X轴旋转。
3.时间轴
最后就是经过时间轴让3D容器绕其自身X轴旋转。
咱们给时间轴添加2个时间标记,分别在0s和1s的位置。这是由于时间轴开启了循环播放,因此它播放到2s时就会从0s从新播放,即2s与0s是同一时间点,结尾就是开头。时间标记能够添加事件,当时间轴播放到该时间点就会触发。这里是用一个数值变量来设置3D容器的X轴旋转角度,每播放到一个时间标记就给该值加10,以此来达到旋转的效果。
其实细想一下就会发现这个时间轴充当的就是一个触发器的做用,咱们能够直接用触发器替换掉。不过3D世界内不能添加触发器,咱们把它添加在横幅下。以下设置后最终效果是同样的。(数值变量和触发器不受布局层级影响)
另外咱们还能够直接给3D容器添加一个轨迹自动循环播放,初始关键帧3D容器X轴旋转角度0°,末尾关键帧360°造成一个闭环,这样作最终效果也是同样的。
4.先后翻跑马灯
上面实现的是上下翻的跑马灯,实现先后翻的跑马灯效果原理上也是同样的,只是变更了一些参考坐标轴,你们能够本身动手尝试改造一个。布局
总结
3D世界中最重要的就是各个组件的位置关系了,首先要分清的是哪些属性值是参照父容器坐标系,哪些属性是参照自身的坐标系。其次就是明确它的父容器是谁,它的父容器坐标系的基准方向。建议是中间层级的容器尽可能不要进行旋转,都保持与3D世界的坐标系方向一致,这样是最合乎直观感觉的,不然中间旋转来旋转去很容易出错。字体