1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. Weave light to take you to your highest hopes - the 6th Special Effect Contest is here!
    Dismiss Notice
  4. Lead your forces to battle in the 15th Techtree Contest. The call is yours, commander!
    Dismiss Notice
  5. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Geosetanims - fix those randomly appearing corpses!

Discussion in '3D Modeling Tutorials' started by Horn, Jul 10, 2004.

  1. Horn

    Horn

    Joined:
    Mar 31, 2004
    Messages:
    938
    Resources:
    20
    Models:
    14
    Icons:
    1
    Skins:
    3
    Tutorials:
    2
    Resources:
    20
    This tutorial assumes you know how to convert an mdx into mdl, and have transferred animations across models, else you cant actually get to this error :eek:

    Scenario:
    You transferred some animations from one unit to another, probably using Oinkerwinkle's animation transfer program. However, corpses, blood, or some form of weird object is appearing at random points.

    Cause:
    The source and destination models have different animation times. Where one unit dies at a point, the other units walk animation is played. Therefore, your destination model's corpse appears on the walk animation.

    Solution: You need to edit the Geosetanim for the offending mesh.

    Example/Guide:
    Near the start of your mdl file is a section called 'Sequences'. This is a list of animations for the model, and their start/stop times. For this example, I'll use the Acolyte:

    Code (Text):

    Sequences 13 {
        Anim "Stand - 1" {
            Interval { 167, 1667 },
            MinimumExtent { -19.5992, -33.1796, -0.28233 },
            MaximumExtent { 52.4008, 36.7176, 99.0722 },
            BoundsRadius 62.4483,
        }
     

    Next, familarise yourself with a Geosetanim. These list a number of animation times, followed by a number, representing whether that geoset appears or not, or sometimes even at a certain % transparency.

    Code (Text):

    GeosetAnim {
        Alpha 3 { [b]<-- number is total anim times listed below[/b]
            DontInterp,
            26667: 1, [b]<-- animation times, 1=visible, 0=invisible[/b]
            86567: 0,
            87333: 0,
        }
        GeosetId 0, [b]<-- relates to Geoset ID[/b]
    }
     
    Using this information, you can begin to hunt your corpse error.

    First you need to locate which geoset is your corpse. Load up your model in the Warcraft Image Viewer II. Keep it at animation 'none' so that you can see the corpse.

    Next, you need to find which mesh is the corpse, by loading the tree view in viewer. Deselect the meshes (the tick boxes) one at a time until you find which mesh it is. If the corpse disappears when you uncheck a box, that mesh is obviously the corpse. Make a note of the mesh number. The acolyte's corpse is mesh 4.

    In Mdl, your Geoset will be 1 number less than in the viewer (as code runs from 0, rather than from 1). This is the Geoset's ID. 3 for the Acolyte.

    Now you need to find at which point your unit is dead. Go to sequences and find Decay Flesh and Decay Bone. Note the start times down.

    Code (Text):
    Anim "Decay Flesh" {
            Interval { [b]26667[/b], 86667 },
       
    Then open your mdl file, and search (Control+F) for GeosetAnim. Find the Geosetanim that has your Geoset ID. This is the Geosetanim you will be editing.

    You need to set-up the anim times for decay flesh and decay bone to show the corpse. So for decay bone, enter/find the start time and change the number after the colon to 1. Then, for decay flesh, enter/find a number shortly after the start time (to allow a short delay), set to 1. Make sure all other times are set to 0 so that the corpse does not appear.

    IMPORTANT
    As you transferred animations from a unit, your geosetanim key times will be wrong. You need to copy the list of keytimes from the source animation model, to use for the geosetanims on the new model.