|
地图中选择主基地旁边的那个Zealot来演示的。
地图下载:
SMSJ.rar
(1.3 MB, 下载次数: 71)
视频链接:http://v.ku6.com/show/dBeOcYa2nsjXkiLQ.html
技能1)颜色渐变;模型动作:攻击
这个技能所导致的模型动作以及颜色的变化是由行为ChangeColor来触发的。
行为ChangeColor是一个CBehaviorBuff,用CAbilBehavior来控制这个行为的开关。
当行为ChangeColor开启On时(Behavior.ChangeColor.On)
1)发送模型动画播放Message:AnimPlay Cast Attack,02 PlayForever。意为:播放动画;自定义名称为Cast;播放动画为:2号攻击命令;持续播放。
2)发送计时器设置Message:TimerSet 0.100000 Enlarge1。意为:设置计时器;0.1秒后触发名为Enlarge1的计时器。
3)发送颜色设置Message:SetTintColor {0,255,0 10.000000}。意为:设置颜色;蓝色,亮度10。
当行为ChangeColor关闭Off时(Behavior.ChangeColor.Off)
1)发送模型动画清除Message:AnimClear Cast。意为:清除名为Cast的模型。
2)发送颜色设置Message:SetTintColor。意为:设置为默认色(黑色)。
3)发送计时器删除Message:TimerKill Enlarge1~5。意为:删除名为Enlarge1~5的计时器。
当计时器被触发时(TimerExpired; TimerName Enlarge1)
1)发送计时器设置Message:TimerSet 0.5 Enlarge2。意为:0.5秒触发名为Enlarge2的计时器。
2)发送颜色设置Message:SetTintColor {128,192,0 10.000000}。意为:设置颜色;128,192,0,亮度10。
当计时器被触发时(TimerExpired; TimerName Enlarge2~5)
设置颜色,且同时设置之后的计时器。在计时器的最后一个(即为5号计时器Enlarge5)时,触发计时器1号,形成循环。
- <On Terms="Behavior.ChangeColor.On" Send="AnimPlay Cast Attack,02 PlayForever"/>
- <On Terms="Behavior.ChangeColor.Off" Send="AnimClear Cast"/>
- <On Terms="Behavior.ChangeColor.On" Send="TimerSet 0.100000 Enlarge1"/>
- <On Terms="Behavior.ChangeColor.On" Send="SetTintColor {0,255,0 10.000000}"/>
- <On Terms="Behavior.ChangeColor.Off" Send="SetTintColor"/>
- <On Terms="Behavior.ChangeColor.Off" Send="TimerKill Enlarge1"/>
- <On Terms="Behavior.ChangeColor.Off" Send="TimerKill Enlarge2"/>
- <On Terms="Behavior.ChangeColor.Off" Send="TimerKill Enlarge3"/>
- <On Terms="Behavior.ChangeColor.Off" Send="TimerKill Enlarge4"/>
- <On Terms="Behavior.ChangeColor.Off" Send="TimerKill Enlarge5"/>
- <On Terms="TimerExpired; TimerName Enlarge1" Send="SetTintColor {128,192,0 10.000000}"/>
- <On Terms="TimerExpired; TimerName Enlarge2" Send="SetTintColor {4,32,187 10.000000}"/>
- <On Terms="TimerExpired; TimerName Enlarge3" Send="SetTintColor {192,192,100 10.000000}"/>
- <On Terms="TimerExpired; TimerName Enlarge4" Send="SetTintColor {182,35,150 10.000000}"/>
- <On Terms="TimerExpired; TimerName Enlarge5" Send="SetTintColor {141,50,130 10.000000}"/>
- <On Terms="TimerExpired; TimerName Enlarge1" Send="TimerSet 0.5 Enlarge2"/>
- <On Terms="TimerExpired; TimerName Enlarge2" Send="TimerSet 0.5 Enlarge3"/>
- <On Terms="TimerExpired; TimerName Enlarge3" Send="TimerSet 0.5 Enlarge4"/>
- <On Terms="TimerExpired; TimerName Enlarge4" Send="TimerSet 0.5 Enlarge5"/>
- <On Terms="TimerExpired; TimerName Enlarge5" Send="TimerSet 0.5 Enlarge1"/>
复制代码
技能2)体形变大;模型动作:胜利
这个技能所导致的模型动作以及形状的变化是由行为ChangeScale来触发的。
行为ChangeScale是一个CBehaviorBuff,用CAbilBehavior来控制这个行为的开关。
当行为ChangeScale开启On时(Behavior.ChangeScale.On)
1)发送模型动画播放Message:AnimPlay Cast Stand,Victory,03 PlayForever。
意为:播放动画;自定义名称为Cast;播放动画为:3号胜利;持续播放。
2)发送计时器设置Message:TimerSet 0.25 ChangeScaleAAA。意为:设置计时器;0.25秒后触发名为ChangeScaleAAA的计时器。
当行为ChangeColor关闭Off时(Behavior.ChangeScale.Off)
1)发送模型动画清除Message:AnimClear Cast。意为:清除名为Cast的模型。
2)发送计时器设置Message:TimerSet 0.25 ChangeScaleBBB。意为:设置计时器;0.25秒后触发名为ChangeScaleBBB的计时器。
当计时器被触发时(TimerExpired; TimerName ChangeScaleAAA)
1)发送模型体积变化Message:SetScale 3 4.75。意为:模型在4.75秒内从原有大小变化到3倍大小。
当计时器被触发时(TimerExpired; TimerName ChangeScaleBBB)
1)发送模型体积变化Message:SetScale 1 4.75。意为:模型在4.75秒内从原有大小变化到1倍大小。
- <On Terms="Behavior.ChangeScale.On" Send="AnimPlay Cast Stand,Victory,03 PlayForever"/>
- <On Terms="Behavior.ChangeScale.Off" Send="AnimClear Cast"/>
- <On Terms="Behavior.ChangeScale.On" Send="TimerSet 0.25 ChangeScaleAAA"/>
- <On Terms="TimerExpired; TimerName ChangeScaleAAA" Send="SetScale 3 4.75"/>
- <On Terms="Behavior.ChangeScale.Off" Send="TimerSet 0.25 ChangeScaleBBB"/>
- <On Terms="TimerExpired; TimerName ChangeScaleBBB" Send="SetScale 1 4.75"/>
复制代码
技能3)透明度渐变;模型动作:跑步
这个技能所导致的模型动作以及形状的变化是由行为ChangeOpacity来触发的。
行为ChangeOpacity是一个CBehaviorBuff,用CAbilBehavior来控制这个行为的开关。
当行为ChangeOpacity开启On时(Behavior.ChangeOpacity.On)
1)发送模型动画播放Message:AnimPlay Cast Walk,Spell PlayForever。
意为:播放动画;自定义名称为Cast;播放动画为:跑步;持续播放。
2)发送计时器设置Message:TimerSet 0.25 ChangeOpacityAAA。意为:设置计时器;0.25秒后触发名为ChangeOpacityAAA的计时器。
当行为ChangeColor关闭Off时(Behavior.ChangeOpacity.Off)
1)发送模型动画清除Message:AnimClear Cast。意为:清除名为Cast的模型。
2)发送计时器设置Message:TimerSet 0.25 ChangeOpacityBBB。意为:设置计时器;0.25秒后触发名为ChangeOpacityBBB的计时器。
当计时器被触发时(TimerExpired; TimerName ChangeOpacityAAA)
1)发送模型体积变化Message:SetOpacity 0.01 4.75。意为:模型在4.75秒内从原有透明度变化到透明度10%。
当计时器被触发时(TimerExpired; TimerName ChangeOpacityBBB)
1)发送模型体积变化Message:SetOpacity 1 2。意为:模型在2秒内从原有大小变化到100%透明度。
- <On Terms="Behavior.ChangeOpacity.On" Send="AnimPlay Cast Walk,Spell PlayForever"/>
- <On Terms="Behavior.ChangeOpacity.Off" Send="AnimClear Cast"/>
- <On Terms="Behavior.ChangeOpacity.On" Send="TimerSet 0.25 ChangeOpacityAAA"/>
- <On Terms="TimerExpired; TimerName ChangeOpacityAAA" Send="SetOpacity 0.01 4.75"/>
- <On Terms="Behavior.ChangeOpacity.Off" Send="TimerSet 0.01 ChangeOpacityBBB"/>
- <On Terms="TimerExpired; TimerName ChangeOpacityBBB" Send="SetOpacity 1 2"/>
复制代码
技能4)高亮选择;模型动作跳舞1
这个技能所导致的模型动作以及形状的变化是由行为ChangeHalo来触发的。
行为ChangeHalo是一个CBehaviorBuff,用CAbilBehavior来控制这个行为的开关。
当行为ChangeHalo开启On时(Behavior.ChangeHalo.On)
1)发送模型动画播放Message:AnimPlay Cast Stand,Dance,02 PlayForever。
意为:播放动画;自定义名称为Cast;播放动画为:2号跳舞;持续播放。
2)发送模型高亮开始(决战模式?)Message:HaloStart。意为:开始边缘高亮状态。
当行为ChangeHalo关闭Off时(Behavior.ChangeHalo.Off)
1)发送模型动画清除Message:AnimClear Cast。意为:清除名为Cast的模型。
2)发送模型高亮结束(决战模式?)Message:HaloStop。意为:结束边缘高亮状态。
- <On Terms="Behavior.ChangeHalo.On" Send="AnimPlay Cast Stand,Dance,02 PlayForever"/>
- <On Terms="Behavior.ChangeHalo.Off" Send="AnimClear Cast"/>
- <On Terms="Behavior.ChangeHalo.On" Send="HaloStart"/>
- <On Terms="Behavior.ChangeHalo.Off" Send="HaloStop"/>
复制代码
技能5)闪烁;模型动作跳舞2
这个技能所导致的模型动作以及形状的变化是由行为ChangeGlow来触发的。
行为ChangeGlow是一个CBehaviorBuff,用CAbilBehavior来控制这个行为的开关。
当行为ChangeGlow开启On时(Behavior.ChangeGlow.On)
1)发送模型动画播放Message:AnimPlay Cast Stand,Dance,01 PlayForever。
意为:播放动画;自定义名称为Cast;播放动画为:1号跳舞;持续播放。
2)发送模型闪烁开始(灼热模式?)Message:GlowStart。意为:开始闪烁状态。
当行为ChangeGlow关闭Off时(Behavior.ChangeGlow.Off)
1)发送模型动画清除Message:AnimClear Cast。意为:清除名为Cast的模型。
2)发送模型闪烁结束(灼热模式?)Message:GlowStop。意为:结束闪烁状态。
- <On Terms="Behavior.ChangeGlow.On" Send="AnimPlay Cast Stand,Dance,01 PlayForever"/>
- <On Terms="Behavior.ChangeGlow.Off" Send="AnimClear Cast"/>
- <On Terms="Behavior.ChangeGlow.On" Send="GlowStart"/>
- <On Terms="Behavior.ChangeGlow.Off" Send="GlowStop"/>
复制代码
技能6)旋转
太长了~这里省略。
颜色渐变一个道理,用Timer做成循环,不断变化模型的面对方向(用SetFacing Message来做)。
技能7)附加模型偏移
用笨办法实现的,只是为了给大家演示什么叫做附加模型的位置以及它的偏移。
这里我先做了一系列的行为Behavior。一共16个,没结束当前的行为后,则Call它的后者,如此做成循环。-
- <CBehaviorBuff id="FieryDragon_Mark16">
- <Duration value="0.25"/>
- <ExpireEffect value="FieryDragon_Mark1"/>
- </CBehaviorBuff>
- <CBehaviorBuff id="FieryDragon_Mark1">
- <Duration value="0.25"/>
- <ExpireEffect value="FieryDragon_Mark2"/>
- </CBehaviorBuff>
- <CBehaviorBuff id="FieryDragon_Mark2">
- <Duration value="0.25"/>
- <ExpireEffect value="FieryDragon_Mark3"/>
- </CBehaviorBuff>
- ......
- <CBehaviorBuff id="FieryDragon_Mark15">
- <Duration value="0.25"/>
- <ExpireEffect value="FieryDragon_Mark16"/>
- </CBehaviorBuff>
复制代码
其次,对于这里每一个行为都定义好它的Actor。这里使用的Model是,"Assets\Effects\Protoss\ArchonMerge\ArchonMerge.m3"。- <CActorModel id="FieryDragon_Mark1" parent="FieryDragon_Mark">
- <On Terms="Behavior.FieryDragon_Mark1.On" Send="Create"/>
- <On Terms="Behavior.FieryDragon_Mark1.Off" Send="Destroy"/>
- <HostSiteOps Ops="SOpAttachCenter FieryDragon_Offset1"/>
- </CActorModel>
复制代码
在行为FieryDragon_Mark1开启时,创建模型ArchonMerge.m3。在行为失效时,则摧毁模型。
而这个模型所绑定的位置为"SOpAttachCenter FieryDragon_Offset1"。意为:在母模型的中心位置绑定,同时偏移出FieryDragon_Offset1一个相对坐标。
FieryDragon_Offset1的定义为- <CActorSiteOpLocalOffset id="FieryDragon_Offset1">
- <LocalOffset value="0,0.7,0"/>
- </CActorSiteOpLocalOffset>
复制代码 意为:从中心坐标偏移为:X=0,Y=0.7,Z=0。X为左,Y为后,Z为高度。
对FieryDragon_Mark1~16的行为都有定义一套偏移坐标,因此效果为:在单位的周边形成一个闪烁的圆圈。
技能8)模型拉伸
这里省略。实现方法是用Timer做成循环,并且利用SetScale来改变模型[长、宽、高]比例。
模型拉伸实际也是用SetScale来做的,但SetScale的参数实际上是分[长、宽、高]的,因此每次改变模型[长、宽、高]不同则可以实现拉伸效果。
|
|