Skip to content

Keyframer Classes

widberg edited this page Mar 26, 2023 · 46 revisions

Float Keyframers

struct KeyframerFloat_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        float a;
        float b;
        float c;
     }> data;
};

struct KeyframerFloatComp_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        std::uint16_t a;
        std::uint16_t b;
        std::uint16_t c;
        std::uint16_t d;
    }> data;
};

struct KeyframerFloatLinearComp_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        float value;
    }> data;
};

Vec2f Keyframer

struct KeyframerVec2fLinear_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        Vec2f data;
    }> data;
};

struct KeyframerVec2fLinearComp_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        std::uint16_t a;
        std::uint16_t b;
    }> data;
};

Vec3f Keyframer

struct KeyframerVec3fComp_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        std::uint16_t a;
        std::uint16_t b;
        std::uint16_t c;
        std::uint16_t d;
        std::uint16_t e;
        std::uint16_t f;
        std::uint16_t g;
        std::uint16_t h;
        std::uint16_t i;
        std::uint16_t j;
    }> data;
};

struct KeyframerVec3fLinear_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        Vec3f data;
    }> data;
};

struct KeyframerExtVec3f_Z {
    std::uint16_t flags;
    PascalArray<struct {
        std::uint16_t time;
        std::uint16_t flags;
            // 0x80
        float a;
        float b;
        float c;
        float d;
        float e;
        float f;
        float g;
        float h;
        float i;
    }> data;
};

Vec4f Keyframer

struct KeyframerVec4fLinear_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        Vec4f data;
    }> data;
};

struct KeyframerVec4fLinearComp_Z {
    std::uint16_t flags;
    PascalArray<struct {
        float time;
        Vec4f data;
    }> data;
};

Rotation Keyframer

struct KeyframerRot_Z {
    PascalArray<struct {
        float time;
        std::uint16_t a;
        std::uint16_t b;
        std::uint16_t c;
        std::uint16_t d;
    }> data;
};

Beszier Rotation Keyframer

struct KeyframerBezierRot_Z {
    PascalArray<struct {
        float time;
        std::uint16_t a;
        std::uint16_t b;
        std::uint16_t c;
        std::uint16_t d;
        std::uint16_t e;
        std::uint16_t f;
        std::uint16_t g;
        std::uint16_t h;
        std::uint16_t i;
        std::uint16_t j;
        std::uint16_t k;
        std::uint16_t l;
        std::uint16_t m;
        std::uint16_t n;
        std::uint16_t o;
        std::uint16_t p;
        std::uint16_t q;
        std::uint16_t r;
    }> data;
};

Handle Keyframer

struct KeyframerHdl_Z // KeyframerHandle
{
    PascalArray<struct {
        float time;
        crc32_t crc32;
    }> data;
};

Flag Keyframer

struct KeyframerFlag_Z {
    PascalArray<struct {
        float time;
        std::uint32_t flag;
    }> data;
};

Message Keyframer

Sends a Message_Z

struct KeyframerMessage_Z {
    PascalArray<struct {
        float time;
        PascalArray<struct {
            std::uint32_t messageType;
                // Observed values:
                //   * 12
                //   * 13
                //   * 32
                //   * 36 - Sound_Z related
            crc32_t recieverCRC32;
                // 0
                // Sound_Z crc32s
            std::uint32_t c;
                // Observed values:
                //   * 0
                //   * 15
                //   * 792146210
                //   * 1162695237
                //   * 10295924
            float parameter;
            crc32_t messageID;
        }> data;
    }> data;
};

Potential Message IDs. Seen in Opal.

2835421588 "msg_no_message"
3960628886 "msg_skel_collide"
2963523549 "msg_skel_pivot_node"
1227112894 "msg_anim_end_smoothing"
1336891425 "msg_anim_loop"
718877053 "msg_anim_nosmooth"
2102014621 "msg_anim_hide"
1577125322 "msg_anim_unhide"
523103969 "msg_anim_active"
626177710 "msg_anim_playsound"
2943810141 "msg_anim_particles_efx"
2396335651 "msg_anim_particles_efx_pause"
1747507869 "msg_anim_particles_efx_resume"
3795177886 "msg_anim_particles_efx_replay"
552683498 "msg_anim_particles_efx_reset"
365334800 "msg_anim_seqAnim"
3005465003 "msg_anim_sendMesssage"
1051291984 "msg_anim_portal_open"
387094014 "msg_anim_portal_close"
345475784 "msg_goto_length"
1698423238 "msg_goto_curlength"
3274461462 "msg_goto_2nd_vertex"
2147742749 "msg_goto_end"
1865984556 "msg_volume_in"
1604938022 "msg_volume_out"
1360308039 "msg_volume_stay"
3273003089 "msg_menu3d_effect_end"
1808232496 "msg_skin_selected"
4249170575 "msg_carry_begin"
2331259185 "msg_carry_end"
2499266144 "msg_held_begin"
3048139033 "msg_held_end"
1469597571 "msg_thrown_begin"
285228089 "msg_thrown_end"
183669592 "msg_target_hit"
3664019432 "msg_target_miss"
4102482851 "msg_lod_collide"
4056496806 "msg_decor_collide"
2382188474 "msg_thrown_lod_collide"
3413580670 "msg_thrown_decor_collide"
683899781 "msg_restore_collide"
142702257 "msg_sequenced_collide"
1376308877 "msg_skin_act_begin"
2161905118 "msg_skin_act_end"
3724542853 "msg_camera_capture_patch_start"
2652868522 "msg_camera_capture_frame_start"
1158871792 "msg_camera_capture_texture_start"
2750843012 "msg_camera_capture_end"
2709525561 "msg_camera_capture_param_1"
2898473696 "msg_camera_capture_param_2"
2818715479 "msg_camera_capture_param_3"
212257497 "msg_camera_reset_focus"
3732748292 "msg_camera_suspend"
3515499238 "msg_camera_restore"
1977246620 "msg_stream_end"
837659711 "msg_stream_error"
3302788338 "msg_stream_resumed"
3200889077 "msg_stream_resume_possible"
3925774171 "msg_stream_abort"
3835516259 "msg_stream_aborted"
2124470428 "msg_game_activated"
936279096 "msg_game_reset_complete"
562825480 "msg_movie_player_set_player"
521587476 "msg_movie_player_preload"
3291482593 "msg_movie_player_preload_ptr"
1834379407 "msg_movie_player_play"
1326144549 "msg_movie_player_play_ptr"
2587738376 "msg_movie_player_stop"
997945300 "msg_movie_player_pause"
135617672 "msg_movie_player_set_audio_track"
3838915948 "msg_movie_player_set_loop_state"
1043891499 "MenuInputContext"
2290654047 "menu_up_pressed"
3277086820 "menu_up_released"
1026961471 "menu_down_pressed"
1866733656 "menu_down_released"
21836518 "menu_left_pressed"
1546311868 "menu_left_released"
3525677687 "menu_right_pressed"
2099615285 "menu_right_released"
2369751458 "menu_circle_pressed"
2066001068 "menu_circle_released"
3229268928 "menu_square_pressed"
3729658983 "menu_square_released"
2882724935 "menu_cross_pressed"
2842561747 "menu_cross_released"
4098757926 "menu_triangle_pressed"
22366978 "menu_triangle_released"
2779419941 "menu_L_pressed"
206014811 "menu_L_released"
3340865683 "menu_R_pressed"
2879242898 "menu_R_released"
87877781 "menu_select_pressed"
2983826008 "menu_select_released"
2091904157 "menu_start_pressed"
2544430308 "menu_start_released"
1824119323 "msg_game_input_locked"
103177937 "msg_engine_end"

Home
FAQ

For FMTK Users and Mod Developers

Read the Docs

For FMTK Developers

Asobo BigFile Format Specification
Asobo Classes
      Animation_Z
      Binary_Z
      Bitmap_Z
      Camera_Z
      CollisionVol_Z
      Fonts_Z
      GameObj_Z
      GenWorld_Z
      GwRoad_Z
      Keyframer*_Z
      Light_Z
      LightData_Z
      Lod_Z
      LodData_Z
      Material_Z
      MaterialAnim_Z
      MaterialObj_Z
      Mesh_Z
      MeshData_Z
      Node_Z
      Omni_Z
      Particles_Z
      ParticlesData_Z
      RotShape_Z
      RotShapeData_Z
      Rtc_Z
      Skel_Z
      Skin_Z
      Sound_Z
      Spline_Z
      SplineGraph_Z
      Surface_Z
      SurfaceDatas_Z
      UserDefine_Z
      Warp_Z
      World_Z
      WorldRef_Z
Asobo File Format Idioms
Asobo CRC32
Asobo LZ Compression
Asobo Arithmetic Coding Compression
Asobo Save Game File Format Specification
Asobo Audio Formats
TotemTech/ToonTech/Zouna/ACE/BSSTech/Opal Timeline
Zouna Modding Resources
Miscellaneous

Clone this wiki locally