ぼっちプログラマのメモ

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

【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】フェイシャルキャプチャ時における、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

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

続きを読む

特定のBlueprint , UMG にて Tickノードが使われているかをチェックする方法について

はじめに

Tick ノードは便利ではありますが、多くのActor, UMG が Tick ノードを使用するとパフォーマンス面で問題が発生する可能性が出てきます。
(特にモバイル や コンソールタイトルにて)

Unreal Engine 4を使って地球を衛る方法 ( p109 より Tickの話 )
UE4におけるレベル制作事例 ( p14 より Tickの話 )
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック ( p193 より Tickの話 )

そして、プロジェクト終盤で Tick 負荷が問題になると大変なことになりがちです。なぜなら、Tickを使わないように実装を大きく変更することになるためです。そのため、日々 Tickをなるべく使わないように心がけたり、Tick警察の方が目を光らせることが重要になります。

Tick警察のお供として有名なのが、 dumpticks コマンドです。これで ゲーム中に動いている Tick を洗い出すことができます。

f:id:pafuhana1213:20200626184626p:plain
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック p195より

しかし、ゲームを実際に動かす必要があるため、プロジェクトの規模が大きくなるほどチェックが大変になります。また、ログに出力されるだけなので、例えばCSVなどにまとめたい場合は抽出・整形する必要があります。

また、「Find In Blueprints」機能を使って 文字列検索から Tick ノードを抽出することもできますが、全BPが対象になるので時間がかかったり、結果をまとめづらいなどの問題があります。

f:id:pafuhana1213:20200626191716p:plain

そこで今回紹介したいのが、特定のBP・UMG アセットのEvent Graph にて Tick ノード が存在するか否かを自動的にチェックする方法です。こちらであればゲームを実際にプレイする必要はありませんし、その結果をCSV などに自動的にまとめることができます。

続きを読む