在经过两天的摸索后,终于让我找到了方法。
其实,这个方法很简单,但对于我们这些刚接触Torque引擎的人来说,可走了不少弯路,
在此记录下我的探索历程,也是希望后来者能少走一些弯路。
言归正传,下来就来说一说添加的步骤:
1.制作动画,导出dts模型
2.新生成一个脚本文件,比如Ma1.cs,放到./Game/Server目录下
3.编写脚本代码,创建可在编辑器里编辑的带动画的静态模型
1 datablock StaticShapeData(Ma1Data)
2 {
3 category = "Misc";
4 shapeFile = "~/data/ma1.dts";
5 isPlaying = 1;
6} ;
7
8 function 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
18 function Ma1Data::onRemove( % this , % obj)
19 {
20 if (%obj.client.player == %obj)
21 %obj.client.player = 0;
22}
4.在./Game/Server/game.cs文件的 function onServerCreated()中增加一行: 2 {
3 category = "Misc";
4 shapeFile = "~/data/ma1.dts";
5 isPlaying = 1;
6} ;
7
8 function 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
18 function Ma1Data::onRemove( % this , % obj)
19 {
20 if (%obj.client.player == %obj)
21 %obj.client.player = 0;
22}
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");
}
if ( ! isObject( % m1))
{
echo("Scene Error: Could not find m1!");
}
else
{
%m1.playThread(0, "run");
}
恭喜你,所有的工作都完成了,下面你就可以重新载入关卡,看看努力的成果了。