找回密码
 点一下
查看: 970|回复: 8

发射物演算体与发射物不同步的问题

[复制链接]
发表于 2012-8-28 11:15:11 | 显示全部楼层 |阅读模式
做了一个回旋镖武器,效果是丢出一个飞盘,飞盘沿着一个近似椭圆形的路径飞行,最飞行路径上的单位造成伤害,最后回到发射点。
1.5之前效果还是正常的,1.5之后就出了一个奇怪的问题。
1.JPG
如上图,从造成伤害的情况来看,逻辑上飞盘还是沿着红色路径飞行的,
但是在视觉效果上,飞盘却奇葩地沿着白色路径飞了一圈。

不知道问题是出来演算体上还是移动器上,
多次尝试了修改了移动器、发射效果还有发射动作演算体,发现无论移动器中把投掷方向改成任意方向,飞盘视觉上都是从左侧发射出来,
所以我比较倾向问题是出在演算体上,但始终没能找到解决办法,求高人指点~~~
下面把这个武器的移动器、发射效果还发射动作演算体贴出来,
[codes=xml]&#160;&#160;&#160;&#160; <CMoverMissile id="M_Tower_Energy4Missile">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<HeightMap value="Air"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Driver value="Throw"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Speed value="20"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ArrivalTestType value="2D"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Outro value="2,4"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowVector value="-0.4,-1,0"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandYaw value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandPitch value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<YawPitchRoll value="209.8828,0,119.8828"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Driver value="Throw"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Speed value="20"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ArrivalTestType value="2D"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Outro value="5,7"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowVector value="0.5,-1,0"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandYaw value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandPitch value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<YawPitchRoll value="209.8828,0,119.8828"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Driver value="Guidance"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Acceleration value="-3"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<MinSpeed value="5"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ArrivalTestType value="2D"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Outro value="-1,-0.5"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandYaw value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandPitch value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<YawPitchRoll value="209.8828,0,119.8828"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<MotionPhases>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ArrivalTestType value="2D"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandYaw value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ThrowBandPitch value="-360,-360,-360,-360"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<YawPitchRoll value="5759.6484"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</MotionPhases>
&#160;&#160;&#160;&#160;</CMoverMissile>
&#160;&#160;&#160;&#160;<CEffectLaunchMissile id="ELaunch_Tower_Energy4">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<EditorCategories value="Race:Protoss"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ImpactLocation Value="SourceUnit"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<LaunchEffect value="EPersistent_Tower_Energy4"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<AmmoUnit value="U_Tower_Energy4Missile"/>
&#160;&#160;&#160;&#160;</CEffectLaunchMissile>
&#160;&#160;&#160;&#160;<CActorAction id="AAction_Tower_Energy4Weapon" parent="GenericAttackBase">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<On Terms="Effect.EDamage_Tower_Energy4.Start; At Caster" Send="Create"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<On Terms="Effect.ELaunch_Tower_Energy4.Start; At Caster" Send="Create"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<LaunchAssets Model="ZeratulAttackLaunch" Sound="Zeratul_AttackLaunch"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<ImpactMap index="None" Model="" Sound="Zealot_AttackImpact" ModelReaction=""/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<LaunchAttachQuery Methods="AMFilterWeaponRight"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Missile value="U_Tower_Energy4Missile"/>
&#160;&#160;&#160;&#160;</CActorAction>
[/codes]
发表于 2012-8-28 12:00:42 | 显示全部楼层
[codes=xml]<CActorAction id="AAction_Tower_Energy4Weapon" parent="GenericAttackBase">
        <On Terms="Effect.EDamage_Tower_Energy4.Start; At Caster" Send="Create"/>
        <On Terms="Effect.ELaunch_Tower_Energy4.Start; At Caster" Send="Create"/>
    </CActorAction>[/codes]
为什么create两次了?
回复

使用道具 举报

 楼主| 发表于 2012-8-28 12:25:08 | 显示全部楼层

回 oneonestar 的帖子

oneonestar:<CActorAction id="AAction_Tower_Energy4Weapon" parent="GenericAttackBase">
        <On Terms="Effect.EDamage_Tower_Energy4.Start; At Caster" Send="Create"/>
   .. (2012-08-28 12:00)
原本是做成即时伤害的武器,后来改动之后忘了把原来那条删了。。

<On Terms="Effect.EDamage_Tower_Energy4.Start; At Caster" Send="Create"/>
这条就当不存在吧
回复

使用道具 举报

发表于 2012-8-28 12:33:41 | 显示全部楼层
CUnit、CActorMissile你没贴,另外检查一下CActorAction到底有没有创建
回复

使用道具 举报

 楼主| 发表于 2012-8-28 13:19:20 | 显示全部楼层

回 oneonestar 的帖子

oneonestar:
CUnit、CActorMissile你没贴,另外检查一下CActorAction到底有没有创建
CActorAction创建了,从音效就能听出来[codes=xml]<CUnit id="U_Tower_Energy4Missile" parent="MISSILE">
    <Race value="Terr"/>
    <Mover value="M_Tower_Energy4Missile"/>
    <EditorCategories value="ObjectType:Projectile,ObjectFamily:Melee"/>
</CUnit>

<CActorMissile id="U_Tower_Energy4Missile" parent="GenericAttackMissile" unitName="U_Tower_Energy4Missile">
    <On index="1" Terms="UnitBirth" Send="AnimBracketStart Lifetime Birth GLstand {} OpeningPlayForever 1.500000 AsTimeScale"/>
</CActorMissile>[/codes]
另外下面是完整的效果:
[codes=xml]<CEffectLaunchMissile id="ELaunch_Tower_Energy4">
    <EditorCategories value="Race:Protoss"/>
    <ImpactLocation Value="SourceUnit"/>
    <LaunchEffect value="EPersistent_Tower_Energy4"/>
    <AmmoUnit value="U_Tower_Energy4Missile"/>
</CEffectLaunchMissile>
<CEffectCreatePersistent id="EPersistent_Tower_Energy4">
    <EditorCategories value="Race:Protoss"/>
    <Marker>
    <MatchFlags index="Id" value="1"/>
    </Marker>
    <WhichLocation Value="OuterUnit"/>
    <PeriodCount value="16"/>
    <PeriodicValidator value="V_Tower_Energy4"/>
    <PeriodicEffectArray value="ESearch_Tower_Energy4"/>
    <PeriodicPeriodArray value="0.125"/>
    <InitialEffect value="ERemoveB_Tower_Energy4"/>
</CEffectCreatePersistent>
<CEffectEnumArea id="ESearch_Tower_Energy4">
    <EditorCategories value="Race:Protoss"/>
    <ImpactLocation Value="OuterUnit"/>
    <SearchFilters value="Visible;Player,Ally,Neutral,Missile,Stasis,Dead,Hidden,Invulnerable"/>
    <AreaArray Radius="1.25" Effect="EDamage_Tower_Energy4"/>
</CEffectEnumArea>
<CEffectDamage id="EDamage_Tower_Energy4" parent="DU_WEAP">
    <EditorCategories value="Race:Protoss"/>
    <ImpactLocation Value="TargetUnit"/>
    <Amount value="10"/>
    <ValidatorArray value="noMarkers"/>
    <ArmorReduction value="0"/>
    <Flags index="Notification" value="0"/>
</CEffectDamage>
<CEffectRemoveBehavior id="ERemoveB_Tower_Energy4">
    <EditorCategories value="Race:Protoss"/>
    <WhichUnit Value="Caster"/>
    <BehaviorLink value="B_Charge_Energy4"/>
    <Count value="1"/>
</CEffectRemoveBehavior>[/codes]
回复

使用道具 举报

发表于 2012-8-28 15:46:45 | 显示全部楼层
解决了一点,剩下actor的移动圈比实际大这个问题。。。

half.SC2Map

33 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2012-8-28 17:08:09 | 显示全部楼层

回 oneonestar 的帖子

oneonestar:
解决了一点,剩下actor的移动圈比实际大这个问题。。。
谢谢星星,我想我已经大概知道问题所在了,
1.5之后,对于移动器,演算体和游戏使用的发射点和轰击点已经不一致了。
刚看了你的测试图,用幽灵来发射飞弹和用其他单位,比如Zlot来发射飞弹,结果飞弹演算体的飞行路径就截然不同了,因为不同的模型发射附着点的位置不一样,这就导致了一开始投掷飞弹的方向不一样。要避免这个问题,看来只能手工固定发射附着点和轰击附着点。
晚上再试试,做饭去。。。。。

我在测试图里加了另一个单位,可以看到我上面说的问题
half.SC2Map (33 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2012-8-28 17:49:58 | 显示全部楼层
咦……这是新情报呢……得记下来。
回复

使用道具 举报

 楼主| 发表于 2012-8-28 21:26:10 | 显示全部楼层
[codes=xml] <LaunchAttachQuery Methods="Center 0"/>
<LaunchSiteOps Ops="SOpAttachCenter"/>
<ImpactSiteOps Ops=""/>
<ImpactAttachQuery Methods="Center 0"/>
<ShieldFlashType value="None"/>
[/codes]
在CActroAction中加上这几条,把发射位置和轰击位置调整为一致,就能令飞盘向前方发射了。
不过飞盘的视觉轨迹和游戏轨迹还是有些微小的差别,没能100%还原1.5之前的效果,似乎是飞盘从发射点飞出时会有减速,难道现在“投掷”控制器也有“制导”功能了?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 09:17 , Processed in 0.074488 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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