---------------------我 读取MDL文件
不知怎么的,我还以为actor直接读取MDL文件会没问题,结果发现读取那个例子中有的青蛙确实没问题,
但是一读取那些半条命啊、反恐啊什么的MDL文件就纹理紊乱,搞了半天得不出好的结果,
最后没想到把actor改成actor2,呵呵,全部都搞定了,纹理一点问题没有。
ITVActor2 man2;
man2=CreateTVActor2();
man2->Load("..//..//..//Media//asianb02.mdl","body",tvfalse,tvtrue);
man2->SetAnimationID(1);
man2->Render();
--------------------我 一些函数
关于ACTOR2
只有ACTOR2才能正常读取HL系列的MDL文件,以下是其成员函数:
->ShowBoundingBox(是否显示整体盒,是否显示被攻击盒)
用于在画面中显示两种盒子。
->Enable(t/f)决定ACTOR2
是否显示出来。
long ->GetAnimationCount()
返回动画总数量
long ->GetAnimationLength(动画ID)
返回动画的长度桢数
->playAnimation(float 速度)
控制人物的动作速度,此功能与actor的setspeed功能同.
->setAnimation(ID)
让人物运行第几个动作。
这些是不知道用途的:
long ->getentity() 得到实体
float ->getkeyframe
--------------------我 骨骼的程序控制
vector2->setbonerotate(bone ID,rx,ry,rz);是用来控制某一骨骼转动的,
但是在实际中要想用键盘或鼠标或程序控制其转动,就得这样:
***********************
//在input里面:
if(input1->IsKeyPressed(TV_KEY_Q))
hx=hx+0.1*timeleft;
if(input1->IsKeyPressed(TV_KEY_E))
hx=hx-0.1*timeleft;
//在render里面:
man2->SetBoneRotation(man2->GetBoneID("Bip01 Head"),hx,hy,hz,tvtrue);
***********************
当然了,这里是用了键盘来控制头部的左右转动,还可以用鼠标。只要限制hx等就可以让头部转动受限制。
读取MDL文件与骨骼控制
最新推荐文章于 2024-06-14 12:31:49 发布