Results 1 to 9 of 9

Thread: Elephant Based Berserkers

  1. #1
    Medusa0's Avatar Artifex
    Join Date
    Apr 2009
    Location
    Nowhere
    Posts
    379

    Default Elephant Based Berserkers

    As we know from this old thread, infantry Berserkers are broken in M2TW. However, it is possible to create a close approximation of them by disguising an elephant unit, keeping their unbreakable "heroic" morale stat as well as their ability to launch infantries with a few alterations - steps to reproduce as below (Caution, not for the faint of heart, please read Briarius' tutorial on how to work with animations first before attempting):

    Requirements: Caliban's M2TW Animations

    1. Download M2TW_Berserker_Resource.zip, and place the E_Berserker folder inside Caliban's animation folder. Place the models and textures into the unit_models folder.

    2. Create a new entry in descr_skeleton.txt:
    Spoiler Alert, click show to read: 
    Code:
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    ; Cavalry based berserker
    
    type        fs_2handed_berserker        ;Do not scale it pass 1.1 or there will be model distortions!
    
    scale        1.1
    
    anim        default                data/animations/E_Berserker/E_Berserker_basepose.cas
    
    anim        stand_a_idle            data/animations/E_Berserker/E_Berserker_ready_idle.cas                    -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_idle.evt
    anim        stand_a_to_walk            data/animations/E_Berserker/E_Berserker_ready_to_advance.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_to_advance.evt
    anim        stand_a_to_run            data/animations/E_Berserker/E_Berserker_ready_to_combat_jog.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_to_combat_jog.evt
    anim        stand_a_to_charge        data/animations/E_Berserker/E_Berserker_ready_to_charge.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_to_charge.evt
    
    anim        stand_a_lf_idle_1        data/animations/E_Berserker/E_Berserker_ready_lf_high_morale_1.cas        -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_lf_high_morale_1.evt
    anim        stand_a_lf_idle_2        data/animations/E_Berserker/E_Berserker_ready_lf_high_morale_2.cas        -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_lf_high_morale_2.evt
    anim        stand_a_lf_idle_3        data/animations/E_Berserker/E_Berserker_ready_lf_high_morale_3.cas        -fr        -evt:data/animations/E_Berserker/E_Berserker_ready_lf_high_morale_3.evt
    
    ;;;Turn, no 15 degrees versions available
    
    anim        stand_a_turn_45_cw_1        data/animations/E_Berserker/E_Berserker_ready_turn_45cw.cas        -mintd:10    -maxtd:68        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_turn_45CW.evt
    anim        stand_a_turn_45_ccw_1        data/animations/E_Berserker/E_Berserker_ready_turn_45ccw.cas    -mintd:10    -maxtd:68        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_turn_45CCW.evt
    anim        stand_a_turn_90_cw_1        data/animations/E_Berserker/E_Berserker_ready_turn_90cw.cas        -mintd:67    -maxtd:115        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_turn_90CW.evt
    anim        stand_a_turn_90_ccw_1        data/animations/E_Berserker/E_Berserker_ready_turn_90ccw.cas    -mintd:67    -maxtd:115        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_turn_90CCW.evt
    
    anim        walk                data/animations/E_Berserker/E_Berserker_advance.cas                        -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_advance.evt
    anim        walk_to_run            data/animations/E_Berserker/E_Berserker_advance_to_combat_jog.cas        -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_advance_to_combat_jog.evt
    anim        walk_to_stand_a            data/animations/E_Berserker/E_Berserker_advance_to_ready.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_advance_to_ready.evt
    
    anim        run                data/animations/E_Berserker/E_Berserker_combat_jog.cas                    -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_combat_jog.evt
    anim        run_to_walk            data/animations/E_Berserker/E_Berserker_combat_jog_to_advance.cas        -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_combat_jog_to_advance.evt
    anim        run_to_stand_a            data/animations/E_Berserker/E_Berserker_combat_jog_to_ready.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_combat_jog_to_ready.evt
    anim        run_to_charge            data/animations/E_Berserker/E_Berserker_run_to_charge.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_run_to_charge.evt
    
    anim        charge                data/animations/E_Berserker/E_Berserker_charge.cas                        -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_charge.evt
    anim        charge_attack            data/animations/E_Berserker/E_Berserker_charge_attack.cas                            -fr    -if:14  -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_charge_attack.evt
    
    anim        attack_mid_low_1        data/animations/E_Berserker/E_Berserker_attack_centre_mid_d_slashrl_success.cas                        -fr    -if:17 -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_attack_centre_mid_d_slashrl_success.evt
    anim        attack_mid_centre_1        data/animations/E_Berserker/E_Berserker_attack_slash_mid_success.cas                    -fr    -if:19    -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_attack_centre_mid_d_slashlr_success.evt
    anim        attack_mid_high_1        data/animations/E_Berserker/E_Berserker_attack_2_hit_A_success.cas                        -fr    -if:26 -evt:data/animations/new_2h_axe_halberd/AxeHalberd_attack_2_hit_A_success.evt
    
    ;;;Death, by default has the first two only (seems these are reversed)
    
    anim        die_forward_1            data/animations/E_Berserker/E_Berserker_die_forward_2.cas                        -fr        -evt:data/animations/MTW2_Mace/MTW2_Mace_die_forward_1.evt
    anim        die_backward_1            data/animations/E_Berserker/E_Berserker_die_backward_2.cas                        -fr        -evt:data/animations/MTW2_Mace/MTW2_Mace_die_backward_1.evt
    
    anim        idle_to_swim            data/animations/E_Berserker/E_Berserker_swim_idle_to_swim.cas                                            -fr
    anim        swim_to_idle            data/animations/E_Berserker/E_Berserker_swim_to_Stand_A.cas                            -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim_idle.evt
    anim        swim_idle            data/animations/E_Berserker/E_Berserker_swim_idle.cas                                -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim_idle.evt
    anim        swim                data/animations/E_Berserker/E_Berserker_swim.cas                                    -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim.evt
    anim        swim_attack            data/animations/E_Berserker/E_Berserker_swim_attack1.cas                            -fr    -id 0.03, 0.0, 1.11    -if:15
    
    ;;;Extras from horses
    
    anim        die_forward_2            data/animations/E_Berserker/E_Berserker_die_forward_1.cas                            -fr    -evt:data/animations/MTW2_Mace/MTW2_Mace_die_forward_2.evt
    anim        die_backward_2            data/animations/E_Berserker/E_Berserker_die_backward_1.cas                            -fr    -evt:data/animations/MTW2_Mace/MTW2_Mace_die_backward_2.evt
    
    anim        die_to_back_right_1        data/animations/E_Berserker/E_Berserker_die_to_back_right_1.cas                    -fr        -evt:data/animations/MTW2_Mace/MTW2_Mace_die_to_back_right_1.evt
    anim        die_to_back_left_1        data/animations/E_Berserker/E_Berserker_die_to_back_left_1.cas                    -fr        -evt:data/animations/MTW2_Mace/MTW2_Mace_die_to_back_left_1.evt
    anim        die_falling_cycle        data/animations/E_Berserker/E_Berserker_die_flailing_cycle.cas                        -evt:data/animations/MTW2_Mace/MTW2_Mace_die_flailing_cycle.evt
    anim        die_falling_end            data/animations/E_Berserker/E_Berserker_die_flailing_cycle_end.cas                    -fr    -evt:data/animations/MTW2_Mace/MTW2_Mace_die_flailing_cycle_end.evt
    
    anim        stand_a_hf_idle_1        data/animations/E_Berserker/E_Berserker_ready_hf_idle_1.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_hf_idle_1.evt
    anim        stand_a_hf_idle_2        data/animations/E_Berserker/E_Berserker_ready_hf_idle_2.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_hf_idle_2.evt
    anim        stand_a_hf_idle_3        data/animations/E_Berserker/E_Berserker_ready_hf_idle_3.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_ready_hf_idle_3.evt
    
    anim        shuffle_forward            data/animations/E_Berserker/E_Berserker_shuffle_forwards.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_shuffle_forwards.evt
    anim        shuffle_backward        data/animations/E_Berserker/E_Berserker_shuffle_backwards.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_shuffle_backwards.evt
    anim        shuffle_left            data/animations/E_Berserker/E_Berserker_shuffle_left.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_shuffle_left.evt
    anim        shuffle_right            data/animations/E_Berserker/E_Berserker_shuffle_right.cas                -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_shuffle_right.evt
    
    anim        jump                data/animations/E_Berserker/E_Berserker_Charge_Jump_Attack.cas                        -fr    -evt:data/animations/New_2H_Axe_Halberd/2H_Axe_charge_attack.evt
    anim        refuse                data/animations/E_Berserker/E_Berserker_knockback_move_from_front.cas    -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_knockback_move_from_front.evt
    
    anim        die_refusing            data/animations/E_Berserker/E_Berserker_knockdown_launch.cas            -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_knockdown_launch.evt
    anim        die_galloping            data/animations/E_Berserker/E_Berserker_knockdown_forward_launch.cas    -fr        -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_knockdown_forward_launch.evt
    
    anim        swim_shuffle_forward        data/animations/E_Berserker/E_Berserker_swim_shuffle_forward.cas                -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim_shuffle_forward.evt
    anim        swim_shuffle_backward        data/animations/E_Berserker/E_Berserker_swim_shuffle_backward.cas                -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim_shuffle_forward.evt
    anim        swim_shuffle_left        data/animations/E_Berserker/E_Berserker_swim_shuffle_left.cas                    -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim_shuffle_left.evt
    anim        swim_shuffle_right        data/animations/E_Berserker/E_Berserker_swim_shuffle_right.cas                    -fr        -evt:data/animations/mtw2_knifeman/MTW2_Knifeman_swim_shuffle_right.evt
    
    ;;;Extra attack animations
    
    anim        attack_mid_low_2        data/animations/E_Berserker/E_Berserker_attack_centre_mid_c_slashlr_v0_success.cas                        -fr    -if:38    -evt:data/animations/MTW2_2H_Axe/MTW2_2H_Axe_attack_centre_mid_c_slashlr_v0_success.evt
    anim        attack_mid_centre_2        data/animations/E_Berserker/E_Berserker_attack_2_hit_B_success.cas                    -fr    -if:29    -evt:data/animations/new_2h_axe_halberd/AxeHalberd_attack_2_hit_B_success.evt
    anim        attack_mid_high_2        data/animations/E_Berserker/E_Berserker_attack_centre_Hi_Stab_Success.cas                        -fr    -if:17 -evt:data/animations/MTW2_2HSwordsman/MTW2_2HSwordsman_at_mid_c_stab_v1_s0_success.evt
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    type        fs_semi_fast_2handed_berserker
    parent        fs_2handed_berserker
    
    anim        run                                            data/animations/E_Berserker/E_Berserker_run_slow.cas                    -fr                     -evt:data/animations/E_Berserker/E_Berserker_run.evt
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    type        fs_fast_2handed_berserker
    parent        fs_2handed_berserker
    
    anim        run                                            data/animations/E_Berserker/E_Berserker_run.cas                    -fr                     -evt:data/animations/E_Berserker/E_Berserker_run.evt
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    type        fs_very_fast_2handed_berserker
    parent        fs_2handed_berserker
    
    anim        run                                            data/animations/E_Berserker/E_Berserker_run_fast.cas                    -fr                     -evt:data/animations/E_Berserker/E_Berserker_run.evt
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    You must regenerate the .dat and .idx files in the animations folder after this step.


    3. Add the model entry to use the skeleton in battle_models.modeldb. This uses the model in the attachment below but will also work with any other infantry models without weapon bone attachments:

    Spoiler Alert, click show to read: 
    Code:
    10 berserkers 
    1 1 
    47 unit_models/_Units/Indian/berserker_e_lod0.mesh 6400 
    1 
    4 merc 
    66 unit_models/_Units/Indian/textures/indian_light_apachean_w.texture 
    62 unit_models/_Units/Indian/textures/indian_light_normal.texture 0 
    1 
    4 merc 
    67 unit_models/AttachmentSets/Final European Light_russia_diff.texture 
    67 unit_models/AttachmentSets/Final European Light_russia_norm.texture 0 
    1 
    8 elephant 
    20 fs_2handed_berserker 0 
    0 
    0 
    -1 0 0 0 0 0 0
    Remember to add 1 to ther serialisation on the top of the file!

    You may also utilise the blank texture for an invisible crew model, but using the default elephant_crew for debugging is fine for now.


    3. Add the mount entry to descr_mount.txt
    Spoiler Alert, click show to read: 
    Code:
    type                berserker mount
    class                elephant
    model                berserkers
    radius                0.6
    x_radius            0.6
    y_offset            0.0
    height                1.9
    mass                15
    banner_height            0
    bouyancy_offset            0.0
    water_trail_effect        camel_water_trail
    root_node_height        0.0
    attack_delay            1
    dead_radius            0
    tusk_z                0.6
    tusk_radius            1.2
    riders                2
    rider_offset        0.0, 0.0, 0.0
    rider_offset        0.0, 0.9, -0.3
    Values may be tweaked as desired, the higher the mass, the easier it is to launch opponents. Since this is an elephant unit, it can hit multiple targets in a single swing.


    4. Add the unit entry to the export_descr_unit.txt:

    Spoiler Alert, click show to read: 
    Code:
    type             cheat oliphants
    dictionary       Berserkers      ; Berserkers
    category         cavalry
    class            heavy
    voice_type       Light
    banner faction   main_cavalry
    banner holy      crusade_cavalry
    soldier          Elephant_Crew, 12, 12, 1
    mount            berserker mount
    mount_effect     horse -2, camel -2, elephant +2
    attributes       sea_faring, can_withdraw, very_hardy, frighten_foot, warcry, mercenary_unit
    move_speed_mod      1.3
    formation        2.4, 2.4, 3.6, 3.6, 2, square
    stat_health      1, 3
    stat_pri         0, 0, no, 0, 0, no, melee_simple, blunt, none, 25, 1
    ;stat_pri_ex      0, 0, 0
    stat_pri_attr    no
    stat_sec         20, 10, no, 0, 0, melee, melee_simple, blunt, axe, 0, 1
    ;stat_sec_ex      0, 0, 0
    stat_sec_attr    area, launching
    stat_pri_armour  0, 1, 0, flesh
    ;stat_armour_ex   0, 0, 0, 0, 5, 0, 0, flesh
    stat_sec_armour  2, 10, flesh
    stat_heat        0
    stat_ground      2, 0, 0, 0
    stat_mental      16, berserker, untrained
    stat_charge_dist 45
    stat_fire_delay  0
    stat_food        60, 300
    stat_cost        1, 900, 165, 55, 135, 900, 6, 30
    armour_ug_levels 0
    armour_ug_models Elephant_Crew
    ownership        slave
    era 0            slave
    ;unit_info        12, 0, 5
    recruit_priority_offset    0
    The warcry ability allows the player force the unit to "go beserk" on demand. These are just the recommended stats, and should be adjusted accordingly. With these stats they are glass cannons.


    The reproduction does have several differences from the original:

    1. Since it is a cavalry unit, it cannot scale ladders and battlements.

    2. No differentiation between "idle" and "combat ready" states, so the unit always looks like it's in combat.

    3. Limited attack animations, currently I have not found any other ways to play anything other than the spin animation. The "high" animation only plays when they fight other elephants.

    4. Spin attack damage ticks only once as the animation finishes playing, unlike in RTW/BI where it ticks 3 times.

    5. No blocking animations.

    6. Death animations are bugged, dying forward and backward are reversed.


    With all that said, comments and feedback are welcome!


    (Yes, I know that the attached model is based on a Native American model, but this is the closest I can get to the RTW Berserker in a short notice)


    Edit 3: Fixed all crash-related bugs! Replaced attachment with working ones.
    Attached Thumbnails Attached Thumbnails Berserker_Experiment.jpg  
    Attached Files Attached Files
    Last edited by Medusa0; June 24, 2016 at 05:53 PM.

  2. #2
    BM309K58SMERCH's Avatar Centenarius
    Join Date
    Feb 2012
    Location
    Gensokyo
    Posts
    879

    Default Re: Elephant Based Berserkers

    I have been trying this for the last 6 hours to no avail, I have never ever been this frustrated before.

    I installed the models and copied the entries (in addition to making my own), and every time I mouse-over the unit card to add to army the game crashes without any explanation in the log. I tried moving the unit to other factions, but it doesn't fix anything. So close yet so far away...

    If you pull this off on a wide scale then you deserve an Artifex promotion.

  3. #3
    Medusa0's Avatar Artifex
    Join Date
    Apr 2009
    Location
    Nowhere
    Posts
    379

    Default Re: Elephant Based Berserkers

    Quote Originally Posted by BM309K58SMERCH View Post
    I installed the models and copied the entries (in addition to making my own), and every time I mouse-over the unit card to add to army the game crashes without any explanation in the log. I tried moving the unit to other factions, but it doesn't fix anything. So close yet so far away...
    It sounds like the issue in this thread.

    Chances are that my animation folder was so heavily modified that the skeleton information above are unusable, if so then I apologise. I will walk you through the animation parts to see if it will fix your issues:

    (Okay, I have fixed the model, it now uses a custom animation set, so this post is going to be here just for people to see the R&D process)
    Spoiler Alert, click show to read: 

    1. Clone the entire section of fs_african_elephant in descr_skeleton.txt and change its name to what you want to use.


    2. Find the infantry skeleton type that you wish to derive the fake infantry from, in my case it is MTW2_2H_Axe, copy it and set it aside in another open text document (I use notepad). Note that if you are using the descr_skeleton.txt modified by SignifierOne, there will be an extra "MTW2_Footman_Abstract" type parent entry that may contain the needed anim type entries if it is not defined in the "child" used.


    3. In the cloned fs_african_elephant skeleton type, replace the .cas (animation file reference), -if (impact frame), and -evt (audio event file reference) with the appropriate lines from the infantry skeleton. As the name of the anim type is different for mounts, some of them require some interpretation, such as:

    "attack_mid_low_1" is bestowed the .cas reference, impact frame, and evt reference from "eager_attack_centre_mid_c_slashrl_s0_success" instead, since the infantry skeleton has no such entries. Mounts actually use the old RTW style anim type naming conventions. As mounts do not differentiate between idle and in-combat states, I opted to use the combat states (ready, combat_jog, advance) instead to make them look better when they are in the fray.

    The important part here is that consistency is a must! The only animation in the vanilla elephant skeleton entry that has an "-id:" (impact delta for where the damage collision occurs) is the "swim_attack" entry, so there should be no other impact deltas for this skeleton when you are done! I suspect this has something to do with how the actual damage radius is defined in descr_mount by the tusk radius, so anything there may cause a conflict.


    4. Create the BMDB entry to use the new skeleton type.

    5. Onto descr_mount.txt - copy the elephant mount and hook it up to the BMDB entry, we can tweak it later when it does not crash.


    Please let me know how it goes!
    Attached Thumbnails Attached Thumbnails 20160620145538_1.jpg   20160620145430_1.jpg   20160620150605_1.jpg  
    Last edited by Medusa0; June 24, 2016 at 05:42 PM. Reason: I have finally fixed all crashes! Check OP for the updated resources zip file.

  4. #4
    Ngugi's Avatar TATW & Albion Local Mod
    Join Date
    Jan 2011
    Location
    Sweden
    Posts
    10,687

    Default Re: Elephant Based Berserkers

    Most interesting Medusa0, though I am curious if there's a the technical limitation behind to apply the soldier animations to an elephant, instead to just an infantry soldier?
    Adding great mass to an infantry unit, add area & launching as attack attributes and locking morale should cover for many aspects to simulate for a berserker proper, I am thinking.

    Kingdom of Lindon preview video out





    DCI: Last Alliance
    - WIP Second Age mod | DCI: Tôl Acharn - mighty Dúnedain Counter Invasions |
    Additional Mercenary Minimod - more mercs; for TATW and DCI | Family Tree minimods - lore improvements | Remade Event Pictures - enhance cultures trough images |
    Favorite TATW compilation: Withwnars Submod Collection
    Patron of Mank, Kiliç Alì, FireFreak111, MIKEGOLF & Arachir Galudirithon, Earl of Memory

  5. #5
    Medusa0's Avatar Artifex
    Join Date
    Apr 2009
    Location
    Nowhere
    Posts
    379

    Default Re: Elephant Based Berserkers

    Quote Originally Posted by Ngugi View Post
    Most interesting Medusa0, though I am curious if there's a the technical limitation behind to apply the soldier animations to an elephant, instead to just an infantry soldier?
    Adding great mass to an infantry unit, add area & launching as attack attributes and locking morale should cover for many aspects to simulate for a berserker proper, I am thinking.
    Indeed there is are several limitations to the fake elephant infantries! Even once we fix the crash associated with the missing "bone_E_platform" (I am playing on a Surface Pro 3 Tablet with Windows 10, so this fix is required). This berserker shares all the traits with elephants, including but not limited to the ability to remove stakes (without losing any hitpoints) and being generally unresponsive to commands.

    The M2TW engine has a more rigid physics system than RTW, evident by the fact that we infantry do not bounce around at all when hit by heavy projectiles, cavalries, or even infantry melee attacks - forward momentum seem to be removed completely. The "launching" attribute appears to be depreciated, and the ability to fling infantries is solely dependent on the projectile/mount/infantry's mass value. "Area attack" effect is not something I have tested thoroughly on infantries, so I cannot comment on that.

    What we really lose out on using lock_morale instead of the berserker morale are its hard-coded effects:
    1. Losing control of the unit (not unlike running amok, but always towards the enemy).
    2. Berserkers instantly switches target and lock-on to a non-routing unit.
    3. Continued "warcry" sound effects as the unit runs around (Set this by restoring the war_cry section in the descr_sounds_units_taunt.txt), great for atmospheres if done well.
    4. Like it is in RTW, berserkers may also snap out of their berserk state if they take huge damages from projectile weapons.
    5. Toggle-able berserk by hitting the warcry ability, though this has an additional interaction now, as covered below.

    6. The berserk ability can now be affected by the morale modifying effects set in descr_area_effects.xml, and it is actually possible to block the berserk ability with "nausea" type effects. You may try this with cow carcasses against berserkers, that will make them snap out of berserking instantly as well as stopping them from going berserk for the duration of the effect, making it possible to route berserkers. Remember that silly Hornet Thrower from the Americas campaign? It now has a use as an anti-berserker unit!

    In any case, it is really up to the modder to weigh the pros and cons between the two, but true berserkers do indeed have something to offer for tactical rock-paper-scissors as well as role-playing.

    Now, if only I can make GOAT convert dog and pig animations without crashing, and we will be golden...

  6. #6

    Default Re: Elephant Based Berserkers

    Do I have to use an specific animation to make the bersis work or can I use any kind of attack animation (and do the whole stuff from the first post with it)? Because I was thinking about using that tech for one of the mods I play. Unfortunately the unit I want to use it on is not human, so I think that animation will not work.

  7. #7
    Medusa0's Avatar Artifex
    Join Date
    Apr 2009
    Location
    Nowhere
    Posts
    379

    Default Re: Elephant Based Berserkers

    Can you be more specific? Any type of animation will work if they can be converted by GOAT.

  8. #8

    Default Re: Elephant Based Berserkers

    Well, I just took an soldier from Hyrule Total war and tried to apply it to him. While keeping his animation. That worked surprisingly nice ... only that they now do no longer attack in melee combat. As I dont have to much knowledge about animations which lines in your example are referring to the melee attack? And would it be enough to just change the linked files to the existing attack animations?

  9. #9

    Default Re: Elephant Based Berserkers

    I am trying to do this but with vanilla dismounted English knights instead of berserkers. I ran into the problem where the game crashes when you hover over the unit card on custom battle, then I read your instructions more carefully and saw: "You must regenerate the .dat and .idx files in the animations folder after this step."

    I'm having some trouble with this. I followed the steps in the tutorial section here but I get an instant CTD with no error log.

    Any help is really appreciated.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •