Project Perfect Mod Forums
:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Privacy Policy :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::


The time now is Thu Mar 28, 2024 4:15 pm
All times are UTC + 0
Animation issue inside KW
Moderators: Global Moderators
Post new topic   Reply to topic Page 1 of 1 [12 Posts] Mark the topic unread ::  View previous topic :: View next topic
Author Message
Guest





PostPosted: Wed Dec 11, 2019 5:18 pm    Post subject:  Animation issue inside KW
Subject description: Animation looks glitchy in the game while looking fine in w3x viewer
Reply with quote  Mark this post and the followings unread

Hello,

I hope someone is still active here, I've been working a mode for kane's wrath, picking up an old project of mine. I am still remembering how everything is done but I have a problem with animations in the game. While the animation of the my model looks fine in 3d max and in the w3x viewer, in the game its wierd. Parts of the model are not aligned correctly, things don't move as per animation. Its very fustrating as I don't get any clue as to why this is happening. Can anyone help me out?
I repeat, in the w3x viewer, it animates fine.

Back to top
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Wed Dec 11, 2019 5:52 pm    Post subject: Reply with quote  Mark this post and the followings unread

It is probably the XML code causing the issue.
You need to show code, and also explain what the animation is supposed to do.

_________________

Back to top
View user's profile Send private message
pitAlex
Civilian


Joined: 11 Dec 2019

PostPosted: Wed Dec 11, 2019 8:20 pm    Post subject: Reply with quote  Mark this post and the followings unread

The animation is for default idle state. The xmls are attached to this message.



GSX_CRAWLERB_UT2_IDLD.w3x
 Description:
Animation attempt 2

Download
 Filename:  GSX_CRAWLERB_UT2_IDLD.w3x
 Filesize:  824.49 KB
 Downloaded:  17 Time(s)


GSX_CRAWLERB_UT2_IDLC.w3x
 Description:
Animation attempt 1

Download
 Filename:  GSX_CRAWLERB_UT2_IDLC.w3x
 Filesize:  713.61 KB
 Downloaded:  14 Time(s)


GSX_CRAWLERB_SKN.w3x
 Description:
model

Download
 Filename:  GSX_CRAWLERB_SKN.w3x
 Filesize:  3.51 MB
 Downloaded:  12 Time(s)


GSX_CRAWLERB_SKL.w3x
 Description:
skeleton

Download
 Filename:  GSX_CRAWLERB_SKL.w3x
 Filesize:  33.9 KB
 Downloaded:  17 Time(s)


Back to top
View user's profile Send private message
pitAlex
Civilian


Joined: 11 Dec 2019

PostPosted: Wed Dec 11, 2019 8:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

I remembering something about a limit for how complex can the model be...would that be the case? Too many verticles and I need to reduce its details ?

Back to top
View user's profile Send private message
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Wed Dec 11, 2019 10:23 pm    Post subject: Reply with quote  Mark this post and the followings unread

Those are .W3X files. I asked you for .xml (ie game object code), which will tell the game how to use those animations. I need to see if I can spot errors.

_________________

Back to top
View user's profile Send private message
pitAlex
Civilian


Joined: 11 Dec 2019

PostPosted: Thu Dec 12, 2019 5:06 am    Post subject: Reply with quote  Mark this post and the followings unread

Sorry, I miss read it. Here is the GameObject :

Code:


<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
    <Includes>
        <Include type="all" source="ART:GSX_CRAWLERB.xml" />
    </Includes>
   <GameObject
      id="GDICrawlerConstructionYard"
      KindOf="SELECTABLE IMMOBILE CAN_CAST_REFLECTIONS STRUCTURE FS_FACTORY FS_WAR_FACTORY AUTO_RALLYPOINT NOT_AUTOACQUIRABLE CONSTRUCTION_YARD COVER AUTO_ACQUIRABLE_BY_AI PROJECT_BUILDABILITY_FOR_ALLIES"
      Description="Desc:GDICrawler"
      TypeDescription="Type:GDICrawler"
      RadarPriority="STRUCTURE"
      BuildCompletion="INVALID"
      FenceWidth="0"
      FenceXOffset="0"
      RemoveTerrainRadius="0"
      EmotionRange="0"
      PlacementViewAngle="315d"
      BuildFadeInOnCreateTimeSeconds="0s"
      FactoryExitWidth="0"
      FactoryExtraBibWidth="0"
      Side="GDICrawler"
      EditorName="GDICrawlerConstructionYard"
      EditorSorting="STRUCTURE"
      BountyValue="0"
      BuildTime="25"
      BuildFadeInOnCreateTime="0"
      EnergyProduction="40"
      EnergyBonus="0"
      CommandSet="GDICrawlerConstructionYardCommandSet"
      SelectPortrait="Portrait_GDIConYard"
      ButtonImage="Portrait_GDIConYard"
      VoicePriority="0"
      MinZIncreaseForVoiceMoveToHigherGround="-1"
      CrowdResponse=""
      CampnessValue="5000"
      CampnessValueRadius="300"
      Scale="1"
      HealthBoxScale="1.5"
      HealthBoxHeightOffset="10"
      OcclusionDelay="0"
      LiveCameraPitch="0"
      FormationWidth="1"
      FormationDepth="1"
      InstanceScaleFuzziness="0"
      ThreatRadius="-1"
      RamPower="0"
      RamZMult="1"
      ShockwaveResistance="0"
      CommandPoints="0"
      CommandPointBonus="0"
      VoiceAttackChargeTimeout="0"
      MaxDistanceForEngaged="0"
      EngagedStateTimeout="0"
      ThreatLevel="1"
      SlopeLimitIndex="0"
      PathfindDiameter="-1"
      SupplyOverride="0"
      DisplayMeleeDamage="-1"
      DisplayRangedDamage="-1"
      HeroSortOrder="2147483647"
      FiringArc="360"
      CamouflageDetectionMultiplier="1"
      SelectionPriority="2147483647"
      ProductionQueueType="MAIN_STRUCTURE"
      BuildPlacementTypeFlag="MAIN_STRUCTURE"
      BuildOnRequiredObjectKindOf=""
      UnitCategory="STRUCTURE"
      WeaponCategory="NONE"
      HasFiredRecentlyTime="2s"
      UnitTypeIcon=""
      ReinvisibilityDelay="4s"
      CaptureTime="0s"
      BuildCost="3500"
      RefundValue="0"
      ThreatValue="0"
      MaxSimultaneousOfType="0"
      TransportSlotCount="1"
      IsTrainable="True"
      IsForbidden="False"
      IsPrerequisite="False"
      IsGrabbable="False"
      IsHarvestable="False"
      StructureRubbleHeight="0"
      ForceLuaRegistration="False"
      ShowHealthInSelectionDecal="False"
      KeepSelectableWhenDead="False"
      IsAutoBuilt="False"
      CanPathThroughGates="True"
      ShouldClearShotsOnIdle="False"
      BuildInProximityToSamePlayerStucture="True">
      <DisplayName>Name:GDIConstructionYard</DisplayName>
      <ArmorSet
         Armor="GDICrawlerConstructionYardArmor"
         DamageFX="FactionStructureDamageFX"
         Conditions="" />
      <SkirmishAIInformation
         BaseBuildingLocation="SIDE"
         ConquerMetricsOverrideDamageType="UNDEFINED"
         ConquerMetricsOverrideAntiMask="ANTI_GROUND"
         UnitBuilderStandardCombatUnit="False" />
      <Draws>
         <ScriptedModelDraw
            id="ModuleTag_Draw"
            RecoilDamping="0.4"
            MaxRecoilDistance="3"
            InitialRecoilSpeed="2"
            RecoilSettleSpeed="0.065"
            MinLODRequired="LOW"
            ProjectileBoneFeedbackEnabledSlots=""
            TrackMarks=""
            DependencySharedModelFlags=""
            HighDetailLODThreshold="0"
            LowDetailLODThreshold="0"
            WadingParticleSys=""
            AlphaCameraFadeOuterRadius="0"
            AlphaCameraFadeInnerRadius="0"
            AlphaCameraAtInnerRadius="100%"
            StaticSortLevelWhileFading="-1"
            BirthFadeTime="0"
            OkToChangeModelColor="True"
            AnimationsRequirePower="True"
            UseYAxisForTurretRotation="False"
            TrackMarksOnlyWhenCorneringQuickly="False"
            UseProducerTexture="False"
            NoRotate="False"
            UseFiringArcRotation="False"
            Selectable="True"
            RandomTextureFixedRandomIndex="False"
            ParticlesAttachedToAnimatedBones="False"
            ParticleBonesCheckDrawable="False"
            ShadowForceDisable="False"
            SwitchModelLODMode="False"
            StaticModelLODMode="False"
            ShowShadowWhileContained="False"
            UseStandardModelNames="False"
            UseDefaultAnimation="False"
            BirthFadeAdditive="False"
            ZWriteDisableOverride="False"
            MultiPlayerOnly="False"
            AffectedByStealth="True"
            InvertStealthOpacity="False"
            HighDetailOnly="False"
            SetAnimsToLastFrameOnConstructionComplete="True">
                
            <ModelConditionState
               ParseCondStateType="PARSE_DEFAULT"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name="GSX_CRAWLERB_SKN"
                  ExtraMesh="False" />
            </ModelConditionState>

            <ModelConditionState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="REALLYDAMAGED"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name="GSX_CRAWLERB_SKN"
                  ExtraMesh="False" />
               <Texture
                  Original="GUX_CrawlerB"
                  New="GUX_CrawlerB_DMG" />
                    <ParticleSysBone
                  BoneName="BONE_CONTACT_POINT_06"
                  FXParticleSystemTemplate="NODConDamagedSmoke"
                  FollowBone="true" />
                    <ParticleSysBone
                  BoneName="BONE_CONTACT_POINT_02"
                  FXParticleSystemTemplate="NODConDamagedSmoke"
                  FollowBone="true" />
                    <ParticleSysBone
                  BoneName="4E27F995"
                  FXParticleSystemTemplate="NODConDamagedSmoke"
                  FollowBone="true" />
               <ParticleSysBone
                  BoneName="4E27F995"
                  FXParticleSystemTemplate="NODRefineryDamagedFire"
                  FollowBone="true" />
               <ParticleSysBone
                  BoneName="4E27F995"
                  FXParticleSystemTemplate="NODRefineryDamagedDist"
                  FollowBone="true" />
               <ParticleSysBone
                  BoneName="BONE_CONTACT_POINT_02"
                  FXParticleSystemTemplate="NODConDamagedVent"
                  FollowBone="true" />
            </ModelConditionState>

            <ModelConditionState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DAMAGED"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name="GSX_CRAWLERB_SKN"
                  ExtraMesh="False" />
               <Texture
                  Original="GUX_CrawlerB"
                  New="GUX_CrawlerB_DMG" />
            </ModelConditionState>

            <ModelConditionState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="UNPACKING"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name="GSX_CRAWLERB_SKN"
                  ExtraMesh="False" />
            </ModelConditionState>

            <ModelConditionState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DYING"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name="GSX_CRAWLERB_SKN"
                  ExtraMesh="False" />
            </ModelConditionState>
                <!-- UNPACK ANIMATION -->
                <!-- == TIER I ==-->
            <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="UNPACKING USER_1"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_UT1"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="1"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
                <!-- == TIER II ==-->
            <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="UNPACKING USER_2"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_UT2B"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="1"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
                <!-- IDLE ANIM-->
                <!-- == TIER I ==-->
                <AnimationState
               ParseCondStateType="PARSE_DEFAULT"
               AllowRepeatInRandomPick="True"
               Flags="RESTART_ANIM_WHEN_COMPLETE"
                    EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               SimilarRestart="False">
                    <Animation
                  AnimationName="GSX_CRAWLERB_UT1_IDLA"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
                </AnimationState>
                <!-- == TIER II ==-->
                <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               AllowRepeatInRandomPick="True"
               Flags="RESTART_ANIM_WHEN_COMPLETE"
                    EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               SimilarRestart="False"
                    ConditionsYes="USER_2">
                    <Animation
                  AnimationName="GSX_CRAWLERB_UT2_IDLC"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False"
                        AnimationPriority="1"/>
                    <Animation
                  AnimationName="GSX_CRAWLERB_UT2_IDLAB"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False"
                        AnimationPriority="1"/>
                </AnimationState>
                <!-- DOOR OPENING ANIMATION -->
            <!-- == TIER I -->
                <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DOOR_1_WAITING_OPEN USER_1"
               Flags="START_FRAME_FIRST"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_UT1_DOPN"
                  AnimationMode="MANUAL"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
            <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DOOR_1_OPENING USER_1"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_T1_BLDA"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
            <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DOOR_1_CLOSING USER_1"
               StateName="STATE_Closed"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_UT1_IDLA"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
                <!-- == TIER II == -->
                <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DOOR_1_WAITING_OPEN USER_2"
               Flags="START_FRAME_FIRST"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_UT2_DOPNB"
                  AnimationMode="MANUAL"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
            <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DOOR_1_OPENING USER_2"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_T2_BLDB"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
            <AnimationState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="DOOR_1_CLOSING USER_2"
               StateName="STATE_Closed"
               EnteringStateFX=""
               FrameForPristineBonePositions="0"
               ShareAnimation="False"
               AllowRepeatInRandomPick="False"
               SimilarRestart="False">
               <Animation
                  AnimationName="GSX_CRAWLERB_UT2_IDLAB"
                  AnimationMode="ONCE"
                  Distance="0"
                  AnimationBlendTime="5"
                  AnimationSpeedFactorMin="1"
                  AnimationSpeedFactorMax="1"
                  WeaponTimingOrdering="PRIMARY_WEAPON"
                  WeaponTimingSlotID="1"
                  AnimationPriority="1"
                  FadeBeginFrame="-1"
                  FadeEndFrame="-1"
                  AnimationMustCompleteBlend="False"
                  UseWeaponTiming="False"
                  FadingIn="False" />
            </AnimationState>
         </ScriptedModelDraw>
            
      </Draws>
      <Behaviors>
            <!--- Force tier II for testing -->
            <ModelConditionUpgrade
            id="ModuleTag_ModelConditionUpgrade_Initial"
            AddConditionFlags="USER_2">
                <TriggeredBy>Upgrade_GDICrawlerFaction</TriggeredBy>
         </ModelConditionUpgrade>

         <AttributeModifierPoolUpdate
            id="513BC476" />
         <FireWeaponWhenDead
            id="DDED328F"
            RequiresAllTriggers="False"
            RequiresAllConflictingTriggers="False"
            Permanent="False"
            WaypointMode="False"
            WaypointModeTerminal="True"
            DelayTime="0s"
            DeathWeapon="CatalystBuildingDeathWeapon"
            FocusFireKindOfFlag=""
            InitiallyActive="True"
            ActiveDuringConstruction="False"
            ContinueToBezierDestination="False">
            <DieMuxData
               ExemptStatus=""
               RequiredStatus=""
               DamageAmountRequired="-1"
               MinKillerAngle="0.9999999d"
               MaxKillerAngle="-0.9999999d"
               DeathTypes="CATALYST"
               DeathTypesForbidden="" />
         </FireWeaponWhenDead>
         <TemporarilyDefectUpdate
            id="3473AFD2"
            DefectionFrameCount="100" />
         <ModelConditionUpgrade
            id="931C692F"
            RequiresAllTriggers="False"
            RequiresAllConflictingTriggers="False"
            Permanent="False"
            WaypointMode="False"
            WaypointModeTerminal="True"
            AddConditionFlags="USER_6"
            RemoveConditionFlags=""
            AddTempConditionFlag="TOPPLED"
            TempConditionTime="0s">
            <TriggeredBy>Upgrade_SonicRepulsionField</TriggeredBy>
         </ModelConditionUpgrade>
         <BuildingBehavior
            id="2118A085"
            NightWindowObject="LIGHT_01" />
         <RadarBehavior
            id="A504956C" />
            <!-- REPAIR DRONES-->
            <SpawnBehavior
            id="CF506A74"
            RequiresAllTriggers="False"
            RequiresAllConflictingTriggers="False"
            Permanent="False"
            WaypointMode="False"
            WaypointModeTerminal="True"
            SpawnNumberData="3"
            SpawnReplaceDelayData="10s"
            InitialBurst="3"
            DamageTypesToPropagateToSlaves="ALL"
            FadeInTime="0s"
            InitialDelay="0s"
            IsOneShotData="False"
            CanReclaimOrphans="False"
            AggregateHealth="False"
            ExitByBudding="False"
            SpawnedRequireSpawner="True"
            RespectCommandLimit="False"
            KillSpawnBasedOnModelConditionState="False"
            ShareUpgrades="False"
            SpawnInsideBuilding="True"
            CombineOnCreate="False"
            KillSpawnsOnDisabled="True"
            PassExperienceToSpawned="False"
            KillSpawnsOnCaptured="True">
            <Die
               ExemptStatus=""
               RequiredStatus=""
               DamageAmountRequired="-1"
               MinKillerAngle="0.9999999d"
               MaxKillerAngle="-0.9999999d"
               DeathTypes="ALL"
               DeathTypesForbidden="" />
            <SpawnTemplate>GDIRepairDrone</SpawnTemplate>
         </SpawnBehavior>

            <ScriptedModelDraw
            id="ModuleTag_Draw_Selected_Repair_Decal"
            RecoilDamping="0.4"
            MaxRecoilDistance="3"
            InitialRecoilSpeed="2"
            RecoilSettleSpeed="0.065"
            MinLODRequired="LOW"
            ProjectileBoneFeedbackEnabledSlots=""
            TrackMarks=""
            DependencySharedModelFlags=""
            HighDetailLODThreshold="0"
            LowDetailLODThreshold="0"
            WadingParticleSys=""
            AlphaCameraFadeOuterRadius="0"
            AlphaCameraFadeInnerRadius="0"
            AlphaCameraAtInnerRadius="100%"
            StaticSortLevelWhileFading="-1"
            BirthFadeTime="0"
            OkToChangeModelColor="True"
            AnimationsRequirePower="True"
            UseYAxisForTurretRotation="False"
            TrackMarksOnlyWhenCorneringQuickly="False"
            UseProducerTexture="False"
            NoRotate="False"
            UseFiringArcRotation="False"
            Selectable="True"
            RandomTextureFixedRandomIndex="False"
            ParticlesAttachedToAnimatedBones="False"
            ParticleBonesCheckDrawable="False"
            ShadowForceDisable="False"
            SwitchModelLODMode="False"
            StaticModelLODMode="False"
            ShowShadowWhileContained="False"
            UseStandardModelNames="False"
            UseDefaultAnimation="False"
            BirthFadeAdditive="False"
            ZWriteDisableOverride="False"
            MultiPlayerOnly="False"
            AffectedByStealth="True"
            InvertStealthOpacity="False"
            HighDetailOnly="False"
            SetAnimsToLastFrameOnConstructionComplete="True">
            <ModelConditionState
               ParseCondStateType="PARSE_DEFAULT"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name=""
                  ExtraMesh="False" />
            </ModelConditionState>
            <ModelConditionState
               ParseCondStateType="PARSE_NORMAL"
               ConditionsYes="SELECTED"
               PortraitImage=""
               ButtonImage=""
               RetainSubObjects="False">
               <Model
                  Name="FXINVISBONE"
                  ExtraMesh="False" />
               <ShadowInfo
                  Type="ADDITIVE_DECAL"
                  Texture="Texture:Decal_Rig_CO"
                  AdditionalTexture=""
                  SizeX="400"
                  SizeY="400"
                  OffsetX="0"
                  OffsetY="0"
                  OpacityStart="0"
                  OpacityFadeInTime="0s"
                  OpacityPeak="1"
                  OpacityFadeOutTime="0s"
                  OpacityEnd="0"
                  MaxHeight="200"
                  SunAngle="0"
                  OverrideLODVisibility="True"
                  UseHouseColor="True"
                  IsRotatingWithObject="True"
                  LocalPlayerOnly="True" />
            </ModelConditionState>
         </ScriptedModelDraw>

         <SlowDeath
            id="73542D4A"
            SinkRate="4"
            ProbabilityModifier="10"
            ModifierBonusPerOverkillPercent="0%"
            SinkDelay="3s"
            SinkDelayVariance="0s"
            DestructionDelay="8s"
            DestructionDelayVariance="0s"
            DecayBeginTime="0s"
            FlingForce="0"
            FlingForceVariance="0"
            FlingPitch="0d"
            FlingPitchVariance="0d"
            DeathFlags=""
            FadeTime="0s"
            FadeDelay="0s"
            DeathTypes=""
            DeathObjectStatusBits=""
            ShadowWhenDead="False"
            Fade="False">
            <Sound
               Type="INITIAL"
               List="MultiSound:HumanFaction_MediumBuilding_DieMS" />
            <DieMuxData
               ExemptStatus=""
               RequiredStatus=""
               DamageAmountRequired="-1"
               MinKillerAngle="0.9999999d"
               MaxKillerAngle="-0.9999999d"
               DeathTypes="ALL"
               DeathTypesForbidden="" />
         </SlowDeath>
         
            <FXListBehavior
            id="C74C39D8">
            <DieMuxData
               ExemptStatus=""
               RequiredStatus=""
               DamageAmountRequired="-1"
               MinKillerAngle="0.9999999d"
               MaxKillerAngle="-0.9999999d"
               DeathTypes="ALL"
               DeathTypesForbidden="" />
            <Event
               Index="onTransitionToDamaged"
               FX="FX_BuildDamaged_Large"
               MinThreshold="0"
               MaxThreshold="0"
               Direction="Default"
               OrientToObject="True"
               ForceUseDoFXObj="False" />
            <Event
               Index="onTransitionToReallyDamaged"
               FX="FX_BuildDamaged_Large"
               MinThreshold="0"
               MaxThreshold="0"
               Direction="Default"
               OrientToObject="True"
               ForceUseDoFXObj="False" />
            <Event
               Index="onTransitionToRubble"
               FX="FX_BuildRubble_Large"
               MinThreshold="0"
               MaxThreshold="0"
               Direction="Default"
               OrientToObject="True"
               ForceUseDoFXObj="False" />
         </FXListBehavior>
         <StructureUnpackUpdate
            UnpackTime="1.3s" />
         <ProductionUpdate
            id="ModuleTag_ProductionUpdate"
            Type="MAIN_STRUCTURE"
            MaxQueueEntries="1" />
         <ProductionUpdate
            id="999647B9"
            MaxQueueEntries="99"
            NumDoorAnimations="1"
            DoorOpeningTime="1s"
            DoorOpeningTimeMetaUnit="0s"
            DoorWaitOpenTime="4s"
            DoorCloseTime="1s"
            ConstructionCompleteDuration="0"
            DisabledTypesToProcess=""
            UnitInvulnerableTime="0"
            SpecialPrepModelconditionTime="0"
            BonusForType=""
            SpeedBonusAudioLoop=""
            Type="OTHER_STRUCTURE"
            ProductionTimeDelayScalar="0s"
            GiveNoXP="False"
            VeteranUnitsFromVeteranFactory="False"
            SetBonusModelConditionOnSpeedBonus="False"
            SecondaryQueue="False"
            IgnorePreReqs="False" />
         <ProductionUpdateInfo
            id="EF2F9805" />
         <QueueProductionExitUpdate
            id="09A084CF"
            PlacementViewAngle="0d"
            ExitDelay="1"
            InitialBurst="0"
            AllowAirborneCreation="False"
            NoExitPath="False"
            CanRallyToSlaughter="False"
            ClearAlliesFromDestination="True">
            <UnitCreatePoint
               x="-10"
               y="0"
               z="0" />
            <NaturalRallyPoint
               x="80"
               y="0"
               z="0" />
         </QueueProductionExitUpdate>
         <SpecialPower
            id="02847855"
            SpecialPowerTemplate="SpecialPower_GrantPackUpgrade"
            AntiCategory=""
            AntiFX=""
            AttributeModifier=""
            AttributeModifierRange="0"
            AttributeModifierFX=""
            WeatherDuration="0"
            InitiateFX=""
            TriggerFX=""
            SetModelCondition="TOPPLED"
            SetModelConditionTime="0s"
            GiveLevels="0"
            ChangeWeather="NORMAL"
            OnTriggerRechargeSpecialPower=""
            BurnDecayModifier="0"
            MaxDistanceFromCommandCenter="0"
            UpdateModuleStartsAttack="True"
            StartsPaused="False"
            ReEnableAntiCategory="False"
            AttributeModifierAffectsSelf="False"
            AttributeModifierWeatherBased="False"
            TargetEnemy="False"
            TargetAllSides="False"
            DisableDuringAnimDuration="False"
            IdleWhenStartingPower="False"
            AffectGood="False"
            AffectEvil="False"
            AffectAllies="True"
            AvailableAtStart="True"
            AdjustVictim="False"
            UseDistanceFromCommandCenter="False"
            ChildModuleHandlesFX="False">
            <AttributeModifierAffects
               Rule="UNPARSED"
               Relationship=""
               Alignment="NONE"
               Include=""
               Exclude=""
               StatusBitFlags=""
               RejectStatusBitFlags=""
               AcceptModelCondition=""
               RejectModelCondition="" />
            <RequirementsFilterMP
               Rule="UNPARSED"
               Relationship=""
               Alignment="NONE"
               Include=""
               Exclude=""
               StatusBitFlags=""
               RejectStatusBitFlags=""
               AcceptModelCondition=""
               RejectModelCondition="" />
            <RequirementsFilterStrategic
               Rule="UNPARSED"
               Relationship=""
               Alignment="NONE"
               Include=""
               Exclude=""
               StatusBitFlags=""
               RejectStatusBitFlags=""
               AcceptModelCondition=""
               RejectModelCondition="" />
         </SpecialPower>
         <GiveOrRestoreUpgradeSpecialPower
            id="E35B0503"
            GrabPassengerHealGain="0%"
            SpecialPowerTemplate="SpecialPower_GrantPackUpgrade"
            StartAbilityRange="1E+07"
            AbilityAbortRange="1E+07"
            PreparationTime="0s"
            PersistentPrepTime="0s"
            PersistentCount="-1"
            PackTime="0s"
            UnpackTime="0s"
            PreTriggerUnstealthTime="0s"
            Options=""
            PackUnpackVariationFactor="0"
            ParalyzeDurationWhenCompleted="0s"
            ParalyzeDurationWhenAborted="0s"
            SpecialObject=""
            MaxSpecialObjects="1"
            EffectDuration="0s"
            EffectValue="1"
            EffectRange="0"
            FleeRangeAfterCompletion="0"
            DisableFXParticleSystem=""
            PackSound=""
            UnpackSound=""
            PrepSoundLoop=""
            TriggerSound=""
            ActiveLoopSound=""
            AwardXPForTriggering="0"
            SkillPointsForTriggering="-1"
            UnpackingVariation="0"
            FreezeAfterTriggerDuration="0s"
            RequiredConditions=""
            RejectedConditions=""
            SetObjectStatusOnTrigger=""
            ClearObjectStatusOnExit=""
            TriggerAttributeModifier=""
            AttributeModifierDuration="0s"
            ChainedButton=""
            RequireAndSpendTiberiumOnCaster="0"
            DisabledTypesToProcess="HELD"
            DisabledTypesToContinueSoundsFor="HELD"
            StartRechargeOnExit="False"
            GoIdleInStartPreparation="True"
            FaceTarget="True"
            UpgradeToGive="Upgrade_Pack"
            WeaponFlags="" />
         <ReplaceSelfUpgrade
            id="FC1FA9EE"
            RequiresAllTriggers="False"
            RequiresAllConflictingTriggers="False"
            Permanent="False"
            WaypointMode="False"
            WaypointModeTerminal="True"
            NewObjectUnpackTime="5s"
            DisabledDuringUnpack="True"
            CheckBuildAssistant="False">
            <TriggeredBy>Upgrade_Pack</TriggeredBy>
            <ReplacementTemplate>GDICrawlerMCV</ReplacementTemplate>
         </ReplaceSelfUpgrade>

         <StatusBitsUpgrade
            id="BA874D9A"
            RequiresAllTriggers="False"
            RequiresAllConflictingTriggers="False"
            Permanent="False"
            WaypointMode="False"
            WaypointModeTerminal="True"
            StatusToSet="RIDER1"
            StatusToClear=""
            ApplyToContained="False">
            <TriggeredBy>Upgrade_SonicRepulsionField</TriggeredBy>
         </StatusBitsUpgrade>
         <RepairUpdate
            id="41FDEB2A"
            RepopThreshold="0.2"
            HealAmountPerSecond="90"
            Toggleable="True"
            RepairableWhenDead="False">
            <PercentOfBuildCostToRebuildInfo
               Pristine="50%"
               Damaged="50%"
               ReallyDamaged="50%"
               Rubble="50%" />
            <SelfAudio
               SelfRepairFromDamageLoop=""
               SelfRepairFromRubbleLoop="" />
         </RepairUpdate>
         <EngineerContain
            id="E2BE8599"
            ReplaceWith=""
            NameOfVoiceToUseForFriendlyEnter="9D165EA1"
            NameOfVoiceToUseForHostileEnter="124DB476"
            FXForRepair="FX_Building_Repaired"
            FXForCapture="FX_Building_Captured"
            FXForCaptureAndReplace="FX_Building_Captured"
            EvaEventForRepair="BuildingRepaired"
            EvaEventForCapture="EnemyBuildingCaptured">
            <CanEnterFilter
               Rule="NONE"
               Relationship=""
               Alignment="NONE"
               Include=""
               Exclude=""
               StatusBitFlags=""
               RejectStatusBitFlags=""
               AcceptModelCondition=""
               RejectModelCondition="">
               <IncludeThing>GDIEngineer</IncludeThing>
               <IncludeThing>NODSaboteur</IncludeThing>
               <IncludeThing>AlienAssimilator</IncludeThing>
               <IncludeThing>SteelTalonsCombatEngineer</IncludeThing>
               <IncludeThing>ZOCOMEngineer</IncludeThing>
               <IncludeThing>BlackHandSaboteur</IncludeThing>
               <IncludeThing>MarkedOfKaneSaboteur</IncludeThing>
               <IncludeThing>Traveler59Assimilator</IncludeThing>
            </CanEnterFilter>
         </EngineerContain>
         <CreateObjectDie
            id="34FD1923"
            CreationList="OCL_GenericGDIBuildingDestruction"
            UpgradeForbidden="">
            <DieMuxData
               ExemptStatus=""
               RequiredStatus=""
               DamageAmountRequired="-1"
               MinKillerAngle="0.9999999d"
               MaxKillerAngle="-0.9999999d"
               DeathTypes="ALL"
               DeathTypesForbidden="SUICIDED DETONATED" />
         </CreateObjectDie>
         <CreateObjectDie
            id="4BF392A4"
            CreationList="OCL_ConyardGDIBuildingSuicide">
            <DieMuxData
               ExemptStatus=""
               RequiredStatus=""
               DamageAmountRequired="-1"
               MinKillerAngle="0.9999999d"
               MaxKillerAngle="-0.9999999d"
               DeathTypes="SUICIDED"
               DeathTypesForbidden="" />
         </CreateObjectDie>
      </Behaviors>
      <AI>
         <AIUpdate
            id="4B2D0C2A"
            AutoAcquireEnemiesWhenIdle="NO"
            StopChaseDistance="500"
            HoldGroundCloseRangeDistance="0"
            AILuaEventsList="BuildingPowerFunctions"
            MinCowerTime="0s"
            MaxCowerTime="0s"
            RampageTime="0s"
            BurningDeathTime="0s"
            TimeToEjectPassengersOnRampage="0"
            ComboLocomotorSet="NORMAL"
            ComboLocoAttackDistance="80"
            IdleTargetTime="0s"
            MaxCombineChildren="1"
            SpawnOffsetRadius="0"
            StandGround="False"
            CanAttackWhileContained="False"
            RampageRequiresAflame="False"
            FadeOnPortals="False" />
      </AI>
      <Body>
         <ActiveBody
            id="B313F576"
            MaxHealth="40000"
            MaxHealthDamaged="0"
            MaxHealthReallyDamaged="0"
            InitialHealth="-1"
            RecoveryTime="0"
            DodgePercent="0"
            EnteringDamagedTransitionTime="0s"
            EnteringReallyDamagedTransitionTime="0s"
            GrabFX=""
            GrabDamage="200"
            HealingBuffFX=""
            DamagedAttributeModifier=""
            ReallyDamagedAttributeModifier=""
            CheerRadius="200"
            BurningDeathFX=""
            SecondChanceUpgrade=""
            SecondChanceHeal="0"
            UseDefaultDamageSettings="True"
            RemoveUpgradesOnDeath="False"
            BurningDeathBehavior="False">
            <DamageTrigger
               HealthLevelBelowPercent="66"
               RemoveUpgrade="Upgrade_SonicRepulsionField"
               RemoveStatus="" />
         </ActiveBody>
      </Body>
      <ClientBehaviors>
         <AnimationSoundClientBehavior
            id="3706DCA5"
            MaxUpdateRangeCap="0">
            <Sound
               Sound="MultiSound:GDI_MCVUnpack1MS"
               Animation="GUMCVUPAK_AN"
               Frame="1" />
            <Sound
               Sound="AudioEvent:GDI_MCVUnpack2"
               Animation="GUMCVUPAK_AN"
               Frame="55" />
            <Sound
               Sound="AudioEvent:GDI_MCVUnpack3"
               Animation="GUMCVUPAK_AN"
               Frame="74" />
            <Sound
               Sound="AudioEvent:GDI_MCVUnpack4"
               Animation="GUMCVUPAK_AN"
               Frame="87" />
                <Sound Sound="AudioEvent:GDI_WarFactory_doorOpen" Animation="GSX_CRAWLERB_UT1_DOPN" Frame="1" />
         </AnimationSoundClientBehavior>
      </ClientBehaviors>
      <Geometry
         IsSmall="False">
         <Shape
            Type="BOX"
            ContactPointGeneration="NONE"
            MajorRadius="46"
            MinorRadius="35"
            Height="60"
            FrontAngle="0d"
            Active="True"
            UsedForHealthBox="True">
            <Offset
               x="9"
               y="0"
               z="0" />
         </Shape>
         <Shape
            Type="BOX"
            ContactPointGeneration="NONE"
            MajorRadius="17.5"
            MinorRadius="10"
            Height="54"
            FrontAngle="0d"
            Active="True"
            UsedForHealthBox="True">
            <Offset
               x="53"
               y="-32"
               z="0" />
         </Shape>
         <Shape
            Type="BOX"
            ContactPointGeneration="NONE"
            MajorRadius="11"
            MinorRadius="8.5"
            Height="48"
            FrontAngle="0d"
            Active="True"
            UsedForHealthBox="True">
            <Offset
               x="43"
               y="44"
               z="0" />
         </Shape>
         <ContactPoint>
            <Pos
               x="-30"
               y="34"
               z="30" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="55"
               y="35"
               z="0" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="55"
               y="-35"
               z="30" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="55"
               y="35"
               z="0" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="-30"
               y="-35"
               z="30" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="55"
               y="35"
               z="0" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="-30"
               y="-35"
               z="30" />
         </ContactPoint>
         <ContactPoint>
            <Pos
               x="-30"
               y="34"
               z="0" />
         </ContactPoint>
      </Geometry>
      <AudioArrayVoice>
         <AudioEntry
            EvaEvent="BuildingStolen"
            AudioType="voiceDefectingAway" />
         <AudioEntry
            EvaEvent="EnemyBuildingCaptured"
            AudioType="voiceDefectingTowards" />
         <AudioEntry
            Sound="GDICrawler_ConstructionYardSelect"
            AudioType="voiceSelect" />
      </AudioArrayVoice>
      <AudioArraySound>
         <AudioEntry Sound="MultiSound:HumanFaction_MediumBuilding_LightDamageMS" AudioType="soundOnDamaged" />
         <AudioEntry Sound="MultiSound:HumanFaction_MediumBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
         <AudioEntry Sound="AudioEvent:GDI_BuildingPlaced" AudioType="soundUnderConstruction" />
      </AudioArraySound>
      <EvaEvents
         EvaEventSoldOwner="StructureSold"
         EvaEventDamagedOwner="StructureUnderAttack"
         EvaEventSecondDamageFarFromFirstScanRange="200"
         EvaEventSecondDamageFarFromFirstTimeoutMS="155"
         EvaEventRepairingOwner="StructureRepairing"
         EvaEnemyObjectSightedEvent="EnemyCampSighted"
         EvaEventAvailableForProduction="NewConstructionOptions"
         EvaEventProductionStarted="BuildingConstructionStarted"
         EvaEventProductionComplete="BuildingConstructionComplete"
         EvaEventPlacementFailed="StructurePlacementFailed"
         EvaEventCannotBuildDueToFullBuildQueue="StructureCannotBuildDueToFullBuildQueue"
         EvaEventBuildOnHold="BuildOnHold"
         EvaEventBuildCancelled="BuildCancelled"
         EvaEventManuallyPoweredOff="BuildingManuallyPoweredDown"
         EvaEventManuallyPoweredOn="BuildingManuallyPoweredUp" />
      <ShadowInfo
         Type="VOLUME"
         Texture=""
         AdditionalTexture=""
         SizeX="0"
         SizeY="0"
         OffsetX="0"
         OffsetY="0"
         OpacityStart="0"
         OpacityFadeInTime="0s"
         OpacityPeak="1"
         OpacityFadeOutTime="0s"
         OpacityEnd="0"
         MaxHeight="20"
         SunAngle="0"
         OverrideLODVisibility="False"
         UseHouseColor="False"
         IsRotatingWithObject="True"
         LocalPlayerOnly="False" />
      <VisionInfo
         VisionRange="100"
         ShroudClearingRange="500"
         VisionSide="100%"
         VisionRear="100%"
         VisionBonusTestRadius="100"
         VisionBonusTestSegments="8"
         VisionBonusPercentPerFoot="0%"
         MaxVisionBonusPercent="50%"
         MinVisionBonusPercent="-50%" />
      <ProjectedBuildabilityInfo
         Radius="360"
         BuildPlacementTypes="MAIN_STRUCTURE OTHER_STRUCTURE"
         StatusToReject=""
         ModelConditionsToReject="" />
   </GameObject>
</AssetDeclaration>

Back to top
View user's profile Send private message
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Thu Dec 12, 2019 1:00 pm    Post subject: Reply with quote  Mark this post and the followings unread

I did some reordering so you can run a test. You definately had some animation ordering issues, the order of animations especially for complicated objects like Conyards is very important, and animations will often not work if the order is not correct!
I note that you do not have a condition = 'USER_1' animation, I do not know if this will cause issues (I know you are testing 'USER_2', but still).

Code:
<?xml version="1.0" encoding="utf-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset">
  <Includes>
    <Include type="all" source="ART:GSX_CRAWLERB.xml" />
  </Includes>
  <GameObject id="GDICrawlerConstructionYard" KindOf="SELECTABLE IMMOBILE CAN_CAST_REFLECTIONS STRUCTURE FS_FACTORY FS_WAR_FACTORY AUTO_RALLYPOINT NOT_AUTOACQUIRABLE CONSTRUCTION_YARD COVER AUTO_ACQUIRABLE_BY_AI PROJECT_BUILDABILITY_FOR_ALLIES" Description="Desc:GDICrawler" TypeDescription="Type:GDICrawler" RadarPriority="STRUCTURE" BuildCompletion="INVALID" FenceWidth="0" FenceXOffset="0" RemoveTerrainRadius="0" EmotionRange="0" PlacementViewAngle="315d" BuildFadeInOnCreateTimeSeconds="0s" FactoryExitWidth="0" FactoryExtraBibWidth="0" Side="GDICrawler" EditorName="GDICrawlerConstructionYard" EditorSorting="STRUCTURE" BountyValue="0" BuildTime="25" BuildFadeInOnCreateTime="0" EnergyProduction="40" EnergyBonus="0" CommandSet="GDICrawlerConstructionYardCommandSet" SelectPortrait="Portrait_GDIConYard" ButtonImage="Portrait_GDIConYard" VoicePriority="0" MinZIncreaseForVoiceMoveToHigherGround="-1" CrowdResponse="" CampnessValue="5000" CampnessValueRadius="300" Scale="1" HealthBoxScale="1.5" HealthBoxHeightOffset="10" OcclusionDelay="0" LiveCameraPitch="0" FormationWidth="1" FormationDepth="1" InstanceScaleFuzziness="0" ThreatRadius="-1" RamPower="0" RamZMult="1" ShockwaveResistance="0" CommandPoints="0" CommandPointBonus="0" VoiceAttackChargeTimeout="0" MaxDistanceForEngaged="0" EngagedStateTimeout="0" ThreatLevel="1" SlopeLimitIndex="0" PathfindDiameter="-1" SupplyOverride="0" DisplayMeleeDamage="-1" DisplayRangedDamage="-1" HeroSortOrder="2147483647" FiringArc="360" CamouflageDetectionMultiplier="1" SelectionPriority="2147483647" ProductionQueueType="MAIN_STRUCTURE" BuildPlacementTypeFlag="MAIN_STRUCTURE" BuildOnRequiredObjectKindOf="" UnitCategory="STRUCTURE" WeaponCategory="NONE" HasFiredRecentlyTime="2s" UnitTypeIcon="" ReinvisibilityDelay="4s" CaptureTime="0s" BuildCost="3500" RefundValue="0" ThreatValue="0" MaxSimultaneousOfType="0" TransportSlotCount="1" IsTrainable="True" IsForbidden="False" IsPrerequisite="False" IsGrabbable="False" IsHarvestable="False" StructureRubbleHeight="0" ForceLuaRegistration="False" ShowHealthInSelectionDecal="False" KeepSelectableWhenDead="False" IsAutoBuilt="False" CanPathThroughGates="True" ShouldClearShotsOnIdle="False" BuildInProximityToSamePlayerStucture="True">
    <DisplayName>Name:GDIConstructionYard</DisplayName>
    <ArmorSet Armor="GDICrawlerConstructionYardArmor" DamageFX="FactionStructureDamageFX" Conditions="" />
    <SkirmishAIInformation BaseBuildingLocation="SIDE" ConquerMetricsOverrideDamageType="UNDEFINED" ConquerMetricsOverrideAntiMask="ANTI_GROUND" UnitBuilderStandardCombatUnit="False" />
    <Draws>
      <ScriptedModelDraw id="ModuleTag_Draw" RecoilDamping="0.4" MaxRecoilDistance="3" InitialRecoilSpeed="2" RecoilSettleSpeed="0.065" MinLODRequired="LOW" ProjectileBoneFeedbackEnabledSlots="" TrackMarks="" DependencySharedModelFlags="" HighDetailLODThreshold="0" LowDetailLODThreshold="0" WadingParticleSys="" AlphaCameraFadeOuterRadius="0" AlphaCameraFadeInnerRadius="0" AlphaCameraAtInnerRadius="100%" StaticSortLevelWhileFading="-1" BirthFadeTime="0" OkToChangeModelColor="True" AnimationsRequirePower="True" UseYAxisForTurretRotation="False" TrackMarksOnlyWhenCorneringQuickly="False" UseProducerTexture="False" NoRotate="False" UseFiringArcRotation="False" Selectable="True" RandomTextureFixedRandomIndex="False" ParticlesAttachedToAnimatedBones="False" ParticleBonesCheckDrawable="False" ShadowForceDisable="False" SwitchModelLODMode="False" StaticModelLODMode="False" ShowShadowWhileContained="False" UseStandardModelNames="False" UseDefaultAnimation="False" BirthFadeAdditive="False" ZWriteDisableOverride="False" MultiPlayerOnly="False" AffectedByStealth="True" InvertStealthOpacity="False" HighDetailOnly="False" SetAnimsToLastFrameOnConstructionComplete="True">
        <ModelConditionState ParseCondStateType="PARSE_DEFAULT" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="GSX_CRAWLERB_SKN" ExtraMesh="False" />
        </ModelConditionState>
        <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="REALLYDAMAGED" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="GSX_CRAWLERB_SKN" ExtraMesh="False" />
          <Texture Original="GUX_CrawlerB" New="GUX_CrawlerB_DMG" />
          <ParticleSysBone BoneName="BONE_CONTACT_POINT_06" FXParticleSystemTemplate="NODConDamagedSmoke" FollowBone="true" />
          <ParticleSysBone BoneName="BONE_CONTACT_POINT_02" FXParticleSystemTemplate="NODConDamagedSmoke" FollowBone="true" />
          <ParticleSysBone BoneName="4E27F995" FXParticleSystemTemplate="NODConDamagedSmoke" FollowBone="true" />
          <ParticleSysBone BoneName="4E27F995" FXParticleSystemTemplate="NODRefineryDamagedFire" FollowBone="true" />
          <ParticleSysBone BoneName="4E27F995" FXParticleSystemTemplate="NODRefineryDamagedDist" FollowBone="true" />
          <ParticleSysBone BoneName="BONE_CONTACT_POINT_02" FXParticleSystemTemplate="NODConDamagedVent" FollowBone="true" />
        </ModelConditionState>
        <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DAMAGED" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="GSX_CRAWLERB_SKN" ExtraMesh="False" />
          <Texture Original="GUX_CrawlerB" New="GUX_CrawlerB_DMG" />
        </ModelConditionState>
        <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="UNPACKING" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="GSX_CRAWLERB_SKN" ExtraMesh="False" />
        </ModelConditionState>
        <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DYING" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="GSX_CRAWLERB_SKN" ExtraMesh="False" />
        </ModelConditionState>
        <!-- IDLE ANIM-->
        <!-- == TIER I ==-->
        <AnimationState ParseCondStateType="PARSE_DEFAULT" AllowRepeatInRandomPick="True" Flags="RESTART_ANIM_WHEN_COMPLETE" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT1_IDLA" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <!-- UNPACK ANIMATION -->
        <!-- == TIER II ==-->
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="UNPACKING USER_2" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT2B" AnimationMode="ONCE" Distance="0" AnimationBlendTime="1" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <!-- == TIER I ==-->
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="UNPACKING USER_1" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT1" AnimationMode="ONCE" Distance="0" AnimationBlendTime="1" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <!-- DOOR OPENING ANIMATION -->
        <!-- == TIER II == -->
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_WAITING_OPEN USER_2" Flags="START_FRAME_FIRST" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT2_DOPNB" AnimationMode="MANUAL" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_OPENING USER_2" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_T2_BLDB" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_CLOSING USER_2" StateName="STATE_Closed" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT2_IDLAB" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <!-- == TIER I -->
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_WAITING_OPEN USER_1" Flags="START_FRAME_FIRST" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT1_DOPN" AnimationMode="MANUAL" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_OPENING USER_1" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_T1_BLDA" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <AnimationState ParseCondStateType="PARSE_NORMAL" ConditionsYes="DOOR_1_CLOSING USER_1" StateName="STATE_Closed" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" AllowRepeatInRandomPick="False" SimilarRestart="False">
          <Animation AnimationName="GSX_CRAWLERB_UT1_IDLA" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" AnimationPriority="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" />
        </AnimationState>
        <!-- == TIER II ==-->
        <AnimationState ParseCondStateType="PARSE_NORMAL" AllowRepeatInRandomPick="True" Flags="RESTART_ANIM_WHEN_COMPLETE" EnteringStateFX="" FrameForPristineBonePositions="0" ShareAnimation="False" SimilarRestart="False" ConditionsYes="USER_2">
          <Animation AnimationName="GSX_CRAWLERB_UT2_IDLC" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" AnimationPriority="1" />
          <Animation AnimationName="GSX_CRAWLERB_UT2_IDLAB" AnimationMode="ONCE" Distance="0" AnimationBlendTime="5" AnimationSpeedFactorMin="1" AnimationSpeedFactorMax="1" WeaponTimingOrdering="PRIMARY_WEAPON" WeaponTimingSlotID="1" FadeBeginFrame="-1" FadeEndFrame="-1" AnimationMustCompleteBlend="False" UseWeaponTiming="False" FadingIn="False" AnimationPriority="1" />
        </AnimationState>
      </ScriptedModelDraw>
    </Draws>
    <Behaviors>
      <!--- Force tier II for testing -->
      <ModelConditionUpgrade id="ModuleTag_ModelConditionUpgrade_Initial" AddConditionFlags="USER_2">
        <TriggeredBy>Upgrade_GDICrawlerFaction</TriggeredBy>
      </ModelConditionUpgrade>
      <AttributeModifierPoolUpdate id="513BC476" />
      <FireWeaponWhenDead id="DDED328F" RequiresAllTriggers="False" RequiresAllConflictingTriggers="False" Permanent="False" WaypointMode="False" WaypointModeTerminal="True" DelayTime="0s" DeathWeapon="CatalystBuildingDeathWeapon" FocusFireKindOfFlag="" InitiallyActive="True" ActiveDuringConstruction="False" ContinueToBezierDestination="False">
        <DieMuxData ExemptStatus="" RequiredStatus="" DamageAmountRequired="-1" MinKillerAngle="0.9999999d" MaxKillerAngle="-0.9999999d" DeathTypes="CATALYST" DeathTypesForbidden="" />
      </FireWeaponWhenDead>
      <TemporarilyDefectUpdate id="3473AFD2" DefectionFrameCount="100" />
      <ModelConditionUpgrade id="931C692F" RequiresAllTriggers="False" RequiresAllConflictingTriggers="False" Permanent="False" WaypointMode="False" WaypointModeTerminal="True" AddConditionFlags="USER_6" RemoveConditionFlags="" AddTempConditionFlag="TOPPLED" TempConditionTime="0s">
        <TriggeredBy>Upgrade_SonicRepulsionField</TriggeredBy>
      </ModelConditionUpgrade>
      <BuildingBehavior id="2118A085" NightWindowObject="LIGHT_01" />
      <RadarBehavior id="A504956C" />
      <!-- REPAIR DRONES-->
      <SpawnBehavior id="CF506A74" RequiresAllTriggers="False" RequiresAllConflictingTriggers="False" Permanent="False" WaypointMode="False" WaypointModeTerminal="True" SpawnNumberData="3" SpawnReplaceDelayData="10s" InitialBurst="3" DamageTypesToPropagateToSlaves="ALL" FadeInTime="0s" InitialDelay="0s" IsOneShotData="False" CanReclaimOrphans="False" AggregateHealth="False" ExitByBudding="False" SpawnedRequireSpawner="True" RespectCommandLimit="False" KillSpawnBasedOnModelConditionState="False" ShareUpgrades="False" SpawnInsideBuilding="True" CombineOnCreate="False" KillSpawnsOnDisabled="True" PassExperienceToSpawned="False" KillSpawnsOnCaptured="True">
        <Die ExemptStatus="" RequiredStatus="" DamageAmountRequired="-1" MinKillerAngle="0.9999999d" MaxKillerAngle="-0.9999999d" DeathTypes="ALL" DeathTypesForbidden="" />
        <SpawnTemplate>GDIRepairDrone</SpawnTemplate>
      </SpawnBehavior>
      <ScriptedModelDraw id="ModuleTag_Draw_Selected_Repair_Decal" RecoilDamping="0.4" MaxRecoilDistance="3" InitialRecoilSpeed="2" RecoilSettleSpeed="0.065" MinLODRequired="LOW" ProjectileBoneFeedbackEnabledSlots="" TrackMarks="" DependencySharedModelFlags="" HighDetailLODThreshold="0" LowDetailLODThreshold="0" WadingParticleSys="" AlphaCameraFadeOuterRadius="0" AlphaCameraFadeInnerRadius="0" AlphaCameraAtInnerRadius="100%" StaticSortLevelWhileFading="-1" BirthFadeTime="0" OkToChangeModelColor="True" AnimationsRequirePower="True" UseYAxisForTurretRotation="False" TrackMarksOnlyWhenCorneringQuickly="False" UseProducerTexture="False" NoRotate="False" UseFiringArcRotation="False" Selectable="True" RandomTextureFixedRandomIndex="False" ParticlesAttachedToAnimatedBones="False" ParticleBonesCheckDrawable="False" ShadowForceDisable="False" SwitchModelLODMode="False" StaticModelLODMode="False" ShowShadowWhileContained="False" UseStandardModelNames="False" UseDefaultAnimation="False" BirthFadeAdditive="False" ZWriteDisableOverride="False" MultiPlayerOnly="False" AffectedByStealth="True" InvertStealthOpacity="False" HighDetailOnly="False" SetAnimsToLastFrameOnConstructionComplete="True">
        <ModelConditionState ParseCondStateType="PARSE_DEFAULT" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="" ExtraMesh="False" />
        </ModelConditionState>
        <ModelConditionState ParseCondStateType="PARSE_NORMAL" ConditionsYes="SELECTED" PortraitImage="" ButtonImage="" RetainSubObjects="False">
          <Model Name="FXINVISBONE" ExtraMesh="False" />
          <ShadowInfo Type="ADDITIVE_DECAL" Texture="Texture:Decal_Rig_CO" AdditionalTexture="" SizeX="400" SizeY="400" OffsetX="0" OffsetY="0" OpacityStart="0" OpacityFadeInTime="0s" OpacityPeak="1" OpacityFadeOutTime="0s" OpacityEnd="0" MaxHeight="200" SunAngle="0" OverrideLODVisibility="True" UseHouseColor="True" IsRotatingWithObject="True" LocalPlayerOnly="True" />
        </ModelConditionState>
      </ScriptedModelDraw>
      <SlowDeath id="73542D4A" SinkRate="4" ProbabilityModifier="10" ModifierBonusPerOverkillPercent="0%" SinkDelay="3s" SinkDelayVariance="0s" DestructionDelay="8s" DestructionDelayVariance="0s" DecayBeginTime="0s" FlingForce="0" FlingForceVariance="0" FlingPitch="0d" FlingPitchVariance="0d" DeathFlags="" FadeTime="0s" FadeDelay="0s" DeathTypes="" DeathObjectStatusBits="" ShadowWhenDead="False" Fade="False">
        <Sound Type="INITIAL" List="MultiSound:HumanFaction_MediumBuilding_DieMS" />
        <DieMuxData ExemptStatus="" RequiredStatus="" DamageAmountRequired="-1" MinKillerAngle="0.9999999d" MaxKillerAngle="-0.9999999d" DeathTypes="ALL" DeathTypesForbidden="" />
      </SlowDeath>
      <FXListBehavior id="C74C39D8">
        <DieMuxData ExemptStatus="" RequiredStatus="" DamageAmountRequired="-1" MinKillerAngle="0.9999999d" MaxKillerAngle="-0.9999999d" DeathTypes="ALL" DeathTypesForbidden="" />
        <Event Index="onTransitionToDamaged" FX="FX_BuildDamaged_Large" MinThreshold="0" MaxThreshold="0" Direction="Default" OrientToObject="True" ForceUseDoFXObj="False" />
        <Event Index="onTransitionToReallyDamaged" FX="FX_BuildDamaged_Large" MinThreshold="0" MaxThreshold="0" Direction="Default" OrientToObject="True" ForceUseDoFXObj="False" />
        <Event Index="onTransitionToRubble" FX="FX_BuildRubble_Large" MinThreshold="0" MaxThreshold="0" Direction="Default" OrientToObject="True" ForceUseDoFXObj="False" />
      </FXListBehavior>
      <StructureUnpackUpdate UnpackTime="1.3s" />
      <ProductionUpdate id="ModuleTag_ProductionUpdate" Type="MAIN_STRUCTURE" MaxQueueEntries="1" />
      <ProductionUpdate id="999647B9" MaxQueueEntries="99" NumDoorAnimations="1" DoorOpeningTime="1s" DoorOpeningTimeMetaUnit="0s" DoorWaitOpenTime="4s" DoorCloseTime="1s" ConstructionCompleteDuration="0" DisabledTypesToProcess="" UnitInvulnerableTime="0" SpecialPrepModelconditionTime="0" BonusForType="" SpeedBonusAudioLoop="" Type="OTHER_STRUCTURE" ProductionTimeDelayScalar="0s" GiveNoXP="False" VeteranUnitsFromVeteranFactory="False" SetBonusModelConditionOnSpeedBonus="False" SecondaryQueue="False" IgnorePreReqs="False" />
      <ProductionUpdateInfo id="EF2F9805" />
      <QueueProductionExitUpdate id="09A084CF" PlacementViewAngle="0d" ExitDelay="1" InitialBurst="0" AllowAirborneCreation="False" NoExitPath="False" CanRallyToSlaughter="False" ClearAlliesFromDestination="True">
        <UnitCreatePoint x="-10" y="0" z="0" />
        <NaturalRallyPoint x="80" y="0" z="0" />
      </QueueProductionExitUpdate>
      <SpecialPower id="02847855" SpecialPowerTemplate="SpecialPower_GrantPackUpgrade" AntiCategory="" AntiFX="" AttributeModifier="" AttributeModifierRange="0" AttributeModifierFX="" WeatherDuration="0" InitiateFX="" TriggerFX="" SetModelCondition="TOPPLED" SetModelConditionTime="0s" GiveLevels="0" ChangeWeather="NORMAL" OnTriggerRechargeSpecialPower="" BurnDecayModifier="0" MaxDistanceFromCommandCenter="0" UpdateModuleStartsAttack="True" StartsPaused="False" ReEnableAntiCategory="False" AttributeModifierAffectsSelf="False" AttributeModifierWeatherBased="False" TargetEnemy="False" TargetAllSides="False" DisableDuringAnimDuration="False" IdleWhenStartingPower="False" AffectGood="False" AffectEvil="False" AffectAllies="True" AvailableAtStart="True" AdjustVictim="False" UseDistanceFromCommandCenter="False" ChildModuleHandlesFX="False">
        <AttributeModifierAffects Rule="UNPARSED" Relationship="" Alignment="NONE" Include="" Exclude="" StatusBitFlags="" RejectStatusBitFlags="" AcceptModelCondition="" RejectModelCondition="" />
        <RequirementsFilterMP Rule="UNPARSED" Relationship="" Alignment="NONE" Include="" Exclude="" StatusBitFlags="" RejectStatusBitFlags="" AcceptModelCondition="" RejectModelCondition="" />
        <RequirementsFilterStrategic Rule="UNPARSED" Relationship="" Alignment="NONE" Include="" Exclude="" StatusBitFlags="" RejectStatusBitFlags="" AcceptModelCondition="" RejectModelCondition="" />
      </SpecialPower>
      <GiveOrRestoreUpgradeSpecialPower id="E35B0503" GrabPassengerHealGain="0%" SpecialPowerTemplate="SpecialPower_GrantPackUpgrade" StartAbilityRange="1E+07" AbilityAbortRange="1E+07" PreparationTime="0s" PersistentPrepTime="0s" PersistentCount="-1" PackTime="0s" UnpackTime="0s" PreTriggerUnstealthTime="0s" Options="" PackUnpackVariationFactor="0" ParalyzeDurationWhenCompleted="0s" ParalyzeDurationWhenAborted="0s" SpecialObject="" MaxSpecialObjects="1" EffectDuration="0s" EffectValue="1" EffectRange="0" FleeRangeAfterCompletion="0" DisableFXParticleSystem="" PackSound="" UnpackSound="" PrepSoundLoop="" TriggerSound="" ActiveLoopSound="" AwardXPForTriggering="0" SkillPointsForTriggering="-1" UnpackingVariation="0" FreezeAfterTriggerDuration="0s" RequiredConditions="" RejectedConditions="" SetObjectStatusOnTrigger="" ClearObjectStatusOnExit="" TriggerAttributeModifier="" AttributeModifierDuration="0s" ChainedButton="" RequireAndSpendTiberiumOnCaster="0" DisabledTypesToProcess="HELD" DisabledTypesToContinueSoundsFor="HELD" StartRechargeOnExit="False" GoIdleInStartPreparation="True" FaceTarget="True" UpgradeToGive="Upgrade_Pack" WeaponFlags="" />
      <ReplaceSelfUpgrade id="FC1FA9EE" RequiresAllTriggers="False" RequiresAllConflictingTriggers="False" Permanent="False" WaypointMode="False" WaypointModeTerminal="True" NewObjectUnpackTime="5s" DisabledDuringUnpack="True" CheckBuildAssistant="False">
        <TriggeredBy>Upgrade_Pack</TriggeredBy>
        <ReplacementTemplate>GDICrawlerMCV</ReplacementTemplate>
      </ReplaceSelfUpgrade>
      <StatusBitsUpgrade id="BA874D9A" RequiresAllTriggers="False" RequiresAllConflictingTriggers="False" Permanent="False" WaypointMode="False" WaypointModeTerminal="True" StatusToSet="RIDER1" StatusToClear="" ApplyToContained="False">
        <TriggeredBy>Upgrade_SonicRepulsionField</TriggeredBy>
      </StatusBitsUpgrade>
      <RepairUpdate id="41FDEB2A" RepopThreshold="0.2" HealAmountPerSecond="90" Toggleable="True" RepairableWhenDead="False">
        <PercentOfBuildCostToRebuildInfo Pristine="50%" Damaged="50%" ReallyDamaged="50%" Rubble="50%" />
        <SelfAudio SelfRepairFromDamageLoop="" SelfRepairFromRubbleLoop="" />
      </RepairUpdate>
      <EngineerContain id="E2BE8599" ReplaceWith="" NameOfVoiceToUseForFriendlyEnter="9D165EA1" NameOfVoiceToUseForHostileEnter="124DB476" FXForRepair="FX_Building_Repaired" FXForCapture="FX_Building_Captured" FXForCaptureAndReplace="FX_Building_Captured" EvaEventForRepair="BuildingRepaired" EvaEventForCapture="EnemyBuildingCaptured">
        <CanEnterFilter Rule="NONE" Relationship="" Alignment="NONE" Include="" Exclude="" StatusBitFlags="" RejectStatusBitFlags="" AcceptModelCondition="" RejectModelCondition="">
          <IncludeThing>GDIEngineer</IncludeThing>
          <IncludeThing>NODSaboteur</IncludeThing>
          <IncludeThing>AlienAssimilator</IncludeThing>
          <IncludeThing>SteelTalonsCombatEngineer</IncludeThing>
          <IncludeThing>ZOCOMEngineer</IncludeThing>
          <IncludeThing>BlackHandSaboteur</IncludeThing>
          <IncludeThing>MarkedOfKaneSaboteur</IncludeThing>
          <IncludeThing>Traveler59Assimilator</IncludeThing>
        </CanEnterFilter>
      </EngineerContain>
      <CreateObjectDie id="34FD1923" CreationList="OCL_GenericGDIBuildingDestruction" UpgradeForbidden="">
        <DieMuxData ExemptStatus="" RequiredStatus="" DamageAmountRequired="-1" MinKillerAngle="0.9999999d" MaxKillerAngle="-0.9999999d" DeathTypes="ALL" DeathTypesForbidden="SUICIDED DETONATED" />
      </CreateObjectDie>
      <CreateObjectDie id="4BF392A4" CreationList="OCL_ConyardGDIBuildingSuicide">
        <DieMuxData ExemptStatus="" RequiredStatus="" DamageAmountRequired="-1" MinKillerAngle="0.9999999d" MaxKillerAngle="-0.9999999d" DeathTypes="SUICIDED" DeathTypesForbidden="" />
      </CreateObjectDie>
    </Behaviors>
    <AI>
      <AIUpdate id="4B2D0C2A" AutoAcquireEnemiesWhenIdle="NO" StopChaseDistance="500" HoldGroundCloseRangeDistance="0" AILuaEventsList="BuildingPowerFunctions" MinCowerTime="0s" MaxCowerTime="0s" RampageTime="0s" BurningDeathTime="0s" TimeToEjectPassengersOnRampage="0" ComboLocomotorSet="NORMAL" ComboLocoAttackDistance="80" IdleTargetTime="0s" MaxCombineChildren="1" SpawnOffsetRadius="0" StandGround="False" CanAttackWhileContained="False" RampageRequiresAflame="False" FadeOnPortals="False" />
    </AI>
    <Body>
      <ActiveBody id="B313F576" MaxHealth="40000" MaxHealthDamaged="0" MaxHealthReallyDamaged="0" InitialHealth="-1" RecoveryTime="0" DodgePercent="0" EnteringDamagedTransitionTime="0s" EnteringReallyDamagedTransitionTime="0s" GrabFX="" GrabDamage="200" HealingBuffFX="" DamagedAttributeModifier="" ReallyDamagedAttributeModifier="" CheerRadius="200" BurningDeathFX="" SecondChanceUpgrade="" SecondChanceHeal="0" UseDefaultDamageSettings="True" RemoveUpgradesOnDeath="False" BurningDeathBehavior="False">
        <DamageTrigger HealthLevelBelowPercent="66" RemoveUpgrade="Upgrade_SonicRepulsionField" RemoveStatus="" />
      </ActiveBody>
    </Body>
    <ClientBehaviors>
      <AnimationSoundClientBehavior id="3706DCA5" MaxUpdateRangeCap="0">
        <Sound Sound="MultiSound:GDI_MCVUnpack1MS" Animation="GUMCVUPAK_AN" Frame="1" />
        <Sound Sound="AudioEvent:GDI_MCVUnpack2" Animation="GUMCVUPAK_AN" Frame="55" />
        <Sound Sound="AudioEvent:GDI_MCVUnpack3" Animation="GUMCVUPAK_AN" Frame="74" />
        <Sound Sound="AudioEvent:GDI_MCVUnpack4" Animation="GUMCVUPAK_AN" Frame="87" />
        <Sound Sound="AudioEvent:GDI_WarFactory_doorOpen" Animation="GSX_CRAWLERB_UT1_DOPN" Frame="1" />
      </AnimationSoundClientBehavior>
    </ClientBehaviors>
    <Geometry IsSmall="False">
      <Shape Type="BOX" ContactPointGeneration="NONE" MajorRadius="46" MinorRadius="35" Height="60" FrontAngle="0d" Active="True" UsedForHealthBox="True">
        <Offset x="9" y="0" z="0" />
      </Shape>
      <Shape Type="BOX" ContactPointGeneration="NONE" MajorRadius="17.5" MinorRadius="10" Height="54" FrontAngle="0d" Active="True" UsedForHealthBox="True">
        <Offset x="53" y="-32" z="0" />
      </Shape>
      <Shape Type="BOX" ContactPointGeneration="NONE" MajorRadius="11" MinorRadius="8.5" Height="48" FrontAngle="0d" Active="True" UsedForHealthBox="True">
        <Offset x="43" y="44" z="0" />
      </Shape>
      <ContactPoint>
        <Pos x="-30" y="34" z="30" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="55" y="35" z="0" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="55" y="-35" z="30" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="55" y="35" z="0" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="-30" y="-35" z="30" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="55" y="35" z="0" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="-30" y="-35" z="30" />
      </ContactPoint>
      <ContactPoint>
        <Pos x="-30" y="34" z="0" />
      </ContactPoint>
    </Geometry>
    <AudioArrayVoice>
      <AudioEntry EvaEvent="BuildingStolen" AudioType="voiceDefectingAway" />
      <AudioEntry EvaEvent="EnemyBuildingCaptured" AudioType="voiceDefectingTowards" />
      <AudioEntry Sound="GDICrawler_ConstructionYardSelect" AudioType="voiceSelect" />
    </AudioArrayVoice>
    <AudioArraySound>
      <AudioEntry Sound="MultiSound:HumanFaction_MediumBuilding_LightDamageMS" AudioType="soundOnDamaged" />
      <AudioEntry Sound="MultiSound:HumanFaction_MediumBuilding_HeavyDamageMS" AudioType="soundOnReallyDamaged" />
      <AudioEntry Sound="AudioEvent:GDI_BuildingPlaced" AudioType="soundUnderConstruction" />
    </AudioArraySound>
    <EvaEvents EvaEventSoldOwner="StructureSold" EvaEventDamagedOwner="StructureUnderAttack" EvaEventSecondDamageFarFromFirstScanRange="200" EvaEventSecondDamageFarFromFirstTimeoutMS="155" EvaEventRepairingOwner="StructureRepairing" EvaEnemyObjectSightedEvent="EnemyCampSighted" EvaEventAvailableForProduction="NewConstructionOptions" EvaEventProductionStarted="BuildingConstructionStarted" EvaEventProductionComplete="BuildingConstructionComplete" EvaEventPlacementFailed="StructurePlacementFailed" EvaEventCannotBuildDueToFullBuildQueue="StructureCannotBuildDueToFullBuildQueue" EvaEventBuildOnHold="BuildOnHold" EvaEventBuildCancelled="BuildCancelled" EvaEventManuallyPoweredOff="BuildingManuallyPoweredDown" EvaEventManuallyPoweredOn="BuildingManuallyPoweredUp" />
    <ShadowInfo Type="VOLUME" Texture="" AdditionalTexture="" SizeX="0" SizeY="0" OffsetX="0" OffsetY="0" OpacityStart="0" OpacityFadeInTime="0s" OpacityPeak="1" OpacityFadeOutTime="0s" OpacityEnd="0" MaxHeight="20" SunAngle="0" OverrideLODVisibility="False" UseHouseColor="False" IsRotatingWithObject="True" LocalPlayerOnly="False" />
    <VisionInfo VisionRange="100" ShroudClearingRange="500" VisionSide="100%" VisionRear="100%" VisionBonusTestRadius="100" VisionBonusTestSegments="8" VisionBonusPercentPerFoot="0%" MaxVisionBonusPercent="50%" MinVisionBonusPercent="-50%" />
    <ProjectedBuildabilityInfo Radius="360" BuildPlacementTypes="MAIN_STRUCTURE OTHER_STRUCTURE" StatusToReject="" ModelConditionsToReject="" />
  </GameObject>
</AssetDeclaration>

_________________

Back to top
View user's profile Send private message
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Thu Dec 12, 2019 1:12 pm    Post subject: Reply with quote  Mark this post and the followings unread


_________________

Back to top
View user's profile Send private message
pitAlex
Civilian


Joined: 11 Dec 2019

PostPosted: Fri Dec 13, 2019 7:04 am    Post subject: Reply with quote  Mark this post and the followings unread

Hi,

Thank you for your responses. The issue is with the model itself. Something I had to spent a lot of time to see and remember. The w3x skin binding in 3d max looks and acts fine with secondary bone linking but the game only works when there is just one bone link per vertice. So I need to redo the binding. I guess the importer is not that perfect. This is kinda discouraging as I had more models in mind I wanted to port over.

Back to top
View user's profile Send private message
pitAlex
Civilian


Joined: 11 Dec 2019

PostPosted: Tue Dec 17, 2019 4:17 pm    Post subject: Reply with quote  Mark this post and the followings unread

Hello,

I have an update. After countless tries I figure it out and managed to fix it. The issue is with the animation itself and the fact that the pivots which are animated are not declared with FirstFrame="0". This is the difference I saw between my animation and the rest. All start with 0, mine starts with different frames depending on the pivot.
Now my question is, why is 3d max doing that? What setting is there that corrects this? I had to do it manually and it was anything but easy.

Back to top
View user's profile Send private message
Madin
Plasma Trooper


Joined: 05 Apr 2009

PostPosted: Tue Dec 17, 2019 8:35 pm    Post subject: Reply with quote  Mark this post and the followings unread

pitAlex wrote:
Hello,

I have an update. After countless tries I figure it out and managed to fix it. The issue is with the animation itself and the fact that the pivots which are animated are not declared with FirstFrame="0". This is the difference I saw between my animation and the rest. All start with 0, mine starts with different frames depending on the pivot.
Now my question is, why is 3d max doing that? What setting is there that corrects this? I had to do it manually and it was anything but easy.

You have not shown your 3D max animation or export settings.
The C&C3 Mod SDK 'Sample Art' pack has many EALA 3D Max animations that you could use to see the settings that were used for in game animations.

_________________

Back to top
View user's profile Send private message
egozi44
Civilian


Joined: 29 Feb 2016

PostPosted: Fri Dec 27, 2019 7:05 pm    Post subject: Reply with quote  Mark this post and the followings unread

I'm not really a casual in ppm so there was a low chance for me to see your thread, but gee I wished I would've so I can tell you right away to look for the FirstFrames xP

KW have that issue and to this very day I dk why, It may be something that Breakaway games/EALA changed in the engine, it may be the different shaders it use, The KW SDK, or EA export that dk how to deal with units from SAGE2, beat me,

All I can suggest is for you to edit the w3x manually with a notepad after an export or use existing animation as base for the edit

Back to top
View user's profile Send private message ModDB Profile ID
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [12 Posts] Mark the topic unread ::  View previous topic :: View next topic
 
Share on TwitterShare on FacebookShare on Google+Share on DiggShare on RedditShare on PInterestShare on Del.icio.usShare on Stumble Upon
Quick Reply
Username:


If you are visually impaired or cannot otherwise answer the challenges below please contact the Administrator for help.


Write only two of the following words separated by a sharp: Brotherhood, unity, peace! 

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

[ Time: 0.3338s ][ Queries: 13 (0.0115s) ][ Debug on ]