ぼっちプログラマのメモ

UE4とかUE5とかについて書いたり書かなかったり。

UE4.26で追加されたControlRigのループ(Looping)を使って、手の開閉を簡単に実装してみる

本記事はUnreal Engine 4 (UE4) その3 Advent Calendar 2020 4日目の記事①です。

その① ここ
その②
【UE4】UE4.26で追加されたControlRigの反転機能(Inversion)の使い方について - ぼっちプログラマのメモ
その③
【UE4】UE4.26で追加されたControl Rig Componentの使い方について - ぼっちプログラマのメモ


ControlRig?ナニソレオイシイノ?という方はこちらをどうぞ

youtu.be
スライド:猫でも分かる Control Rig UE4.25 版

はじめに

UE4.26がついにリリースされました!
(この記事を書いてる今はまだリリースされてないので、本当に時間通りにアップされるかドキドキしながら書いてます)

今回リリースされたUE4.26にて
「コントロール リグの分岐とループ(Control Rig Branching and Looping )」がサポートされました。

コントロール リグの分岐とループ
分岐とループにより、最小限のセットアップで柔軟でダイナミックなコントロール リグを作成することができます。ループを使用すると、反復可能なオブジェクトの集合 (ボーン チェーン、コントロールのリスト) を動的に作成することができます。これにより、グラフのサイズが大幅に縮小され、グラフのパフォーマンス、作成時間、およびリグの柔軟性が向上します。

f:id:pafuhana1213:20201202214706g:plain

  • 新しい分岐/条件ノードにより、条件の要素に基づいてグラフを分岐できるようになりました。
  • ループでロジックを利用して、より簡潔で柔軟なグラフを作成できるようになりました。
  • 項目のグループ化とサポート ノードをサポートするようになりました。

Unreal Engine 4.26 リリース ノート | Unreal Engine Documentation

特にループ機能は手指のように複数の階層で構築されたボーンを制御する際にとても有用です!
この機能がないUE4.25の場合は指毎にノードを配置する必要があって大変でしたが、ループ機能を使うことでかなりシンプルに書くことが出来ます!

と言ったことまではこのリリースノートから読み取れるのですが、具体的にどう使うか?は説明されていません。
ということで、本記事ではこのループ機能を使って上図のような制御を実装する方法について説明します。

続きを読む

【UE4】UPROPERTYのmetaを使ってプロパティの表示順を調整する方法について

はじめに

C++で設定したプロパティが意図通りの順序で表示されないなぁ…と悩んでいたら公式ドキュメントにバッチリ書かれてたので自分用メモ
docs.unrealengine.com

DisplayAfter="PropertyName"

このプロパティは、ブループリント エディタでの中で、プロパティが両方とも同じカテゴリにある限り、ソースコードの順番に関係なく PropertyName という名前のプロパティの直後に表示されます。複数のプロパティの DisplayAfter 値と DisplayPriority 値が同じ場合、ヘッダ ファイルで宣言された順番で、名前付きプロパティの後に表示されます。

DisplayName="Property Name"

コードが生成する名前の代わりになるプロパティの表示名です。

DisplayPriority="N"

2 つのプロパティの DisplayAfter 値が同じである、または同じカテゴリで DisplayAfter メタ タグがない場合にこのプロパティがソート順を決定します。優先度が高い値は 1 です。つまり、, meaning that a property with a DisplayPriority 値が 1 のプロパティは DisplayProirity 値が 2 のプロパティに優先します。複数のプロパティの DisplayAfter 値が同じ場合、ヘッダ ファイルで宣言された順番で、名前付きプロパティの後に表示されます。

例:

UPROPERTY(EditAnywhere, meta=(DisplayPriority="1"))

【UE4】回転に関する操作UI( Gizmo, Manipulator )を追加するオプションについて

はじめに

つい最近これらのオプションについて知ったのでご共有!
レベルデザイン、Sequencer、Control Rigなどの編集時にお役に立つかなと思います!
※ Control Rigについて:猫でも分かる Control Rig UE4.25 版

Enable Combined Translate/Rotate Widget



Enable Arcball Rotate



Enable Screen Rotate



エディタ設定

f:id:pafuhana1213:20200816143501p:plain

おしまい

【UE4】Cel・Toon・Stylized・NPRシェーダ系アセット・資料 自分用まとめメモ (2020年8月更新)

f:id:pafuhana1213:20200805183009p:plain

自分用雑まとめ。最新版での動作確認はしていません。
抜けてるものがあったらコメントに頂けるとありがたいです

最終更新:2020/8/8

続きを読む

【UE4】フェイシャルキャプチャ時における、Live Link Remap アセットを使ったカーブ名の再マッピングについて

前回の記事

pafuhana1213.hatenablog.com

はじめに

前回の記事で説明した通り、Live Link Faceアプリを使ったフェイシャルキャプチャにおいて
対応するカーブを用意することは非常に重要なのですが、地味に作業が面倒です。

面倒です!!!

と思っていたら、Live Link Faceアプリの公式ドキュメントにこうあります。

使用するキャラクターのブレンド シェイプの名前は ARKit ブレンド シェイプとまったく同じである必要はありません。LiveLinkRemap アセット内にカスタムのブループリント関数を作成して、ARKit ブレンド シェイプ名を自分のキャラクターで使用する名前に変換することができます。手順については「Face AR サンプル ドキュメント ]」を参照してください。ただし、最良の結果を得るために、使用するキャラクターのフェイシャル ブレンド シェイプが覆う顔領域は ARKit ブレンド シェイプと同じになるようにしてください。
iPhone X からフェイシャル アニメーションを記録する | Unreal Engine Documentation

コレを見てなるほど!と思い、Face ARサンプルのドキュメントを見に行くと…

LiveLinkRemap アセット内でのカーブ名の再マッピング
[My Blueprint] パネルの [Function] グループで、[Override] そして [Get Remapped Curve Names] を選択します。
入力と出力と合わせて、関数のグラフが開きます。目標は、このグラフを使用して、AppleSDK で想定される名前リストから受け取った名前を、キャラクターのブレンド シェイプ名に対応する名前に変更することです。たとえば、キャラクターのブレンド シェイプが適切な名前であるものの、「Character_」が追加されている場合、使用するグラフは次のようになります。

Apple SDK から受け取った名前に「Character_」を追加し、結果を出力している点に注意してください。
Face AR Sample | Unreal Engine Documentation

?????????????

となって、どう使うのか分かるのに少し苦労したので記事にします。

…と記事を書いてる途中で公式ドキュメントの別のページで解説があるのを知りましたが、
今回は Live Link Face を使ったフェイシャルキャプチャに特化した話ということでご容赦ください!
Live Link プラグイン | Unreal Engine Documentation ( Live Link ターゲットの項より )

続きを読む

【UE4】Live Link Face for Unreal Engineを使って、あなたのキャラクタの表情を動かす方法

はじめに

少し前に、Epic Gamesよりリアルタイムフェイシャルキャプチャ用のiOSアプリ「Live Link Face」がリリースされました。
このアプリとUE4を連携させることで、
TrueDepthカメラ( ≒ Face ID機能 )を持つiPhoneiPadがあれば個人でもフェイシャルキャプチャを実現することができます!

www.unrealengine.com

こんなことや…

あんなことも!



実は2018年から実現可能だったのですが、当時は Face AR Sample を iOS向けにパッケージングする必要がありました。
そのため、iOS開発環境(MacApple Developer Programへの登録など)を整える必要があり、導入のハードルが高い状況でした…

pafuhana1213.hatenablog.com

しかし、「Live Link Face」があればそんなことは必要ありません!
対応デバイスさえあれば誰でも気軽に試すことができます!公式ドキュメントもあります!やったね!

Androidユーザの方は…す、すみません…僕は自腹でiPhone XRを購入しました…)

iPhone X からフェイシャル アニメーションを記録する | Unreal Engine Documentation
Face AR Sample | Unreal Engine Documentation


ただし…サンプルキャラ(KiteBoy)以外のキャラクタに応用する方法についてはあまり詳しく書かれていません。
マケプレなどのストアからDLしたキャラ や 自作のキャラではどう使うの!?」と悩んでしまっている方もいるかと思います。

ということで自分メモも兼ねて書いていこうと思います。
なお、「既にサンプルキャラ(KiteBoy)のフェイシャルキャプチャに成功している」という前提のもとで説明します。
上記の公式ドキュメントにある手順に従えば…大丈夫…なはずです!

また、Anim BPを少しでも触ったことがあることも前提とします。
といっても、「アセットの作り方」と「どんな機能なのかをふんわり知ってる」レベルで大丈夫です。
Animation ブループリントの作成 | Unreal Engine Documentation

そして、解説にはマケプレのこの娘を使います。猫耳いい…かわ…(*´∀`*)
KemomimiFighter:AutumnRiceField:Characters - UE4 マーケットプレイス


微妙に話が長くなってしまったので、急ぎの方は 「まとめ」を先にご確認くださいまし。
UE4のアニメーション機能をそれなりに触ってる方はそれで概ね把握できると思います。

続きを読む

UE4のRetarget Manager にて独自のリグを追加・設定する方法について

アニメーションのリターゲット機能について

UE4 には ボーン構造が異なっているモデル間でも アニメーション を使い回すための仕組みとして、アニメーションリターゲット機能を提供しています。アニメーションリターゲット機能の使い方・注意点に関しては 公式ドキュメント や こちらのYoutube配信 を見ていただくと分かりやすいかと思います。
docs.unrealengine.com
youtu.be

独自のリグを追加・設定するには

リターゲット機能を使う過程でRetarget Manager上でリグの設定をする必要があるのですが、デフォルトですとエンジン標準のHumanoid Rig しか選択できません。

f:id:pafuhana1213:20200703153917g:plain

しかし、プロジェクトによっては 独自のリグを設定して使いまわしたいケースもあるかと思います。ということで、独自のリグ設定を作成・設定する方法について説明します。といっても、簡単です!!!

続きを読む