TGE学习笔记06 动画模型

我们都知道怎样将静态模型加入场景,但是如何将带动画的模型加入场景呢?
在经过两天的摸索后,终于让我找到了方法。
其实,这个方法很简单,但对于我们这些刚接触Torque引擎的人来说,可走了不少弯路,
在此记录下我的探索历程,也是希望后来者能少走一些弯路。
言归正传,下来就来说一说添加的步骤:
1.制作动画,导出dts模型
2.新生成一个脚本文件,比如Ma1.cs,放到./Game/Server目录下
3.编写脚本代码,创建可在编辑器里编辑的带动画的静态模型
 1datablock StaticShapeData(Ma1Data)
 2{
 3   category = "Misc";
 4   shapeFile = "~/data/ma1.dts";
 5   isPlaying = 1;
 6}
;
 7
 8function Ma1Data::create(%db)
 9{
10   %shape = new StaticShape(){
11      dataBlock = %db;
12   }
;
13    //%shape.playThread(0,"flow");
14   MissionCleanup.add(%shape);
15   return %shape;
16}

17
18function Ma1Data::onRemove(%this%obj)
19{
20   if (%obj.client.player == %obj)
21      %obj.client.player = 0;
22}
4.在./Game/Server/game.cs文件的function onServerCreated()中增加一行:
exec("./Ma1.cs");
5.运行exe,就可以在地图编辑器中增加新的模型了,这个Ma1的模型位于Shapes/Misc/下
6.加入模型后,模型并不会自动播放动画,可以在控制台敲入命令m1.playThread(0,"run");
就可以看到动画了。当然,这儿的m1要换成你自己生成的模型的名字,而run换成你的动画名字。
7.虽然看到动画了,但是我们希望刚进入场景就能自动播放,玩家可不会在控制台里敲命令。
不要急,要想自动我们需要在./Game/main.cs文件的function loadMyMission()中增加一段代码:
   %m1 = nameToID("m1");
   
if (!isObject(%m1))
   
{
      echo(
"Scene Error: Could not find m1!");
   }

   
else
   
{
      
%m1.playThread(0"run");
   }


恭喜你,所有的工作都完成了,下面你就可以重新载入关卡,看看努力的成果了。
原文地址:https://www.cnblogs.com/gamesacer/p/1106238.html