The Making of Blend Dsqs
Author: 蛋蛋
三、简单的Blend动作制作实例
制作一个Blend Sequence:look用于与Cycle Sequence:root或Cycle Sequence:forward的合成。
制作Blend动作前的准备
在制作Blend动作之前首先需要完成动作主体的静态MAX模型,并确认能够正确导出为DTS格式。该MAX模型的0号帧就是我们Blend动作中的参考帧。其次,完成Cycle Sequence:root的制作,并确认能够正确导出为DSQ文件格式。
制作Blend动作的具体步骤
1.打开 人物原型.max 文件,这是一个不包括任何动作的静态模型;
2.载入bip骨骼动画“举枪待机.bip”;这时人物模型已经加载了0~50帧的Cycle Sequence待机动画。我们的Blend Sequence:look动作都是以0号帧来变化出来的;
3.导出静态模型DTS和待机动作root.dsq;
4.将Max的0号帧的所有骨骼的状态,复制到某两个空白帧上,这里把0号帧复制到了60号帧,70号帧;
5.将60号帧的双手和头部的节点向上平移和转动使人物呈抬头向上举枪状;
注意:在此过程中保持其他的节点与0号帧的静止。
6.将70号帧的双手和头部的节点向下平移和转动使人物呈低头向下举枪状。
注意:在此过程中保持其他的节点与0号帧的静止。
7.建立动作虚拟体,钩上Blend Sequence属性,去掉非Cycle Sequence。
8.选择导出范围(60~70号帧)
9.以look.dsq名导出。
四、用Torque ShowTool查看动作合成结果
作完Blend动作之后,可以在ShowTool中间查看合成的结果,方法是:首先载入dts和两个需要进行混合的dsq。
1.打开左侧的Thread Control面板;
2.增加一个线程;
3.Thread0和Thread1分别对应两个不同的动作,如果是循环动作就点击播放;
就可以在主窗口看到合成后的结果。

ShowTool中的显示,和程序中的调用在游戏中显示结果是一致的。
五、脚本中Blend动作的使用
装载武器时,武器的一个属性customLookAnim 会自动被程序调用与root,run,side,back等运动状态进行混合。 customLookAnim为空时,look动作会被使用。拿剑时,customLookAnim = "h1root"; 拿十字弓则是默认的"look"
1
function WeaponImage::onMount(%this,%obj,%slot)
2
...{
3
PlayerBody.renderFirstPerson = false;
4
// Images assume a false ammo state on load. We need to
5
// set the state according to the current inventory.
6
if (%obj.getInventory(%this.ammo))
7
%obj.setImageAmmo(%slot,true);
8
9
if (%this.customLookAnim !$= "")
10
...{
11
%obj.setArmThread(%this.customLookAnim);
12
}
13
else
14
...{
15
%obj.setArmThread("look");
16
}
17
}
18
这些动作序列的命名都是在脚本datablock TSShapeConstructor(XXXXXDts)中声明好的。
关于近战武器剑的使用,以后有机会我将会再添加。
The end. Thank you for your patience! Hehe.