1
0
hugo/content/blog/2024-07-18-vrm.md
2024-07-18 22:04:45 +09:00

4.8 KiB

+++ date = "2024-07-18" tags = ["ue","ue5","vrm"] title = "vrm4uでBP_PoseCopyToonを使う" +++

今回は誰も解説していないvrm4uでBP_PoseCopyToonを使った見た目をカスタマイズする方法を紹介します。ドキュメントにも書かれていませんが、大体は以下の手順になります。

  1. ファイラーでPlugins/を見えるようにする(プラグインコンテンツを表示)

  2. All/Plugins/VRM4U/Util/Actor/PostShadow/BP_PoseCopyToonをlevel(map)に配置し、target actorにBP_Playerを選択して調整する(BP_Playerもlevelに配置しないといけない)

  3. All/Plugins/VRM4U/Util/Actor/PostShadow/MI_PostToonが更新されているのでAll/Plugins/VRM4U/ImportData/DS_VRMCustomを開いて、全部をMI_PostToonに変更する

  4. 新しくvrmファイル(.vrm)をインポートする。この際、type:customを選択する

  5. 奇妙なSK_${name}ができるが重ねがけ用なので正常。BP_PoseCopyToonを開いてVrmPoseableMesh_translucentをコピーし、BP_Playerに貼り付ける

  6. VrmPoseableMesh_translucentで先程作ったSK_${name}を参照する

VrmPoseableMesh_translucentで生成されるmaterialはlevel専用の一時的なものです。これはコピー、貼付けして一時的に使えますが、保存されません。unreal engineを落とすと無効になります。

したがって、customに入れて生成して使います。それが上記の手順です。

近づくとよく分かる違い

近づくとその違いは明らかです。subsurface profileで作ったモデルはデコボコしていますが、postshadowを重ねて表示するモデルはデコボコが消えきれいになっています。

今回は原子爆発を使ったあとは輪っかと瞳のmaterialを切り替えて光らせるようにしました。

この辺のmaterialの調整も結構大変で試行錯誤しています。

なぜvrm4uの見た目をカスタマイズしている人がいないのか

そもそも日本語のunreal engineの情報自体が少ないのですが、その中のvrm4uとなると、なおさら触る人が少ないのだと思います。

また、どこにもやり方が書かれていないので、誰もやっている人がいません。ですから見た目のカスタマイズは相当大変です。検索しても情報は出てこない。

説明しようにも環境問題が大きく、解説が難しい事情もあるのでしょう。公式情報にあたっても普通にわけがわからないですね。

最近の出来事

だいぶ理想の空に近づいてきました。ぱっと見は問題なさそうですが納得できないところが多く、修正していたら時間がかかりました。

dynamic volumetric skyで2dskyが原因である領域に視線を向けるとチカチカ背景の色が変わる現象に遭遇しました。2dskyをdisableにすることで解消しました。

また、time speedをゆっくりにすることで、雲がきれいになりました。fpsはfreeにしました。projectでもfpsを高めに設定しました。

その後、モデルに目を向けました。モデルも悪くはないんだけど、でも理想的ではありません。個人的にはリアル寄りではなく、アニメ寄りにしたかったのです。

ですが、unreal engineはリアル寄りのゲームで、アセットの多くもリアル寄りが多いので、subsurface profileを使用していました。

基本はこれを調整したものをベースに、BP_PoseCopyToonを使っていきたいと思います。

原子爆発をシーケンサで作成していましたが、バグに遭遇しましたので記録しておきます。

5.3から5.4にシーケンサを持ってきて使用していましたが、一度でも編集するとおかしくなります。例えば、BP_Playerを置いたとして、meshも追加しなければならなくなりました。meshを追加したあとはじめてanimを追加できます。しかし、これでもまだ正常ではありません。buildが進まなくなり、編集するとanimが機能しなくなります。つまり、meshを追加、animを追加、meshを削除という手順を踏まなければいけません。 BP_Playerの直下にanimを置くことでようやく正常になります。

最近、googleではなくperplexity.aiを使用するようになりました。

srcに当たりたい気持ちはありgoogleのほうが使いやすいように思えますが、unreal engineに関してはperplexityのほうが問題解決が早かった。