Havok Xtra帮助文件Word下载.docx
- 文档编号:20329442
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:10
- 大小:21.44KB
Havok Xtra帮助文件Word下载.docx
《Havok Xtra帮助文件Word下载.docx》由会员分享,可在线阅读,更多相关《Havok Xtra帮助文件Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
✓打开File菜单。
✓从File菜单选择Import。
✓从对话框选择需要的Shockwave3D(W3D)文件。
以上将3D演员加入演员表,其后可以将演员拖入舞台。
现在输入必需的Havok演员:
.
✓从对话框选择需要的HavokExport(HKE)文件。
以上将Havok演员加入演员表。
在当前舞台播放影片将会展现一个静态世界。
为创建动态世界,应对Havok模拟进行初始化并与3D场景关联。
拖拉Physics(HKE)行为(位于Havok>
Setup行为库)于呈现3D场景外观的精灵上可以达成上述目的——确定Havok演员参数被设置为HavokPhysicsScene演员的名称。
该行为对Havok模拟进行初始化(将3D物体和HKE文件的刚体关联)。
影片的每帧之后,该行为在物理模拟中推动时间的进度,并在物理控制下更新3D物体的位置和方位。
当该行为被拖拉于舞台上时,你可以设置其它参数,但是采用默认值通常最佳。
Atthispo此时,为实现额外的物理效果,可将其它行为拖入舞台上。
例如,拖拉MoveModel行为(位于Havok>
Control行为库)于舞台上,选择WhichModelparameter参数为"
AnyModel"
。
而后拖拉一个MouseLefttrigger(位于3D>
Triggers行为库)于舞台上之上,将此trigger与MoveModel行为(在SelectaGroupanditsAction参数中可选择)关联。
现在就可以用鼠标指针和左键在场景中选择并移动3D模型了。
以下没有采用可被输入的HavokExport(HKE)文件。
因此物理数据必须由Lingo提供或由3D场景直接获得。
首先我们输入3D场景:
以上将3D演员加入演员表,其后可以将演员拖入舞台。
创建空的Havok模拟:
✓打开Insert菜单。
✓从Insert菜单选择MediaElement。
✓从MediaElement子菜单选择HavokPhysicsScene。
以上把一个空的Havok演员加入演员表。
现在把一个物理(没有HKE)行为加入演员表(位于Havok>
Setup行为库)。
在当前舞台播放影片将会展现一个静态世界,也就是|我们没有在W3D文件中将任何的刚体与3D模型关联。
现在我们需要藉由编辑物理(没有HKE)行为产生Havok模拟数据。
以下的Lingo函数创建了两个加入到Havok模拟并与两个W3D文件中的3D模型关联的刚体:
"
Box01"
和"
Text01"
前者是一个固定的球形刚体,也就是在模拟时可能无法移动。
后者是一个可动的凹面物体。
以下函数的详情,请参阅HavokXtraLingo参考手册。
oncreatescene
s=member("
HelloWorld"
)
hk=member("
BlankHavok"
--创建平面
m=s.model("
)
m.addModifier(#meshdeform)
hk.makeFixedRigidBody(m.name)
--创建文本
hk.makeMovableRigidBody(m.name,100.0,false)
end
除了创造刚体,在此我们也可以调整他们的默认物理参数。
运行电影将产生一些物理动画(也就是"
物体在地心引力作用下下落)。
以下没有采用可被输入的HavokExport(HKE)文件和Shockwave3D(W3D)文件。
因此显示和物理数据必须由Lingo直接创建。
首先,创建空的3D场景:
✓从MediaElement子菜单选择Shockwave3D。
创建空的Havok模拟:
ThisaddsanemptyHavokcast以上把一个空的Havok演员加入演员表。
现在把一个物理(没有HKE)行为通过拖上舞台而加入演员表(位于Havok>
Setup行为库)——确定Havok演员参数被设置为HavokPhysicsScene演员的名称。
现在我们需要从头创建物理和3D场景。
以下的Lingo函数为场景创建3D模型,随后是刚体。
此种情况下,原始的地面和文本刚体实际上是按轴对称的网格物体创建的。
oncreateScene
s=member("
BlankScene"
hk=member("
txt=member("
Text"
s.resetWorld()
--创建平面
mr=s.newmodelresource("
GroundPlaneRes"
#box)
mr.width=150
mr.length=50
mr.height=100
m=s.newmodel("
GroundPlane"
mr)
m.transform.rotation=vector(-90,0,0)
m.transform.position=vector(0,250,-200)
m.addModifier(#meshdeform)
hk.makeFixedRigidBody(m.name,true,#box)
--对准摄影机
c=s.camera[1]
c.transform.position=vector(50,-50,-100)
c.pointat(m.transform.position+vector(0,0,50),vector(0,0,1))
c.hither=1
c.yon=1000
--创建文本
txt.text="
HelloWorld"
mr=txt.extrude3D(s)
mr.bevelType=1
mr.bevelDepth=0.1
mr.smoothness=6
m=s.newModel("
m.transform.position=vector(-75,250,0)
m.transform.rotation=vector(90,0,0)
hk.makeMovableRigidBody(m.name,1000.0,true,#box)
我们将以一个新的影片开始(File>
New>
Movie或Ctrl+n)。
每个影片需要一个演员表。
我们的影片将由一个3D场景和它的物理呈现所组成。
使用Insert菜单增加一个空白的HavokPhysicsScene演员:
Insert>
MediaElement>
HavokPhysicsScene。
使用Insert>
Shockwave3D增加一个空白的Shockwave3D演员。
拖拉Shockwave3D演员于舞台上创建一个精灵。
当前我们的3D场景是空的。
我们现在将用一些简单的物体将其组建起来。
这可由一个简单的Lingo脚本来完成。
使用主菜单的Window>
Inspectors>
Behavior,打开+图标并选择NewBehavior以增加一个新的行为。
拖拉此新行为于3D精灵上。
把下列本文加入新创建的Lingo行为。
这个脚本创建一个由二个盒子和一个球体组成的简单场景。
propertyw,hk
onbeginSpriteme
hk=member
(1)
w=member
(2)
hk.initialize(w,0.1,1)
createVisibleObjects()
createPhysicalObjects()
oncreateVisibleObjectsme
--创建长方体
mr=w.newModelResource("
TheBoxRes"
mr.width=2
mr.height=2
mr.length=2
m=w.newModel("
TheBox"
m.transform.rotation=vector(0,5,0)
m.transform.position=vector(0,0,10)
--创建球体
TheBallRes"
#sphere)
mr.radius=1
TheBall"
m.transform.position=vector(0,0,5)
TheGroundRes"
mr.width=15
mr.height=10
mr.length=1
TheGround"
mr)
c=w.camera[1]
c.transform.position=vector(0,20,20)
c.pointat(m.transform.position+vector(0,0,5),vector(0,0,1))
w.directionalPreset=#bottomLeft
oncreatePhysicalObjectsme
--长方体
m=w.model("
rb=hk.makeMovableRigidBody(m.name,50)
--球体
rb=hk.makeMovableRigidBody(m.name,100)
rb.restitution=1
rb.friction=0
--平面
)
rb=hk.makeFixedRigidBody(m.name)
HavokXtra的语句是以粗体突出显示的。
以上函数和属性的细节请参阅HavokXtraLingo参考手册。
在此我们仅简单介绍。
每个物理模拟场景一定被关联到一个可视的3D等价物体。
为创建此关联,hk.initialize()函数为Shockwave3D演员呈现一个可视的场景提供了一个参考示例。
提示:
在与我们的物理模拟有关的任何其他的行为能预先作用之前,hk.initialize()应首先被调用。
在初始化之后,脚本创建了许多在场景中可视的3D模型。
一旦创建完毕,控制这些模型并赋予它们物理属性——设置刚体则变得可能。
在createPhysicalObjects函数中,我们将"
和"
物体设置为刚体。
可移动刚体有一个块,可以自由移动、反弹和旋转。
被创建为一个固定刚体,不会移动而且不会被撞击它的物体所影响。
在此我们已经创建了一个简单的物理3D场景。
然而,如果播放影片,舞台精灵仍然呈现一个静态的场景。
这是因为在每一帧中,物理模拟应前进。
HavokXtra将其视为步进,并提供一个Lingo函数以运行此动作。
onexitFrameme
hk.step()
onendSpriteme
hk.shutdown()
w.resetWorld()
将上述语句加入你的行为脚本。
在每一帧结束而影片尚未前进至下一帧时,对步进函数的调用(hk.step)将预先作用。
这导致模拟计算每个模型的新位置和方位。
这意味着在新的一帧开始时,舞台精灵的模型将被重绘。
此外,当影片停止而我们未重设3D场景为原始空白状态前,也需要关闭物理模拟。
既然我们的场景设置为物理精确样式,我们则可以开始控制它并使其相互作用。
HavokXtra提供特效函数以作用于不同的刚体。
刚体可以直接的(经由多种"
…MoveTo"
函数)或间接的(经由应用力量、推力或转力矩的模拟)改变他们的位置和方向。
除了这些标准函数,HavokXtra也以缓冲器和弹簧的形式提供完全和简单的限制。
与真实世界一样,弹簧也有其静止长度、弹力和作用。
缓冲器使人联想到限制器。
直线缓冲器限制刚体位置。
缓冲位置可能被限制在场景中一个具体的点或相对于另一个刚体的偏移点。
后一种限制方式,会允许类似于刚体链的产生。
角度缓冲器限制刚体旋转。
这意谓着一个长方体的方位可能被限制,以便其平衡一个拐角等类似情况。
我们现在将改变我们的当前场景,以使它比一个长方体于一个球体上下落的场景更有趣些。
可增加一个直线缓冲器以限制长方体模型的位置,而仍然允许它旋转。
此外,可增加一个强有力的弹簧,关联于球体模型与锁定位置的长方体之间。
此弹簧可不断地引起球体碰撞长方体,从而产生有趣而杂乱的交互作用。
oncreateDashpotme
worldPoint=w.model("
).transform.position
dashpot=hk.makeLinearDashpot("
DashpotName"
"
worldPoint)
dashpot.strength=1000
dashpot.damping=100
oncreateSpringme
spring=hk.makeSpring("
SpringName"
spring.restLength=3.5
spring.elasticity=10000
spring.damping=1
以上为创建直线缓冲器和弹簧的Lingo脚本。
将其加入行为脚本。
此外,于物理物体创建之后在beginSprite里调用这二个新函数。
运行影片,将出现类似于以上舞台的情景。
除刚体的位置和方位之外,HavokXtra可提供大量的刚体参数。
我们可随时获得刚体的速度,或了解刚体被施加了多大力量。
我们也可获得有关刚体碰撞的参数。
为完成我们的示例场景,我们将增加一段Lingo脚本语句,使每一次球体撞击长方体时都播放声音。
代码包括两段。
首先我们应告知HavokXtra我们关注的是球体刚体和长方体刚体之间的碰撞。
onbeginSpriteme
w=member(3)
hk=member(4)
createDashpot()
createSpring()
hk.registerInterest("
10,0,#collision,me)
以上脚本展现beginSprite函数的最终版本。
粗体显示的语句是关注碰撞的地方。
当在"
之间发生碰撞时,第二段代码(碰撞函数)将被调用。
以下是碰撞函数的脚本。
以下的代码假设要播放的声音文件存储为影片演员"
Sound"
oncollisionme,details
sound
(1).volume=integer(255/power(details[5],1.1))
sound
(1).play(member("
))
如场景一样,此碰撞callback函数接受一个称为"
details"
的参数。
此参数包含有关碰撞的全部已知数据,包括有关的刚体名称、碰撞发生的点位和碰撞的相对方位。
最终传给callback的数据是表现碰撞强劲程度的一个变量。
以上例子中我们使用此变量给我们要播放的声音赋值。
这意味着球体碰撞长方体越强劲,声音越大。
示例场景只涉及了HavokXtra的基础。
当经由Lingo脚本创建全部内容变得不切实际时,也可从一个3D建模工具中输出HavokPhysicsScene(.HKE)文件并将其作为一个演员输入。
这类似于能从许多的3D建模工具中输出的Shockwave3D(.W3D)文件。
这允许极端地物理精确3D场景的高速创建。
欲获得3D建模工具插件的详情,请参阅Havok网站。
与输出支持一样,创建了许多的行为。
可以获取这些行为并象任何MacromediaDirector的内部可用行为一样使用。
它们由两部分组成:
设置和控制。
设置行为包含在快速入门中讨论的基本功能。
当其他行为处理刚体或弹簧和缓冲器创建时,Physics(HKE)和Physics(NoHKE)行为处理初始化、步进和关闭。
控制行为提供了与物理模拟场景进行更多复杂交互的示例。
例如,移动模型介绍经由鼠标操纵刚体,而驱动模型允许象开车一样控制任何刚体。
所有这些行为可以根据你的需要使用、研究和修改。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Havok Xtra帮助文件 Xtra 帮助文件