OROCHI
 
Loading...
Searching...
No Matches
GxUnitMotion.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_MOTION_NAMESPACE_BEGIN()
13
15
16//===========================================================================
18//===========================================================================
20{
21 //-----------------------------------------------------------
23 //-----------------------------------------------------------
25public:
26 // RTTI定義
27 GX_RTTI_CLASS_NAME_ICON(GxUnitMotion, GxUnitModel, "モーション", GxRtti::ICON_TYPE::UNIT_PLAYER)
28 // GxClassBaseReference継承クラス用禁止宣言
30
31
32 //-----------------------------------------------------------
34 //-----------------------------------------------------------
36
38 GxUnitMotion(void);
39
41 //-----------------------------------------------------------
43 //-----------------------------------------------------------
45protected:
47 void asyncUpdate(void) override;
49 GX_FORCE_INLINE virtual void updatePosition(void) { updateWorldMatrix(); }
50
51public:
53 virtual b32 createMotion(GxResMotionPackage* pResource);
55 virtual GxModUnitMotionSequence* createMotionSequence(void);
56
58 virtual b32 createCollision(GxResCollisionObject* pResource);
60 GX_FORCE_INLINE virtual GxModUnitCollisionSet* createCollisionSet(void) { return addModule<GxModUnitCollisionSet>(); }
62 GX_FORCE_INLINE virtual GxBackgroundHit* createBackgroundHit(void)
63 {
64 auto* pCollisionSet = getModCollisionSet();
65 if (!pCollisionSet)
66 {
67 pCollisionSet = createCollisionSet();
68 }
69 return pCollisionSet->createBackgroundHit();
70 }
72 GX_FORCE_INLINE virtual GxObjectHit* createObjectHit(void)
73 {
74 auto* pCollisionSet = getModCollisionSet();
75 if (!pCollisionSet)
76 {
77 pCollisionSet = createCollisionSet();
78 }
79 return getModCollisionSet()->createObjectHit();
80 }
82 GX_FORCE_INLINE virtual GxAttackHit* createAttackHit(void)
83 {
84 auto* pCollisionSet = getModCollisionSet();
85 if (!pCollisionSet)
86 {
87 pCollisionSet = createCollisionSet();
88 }
89 return getModCollisionSet()->createAttackHit();
90 }
92 GX_FORCE_INLINE virtual GxEventHit* createEventHit(void)
93 {
94 auto* pCollisionSet = getModCollisionSet();
95 if (!pCollisionSet)
96 {
97 pCollisionSet = createCollisionSet();
98 }
99 return getModCollisionSet()->createEventHit();
100 }
102 GX_FORCE_INLINE virtual GxDynamics* createDynamics(void)
103 {
104 auto* pCollisionSet = getModCollisionSet();
105 if (!pCollisionSet)
106 {
107 pCollisionSet = createCollisionSet();
108 }
109 return getModCollisionSet()->createDynamics();
110 }
111
112#if GX_DEVELOP
114 GX_FORCE_INLINE virtual void createIKForTool(GxResMotionIK* /*pResIK*/) {}
115#endif // GX_DEVELOP
116
118 //-----------------------------------------------------------
120 //-----------------------------------------------------------
122public:
124 GX_FORCE_INLINE virtual GxModUnitMotionBlend* getModMotion(void) { return getModule<GxModUnitMotionBlend>(); }
126 GxModUnitMotionSequence* getModMotionSequence( void ) const;
127
129 GX_FORCE_INLINE virtual GxModUnitCollisionSet* getModCollisionSet(void) const { return getModule<GxModUnitCollisionSet>(); }
131 GX_FORCE_INLINE GxBackgroundHit* getBackgroundHit(void) const
132 {
133 auto* pCollisionSet = getModCollisionSet();
134 return pCollisionSet ? pCollisionSet->getBackgroundHit() : nullptr;
135 }
137 GX_FORCE_INLINE GxObjectHit* getObjectHit(void) const
138 {
139 auto* pCollisionSet = getModCollisionSet();
140 return pCollisionSet ? pCollisionSet->getObjectHit() : nullptr;
141 }
143 GX_FORCE_INLINE GxAttackHit* getAttackHit(void) const
144 {
145 auto* pCollisionSet = getModCollisionSet();
146 return pCollisionSet ? pCollisionSet->getAttackHit() : nullptr;
147 }
149 GX_FORCE_INLINE GxEventHit* getEventHit(void) const
150 {
151 auto* pCollisionSet = getModCollisionSet();
152 return pCollisionSet ? pCollisionSet->getEventHit() : nullptr;
153 }
155 GX_FORCE_INLINE GxDynamics* getDynamics(void) const
156 {
157 auto* pCollisionSet = getModCollisionSet();
158 return pCollisionSet ? pCollisionSet->getDynamics() : nullptr;
159 }
160
162 //-----------------------------------------------------------
164 //-----------------------------------------------------------
166protected:
168};
169
170GX_MOTION_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
オブジェクトあたりクラス
Definition GxAttackHit.h:20
背景あたりクラス
Definition GxBackgroundHit.h:23
物理演算クラス
Definition GxDynamics.h:27
イベントあたりクラス
Definition GxEventHit.h:20
コリジョンセットモジュールクラス
Definition GxModUnitCollisionSet.h:18
モーションブレンドシステムの機能を導入するモジュール
Definition GxModUnitMotionBlend.h:18
モーションシーケンスクラス
Definition GxModUnitMotionSequence.h:21
オブジェクトあたりクラス
Definition GxObjectHit.h:20
コリジョンリソースクラス
Definition GxResCollisionObject.h:23
モーションIKリソースクラス
Definition GxResMotionIK.h:18
モーションパッケージリソース
Definition GxResMotionPackage.h:20
@ UNIT_PLAYER
プレイヤーユニット
モデルクラス
Definition GxUnitModel.h:19
モーションユニット
Definition GxUnitMotion.h:20
virtual GX_FORCE_INLINE GxModUnitMotionBlend * getModMotion(void)
モーションモジュールの取得
Definition GxUnitMotion.h:124
GX_FORCE_INLINE GxAttackHit * getAttackHit(void) const
攻撃当たりを取得
Definition GxUnitMotion.h:143
virtual GX_FORCE_INLINE GxBackgroundHit * createBackgroundHit(void)
背景当たり作成
Definition GxUnitMotion.h:62
virtual GX_FORCE_INLINE GxModUnitCollisionSet * createCollisionSet(void)
コリジョンセットの生成
Definition GxUnitMotion.h:60
virtual GX_FORCE_INLINE GxModUnitCollisionSet * getModCollisionSet(void) const
コリジョンモジュールの取得
Definition GxUnitMotion.h:129
GX_FORCE_INLINE GxBackgroundHit * getBackgroundHit(void) const
背景当たりを取得
Definition GxUnitMotion.h:131
GX_FORCE_INLINE GxObjectHit * getObjectHit(void) const
オブジェクト当たりを取得
Definition GxUnitMotion.h:137
virtual GX_FORCE_INLINE GxDynamics * createDynamics(void)
物理作成(このクラスでは作成しない)
Definition GxUnitMotion.h:102
GX_FORCE_INLINE GxEventHit * getEventHit(void) const
イベント当たりを取得
Definition GxUnitMotion.h:149
virtual GX_FORCE_INLINE void updatePosition(void)
座標移動処理
Definition GxUnitMotion.h:49
virtual GX_FORCE_INLINE GxAttackHit * createAttackHit(void)
攻撃当たり作成
Definition GxUnitMotion.h:82
GxSysSoundBase::GxObjMotionData _objMotionSound
モーション連動用
Definition GxUnitMotion.h:167
virtual GX_FORCE_INLINE GxEventHit * createEventHit(void)
イベント当たり作成
Definition GxUnitMotion.h:92
virtual GX_FORCE_INLINE GxObjectHit * createObjectHit(void)
オブジェクト当たり作成
Definition GxUnitMotion.h:72
GX_FORCE_INLINE GxDynamics * getDynamics(void) const
物理あたりを取得
Definition GxUnitMotion.h:155
モーションデータ定義
Definition GxSysSoundBase.h:109
32bitブーリアン
Definition GxDefine.h:173