【UE4】リターゲット AポーズをTポーズに変更する

Female Movement Animset Proを購入しました。

クオリティ高いですよね!

f:id:tsugumiyumeno:20201209001330p:plain

 

 

このアニメーションをVRoid出力のVRMに適用しようと思ったのですが、リターゲットするときの画面がTポーズとAポーズで一致しません。

f:id:tsugumiyumeno:20201209001627p:plain

 

このまま、リターゲットすると。。。

ひぇっ・・・こうなります

f:id:tsugumiyumeno:20201209001717p:plain

 

対策 VRoid側のポーズをTポーズに変更します。

①スケルトンを表示して、「ポーズを表示」

f:id:tsugumiyumeno:20201209001928p:plain

 

②リターゲットの時のポーズになります

f:id:tsugumiyumeno:20201209002031p:plain

③手の角度を調整します

f:id:tsugumiyumeno:20201209002057p:plain

f:id:tsugumiyumeno:20201209002112p:plain

f:id:tsugumiyumeno:20201209002126p:plain

④保存します

「ポーズを変更」から「現在のポーズを使用する」で保存

f:id:tsugumiyumeno:20201209002152p:plain

⑤リターゲットがTポーズで合致しました!

f:id:tsugumiyumeno:20201209002238p:plain

 

終わりです!

【UE4】PIEだと大丈夫なのに、スタンドアローンやパッケージでCPUがぶんまわる

始めてプロジェクトをパッケージ化して実行したら、CPUの使用率が40%ほどになって驚きました。

何もアクターを配置していないUMGだけのレベルでした。

 

コンソールコマンドの「stat unit」で各処理の処理時間がわかるそうなので実行

f:id:tsugumiyumeno:20201108233726p:plain

f:id:tsugumiyumeno:20201108233704p:plain

 

すると、上記のように表示されましたが、GAME部分もDRAW部分も問題なさそうでした。

※60FPSのゲームなら、1000ms/60フレーム=16フレーム以内に値が収まっていたらよいはず。

 

 

結論は

プロジェクトの設定/基本設定/固定フレームレートを使用 にチェックをいれると解決しました!

f:id:tsugumiyumeno:20201108233939p:plain

 

【UE4】キャラクターBPのコリジョンを設定する

キャラクターBPに所属するすべてのStaticMeshComponentのコリジョンを設定する方法です。

下図だと、Cylinder、Cube、Cone5、Cone6のコリジョンを設定します。

f:id:tsugumiyumeno:20201022001440p:plain

 

Default Scene RootからGet Children Componentsを呼び出して、StaticMeshComponentを取得。

それに対して、Set Collosion Enabledを呼べばOKです

f:id:tsugumiyumeno:20201022001717p:plain

 

【UE4】継承したクラスのデフォルト値を編集する

クラスのデフォルトから、デフォルト値を編集できます!!

この値はコンストラクションスクリプトより早く設定されるようです。

f:id:tsugumiyumeno:20201018230241p:plain

 

【UE4】スポーンアクターへのタグの付け方

SpawnのReturnValueからGetTagsを呼び出し、それにADDすればタグが設定できるようです。

f:id:tsugumiyumeno:20201018224830p:plain

 

タグを持っているかは、ActorHasTagで判定できるようです。

f:id:tsugumiyumeno:20201018224954p:plain

 

【UE4】レベルに依存しない処理を書く(GameInstance)

全レベルで共通の処理を記述することが出来るGameInstanceというものがあるらしいです。

 

似たようななんでも記述できるObjectはActorのスポーン処理が出来ません。

f:id:tsugumiyumeno:20201015231112p:plain

 

スポーン処理がしたい場合はGameInstanceが必須です。

f:id:tsugumiyumeno:20201015231139p:plain

 

GameInstanceを作成したら、プロジェクトの設定で「マップ&モード」からゲームインスタンスクラスに設定

※今回はGameInstanceMainという名前にしました

f:id:tsugumiyumeno:20201015231203p:plain

f:id:tsugumiyumeno:20201015231318p:plain

 

あとは、GetGameInstanceをキャストすれば自由に呼び出せます。

f:id:tsugumiyumeno:20201015231437p:plain

 

 

 

GameInstanceで呼んでも効果がなかった関数たち

これらはレベルブループリントに記述しましょう

 

ウィジット作成

f:id:tsugumiyumeno:20201015231536p:plain

マウスの表示

f:id:tsugumiyumeno:20201015231602p:plain

レベルに配置したカメラ制御

f:id:tsugumiyumeno:20201015231624p:plain