update : 2024-02-01
2024-01-29 / @syui

ue , m , ue5 / ue

ue

ここではepic gamesunreal engine 5の使い方をまとめます。

ブログで説明しづらい部分が多いのでblueprintueを参考にしてください。

for mac

mac(apple silicon)でも動作しますが、package buildは鬼門です。絶対にやめましょう。時間がもったいない。

ue5は、基本的にwindowsのpakcage buildはすぐに通りますが、それ以外では難しいでしょう。

たとえ1度だけbuildが通ったとしても、もし開発を続ける場合、windowsとmacの両方で動作を安定させることはできません。

windowsで開発するのがおすすめです。macでの開発はやめておきましょう。

vrm

https://github.com/ruyo/VRM4U/releases

vroidを読み込むpluginであるvrm4uを使用します。現在、vroid sdkというものも登場しています。

macで使用するには大変ですが./Plugins/VRM4U/ThirdParty/assimp/lib/Mac/libassimp.aを用意してください。独自buildが必要です。

https://ruyo.github.io/VRM4U/03_mac

調整

基本的にはSuperhero Flight Animationsを使用してmodelの調整を行います。

Superhero Flight Animations./Content/SuperheroFlight/Blueprints/Characters/BP_Player_UE5./Content/SuperheroFlight/Blueprints/Components/BP_SuperheroFightを読み込んでいます。

BP_Player_UE5を開いてSuperheroFlightComponentのところが設定ファイルになっていて、例えば、flying speed、つまり、飛行速度などを変更できます。

基本的には、ここのassetsにanimationを入れることで機能します。もし機能しない場合の変更箇所を書きます。

いくつかのanimationは自分で用意したものに切り替えます。

ABP_Player_ai, BP_Player_UE5を新たに用意し、それを読み込むようにします。

./Content/SuperheroFlight/Characters/Mannequins/Animationsをリターゲットしてanimationを作成、それをanim montageにします。

idle/walk

かっこいいものに切り替えます。おかしな移動になっていました。

  • ABP_Player_ai : AnimGraph > Locomotion > idle
  • ABP_Player_ai : AnimGraph > Locomotion > walk

使用しているanimationにroot motionを設定します。

jump

かっこいいものに切り替えます。root-motionが動きませんでした。

  • ABP_Player_ai : AnimGraph > Locomotion > jump
  • ABP_Player_ai : AnimGraph > Locomotion > idle
  • RTG_ai : target, チェーンマッピング > rootFK > 平行移動モード > Globally Scaledに設定

root motionをenableにしても動きません。原因はIKリターゲットしたときrootが動いていないために起こります。animationを開いてsrcとtargetを比較してみると、srcのほうはrootが動いていますが、targetのアニメは動いていません。具体的には、srcはlocationが変動しますが、targetは変動していません。

bone(ボーン)のrootを選択してFKの平行移動モードをGlobally Scaledに設定します。

これでtargetのrootが変動しているのを確認後、リターゲットし、montageを作成します。

hover

ものに当たった時のanimationです。

  • ABP_Player_ai : EventGraph > Play hover fligh start montage notify event

land

着地するときのanimationです。

  • BP_SuperheroFlighComponent : EventGraph > Hit Event Collapse Graph

Play anim montageに指定したものを使用するように変更します。

指定したanim montageの通知にBPANS_SetlsSuperheroloadingなどを追加します。既存のanim montageである./Content/SuperheroFlight/Characters/Mannequins/Animations/Flight/Land/を参考にしてください。

sprint

ダッシュです。これはBP_Player_UE5 > Input Event Graph > sprintの最後にStart Flightを入れます。

  • BP_Player_UE5 : Input Event Graph > sprint

kawaiiphysics

https://github.com/pafuhana1213/KawaiiPhysics/releases

vrmの髪の毛などを動かすために使います。

  • ABP_Player_ai : AnimGraph

主にhair1_08, hair1_09, hair1_10を指定して各種limitを入れ、調整していきます。

limitは髪の毛が体を貫通しないようにするためのものです。主にSpherical Limitsの丸形とCapsule Limitsの筒型を使用します。大きさや傾きなどを調整してください。headhip, armを指定するといいでしょう。

sword

新しくswordのactor(static mesh)を作成し、collisionを作ります。

それをBP_Player_UE5に装備し、motionを作成し、キーに割り当てます。剣をしまうのはniagaraで作成しました。

by ai

varest

pluginであるvarestのpostですが、macで動いたものがwindowsでは動きませんでした。ですが、windowsでイチから作成すると動きました。

ue5はPATCHに対応していません。この辺はapiを作り直さないといけないかもしれない。

by : ai

login

login処理です。atprotoと連携できればいいなと考えています。

あと、ゲーム公開/非公開はaiのアカウントで判断しています。ある値がtrueなら公開、falseなら非公開です。ここをapiで変更すれば基本的にゲームの起動自体をコントロールできるようになってる。

by : ai