找回密码
 点一下
查看: 5217|回复: 27

【数据教程】 **扇形冲击波效果的制作流程** By.寒心

[复制链接]
发表于 2010-5-30 10:23:40 | 显示全部楼层 |阅读模式
这里先强调一下说做这个系列教程的目的:
教程主要是为了给大家理清一下用数据部分如何实现的技能,单位,影音效果等的制作思路,为之后的制作打下基础。因此而已。因此教程中的例程的实现方法,只是实现方法之一,并不是唯一的也可能不是最佳的。之后大家有了深入的了解后,我们一起来一步步的改善,扩张之~~

好啦~下面便开始本帖技能制作的流程介绍啦~大家要有心理准备~很复杂的说~



【技能分析】
首先,冲击波必然会有投掷物也就是子弹了,因此它肯定有一个子弹单位CUnit。
其次,这个子弹的作用效果是一个扇形的范围效果,那么它的效果定义肯定是CEffectEnumArea与CEffectDamage的组合。
之后,伤害范围是逐渐变化的,因此要控制范围的变化(扇形),是这次涉及的难点。我这里的做法如下。
-为子弹追加一系列行为,以此生效1->2->3->4->5,一共5个。在它的行进路线上依此生效。
-每个行为会触发一次范围伤害,每次触发的伤害范围逐渐扩大。
扇形冲击波样式.jpg



【技能的A-B-E结构】
比较复杂,且省略了一部分。
-扇形伤害步骤行为4、5和范围伤害步骤效果3、4、5图中省略,和1、2的结构相同。
-扇形伤害步骤行为3到4、4到5图中省略,好1到2的结构相同。
-扇形伤害步骤行为1到2,是使用效果Effect中的CEffectApplyBehavior模板进行链接的。

   扇形冲击波的A-B-E结构.jpg



【技能实际效果A-B-E的制作例程】
因为数据量太大,这里就不做语言的说明了,直接上代码了哦~大家理解一下数据部分的原始代码后,可以在编译器中找到相对应的位置。偷懒下下~~
********************************************************************************************************
**************************技能Abil 名称(ID):H_RancidHive**************************
  1.      <CAbilEffectTarget id="H_RancidHive">
  2.         <CastIntroTime value="0.5"/>
  3.         <Cost>
  4.             <Vital index="Energy" value="0"/>
  5.             <Cooldown TimeUse="2"/>
  6.         </Cost>
  7.         <Range value="15"/>
  8.         <CmdButtonArray index="Execute" Requirements=""/>
  9.         <ArcSlop value="4.9987"/>
  10.         <Arc value="9.9975"/>
  11.         <InfoTooltipPriority value="1"/>
  12.     </CAbilEffectTarget>
复制代码

********************************************************************************************************
***子弹发射效果Effect 系列名称(ID):H_RancidHive、H_RancidHive_EffectSet、H_RancidHive_Damage****
  1.     <CEffectLaunchMissile id="H_RancidHive">
  2.         <ImpactEffect value="H_RancidHive_EffectSet"/>
  3.         <AmmoUnit value="H_RancidHiveMissile"/>
  4.     </CEffectLaunchMissile>
  5.     <CEffectSet id="H_RancidHive_EffectSet">
  6.         <EffectArray value="H_RancidHive_Damage"/>
  7.         <EffectArray value="suicide"/>
  8.     </CEffectSet>   
  9.     <CEffectDamage id="H_RancidHive_Damage" parent="DU_WEAP">
  10.         <Amount value="10"/>
  11.         <Visibility value="Visible"/>
  12.         <Death value="Fire"/>
  13.         <Kind value="Ranged"/>
  14.     </CEffectDamage>
复制代码

********************************************************************************************************
**************子弹生命行为Behavior 名称(ID):H_RancidHiveMissileTimedLife***********
  1.     <CBehaviorBuff id="H_RancidHiveMissileTimedLife" parent="TimedLife">
  2.         <Duration value="1.5"/>
  3.     </CBehaviorBuff>
复制代码

********************************************************************************************************
************扇形伤害步骤行为Behavior 系列名称(ID):H_RancidHive_Step1~5***********
  1.     <CBehaviorBuff id="H_RancidHive_Step1">
  2.         <Duration value="0.3"/>
  3.         <Period value="0.01"/>
  4.         <PeriodCount value="1"/>
  5.         <PeriodicEffect value="H_RancidHive_EnumAreaStep1"/>
  6.         <ExpireEffect value="H_RancidHive_Step2_ApplyBehavior"/>
  7.     </CBehaviorBuff>
  8.     <CBehaviorBuff id="H_RancidHive_Step2">
  9.         <Duration value="0.3"/>
  10.         <Period value="0.01"/>
  11.         <PeriodicEffect value="H_RancidHive_EnumAreaStep2"/>
  12.         <ExpireEffect value="H_RancidHive_Step3_ApplyBehavior"/>
  13.     </CBehaviorBuff>
  14.     <CBehaviorBuff id="H_RancidHive_Step3">
  15.         <Duration value="0.3"/>
  16.         <Period value="0.01"/>
  17.         <PeriodicEffect value="H_RancidHive_EnumAreaStep3"/>
  18.         <ExpireEffect value="H_RancidHive_Step4_ApplyBehavior"/>
  19.     </CBehaviorBuff>
  20.     <CBehaviorBuff id="H_RancidHive_Step4">
  21.         <Duration value="0.3"/>
  22.         <Period value="0.01"/>
  23.         <PeriodicEffect value="H_RancidHive_EnumAreaStep4"/>
  24.         <ExpireEffect value="H_RancidHive_Step5_ApplyBehavior"/>
  25.     </CBehaviorBuff>
  26.     <CBehaviorBuff id="H_RancidHive_Step5">
  27.         <Duration value="0.3"/>
  28.         <Period value="0.01"/>
  29.         <PeriodicEffect value="H_RancidHive_EnumAreaStep5"/>
  30.     </CBehaviorBuff>
复制代码

********************************************************************************************************
****扇形伤害步骤效果Effect 系列名称(ID):H_RancidHive_AreaDamage、H_RancidHive_EnumAreaStep1~5****
  1.     <CEffectDamage id="H_RancidHive_AreaDamage" parent="DU_WEAP">
  2.         <Amount value="3"/>
  3.         <Visibility value="Visible"/>
  4.         <Death value="Fire"/>
  5.         <Kind value="Ranged"/>
  6.     </CEffectDamage>
  7.    
  8.     <CEffectEnumArea id="H_RancidHive_EnumAreaStep">
  9.         <SearchFilters value="-;Self"/>
  10.         <AreaArray Radius="0.5" Effect="H_RancidHive_AreaDamage"/>
  11.         <SearchFlags index="CallForHelp" value="1"/>
  12.         <AINotifyFlags index="HurtFriend" value="1"/>
  13.         <AINotifyFlags index="HurtEnemy" value="1"/>
  14.     </CEffectEnumArea>
  15.     <CEffectEnumArea id="H_RancidHive_EnumAreaStep1" parent="H_RancidHive_EnumAreaStep"/>
  16.     <CEffectEnumArea id="H_RancidHive_EnumAreaStep2" parent="H_RancidHive_EnumAreaStep">
  17.         <AreaArray Radius="1" Effect="H_RancidHive_AreaDamage"/>
  18.     </CEffectEnumArea>
  19.     <CEffectEnumArea id="H_RancidHive_EnumAreaStep3" parent="H_RancidHive_EnumAreaStep">
  20.         <AreaArray Radius="1.5" Effect="H_RancidHive_AreaDamage"/>
  21.     </CEffectEnumArea>
  22.     <CEffectEnumArea id="H_RancidHive_EnumAreaStep4" parent="H_RancidHive_EnumAreaStep">
  23.         <AreaArray Radius="2" Effect="H_RancidHive_AreaDamage"/>
  24.     </CEffectEnumArea>
  25.     <CEffectEnumArea id="H_RancidHive_EnumAreaStep5" parent="H_RancidHive_EnumAreaStep">
  26.         <AreaArray Radius="3" Effect="H_RancidHive_AreaDamage"/>
  27.     </CEffectEnumArea>
复制代码



【子弹单位相关】
********************************************************************************************************
****模型Model 系列名称(ID):H_RancidHiveMissile****
  1.     <CModel id="H_RancidHiveMissile" parent="MissileFX">
  2.         <Model value="Assets\Effects\Terran\YamatoMissile\YamatoMissile.m3"/>
  3.         <ScaleMax value="3.000000,3.00000,3.500000"/>
  4.         <ScaleMin value="3.000000,3.00000,3.500000"/>
  5.         <SelectionRadius value="1.25"/>
  6.         <ShadowRadius value="1.25"/>
  7.     </CModel>
复制代码

********************************************************************************************************
****模型控制器Actor 系列名称(ID):H_RancidHiveMissile****
  1.     <CActorMissile id="H_RancidHiveMissile" parent="GenericAttackMissile" unitName="H_RancidHiveMissile">
  2.         <On Terms="MotionPhaseStart; MotionPhase 1" Send="Create HunterSeekerTrackingBeam"/>
  3.     </CActorMissile>
复制代码

********************************************************************************************************
****移动方式Mover 系列名称(ID):H_RancidHive_Mover****
  1.     <CMoverMissile id="H_RancidHive_Mover">
  2.         <HeightMap value="Air"/>
  3.         <MotionPhases>
  4.             <Driver value="Guidance"/>
  5.             <Acceleration value="2000"/>
  6.             <Speed value="3"/>
  7.             <MaxSpeed value="8"/>
  8.             <Clearance value="0.5"/>
  9.             <ClearanceLookahead value="3"/>
  10.             <YawPitchRoll value="MAX"/>
  11.         </MotionPhases>
  12.     </CMoverMissile>
复制代码

评分

参与人数 1威望 +3 收起 理由
Renee + 3 加油~~

查看全部评分

发表于 2010-5-30 10:32:02 | 显示全部楼层
加油加油
回复

使用道具 举报

发表于 2010-5-30 10:34:24 | 显示全部楼层
那么冲击波冲更远就得写更多的行为咯?
回复

使用道具 举报

发表于 2010-5-30 10:34:28 | 显示全部楼层
同感 支持
回复

使用道具 举报

 楼主| 发表于 2010-5-30 10:50:50 | 显示全部楼层

回 2楼(2246440) 的帖子

基本如此,但实际上并不会太多的,别怕~

----------- 帖子于 10:48 更新 --------- 之前内容发布于 10:42 ------------

刚才在群里说到,伤害是否叠加。答案是:叠加的。
如果想做到不叠加也很简单。
-目标受到伤害的同时,为其追加一个行为A。此行为存活时间=子弹的存活时间即可(这里不太确切,不过暂且可行就好)。
-再在伤害效果的定义中,追加一个验证器。验证器内容为:当行为A不存在时,才造成伤害。

这样便可以实现过程中伤害不叠加。

----------- 帖子于 10:50 更新 --------- 之前内容发布于 10:48 ------------

追加一段对话,我估计是大家的同感。
灵魂仲裁者()  10:30:17
sc2编辑器真的好麻烦 如果是war3编辑器直接用腐臭蜂群改就好了哦

灵魂仲裁者()  10:30:20
哦这样

心静风轻()  10:31:09
麻烦是麻烦,不过可扩展性是WE比不了的哈

灵魂仲裁者()  10:31:11
是的 但是不好入门

心静风轻()  10:31:25
说白了就是WE是实例化,SC是模块化

心静风轻()  10:31:43
WE直接给你量车,SC给你一堆零件你随便组装~

灵魂仲裁者()  10:31:43


灵魂仲裁者()  10:31:50
同感

寒心()  10:41:42
很早以前我在一个帖子写过我对mod的看法 就有模块,零件,沙子的感觉。
回复

使用道具 举报

发表于 2010-5-30 10:53:21 | 显示全部楼层
原来如此,在下受教了

----------- 帖子于 10:53 更新 --------- 之前内容发布于 10:51 ------------

请问群号是多少,我能加入吗?QQ我刚刚用不到一个月,加起来才5个好友。。。。。(人缘问题)
回复

使用道具 举报

发表于 2010-5-30 11:05:07 | 显示全部楼层
老师中午好啊~
回复

使用道具 举报

 楼主| 发表于 2010-5-30 11:06:25 | 显示全部楼层

回 6楼(jpg) 的帖子

啊中午了啊~该吃早饭了~嗯嗯

==================
群号:74822124
回复

使用道具 举报

发表于 2010-5-30 11:11:00 | 显示全部楼层
恩,偷偷看到一串数字
让后偷偷Ctrl+c
回复

使用道具 举报

发表于 2010-5-30 11:11:00 | 显示全部楼层
~~
不要对我发QQ软件相关的东西阿~
便宜楼下了。
回复

使用道具 举报

发表于 2010-5-30 11:13:03 | 显示全部楼层
呃 沉默酱拒绝tx
回复

使用道具 举报

发表于 2010-5-30 12:01:22 | 显示全部楼层
辛苦了,不过我,呃,还不习惯看xml,有个问题提问下。

看H_RancidHive的描述,技能施放的终点貌似是目标单位,但是War3中技能原型应该是释放定长距离(比如是15),
那么是否应该再挂接个效果。
[codes=xml]
      <CAbilEffectTarget id="H_RancidHive">
         <CastIntroTime value="0.5"/>
         <Cost>
             <Vital index="Energy" value="0"/>
             <Cooldown TimeUse="2"/>
         </Cost>
         <Effect index="0" value="chongjijuli"/>
         <Range value="15"/>
         <CmdButtonArray index="Execute" Requirements=""/>
         <ArcSlop value="4.9987"/>
         <Arc value="9.9975"/>
         <InfoTooltipPriority value="1"/>
     </CAbilEffectTarget>

    <CEffectCreatePersistent id="chongjijuli">
        <PeriodCount value="1"/>
        <PeriodicEffectArray value="H_RancidHive"/>
        <PeriodicOffsetArray value="0,-15"/>
    </CEffectCreatePersistent>

     <CEffectLaunchMissile id="H_RancidHive">
         <ImpactLocation Value="TargetPoint"/>
         <ImpactEffect value="H_RancidHive_EffectSet"/>
         <AmmoUnit value="H_RancidHiveMissile"/>
     </CEffectLaunchMissile>
[/codes]

----------- 帖子于 11:53 更新 --------- 之前内容发布于 11:38 ------------

另外一个问题就是叠加了,目前此技能效果是重复伤害的,这样设置的缺点就是很难控制单位实际受到的伤害,而按照寒心兄你在地下室的描述,给被伤害单位添加一个持续时间为子弹存活时间(嗯嗯,我知道这个时间目前还只是描述性的,实际上也可以理解为足够单位脱离子弹范围的时间,但是问题不在这里)的行为,那么对于单个单位释放此技能应该就没有问题了。

问题出现在多个单位释放时,如果多个子弹的距离十分接近,那么基本上可以认为只会有一个子弹对周围的单位造成伤害。在War3中,如上性质的面伤技能是地穴领主的“穿刺”,但是“腐臭蜂群”并不是这样的,目前我就是卡在这里,不知道该怎么判断。

----------- 帖子于 12:01 更新 --------- 之前内容发布于 11:53 ------------

哦,补充下,目前我自己做的版本只是简单的条范围,也就是并没有变动子弹的选取范围。
子弹的选取效果我就是直接用的套用行为,这样是造成直接伤害、周期伤害还是添加buff都比较方便一些,但就是上面所说的问题不好处理呀。
回复

使用道具 举报

 楼主| 发表于 2010-5-30 12:23:16 | 显示全部楼层
引用第11楼cccty1l于2010-05-30 12:01发表的  :

看H_RancidHive的描述,技能施放的终点貌似是目标单位,但是War3中技能原型应该是释放定长距离(比如是15),
那么是否应该再挂接个效果。

应该是可以改成对地点释放的,这样就可以了。
问题出现在多个单位释放时,如果多个子弹的距离十分接近,那么基本上可以认为只会有一个子弹对周围的单位造成伤害。在War3中,如上性质的面伤技能是地穴领主的“穿刺”,但是“腐臭蜂群”并不是这样的,目前我就是卡在这里,不知道该怎么判断。

暂时没有特别好的办法。有回避策也会有0.3秒(阶段)的时间伤害无效的可能。
哦,补充下,目前我自己做的版本只是简单的条范围,也就是并没有变动子弹的选取范围。
子弹的选取效果我就是直接用的套用行为,这样是造成直接伤害、周期伤害还是添加buff都比较方便一些,但就是上面所说的问题不好处理呀
如果不是扇形,是固定范围的话,非常简单没必要按照我说的挂不同的Buff来做的。
回复

使用道具 举报

发表于 2010-5-30 12:33:35 | 显示全部楼层
引用第12楼chilled于2010-05-30 12:23发表的  :

如果不是扇形,是固定范围的话,非常简单没必要按照我说的挂不同的Buff来做的。

嗯,按照“温泉”的方法来就可以了
回复

使用道具 举报

 楼主| 发表于 2010-5-30 12:53:39 | 显示全部楼层
剧毒新星 还要做个吗?
回复

使用道具 举报

发表于 2010-5-30 12:57:54 | 显示全部楼层
引用第14楼chilled于2010-05-30 12:53发表的  :
剧毒新星 还要做个吗?

我怕咱们俩理解的不一样,剧毒新星 可不同于霜之新星,不过还是麻烦你做一下吧,我对A-B-E体系的把握还是不过关,就让我学习下吧。
回复

使用道具 举报

 楼主| 发表于 2010-5-30 13:01:10 | 显示全部楼层
我先简单说一下,看看是不是你需要的。
丢在目标地点一个中间作用的单位Unit;然后让这个单位自曝,产生范围的直接伤害;同时给范围内的兵种追加dot。


刚才找了个技能的效果看了下,这个比较复杂,数据就算能实现也代价很大(能否实现还未知)。用脚本应该问题不大。
我再想想。
回复

使用道具 举报

发表于 2010-5-30 13:18:34 | 显示全部楼层
嗯,不是,这个技能应该是立即释放的,不用指定释放单位或地点。

技能使用后,从施法者周围360°出现若干个子弹向周围扩散,对该子弹接触(距离小于某限定值)到的第一个单位添加一个持续减血的效果。

----------- 帖子于 13:18 更新 --------- 之前内容发布于 13:13 ------------
引用第16楼chilled于2010-05-30 13:01发表的  :

刚才找了个技能的效果看了下,这个比较复杂,数据就算能实现也代价很大(能否实现还未知)。用脚本应该问题不大。
我再想想。


对啊,感觉这个比“腐臭蜂群”还要难,如果使用脚本的话就跟War3中的处理方法一样了,而且很简单...
回复

使用道具 举报

 楼主| 发表于 2010-5-30 13:19:35 | 显示全部楼层
了解了,现在有两个难点。
1 能解决如何向地点释放子弹 而不是向目标
2 如何设置合理的Offset让子弹360度偏转发射 。Offset可以设置但是一个圆圈挺难的。
回复

使用道具 举报

发表于 2010-5-30 13:31:00 | 显示全部楼层
1 能解决如何向地点释放子弹 而不是向目标

这个用我在11楼的那个方法就可以了,意思就是只要能实现一个子弹,那么其它的也没问题。

2 如何设置合理的Offset让子弹360度偏转发射 。Offset可以设置但是一个圆圈挺难的

画圆的话交给我吧,等会我上代码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-5-7 04:42 , Processed in 0.243298 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表