作者: zyb123
    查看: 128|回复: 4

    红3MOD制作:ArmorSet和LocomotorSet详解(zyb编辑教程)

    红3MOD制作:ArmorSet和LocomotorSet详解(zyb编辑教程)

    [复制链接]
    zyb123 | 显示全部楼层 发表于: 2017-6-17 20:22:08
    zyb123 发表于: 2017-6-17 20:22:08 | 显示全部楼层 |阅读模式
    查看: 128|回复: 4
    本帖最后由 牧Star 于 2017-6-21 09:43 编辑

    大家好,我是zyb(mod制作者),今天我来给大家带来LocomotorSet和ArmorSet的介绍
    locomotorset,存在于每一个可以移动的单位中,在<GameObject和  <Draws>的前面(官方位置),一个单位所需要的基本格式为
    [XML] 纯文本查看 复制代码
    <Tags></Tags>
    <Includes></Includes>
    <GameObject
      id="UnitName"
      SelectPortrait="SARanger_L"
      ButtonImage="SARanger"
      Side="UnitNameSide"
      EditorSorting="UNIT"
      TransportSlotCount="1"
      BuildTime="10.0"
      CommandSet="UnitNameCommandSet"
      IsTrainable="true"
      KindOf="PRELOAD SELECTABLE CAN_ATTACK CAN_CAST_REFLECTIONS INFANTRY SCORE CAN_CAPTURE"
      RadarPriority="UNIT"
      EditorName="UnitName">
      <DisplayName>UnitName</DisplayName>
      <ArmorSet
       Armor="NoArmor"
       DamageFX="NormalDamageFX" />
      <LocomotorSet
       Locomotor="HumanLocomotor"
       Condition="NORMAL"
       Speed="30.0" />
      <Draws>
       <ScriptedModelDraw
        id="ModuleTag_Draw"
        OkToChangeModelColor="true">
        <ModelConditionState
         ParseCondStateType="PARSE_DEFAULT">
         <Model
          Name="GURiflman_SKN" />
        </ModelConditionState>
       </ScriptedModelDraw>
      </Draws>
      <Behaviors>
       <WeaponSetUpdate
        id="ModuleTag_WeaponSetUpdate">
        <WeaponSlotHardpoint
         ID="1">
         <Weapon
          Ordering="PRIMARY_WEAPON"
          Template="UnitNameWeapon" />
        </WeaponSlotHardpoint>
       </WeaponSetUpdate>
       <Physics
        id="ModuleTag_Physics" />
       <EmotionTrackerUpdate
        id="Module_ETU"
        >
        <TauntAndPointExcluded
         Rule="NONE" />
       </EmotionTrackerUpdate>
       <SlowDeath
        id="ModuleTag_Death"
        SinkDelay="3s"
        SinkRate="2.4"
        DestructionDelay="8s">
        <DieMuxData
         DeathTypes="ALL" />
       </SlowDeath>
      </Behaviors>
      <AI>
       <AIUpdate
        id="ModuleTag_AI"
        AutoAcquireEnemiesWhenIdle="YES" />
      </AI>
      <Body>
       <ActiveBody
        id="ModuleTag_Body"
        MaxHealth="100.0"
        InitialHealth="100.0" />
      </Body>
      <Geometry
       IsSmall="true">
       <Shape
        Type="CYLINDER"
        MajorRadius="7.0"
        Height="13.0"></Shape>
      </Geometry>
      <ShadowInfo
       Type="DECAL"
       SizeX="14"
       SizeY="14"
       Texture="ShadowI" />
      <VisionInfo
       VisionRange="100"
       ShroudClearingRange="200" />
      <CrusherInfo
       id="id_CrusherInfo"
       CrushableLevel="0" />
    </GameObject>
    </AssetDeclaration>

    其中,今天讨论的locomotor在里面发挥的作用是让单位行走,让单位走的像天启那样慢,还是ifv那样快,是不是能上天,能下水等等,都是由他决定的
    locomotor的Condition基本有这两个类型
    [XML] 纯文本查看 复制代码
    NORMAL----正常移动
    TAXIING----滑行

    先拿ifv举例(ifv内心独白:为什么又是我 作者:额,随便开的 ifv:==!)
    [XML] 纯文本查看 复制代码
      <LocomotorSet
       Locomotor="TestReactiveLocomotorWHEELS"
       Condition="NORMAL"
       Speed="120.0" />

    Condition已经说过了,Locomotor这个则是引用的(引用的不在这个单位里,在locomotor.xml内),引用源码如下
    [XML] 纯文本查看 复制代码
    <LocomotorTemplate
      id="TestReactiveLocomotorWHEELS"
      Surfaces="GROUND CRUSHABLE_OBSTACLE"
      TurnTimeSeconds="1.0s"
      TurnTimeDamagedSeconds="1.0s"
      MaxSpeedDamaged="75%"
      AccelerationSeconds="0.01s"
      BrakingSeconds="0.01s"
      SlowTurnRadius="0.0"
      FastTurnRadius="20.0"
      TurnThresholdHS="90d"
      BehaviorZ="NO_MOTIVE_FORCE"
      Appearance="TREADS"
      UseTerrainSmoothing="true"
      CanReverseMove="true"
      AccelPitchLimit="4d"
      BounceKick="0.4r"
      PitchStiffness="0.2"
      RollStiffness="0.75"
      PitchDamping="0.2"
      RollDamping="0.75"
      ForwardAccelerationPitchFactor="0.01"
      LateralAccelerationRollFactor="0.0"
      HasSuspension="true"
      ClampOrientationToPathTangent="true"
      MaximumWheelExtension="-2.3"
      MaximumWheelCompression="1.4"
      ReorientIfTurnTooSharp="true"
      />

    可以看到,EA的设计还是比较全面的,基本上大部分情况都涵盖了
    只说几个大家熟悉的
    [XML] 纯文本查看 复制代码
    Surfaces------------------在什么上面行走
    TurnTimeSeconds-------------掉头耗费的时间(这就是为什么对战们用ifv倒退行进的原因)
    TurnTimeDamagedSeconds-------------掉头后什么时候攻击(这就是为什么对战们用ifv倒退行进的原因)
    MaxSpeedDamaged-------------受伤以后的行驶速度(被削了75%,注意,100%往上是增加,反之则是下降)
    CanReverseMove----------------能否倒退移动(对战中神技)

    好的基本上解释完了ifv的locomotor,顺便你们可以按照这个思路看看别的(像什么步兵倒退移动啦,受伤后速度加快啦等等修改我才不会说呢QAQ)
    locomotor说完了,接下来说说ArmorSet
    ArmorSet,这是个比较有意思的东西,因为它决定了这个单位的护甲,玩过ra3的人都知道,打pk时,pk开盾收到的伤害那叫一个低啊,但,凭什么瓶子f一个pk就死了这是因为ea的科学吗(大雾),咳咳当然不是,这是修正比的原因啦,修正比就跟护甲有一些关系的啦
    继续用ifv(ifv:我跟你有仇是吧....)
    [XML] 纯文本查看 复制代码
    <ArmorSet
       Armor="AlliedAntiAirVehicleTech1Armor"
       DamageFX="VehicleDamageFX" />

    damagefx不需要看了,因为那是粒子动画和粒子特效的事情,今天不说,说下armor的事情
    Armor也是引用的,其xml文件在Armor.xml里
    armor引用代码段如下
    [XML] 纯文本查看 复制代码
    <ArmorTemplate
      id="AlliedAntiAirVehicleTech1Armor"
      inheritFrom="BaseHarassmentVehicleArmor">
    </ArmorTemplate>

    阿勒,这个ifv玩起了引用,报复我吗?(ifv:嘿嘿,叫你挖我源码,顺便一提,所有的护甲类型都是引用的,所以,根据引用的inheritFrom,我们去查BaseHarassmentVehicleArmor)
    [XML] 纯文本查看 复制代码
    <ArmorTemplate
      id="BaseHarassmentVehicleArmor"
      SideDamageScalar="105"
      RearDamageScalar="110">
      <Armor
       Damage="MELEE"
       Percent="0" />
      <Armor
       Damage="SNIPER"
       Percent="0" />
      <Armor
       Damage="GUN"
       Percent="25" />  
      <Armor
       Damage="AUTO_CANNON"
       Percent="100" />
      <Armor
       Damage="IMPACT"
       Percent="75" />
      <Armor
       Damage="ROCKET"
       Percent="75" />
      <Armor
       Damage="FLAK"
       Percent="100" />
      <Armor
       Damage="CANNON"
       Percent="170" />
      <Armor
       Damage="PRISM"
       Percent="170" />
      <Armor
       Damage="TESLA"
       Percent="170" />
      <Armor
       Damage="EXPLOSIVE"
       Percent="100" />
      <Armor
       Damage="RADIATION"
       Percent="5" />
    </ArmorTemplate>

    SideDamageScalar和RearDamageScalar就是在教程中提到的”单位在不同方面受到的攻击不同”啦,我们可以看到,在两侧攻击ifv的时候有加成,为5%,在后方攻击ifv时则加成为10%
    好的,接下来则是重头戏,在这些看到下面那一串armor了吗(众人:我们不是瞎子)这些不同的damage是什么呢
    总结下
    [XML] 纯文本查看 复制代码
    GUN--------------------步枪
    AUTO_CANNON--------------------自行炮
    IMPACT--------------------冲撞
    ROCKET--------------------导弹
    FLAK--------------------高射炮
    CANNON--------------------火炮
    PRISM--------------------光棱
    TESLA--------------------磁暴
    EXPLOSIVE--------------------爆炸物
    RADIATION--------------------辐射

    哎,这个跟修正比好像啊,恩没错,这个就是ifv受到各类伤害的护甲的反应,我们可以看到CANNON,PRISM,TESLA攻击的时候,是有加成的,所以这就是为啥磁暴,幻影,标枪攻击有加成了,所以,狠狠地用磁暴,幻影,标枪打死ifv来保护你的空军吧
    基本上写完了,如果要改的话请把要更改的复制一份到你的mod中,修改数据,然后保存写入mod.xml中(不会的见牧星dalao的教程),编译,然后就完成啦!
                                                                                                                                                                            by-zyb
    (ps:可能有个别错误,dalao请指正)
    让更多人知道ra3和RTS系列游戏的魅力!
    回复

    使用道具 举报

    陵点捌伍 | 显示全部楼层 发表于: 2017-6-17 20:32:23
    陵点捌伍 发表于: 2017-6-17 20:32:23 | 显示全部楼层
        怎么好像贴吧眼熟见过
    回复 支持 反对

    使用道具 举报

    zyb123 | 显示全部楼层 发表于: 2017-6-17 20:36:29
     楼主| zyb123 发表于: 2017-6-17 20:36:29 | 显示全部楼层
    陵点捌伍 发表于 2017-6-17 20:32
    怎么好像贴吧眼熟见过

    之前问你问题的那个人==
    让更多人知道ra3和RTS系列游戏的魅力!
    回复 支持 反对

    使用道具 举报

    矛式迷你小黑 | 显示全部楼层 发表于: 2017-6-17 22:29:35
    矛式迷你小黑 发表于: 2017-6-17 22:29:35 | 显示全部楼层
    陵点捌伍 发表于 2017-6-17 20:32
    怎么好像贴吧眼熟见过

    核仔无处不在
    回复 支持 反对

    使用道具 举报

    牧Star | 显示全部楼层 发表于: 2017-6-18 15:02:02
    牧Star 发表于: 2017-6-18 15:02:02 | 显示全部楼层
    利害了。
    爱在夜深了埋头在SDK的胸口,好好的奶上一口MOD。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|RAT红警社区    

    GMT+8, 2017-6-29 01:38 , Processed in 0.435533 second(s), 30 queries .

    ratotal.cn(RAT Community),Free Disscusion For Red Alert 2 & Red Alert 3 Games.

    Powered By Discuz! X3.2 © 2001-2013 Comsenz Inc. Templated Designed ByARTERY.cn.

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