2022年10月16日日曜日

【Unreal Engine 5.0 on macOS 】シーケンサーで、FKControlRigのAdditiveにするとMesh(Actor)が消えて編集できない

シーケンサー(Level Sequence)で、アニメーションを作る時に、
SkeletalMeshのFKControlRigでアニメーションを作りたい場合がある。
Unreal Engineのリファレンスには、既存アニメーションをベースにして、
FKControlRigの動きを追加できる機能として、FKControlRigを「Additive」にするやり方が
載っている(※1)のだが、macOSだからなのか分からないが、うまくいかなかった。
実際の作業手順的には以下のようになる。
・シーケンサー(Level Sequence)を開く
・SkeletalMeshをシーケンサーに追加
・追加したSkeletalMesh(Actor)でベースになるアニメーションを設定
・追加したSkeletalMesh(Actor)に対して、FKControlRigを追加
 →SkeletalMesh(Actor)はFKControlRigに従って、デフォルトポーズ(Aポーズ)になる。
・FKControlRigを右クリック→Additiveを選択(ONにする)
 →SkeletalMesh(Actor)が消える。
  見えないだけかな?と思い、シーケンスの再生や動画出力してみてもやはり見えないままだった。


【環境】
MacBook Pro M1 (2021年モデル) macOS Monterey 12.6 / Ventura 13.0 Beta
Unreal Engine 5.0.3

【解決策1】
この前発表された、まだ正式版ではないが、Unreal Engine 5.1.0 Preview版では、本事象が直っていた!!!
macOS+Unreal Engineでゲーム制作よりも映像制作がメインの方は、このAdditiveが使えるか使えないかは結構クリティカルな問題だと思うので、とりあえずUE 5.1.0 Preview版を使うのもアリかと思う。

※P.S. 2022.11.16 Unreal Engine 5.1.0 が正式版になりました! Additiveも正常動作しております。これでMac環境 + Additive 問題も一件落着ですね。よかったよかった✌️
(細かい点ではシーケンサーからの動画出力を「Movie Scene Capture(Legacy)」にするとAdditiveが効いてくれない。「Movie Render Queue」にすれば問題ない。(これは本当に焦った^^映像制作時に、途中経過版はとりあえず「Movie Scene Capture(Legacy)」で確認して、最終出力時に「Movie Render Queue」を使うというやり方をしている人もいるかと思うので要注意))

全体的にも動作が爽快になっている感じがします。素晴らしい!
あ、でも色味の問題が新たに発生。。詳細はこちら「UE5.0と比べて影が濃くなった」を参照。

※なお、 Unreal Engine 5.1.0 Preview 1 だと、SkeletalMeshやPhysicsAssetを配置するとメッシュ表面に影がチラついて以下のメッセージが表示された。
your scene contains a skydome mesh with a sky material 
but it does not cover that part of the screen
また、ゲームをRunしてみて停止後に以下の警告が出ていた。
StaticMeshComponent0 has to be 'Movable' if you'd like to AddImpulseAtLocation.
ちょっと調べたら、SkeletalMeshやPhysicsAsset配下のStaticMeshのMobilityをMovableにすれば良さそうだが、StaticMeshのDetailsには該当プロパティは表示されていないので、どうすればいいのだろう?と思った。

しばらくしたら、Unreal Engine 5.1.0 Preview 2 が出ていて、そちらで試したら上記現象は解消されていました👍(深追いしなくてよかった😅 公式もアナウンスしてますがPreview版なので本格プロジェクト用で使おうとせず、このあたりは一歩引いて接しましょう。。最初に書いた「とりあえずUE 5.1.0 Preview版を使うのもアリかと思う」ということと矛盾しますが。。)

ーーー
ついでに書いておくと、macOSでUnreal Engine 5.0.x を使ってると、起動時に以下の警告が毎回出ていて鬱陶しかったが、これも Unreal Engine 5.1.0 で直っていた!
5.0.xのエラー1個目は、内容通りシステム設定のFirewall設定の許可項目にUnrealEditor.appアプリケーションを追加したがダメだった。
Do you want the application "UnrealEditor.app" to accept incoming network connections?
2個目のエラーは、Unreal Engine内部のメッセージなので深く調査はしていない。
UE 5.1.0 で解消されたので、もうこれ以上は深追いしないし、しなくて済む!!
'MegascansPlugin' is Incompatible








【解決策2】
解決策というか、別のやり方。
Unreal Engine 5.0.xの場合は、Additiveを諦めてベースとなるアニメーションをControlRigにして、生成されたControlRigをいじくって自分のやりたかったアニメーションに編集するやり方。
・ベースになるアニメーションを追加
※もちろんアニメーションの組み合わせ(Weightによる自然なアニメの切り替わりや、アニメの重ね合わせなど)で済むのであればそれに越したことはない。つまりベースのアニメは組み合わせでほとんど作っておく。
・ベースのアニメができたら、シーケンサーのSkeletalMesh(Actor)を右クリック ※バックアップは取っておきましょう(以下同様)
→Edit With FK Control Rigを選択。ダイアログが表示されるのでCreateを選択
→ベースとなったAnimationの方はグレーアウトされ、FKControlRigに全コマのキーが生成される。
→FKContorlRigを頑張っていじくって、ご自身のやりたかったアニメーションに加工していく。

解決策2の問題点としては、Edit With FK Control Rig後に「やはりここに別のアニメーションを追加したい」とか「出来上がったものに、続きのアニメーションを追加したい」といった時がめんどくさい。
一応その手順は、
・シーケンサーのSkeletalMesh(Actor)を右クリック
→Bake Animation Sequence。ダイアログが表示されるので名前をつけて保存する。
→シーケンサーのSkeletalMesh(Actor)のFKControlRigを削除。
 Animationに前ステップで保存したAnimation Sequenceを選択。
となるかと思う。

補足として、そもそもアニメーション業界やゲーム業界の実態は私は知らないので、ここに書いた内容はそれら「主流」のやり方とはマッチしていないかもしれない点、ご注意いただければと思います^^
(ゲーム業界といっても、各種シーンのアニメーションばかり作っておられる部署もあったりする?デザイナやモデリングを専属としている方も「いるんだろうな」くらいの知識です^^;)
(プラットフォーム的にもやはり主流はWindows?そしてWindows版であればUnreal Engine 5.0.xでもAdditiveは正常機能してる?一応GoogleとかEpic Games DEV Communityも英語文献含めてmacOS + Sequence + FKControlRig + Additiveとかで検索したが、それらしいトピックは見つからなかった。(UE5が出始めだったから?UE5.1.xで直ったので「まぁいいか」くらいの感覚))

こちらにも書いたが、MacではNaniteはサポートされていないし、される予定もないらしい。
業界的にはMacはデザインとかビデオ編集とかアニメーションに強みがあると思っていたが、「ゲームデザイン」「ゲームアニメーション」とかゲームがらみでUnreal Engineが本格的に使われてはいないのだろうか?分業で、Naniteに関係する箇所以外だけやってるとか?
Naniteはあくまでリアルタイム編集がやりやすくなるだけだから、アニメーション現場とかでNaniteが使えないMacでも問題ないということ?
人によってはWindowsとMacを行ったり来たりしながら作ってるとか?