|
这次的帖子,介绍用CBehaviorWander行为来做恐惧技能。本帖后会介绍一些Actor的简单的应用。
【技能分析】
关于如何实现群体效果..之前的帖子已经介绍了很多,这里就不再说了。
而恐惧本身则是让对方不能控制单位,那么必然需要用利用CBehaviorBuff中的Modification来修改单位的属性,设置Uncommandable使目标不能被命令。
其次,恐惧需要让敌人到处乱走,那么则需要利用到游荡CBehaviorWander行为。
最后,恐惧结束后,必须让他回到正常的状态~嗯嗯,因此要删除之前加入的游荡行为。
【技能的A-B-E结构】
+技能CAbilEffectInstant:H_Wander
+-(技能H_Wander直接调用效果)区域效果CEffectEnumArea :H_Wander_Area
+-(范围效果触发效果)集合效果CEffectSet:H_WanderSet
+-(集合效果中的第一个效果)游荡行为CBehaviorWander:H_Wander_DebuffSetp1
+-(集合效果中的第二个效果)增益行为CBehaviorBuff:H_Wander_DebuffSetp2
+-(在H_Wander_Setp2结束后触发)移除行为效果CEffectRemoveBehavior:Remove_Wander
【技能实际效果A-B-E的制作例程】
********************************************************************************************************
**************************技能Abil 名称(ID):H_Wander**************************- <CAbilEffectInstant id="H_Wander">
- <Cost>
- <Vital index="Energy" value="0"/>
- <Cooldown TimeUse="2"/>
- </Cost>
- <Effect index="0" value="H_Wander_Area"/>
- <CmdButtonArray index="Execute" Requirements=""/>
- </CAbilEffectInstant>
复制代码
********************************************************************************************************
**************************区域效果CEffectEnumArea 名称(ID):H_Wander_Area**************************- <CEffectEnumArea id="H_Wander_Area">
- <SearchFilters value="-;Self"/>
- <AreaArray Radius="5" Effect="H_WanderSet"/>
- <ValidatorArray value=""/>
- <SearchFlags index="ExtendByUnitRadius" value="1"/>
- <MaxCount value="5"/>
- </CEffectEnumArea>
复制代码
AreaArray Radius="5" :范围半径5
MaxCount :搜索最大数5
********************************************************************************************************
**************************集合效果CEffectSet 名称(ID):H_WanderSet**************************- <CEffectSet id="H_WanderSet">
- <!--EffectArray value="H_Wander_Teleport"/>
- <EffectArray value="H_Wander_Damage"/-->
- <EffectArray value="H_Wander_Setp1"/>
- <EffectArray value="H_Wander_Setp2"/>
- </CEffectSet>
- <CEffectApplyBehavior id="H_Wander_Setp1">
- <Behavior value="H_Wander_DebuffSetp1"/>
- </CEffectApplyBehavior>
- <CEffectApplyBehavior id="H_Wander_Setp2">
- <Behavior value="H_Wander_DebuffSetp2"/>
- </CEffectApplyBehavior>
复制代码 ********************************************************************************************************
**************************游荡行为CBehaviorWander 名称(ID):H_Wander_DebuffSetp1**************************- <CBehaviorWander id="H_Wander_DebuffSetp1">
- <Range value="6"/>
- <Delay value="0.5"/>
- </CBehaviorWander>
复制代码
Range :游荡半径6
Delay :游荡延迟0.5秒
********************************************************************************************************
**************************增益行为CBehaviorBuff 名称(ID):H_Wander_DebuffSetp2**************************- <CBehaviorBuff id="H_Wander_DebuffSetp2">
- <Duration value="6"/>
- <Modification MoveSpeedBonus="5">
- <StateFlags index="Uncommandable" value="1"/>
- </Modification>
- <ExpireEffect value="Remove_Wander"/>
- </CBehaviorBuff>
复制代码
Duration value="6":此行为持续6秒。
MoveSpeedBonus="5" :移动速度+5。
StateFlags index="Uncommandable" value="1" :不能被命令。
ExpireEffect value="Remove_Wander":此行为消失后执行Remove_Wander效果。
********************************************************************************************************
**************************移除行为效果CEffectRemoveBehavior 名称(ID):Remove_Wander**************************- <CEffectRemoveBehavior id="Remove_Wander">
- <WhichUnit Value="Target"/>
- <BehaviorLink value="H_Wander_DebuffSetp1"/>
- </CEffectRemoveBehavior>
复制代码
【技能光影效果】
首先所谓光影效果都是有某个或者某些执行M3文件来实现的,而M3的预览效果可以在编译器中查看。
之后在Model中定义你所需要的M3后,即可在Actor中控制它的播放时点、位置、规模等~
那么我们先定义我们的群体恐惧的技能释放时的光影效果~
我们选择的模型是EMP.m3,则在Model中定义如下:- <CModel id="H_Wander">
- <Model value="Assets\Effects\Terran\EMP\EMP.m3"/>
- <ScaleMax value="0.5,0.5,0.01"/>
- <ScaleMin value="0.5,0.5,0.01"/>
- </CModel>
复制代码 Model value :模型的路径。
ScaleMax/ScaleMin value:模型的长,宽,高。
其中我们希望这个模型播放时,比较扁平,因此ScaleMax 和 ScaleMin 的最后参数:高度,我们把他设定的很小。
我们要让这个模型在,技能释放时被播放,且在我们英雄的中心点释放。这在Actor中定义如下:- <CActorModel id="H_Wander" parent="ModelAnimationStyleOneShot">
- <AutoScaleFactor value="3"/>
- <HostSiteOps Ops="SOpAttachCenter"/>
- <On Terms="Abil.H_Wander.SourceCastStart" Send="Create"/>
- <Host Subject="_Selectable"/>
- </CActorModel>
复制代码
parent="ModelAnimationStyleOneShot" :模型只播放一次。
AutoScaleFactor :模型按照单位比例放大系数。
HostSiteOps :模型播放的热点位置。SOpAttachCenter:中心。
Abil.H_Wander.SourceCastStart:模型播发的条件。技能H_Wander释放时。
Create:模型Event为生成播放。
【恐惧光影效果】
和上面技能释放时的光影效果的设定基本思路是相同的。先定义合适的Model,然后用Actor操作它什么时候播放。
我们这次选择的M3文件是,FungalEruption.m3。他的效果是一群飞虫在单位周围飞~定义如下:- <CModel id="H_Wander_DebuffSetp1">
- <Model value="Assets\Effects\Zerg\FungalEruption\FungalEruption.m3"/>
- <ScaleMax value="2,2,2"/>
- <ScaleMin value="2,2,2"/>
- </CModel>
复制代码
Actor中的定义如下:- <CActorModel id="H_Wander_DebuffSetp1" parent="ModelAnimationStyleContinuous">
- <Host Subject="_Selectable"/>
- <HostSiteOps Ops="SOpAttachOverhead"/>
- <AutoScaleFactor value="1"/>
- <Inherits index="CloakEffect" value="1"/>
- <Inherits index="LocalTintColor" value="1"/>
- <On Terms="Behavior.H_Wander_DebuffSetp2.On" Send="Create"/>
- <On Terms="Behavior.H_Wander_DebuffSetp2.Off" Send="Destroy"/>
- </CActorModel>
复制代码
parent="ModelAnimationStyleContinuous" :模型持续播放。
AutoScaleFactor :模型按照单位比例放大系数。
HostSiteOps :模型播放的热点位置。SOpAttachOverhead:头顶
Behavior.H_Wander_DebuffSetp2.On/Off:模型播发的条件。游荡效果被开启、完了的时候。
Create:模型Event为生成播放。
Destroy:模型Event为消除摧毁。
|
|