Hallo Psychorapper,
schön, dass dir die Ostlinge gefallen. Die Einbindung ins Spiel ist eigentlich relativ einfach, kann aber Anfängern manchmal etwas schwer vorkommen. Generell sind drei Dinge nötig um das Model ingame zu haben.
Der erste Schritt ist die Anpassung der Codes. Dazu suchst du die ini der Ostlinge, die heißt
mordoreasterling.ini. Extrahiere die Datei mit Finalbig. In dieser ini findest du eine Sektion, die mit
Draw = W3DHordeModelDraw ModuleTag_01
beginnt und mit
;;--@END
endet. Diese sektion ersetzt du mit diesem hier. Die Animationen der Ostlinge sind wieder die alten und das Model ist richtig angegeben.
Draw = W3DHordeModelDraw ModuleTag_01
OkToChangeModelColor = Yes
StaticModelLODMode = Yes
; specify options for static LODs
LodOptions = LOW
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_LOW
MaxRandomTextures = MAX_RANDOM_TEXTURES_LOW
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_LOW
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_LOW
End
LodOptions = MEDIUM
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_MED
MaxRandomTextures = MAX_RANDOM_TEXTURES_MED
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_MED
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_MED
End
LodOptions = HIGH
AllowMultipleModels = ALLOW_MULTIPLE_MODELS_HIGH
MaxRandomTextures = MAX_RANDOM_TEXTURES_HIGH
MaxRandomAnimations = MAX_RANDOM_ANIMATIONS_HIGH
MaxAnimFrameDelta = MAX_ANIM_FRAME_DELTA_HIGH
End
DefaultModelConditionState
Model = mueastern_dvz
End
; ---------------------- IDLE ANIMATIONS ------------------------------
IdleAnimationState
Animation = IDLEA
AnimationName = MUEastern_SKL.MUEastern_IDLB
AnimationMode = LOOP
AnimationBlendTime = 10
AnimationSpeedFactorRange = 0.8 1.2
End
Flags = RANDOMSTART
StateName = Idle
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Planted" then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
if Prev == "Selected" then CurDrawableSetTransitionAnimState("TransitionFromAttention") end
EndScript
End
;------special pikeman porcupine formation animations-----------------------------------
AnimationState = ALTERNATE_FORMATION FIRING_OR_PREATTACK_A
Animation = ATKC
AnimationName = MUEastern_SKL.MUEastern_ATKA
AnimationMode = LOOP
UseWeaponTiming = Yes
End
End
AnimationState = ALTERNATE_FORMATION FIRING_OR_PREATTACK_A WEAPONSTATE_CLOSE_RANGE ;TEMP
Animation = ATKC
AnimationName = MUEastern_SKL.MUEastern_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
End
StateName = PikeUp
End
AnimationState = ALTERNATE_FORMATION MOVING BACKING_UP
Animation = Moving_Back
AnimationName = MUEastern_SKL.MUEastern_BAKA
AnimationMode = LOOP
End
End
AnimationState = ALTERNATE_FORMATION MOVING
Animation = ATKC
AnimationName = MUEastern_SKL.MUEastern_RUNA
AnimationMode = LOOP
End
End
AnimationState = ALTERNATE_FORMATION STUNNED_FLAILING
Animation = Flying_1
AnimationName = MUEastern_SKL.MUEastern_FLYA
AnimationMode = LOOP
End
Flags = MAINTAIN_FRAME_ACROSS_STATES2
End
AnimationState = ALTERNATE_FORMATION DYING SPLATTED
Animation = Splat
AnimationName = MUEastern_SKL.MUEastern_LNDA
AnimationMode = ONCE
End
End
AnimationState = ALTERNATE_FORMATION DYING AFLAME
Animation = Flaming_Death
AnimationName = MUEastern_SKL.MUEastern_MFDA
AnimationMode = ONCE
End
End
AnimationState = ALTERNATE_FORMATION DYING
Animation = Dying_1
AnimationName = MUEastern_SKL.MUEastern_DIEA
AnimationMode = ONCE
End
End
; --- stunned anims
AnimationState = ALTERNATE_FORMATION STUNNED_STANDING_UP
Animation = Standing_Back_Up
AnimationName = MUEastern_SKL.MUEastern_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
AnimationState = ALTERNATE_FORMATION STUNNED
Animation = Splattered_On_Ground
AnimationName = MUEastern_SKL.MUEastern_LNDA
AnimationMode = ONCE
End
End
AnimationState = ALTERNATE_FORMATION PORCUPINE
Animation = ATKC
AnimationName = MUEastern_SKL.MUEastern_IDLA
AnimationMode = LOOP
End
StateName = STATE_Planted
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev ~= "STATE_Planted" and Prev ~= "Trans_Up_To_Down" then CurDrawableSetTransitionAnimState("Trans_Up_To_Down") return end
EndScript
End
AnimationState = ALTERNATE_FORMATION
Animation = ATKC
AnimationName = MUEastern_SKL.MUEastern_IDLA
AnimationMode = LOOP
End
End
;--------------------normal animations---------------------------
;---------------------- THROWN ANIMATION -------------------------------
AnimationState = THROWN_PROJECTILE
Animation = THROWN
AnimationName = MUEastern_SKL.MUEastern_FLYA
AnimationMode = LOOP
End
End
;--------------------- Giant Bird Stuff ---------------------------------------
AnimationState = PASSENGER FREEFALL
Animation = Grabbed
AnimationName = MUEastern_SKL.MUEastern_FLLA
AnimationMode = LOOP
End
End
AnimationState = FREEFALL
Animation = Falling
AnimationName = MUEastern_SKL.MUEastern_FLYA
AnimationMode = LOOP
AnimationBlendTime = 10
AnimationSpeedFactorRange = 0.5 0.5
End
End
;------------------------ STUNNED ANIMATIONS ---------------------------
AnimationState = STUNNED_FLAILING
Animation = StunnedFlailing
AnimationName = MUEastern_SKL.MUEastern_FLYA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
;-------------------------- DYING ANIMS ---------------------------------
AnimationState = DYING SPLATTED
Animation = Splattered_On_Ground
AnimationName = MUEastern_SKL.MUEastern_LNDA
AnimationMode = ONCE
End
EnteringStateFX = FX_HaradrimHitGround
End
AnimationState = DYING AFLAME
Animation = Flaming_Death
AnimationName = MUEastern_SKL.MUEastern_DIEA
AnimationMode = ONCE
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_RIBS FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_RIBS FireSmall FollowBone:yes
End
AnimationState = DYING
Animation = Dying
AnimationName = MUEastern_SKL.MUEastern_DIEA
AnimationMode = ONCE
End
End
AnimationState = PARALYZED
Animation
AnimationName = MUEastern_SKL.MUEastern_IDLA
AnimationMode = LOOP
End
End
;------------------------ STUNNED ANIMATIONS ---------------------------
AnimationState = STUNNED_STANDING_UP
Animation = Standing_Back_Up
AnimationName = MUEastern_SKL.MUEastern_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
AnimationState = STUNNED
Animation = Stunned
AnimationName = MUEastern_SKL.MUEastern_LNDA
AnimationMode = ONCE
End
EnteringStateFX = FX_HaradrimHitGround
End
;---------------------- PASSENGER ANIMATION -----------------------------
AnimationState = PASSENGER
Animation = Grabbed
AnimationName = MUEastern_SKL.MUEastern_FLLA
AnimationMode = LOOP
End
End
;--------------------- MOVING ANIMATIONS -----------------------------------
AnimationState = MOVING FIRING_OR_PREATTACK_A
Animation = TrotAndFire
AnimationName = MUEastern_SKL.MUEastern_ATRA
AnimationMode = LOOP
End
Flags = RANDOMSTART
;ParticleSysBone = None InfantryDustTrails
End
AnimationState = MOVING CLIMBING BACKING_UP
Animation = ClimbingBackwards
AnimationName = MUEastern_SKL.MUEastern_CLMA
AnimationMode = LOOP_BACKWARDS
End
End
AnimationState = MOVING CLIMBING
Animation = Climbing
AnimationName = MUEastern_SKL.MUEastern_CLMA
AnimationMode = LOOP
End
End
AnimationState = MOVING PANICKING
ShareAnimation = Yes
Animation = PANICKING
AnimationName = MUEastern_SKL.MUEastern_MFDA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = MOVING BACKING_UP
ShareAnimation = Yes
Animation = BACKINUP
AnimationName = MUEastern_SKL.MUEastern_BAKA
AnimationMode = LOOP
End
;Flags = RANDOMSTART
End
AnimationState = MOVING AFLAME
ShareAnimation = Yes
Animation = MovingOnFire
AnimationName = MUEastern_SKL.MUEastern_RUNA
AnimationMode = LOOP
End
ParticleSysBone = BAT_HEAD FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_HEAD FireSmall FollowBone:yes
ParticleSysBone = BAT_RIBS FireBuildingLargeSmoke FollowBone:yes
ParticleSysBone = BAT_RIBS FireSmall FollowBone:yes
End
AnimationState = MOVING EMOTION_TERROR
ShareAnimation = Yes
Animation = Moving
AnimationName = MUEastern_SKL.MUEastern_RUNA
AnimationMode = LOOP
End
ParticleSysBone = None InfantryDustTrails
;Flags = RANDOMSTART
End
AnimationState = MOVING
ShareAnimation = Yes
Animation = Moving
AnimationName = MUEastern_SKL.MUEastern_RUNA
AnimationMode = LOOP
Distance = 50
End
ParticleSysBone = None InfantryDustTrails
;Flags = RANDOMSTART
End
;---------------------- ATTACKING ANIMATIONS ---------------------------
AnimationState = FIRING_OR_PREATTACK_A
Animation = ATTACKA
AnimationName = MUEastern_SKL.MUEastern_ATKA
AnimationMode = ONCE
End
End
AnimationState = EMOTION_UNCONTROLLABLY_AFRAID
ShareAnimation = Yes
Animation = Cower
AnimationName = MUEastern_SKL.MUEastern_FERA
AnimationMode = LOOP
End
End
;---------------------- EMOTION ANIMATIONS ---------------------------
AnimationState = EMOTION_ALERT EMOTION_AFRAID
ShareAnimation = Yes
Animation = Apprehensive
AnimationName = MUEastern_SKL.MUEastern_APPA
AnimationMode = LOOP ;Change this to ONCE if adding additional anims
End
Flags = RANDOMSTART
End
AnimationState = EMOTION_AFRAID
ShareAnimation = Yes
Animation = Cower
AnimationName = MUEastern_SKL.MUEastern_FERA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = BETWEEN_FIRING_SHOTS_A
Animation = between
AnimationName = MUEastern_SKL.MUEastern_IDLA
AnimationMode = LOOP
End
End
AnimationState = ATTACKING
Animation = AttackingReady
AnimationName = MUEastern_SKL.MUEastern_IDLA
AnimationMode = LOOP
End
End
AnimationState = EMOTION_TAUNTING
Animation = TNTA
AnimationName = MUEastern_SKL.MUEastern_TNTA
AnimationMode = ONCE
AnimationBlendTime = 15
AnimationSpeedFactorRange = 0.8 1.2
End
Animation = TNTB
AnimationName = MUEastern_SKL.MUEastern_TNTB
AnimationMode = ONCE
AnimationBlendTime = 15
AnimationSpeedFactorRange = 0.8 1.2
End
Flags = RANDOMSTART RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = EMOTION_POINTING
Animation = Pointing1
AnimationName = MUEastern_SKL.MUEastern_PNTA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = EMOTION_CELEBRATING
Animation = Celebrating
AnimationName = MUEastern_SKL.MUEastern_CHRA
AnimationMode = ONCE
End
Animation = CelebratingB
AnimationName = MUEastern_SKL.MUEastern_CHRB
AnimationMode = ONCE
End
Flags = RESTART_ANIM_WHEN_COMPLETE
End
AnimationState = EMOTION_ALERT
Animation = ALERT
AnimationName = MUEastern_SKL.MUEastern_IDLA
AnimationMode = LOOP
End
Flags = RANDOMSTART
End
AnimationState = WAR_CHANT
Animation = Chant
AnimationName = MUEastern_SKL.MUEastern_CHRB
AnimationMode = LOOP
End
End
;--------------------- HIT REACTIONS -----------------------------------
AnimationState = HIT_REACTION HIT_LEVEL_1
Animation = HitReaction1
AnimationName = MUEastern_SKL.MUEastern_HITA
AnimationMode = ONCE
End
End
AnimationState = HIT_REACTION HIT_LEVEL_2
Animation = HitReaction2
AnimationName = MUEastern_SKL.MUEastern_HITA
AnimationMode = ONCE
End
End
AnimationState = HIT_REACTION HIT_LEVEL_3
Animation = HitReaction3
AnimationName = MUEastern_SKL.MUEastern_HITA
AnimationMode = ONCE
End
End
AnimationState = SELECTED
ShareAnimation = Yes
Animation = AtAttention
AnimationName = MUEastern_SKL.MUEastern_ATNB
AnimationMode = LOOP
End
StateName = Selected
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Planted" then CurDrawableSetTransitionAnimState("Trans_Down_To_Up") return end
if Prev == "Idle" then CurDrawableSetTransitionAnimState("TransitionToAttention") end
EndScript
End
;-------------------------------------- TRANSITIONS ----------------------------------------------
TransitionState = Trans_Down_To_Up
Animation = Transition
AnimationName = MUEastern_SKL.MUEastern_PLTB
AnimationMode = ONCE
End
End
TransitionState = Trans_Up_To_Down
Animation = Transition
AnimationName = MUEastern_SKL.MUEastern_PLTA
AnimationMode = ONCE
End
End
TransitionState = TransitionToAttention
Animation = ToAttentionTransition
AnimationName = MUEastern_SKL.MUEastern_ATNA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.0 1.4
AnimationBlendTime = 10
End
End
TransitionState = TransitionFromAttention
Animation = FromAttentionTransition
AnimationName = MUEastern_SKL.MUEastern_ATNC
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.0 1.4
AnimationBlendTime = 10
End
End
End
;;--@END
Damit die Soldaten auch ein Geräusch erzeugen, wenn sie hinfallen muss noch eine weitere Behavior in der ini ersetzt werden. Diese trägt den Namen
ClientBehavior = AnimationSoundClientBeha vior ModuleTag_AnimAudioBehav ior Dieses Behavior ersetzt du hiermit.
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:BodyFallSoldier Animation:MUEastern_SKL.MUEastern_LNDA Frames:2
AnimationSound = Sound:BodyFallGeneric1 Animation:MUEastern_SKL.MUEastern_DIEA Frames:52
End
Den Coding-Teil haben wir damit schon abgeschlossen. Nun kommen wir zum Einbinden des Models samt Skin. Dazu brauchen wir eine neue Big-Datei, die man mit
Finalbig erstellt.
Zuvor erstellst du mehrere Ordner,deren Pfade dann so aussehen sollten:
data\ini\object\evilfaction\units\mordorund
art\compiledtextures\mu
art\w3d\muIn den Ordner Mordor speicherst du die veränderte
mordoreasterling.ini ab.
In den Ordner mu unter compiledtextures speicherst du die Textur
mueastern.dds und im Ordner mu unter w3d das Model
mueastern_dvz.w3dNun öffnest du Finalbig und gehst auf Datei=> Neu => Big Archive
Anschließend gehst du auf Bearbeiten => Ordner hinzufügen und wählst den Ordner
data aus. Das gleiche machst du mit dem Ordner
art und speicherst anschließend die Datei unter
_Easterling_mod ab.
Die Einbindung haben wir damit auch geschafft. Nun müssen wir das Model noch zu asset.dat hinzufügen. Dazu brauchen wir Sy's AssetBuilder und ElvenRider's AssetHelper.
Zuerst öffnest du den AssetBuilder und ziehst per Drag and Drop das Model
mueastern_dvz.w3d in das große weiße Fenster im AssetBuilder. Wähle rechts unten Create asset from files in list only und drücke auf Save. Speichere die Datei unter
assetostling im Hauptverzeichnis von SUMII (Niemals im Ordner von Aufstieg des Hexenkönigs) ab. Benenne die Original-asset in
assetoriginal um, erstelle davon eine Kopie und nenne sie wieder
asset.
Dann öffnest du den AssetHelper.
Drücke in der ersten Zeile auf die drei Punkte und öffne die
assetoriginal und drücke auf Import. Dann drückst du auf die drei Punkte in der zweiten Zeile öffnest die
assetostling und drückst wieder Import. Dann drückst du auf die drei Punkte neben Export und machst einen Doppelklick auf
asset, bestätige die Überschreibung und drücke dann auf Export. Fertig ist die neue asset.
Schiebe nun die Datei
_Easterling_mod ins Hauptverzeichnis von Aufstieg des Hexenkönigs und es sollte funktionieren. Sollte ich etwas vergessen haben möge mich jemand drauf ansprechen.
LG Radagast