AxlDave Posted June 12, 2015 Share Posted June 12, 2015 Brief intro: I wanted to make Titan armour the uber-est armour in the game by adding Ghost, Flight, and Grapple abilities. First stop - editing DCG.ini. Added Fly and Ghost to the abilities, Grapple to the properties. Upon testing, found that Ghost worked perfectly, nice. Fly worked functionally, but visually the soldier was running in mid-air. Not ideal, but workable. Grapple, however... well, that didn't even show up, despite being listed as an ability in the Unit Loadout screen. So, back to DCG.ini, this time adding Grapple to abilities as well as properties. It shows up twice in the Unit Loadout screen, but only once on the action buttons. But hey, at least it's there. Except that, when used, it shows the animation of the soldier firing their weapon, before they magically fly up to the grapple location, fail to initiate the "climbing up" animation, and spend the rest of the mission stuck in mid air. Needless to say, this problem required further investigation, which brought me to editing UPK files. Now, I think I have located what I need to change in the file Soldier_MaleTitan_SF.upk, CHH_Lv3MedMale_ANIMSET --> Meshes --> SM_Lv3MedMale --> SkeletalMeshSocket_47. begin object name=SkeletalMeshSocket_47 class=SkeletalMeshSocket SocketName=Inven_Grapple BoneName=RigLArmForearm RelativeLocation=(X=11.14450,Y=1.0,Z=-0.30728960) RelativeRotation=(Pitch=-2435,Yaw=15903,Roll=-30737) object end // Reference: SkeletalMeshSocket'CHH_Lv3MedMale_ANIMSET.Meshes.SM_Lv3MedMale.SkeletalMeshSocket_47' Now, my understanding tells me that, if I replace SkeletalMeshSocket_47 with the value from the Ghost armour, SkeletalMeshSocket_31, then that should enable the Titan armour to use the Grapple animation of the Ghost armour, right? Or do I have it all wrong? If so, corrections would be very welcome. The second problem is making the Titan armour appear to fly. I have found four SkeletalMeshSockets in the Archangel armour that seem to relate to a jetpack, but also a whole bunch of animations in CHH_Lv3MedMale_ANIMSET --> Anims which no doubt are necessary to the visual effect. begin object name=SkeletalMeshSocket_19 class=SkeletalMeshSocket SocketName=Jet_L BoneName=Jet_Nozzle_L_b RelativeRotation=(Pitch=32768,Yaw=0,Roll=0) object end // Reference: SkeletalMeshSocket'CHH_Lv3MedMale_ANIMSET.Meshes.SM_Lv3MedMaleJet.SkeletalMeshSocket_19' begin object name=SkeletalMeshSocket_20 class=SkeletalMeshSocket SocketName=Jet_R BoneName=Jet_Nozzle_R_b RelativeRotation=(Pitch=32768,Yaw=0,Roll=0) object end // Reference: SkeletalMeshSocket'CHH_Lv3MedMale_ANIMSET.Meshes.SM_Lv3MedMaleJet.SkeletalMeshSocket_20' begin object name=SkeletalMeshSocket_21 class=SkeletalMeshSocket SocketName=Stabilizer_L BoneName=PistonSleeve3_L_b RelativeLocation=(X=6.50,Y=7.50,Z=0.0) RelativeRotation=(Pitch=0,Yaw=21845,Roll=0) object end // Reference: SkeletalMeshSocket'CHH_Lv3MedMale_ANIMSET.Meshes.SM_Lv3MedMaleJet.SkeletalMeshSocket_21' begin object name=SkeletalMeshSocket_22 class=SkeletalMeshSocket SocketName=Stabilizer_R BoneName=PistonSleeve3_R_b RelativeLocation=(X=6.50,Y=7.50,Z=0.0) RelativeRotation=(Pitch=0,Yaw=21845,Roll=0) object end // Reference: SkeletalMeshSocket'CHH_Lv3MedMale_ANIMSET.Meshes.SM_Lv3MedMaleJet.SkeletalMeshSocket_22' begin object name=AnimSequence class=AnimSequence SequenceName=Tentpole_Jetpack_Kit Notifies=/* Array type was not detected. */ SequenceLength=16.133330 NumFrames=484 TranslationCompressionFormat=AnimationCompressionFormat.ACF_Identity RotationCompressionFormat=AnimationCompressionFormat.ACF_Identity KeyEncodingFormat=AnimationKeyFormat.AKF_PerTrackCompression CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence' begin object name=AnimSequence_1 class=AnimSequence SequenceName=MV_JetClose Notifies=/* Array type was not detected. */ SequenceLength=1.3666670 NumFrames=41 bNoLoopingInterpolation=true RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_1' begin object name=AnimSequence_2 class=AnimSequence SequenceName=MV_JetClosedState Notifies=/* Array type was not detected. */ SequenceLength=0.066666670 NumFrames=2 RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_2' begin object name=AnimSequence_3 class=AnimSequence SequenceName=MV_JetOpen Notifies=/* Array type was not detected. */ SequenceLength=1.8666670 NumFrames=56 bNoLoopingInterpolation=true RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_3' begin object name=AnimSequence_4 class=AnimSequence SequenceName=MV_JetOpenState Notifies=/* Array type was not detected. */ SequenceLength=0.066666670 NumFrames=2 RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_4' begin object name=AnimSequence_5 class=AnimSequence SequenceName=ADD_MV_JetClosedState Notifies=/* Array type was not detected. */ SequenceLength=0.066666670 NumFrames=2 bIsAdditive=true RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_5' begin object name=AnimSequence_6 class=AnimSequence SequenceName=ADD_MV_JetClose Notifies=/* Array type was not detected. */ SequenceLength=1.3666670 NumFrames=41 bIsAdditive=true RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_6' begin object name=AnimSequence_7 class=AnimSequence SequenceName=ADD_MV_JetOpen Notifies=/* Array type was not detected. */ SequenceLength=1.8666670 NumFrames=56 bIsAdditive=true RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_7' begin object name=AnimSequence_8 class=AnimSequence SequenceName=ADD_MV_JetOpenState Notifies=/* Array type was not detected. */ SequenceLength=0.066666670 NumFrames=2 bIsAdditive=true RotationCompressionFormat=AnimationCompressionFormat.ACF_Float96NoW KeyEncodingFormat=AnimationKeyFormat.AKF_VariableKeyLerp CompressedTrackOffsets=/* Array type was not detected. */ object end // Reference: AnimSequence'CHH_Lv3MedMale_ANIMSET.Anims.AS_Jetpack.AnimSequence_8' Any ideas what to do there? I'm not entirely sure how to add an entirely new branch using only a hex editor... Link to comment Share on other sites More sharing options...
LiQuiD911 Posted June 14, 2015 Share Posted June 14, 2015 I'm not sure but I suspect there is serialized animation data in those UPKs.. Link to comment Share on other sites More sharing options...
AxlDave Posted June 15, 2015 Author Share Posted June 15, 2015 I have no idea what that means... could you elaborate? Is it bad news? It sounds like it's bad news. Link to comment Share on other sites More sharing options...
Recommended Posts