#ifndef ANIMATIONEDITOR_H #define ANIMATIONEDITOR_H #include "ToolLib.h" #include "Animation.h" #include "CharaBase.h" // ステージエディターの画面の幅と高さ #define SCREEN_WIDTH (1280) #define SCREEN_HEIGHT (720) // 説明文を表示するためのスペースのサイズ #define TOPSPACE (28) // 各ボタンの高さ #define BUTTON_H (20) // 編集モード typedef enum _EEditMode { EEditMode_CharaSelect, // キャラクター選択 EEditMode_AnimSelect, // アニメーション選択 EEditMode_EventEdit, // イベント編集モード } EEditMode; // カメラの情報 typedef struct _SAnimEditorCamera { // 注視点までの距離 float Distance; // カメラの位置 VECTOR EyePosition; // 注視点の位置 VECTOR LookAtPosition; // 向き( 水平角度と垂直角度 ) float HAngle; float VAngle; // 正面方向のベクトル VECTOR Direction; // カメラの右方向のベクトル( y軸成分は0にしたもの ) VECTOR Right; } SAnimEditorCamera; // アニメーションエディターの情報 typedef struct _SAnimEditorData { // 編集モード EEditMode Mode; // フレーム時間計測用変数 LONGLONG TimeTemp; // 現在のフレームで経過させる時間 float StepTime; // 選択されている物理素材タイプ EMaterialType PhysMatType; // 選択されているキャラクター EChara TargetChara; // 選択されているアニメーション ECharaAnim TargetAnim; // 選択されているイベント int TargetEvent; // 選択されている「アニメーションキャンセル後に再生するアニメーション」 ECharaAnim NextAnim; // アニメーションをアタッチする対象の3Dモデルハンドル int AnimAttachModelHandle; // アニメーションのアタッチ番号 int AnimAttachIndex; // 「アニメーションキャンセル後に再生するアニメーション」のアタッチ番号 int NextAnimAttachIndex; // 有効なアニメーションの数 int EnableAnimNum; // 有効なアニメーションのリスト ECharaAnim EnableAnimList[ ECharaAnim_Num ]; // アニメーションキャンセルをするかどうか bool NextAnimValid; // アニメーションキャンセルをしたかどうか bool NextAnimPlay; // アニメーションキャンセルする再生時間 float NextAnimPlayTime; // アニメーションを再生しているかどうか bool AnimPlay; // アニメーションの再生時間 float AnimPlayTime; // マウスの一フレーム前の座標 int MouseBackX; int MouseBackY; // カメラ情報 SAnimEditorCamera Camera; // セーブ完了表示時間 float SaveCompDispTime; // 物理素材タイプリスト表示用ウインドウのハンドル int PhysMatTypeTWindow; // 物理素材タイプリストのハンドル int PhysMatTypeTList; // セーブボタンのハンドル int SaveTButton; } SAnimEditorData; extern SAnimEditorData g_AEData; // アニメーションエディターのメイン処理 // 戻り値 : 正常に処理が完了したかどうか // ( true : 正常に処理を完了した false : エラーが発生した ) extern bool AnimationEditor_Main( void ); // キャラ選択・アニメーション選択・イベント編集の表示をOFFにする extern void MainUIHide( void ); // キャラクターモデルにアタッチするアニメーションをセットアップする extern void SetupAttachAnim( void ); // キャラクターモデルにアタッチしたアニメーションの再生時間をセットアップする extern void SetupAttachAnimTime( void ); // アニメーションの再生を開始する extern void AnimPlay( void ); // アニメーションの再生を停止する extern void AnimStop( void ); #endif