Skip to content

Component.Animator ​

コンポーネント関連 / アニメーションを操作するクラス

所属:componentのAPI解説 · 全モジュール索引

読み方 ​

このページは実ファイルから生成したソース照合用資料です。公開関数の引数・戻り値の型、オーバーロード、列挙値を確認できます。public/protected/privateを区別し、privateメンバーを呼び出し例に使わないでください。コメントは原文であり、古い説明や誤記を含む場合があります。利用条件・訂正は上記のAPI解説と既知の制約を優先してください。

元ファイル:ProjectName/code/Component/Animator/Animator.ixx。確認基準:08f9fa53。

インターフェースとインライン実装 ​

cpp
export module Component.Animator;

import <string>;
import <memory>;
import <unordered_map>;

import Component;
import Asset.AnimationDef;
import Object.GameObject;

using namespace asset;

/// <summary>
/// コンポーネント関連
/// </summary>
export namespace component
{
    /// <summary>
    /// アニメーションを操作するクラス
    /// </summary>
    export class Animator final : public ComponentBase
    {
    public:
        /// <summary>
        /// コンストラクタ
        /// </summary>
        Animator() = default;

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="owner">所有者</param>
        Animator(object::GameObject* owner);

        /// <summary>
        /// デストラクタ
        /// </summary>
        ~Animator();

        /// <summary>
        /// アニメーション追加
        /// </summary>
        /// <param name="animName"></param>
        void AddAnim(const std::string& animName);

        /// <summary>
        /// 再生
        /// </summary>
        /// <param name="animName">再生するアニメーション</param>
        void PlayAnim(const std::string& animName);

        /// <summary>
        /// アニメーション画像を反転
        /// </summary>
        /// <param name="animName">対象のアニメーション</param>
        void TurnAnimGraph(const std::string& animName);

        /// <summary>
        /// 一時停止
        /// </summary>
        /// <param name="animName">一時停止するアニメーション</param>
        void PauseAnim(const std::string& animName);

        /// <summary>
        /// 停止
        /// </summary>
        /// <param name="animName">停止するアニメーション</param>
        void StopAnim(const std::string& animName);

        /// <summary>
        /// 不可視化
        /// </summary>
        /// <param name="animName">不可視化するアニメーション</param>
        void EnableAnim(const std::string& animName)
        {
            auto& playState = m_states.at(animName);
            playState.enable = true;
        }

        /// <summary>
        /// アニメーション切り替え
        /// </summary>
        /// <param name="issueName">再生対象のアニメーション</param>
        /// <param name="targetName"切り替え対象のアニメーション></param>
        void SwitchAnim(const std::string& issueName, const std::string& targetName);

        /// <summary>
        /// 更新処理
        /// </summary>
        /// <param name="deltaTime">デルタタイム</param>
        void Update(const float& deltaTime) override;

        /// <summary>
        /// 描画処理
        /// </summary>
        void Draw() override;

    private:
        /// <summary>
        /// アニメーションの再生情報
        /// </summary>
        struct AnimPlayState
        {
            float nowFrame = 0;
            AnimState animState = AnimState::STOP;
            bool isReverce = false;
            bool turnFrag = false;
            bool enable = false;
        };

        std::unordered_map<std::string, AnimPlayState> m_states; // 再生情報郡
    };
}

コード確認基準:08f9fa53 · C++実機検証は別途実施