12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 4101|回复: 16
打印 上一主题 下一主题

[电商] 《掌握x3d》系列教程第四节

[复制链接]

1096

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
17782
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-12-26 15:21:01 |只看该作者 |倒序浏览
掌握X3D   第四节
主要内容:基本动画

ViewPoint

视点
orientation 方向坐标

position 位置

set_bind 为true时启用这个视点,为false时关闭

原来

<X3D>

<Scene>   

   

<Shape>         

<Appearance>        

<Material diffuseColor="0 1 1"/>      

</Appearance>   

<Box/>  

</Shape>   

</Scene>

</X3D>

设置视点

<Viewpoint  orientation="0.5 0 0 -0.5" position="0 15 15"/>
<Viewpoint  orientation="0.5 0 0 -0.5" position="4 2 10"/>


动画流程


DEF名字

DEF属性可指定名字
<Transform DEF="thebox">        

<Shape><Box /></Shape>     

</Transform>
<Transform>        

<Shape><Box DEF="thebox /></Shape>     

</Transform>

TimeSensor

cycleInterval 循环周期

fraction_changed 若TimeSensor启用, 它会不断传出0-1之间的小数,表示在循环周期中的位置。
startTime 起始时间

stopTime  结束时间

Loop循环或者只有一个周期

<TimeSensor DEF="Clock" cycleInterval="5.0" loop="true"/>


动画流程



Interpolation元件

ColorInterpolator

CoordinateInterpolator

CoordinateInterpolator2D

NormalInterpolator

OrientationInterpolator

PositionInterpolator

PositionInterpolator2D

ScalarInterpolator

这个元件的所有节点都必须配合节点才能使用

随时间改变它的值

Key属性表示时间点,keyValue表示某个时间点对应的值

时间可由TimeSensor 的fraction_changed决定
Eg坐标改变

<XXX  key=" 0.0 0.25 0.5 0.75 1.0" keyValue=" -4.0 0.0 0.0 -2.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 4.0 0.0 0.0"/>

当Interpolation 的set_fraction接收到TimeSensor的fraction_changed事件时会知道现处的时间点,再根据key和keyValue输出相应的值,这时value_changed会触发并传出这个对应的值。

PositionInterpolator改变位置

<ositionInterpolator DEF="TreePath" key=" 0.0 0.25 0.5 0.75 1.0" keyValue=" -4.0 0.0 0.0 -2.0 0.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 4.0 0.0 0.0"/>


动画流程




事件传递ROUTE

从某一节点的属性传递到另外某一节点的属性中
语法

<ROUTE fromNode="NodeA" fromField="fieldA1" toNode="NodeB" toField="fieldB1"/> <ROUTE fromField="fraction_changed" fromNode="Clock"      toField="set_fraction" toNode="TreePath"/>   


动画流程




<ROUTE fromField="value_changed" fromNode="TreePath"      toField="translation" toNode="thebox"/>
set_translation 事件为Transform设置位置的属性

动画流程

插入图片

这样就能动了

例子

<Viewpoint position="0 3 10"/>
<Transform DEF="T">

<Shape>

<Box/>

</Shape>

</Transform>
<TimeSensor DEF="time" loop="true"/>

<ositionInterpolator DEF="" key="0 0.3 0.7" keyValue="0 0 0, 1 0 0, 0 1 0"/>

<ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode=""/>

<ROUTE fromField="value_changed" fromNode="" toField="translation" toNode="T"/>

CoordinateInterpolator

改变坐标值
例:改变三角形形状

<Shape>

<IndexedFaceSet coordIndex="0 1 2 " solid="false">

<Coordinate DEF="coord" point="-1 0 0, 1 0 0, -1 1 0"/>

</IndexedFaceSet>

</Shape> <TimeSensor DEF="time" cycleInterval="3" loop="true"/>

<CoordinateInterpolator DEF="C" key="0 0.5 1" keyValue="-1 0 0, 1 0 0, -1 1 0, -1 0 0, 1 0 0, 0 1 0, -1 0 0, 1 0 0, 1 1 0"/>

<ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="C"/>

<ROUTE fromField="value_changed" fromNode="C" toField="point" toNode="coord"/>

OrientationInterpolator

旋转

<Transform DEF="transform">

<Shape>

<Box/>

<Appearance>

<Material diffuseColor="0 0 1"/>

</Appearance>

</Shape>

</Transform>

<TimeSensor DEF="time" loop="true"/>

<OrientationInterpolator DEF="Or" key="0 0.3 0.7" keyValue="0 0 1 0, 1 0 0 2, 0.5 0 1 0.4"/>
<ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="Or"/>

<ROUTE fromField="value_changed" fromNode="Or" toField="rotation" toNode="transform"/>
例:月球围绕地球转

制作地球
<Transform DEF="transform">

<Shape>

<Appearance>

<ImageTexture url="2.jpg" />

</Appearance>

<Sphere />

</Shape>

</Transform>

地球自转 OrientationInterpolato
<TimeSensor DEF="time" loop="true" cycleInterval="5.0" />

<OrientationInterpolator DEF="Or" key="0 0.5 1" keyValue="0 0 1 0, 0 1 0 3.14,0 1 0 6.28"/>
<ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="Or"/>

<ROUTE fromField="value_changed" fromNode="Or" toField="rotation" toNode="transform"/>
保存为earth.x3d

同样的方法制作月球
<Transform DEF="transform">

<Shape>

<Appearance>

<ImageTexture url="3.jpg" />

</Appearance>

<Sphere radius="0.4" />

</Shape>

</Transform>

月球自转 OrientationInterpolato
<TimeSensor DEF="time" loop="true" cycleInterval="5.0" />

<OrientationInterpolator DEF="Or" key="0 0.5 1" keyValue="0 0 1 0, 0 1 0 3.14,0 1 0 6.28"/>
<ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode="Or"/>

<ROUTE fromField="value_changed" fromNode="Or" toField="rotation" toNode="transform"/>
保存为moon.x3d

引用地球也月球

<Transform>

<Inline url="earth.x3d"/>

</Transform>
<Transform DEF="moon">

<Inline url="moon.x3d"/>

</Transform>

TimeSensor

<TimeSensor DEF="time" loop="true" cycleInterval="15"/>

位置设置

<ositionInterpolator DEF="" key="0 0.125 0.25 0.375 0.5 0.625 0.7 0.825 1" keyValue="5 0 0,3.5 0 3.5, 0 0 5,-3.5 0 3.5, -5 0 0,-3.5 0 -3.5,0 0 -5,3.5 0 -3.5,5 0 0 "/>
传递

<ROUTE fromField="fraction_changed" fromNode="time" toField="set_fraction" toNode=""/>

<ROUTE fromField="value_changed" fromNode="" toField="translation" toNode="moon"/>

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

168

主题

1

听众

3637

积分

中级设计师

Rank: 5Rank: 5

纳金币
3637
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2011-12-27 13:38:12 |只看该作者
四哥路过,其他闪道!
回复

使用道具 举报

0

主题

1

听众

1106

积分

助理设计师

Rank: 4

纳金币
1106
精华
0
板凳
发表于 2011-12-27 13:38:37 |只看该作者
回复

使用道具 举报

0

主题

1

听众

1106

积分

助理设计师

Rank: 4

纳金币
1106
精华
0
地板
发表于 2011-12-27 13:38:49 |只看该作者
回复

使用道具 举报

0

主题

1

听众

1122

积分

助理设计师

Rank: 4

纳金币
1122
精华
0
5#
发表于 2011-12-27 13:38:49 |只看该作者
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

6#
发表于 2012-2-1 23:20:08 |只看该作者
这么后现代
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

7#
发表于 2012-3-2 23:29:20 |只看该作者
不错哦,顶一下......
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-4-7 23:30:47 |只看该作者
其实楼主所说的这些,俺支很少用!
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-4-10 23:20:23 |只看该作者
很有心,部分已收录自用,谢谢
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-4-20 23:18:04 |只看该作者
楼主收集的可真全哦
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-13 15:09 , Processed in 0.274320 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部