/VRM4U

Runtime VRM loader for UnrealEngine4

OtherNOASSERTION

VRM4U

English Doc

はじめに

VRM4UはUE4で動作する、VRMファイルのインポーターです。

使い方は こちらのページにあります

※配布用のexe作成、モバイル実行には、ソースリポジトリのデータが必要です。 後述の手順を参照ください。

特徴

2 2
2 2
  • VRMファイルをインポートできます。
  • アニメーション
    • 骨、Morphtarget・BlendShapeGroup、揺れ骨・コリジョン などが生成されます。
    • 揺れ骨の挙動はVRMSpringBoneかPhysicsAssetを選択できます。
    • Humanoid用のRIGが生成されるので、アニメーションを手軽にリターゲット可能です。
  • マテリアル
    • MToonを再現したマテリアル。影色の指定や、アウトラインの色・太さ調整、MatCapなど一通り適用されます。
    • 既存のPBR背景の中にキャラクタを描画できます。ポストプロセスを利用しません。
  • モバイル
    • BoneMapリダクションを使うことで、公式のUE4エディタからモバイルでSkeletalMeshを利用できます。
    • 描画はForward/Deferred両方に対応しています。

動作環境

  • UE4.20〜UE4.26
  • Windows, Android, iOS
  • UE4.19も動きますが、マテリアルは生成されません。
  • Macでは動きません。WindowsからのリモートビルドでiOSに転送することは可能です。

使い方

  • 配布用のexeを作成したり、モバイルで実行する場合は、後述のソースリポジトリからダウンロードしてください。
  • エディタでのみ利用する場合は、releasesより利用するバージョンのプラグインをダウンロードし、 「.uproject」とおなじ場所に「Plugins」フォルダを展開してください。

サンプルマップ

  • VRM4UContent/Maps/VRM4U_sample.umap
  • ContentBrowserに表示されない場合は、以下の項目を確認ください。 3

使い方

  • VRMファイルをドラッグ&ドロップしてください
2
https://www.youtube.com/watch?v=Qlz0bUSLjss

仕組み

詳しく知りたい方はこちら

https://speakerdeck.com/ruyo/vrm4u-wakaru

作った人

@ruyo_h

ライセンス

MIT(VRM4U)

3-clause BSD-License(assimp)

ソース

UE4アカウントの紐づけが必要です。

ライセンスの都合上、念の為EpicGamesアカウント紐付けにしています。手間ですみません。。

https://github.com/ruyo/UnrealEngine_VRM4UPlugin (404エラーページが出る場合はこちらより紐付けをしてください

https://github.com/ruyo/assimp

公開の体裁を含め 多くの方の情報を参考にさせて頂いています。
ありがとうございます。

リリース履歴

  • 2021/02/12
    • ControlRig:リターゲットスクリプトを高速化した
    • ControlRig:リターゲット後、モデルによってeyeやchestのコントローラがずれることがあるのを修正
    • ControlRig:LookAtフラグが誤作動することがあるのを修正
    • OculusQuest2のハンドトラッキングを修正(親指のトラッキング、サンプルの修正)
    • assimpを更新した(20210208)
  • 2021/01/24
    • ControlRigのBackwardsSolveに対応した。
    • MtoonAttachActorからDirectionalLightComponentを参照できるようにした
    • SSSマテリアルのEmissiveを通常扱いにした(従来はBaseColorに合成するオプションが有効化されていた)
    • SimpleCharacterサンプルを追加した。
  • 2021/01/12
    • ControlRigを上手く適用できないモデルに対応した(PMXで骨階層が異なるもの、準標準ボーンを利用しているもの)
    • LightRigからDirectionalLightComponentを参照できるようにした(SunSkyActor対応)
    • LightRigにDirectionalLightのピッチ角による明るさ補正オプションを追加した。
    • 魚眼効果を追加した。嘘パースの制御方法を変更した。
    • MToonMaterialSystemにSSGIの切り替えオプションを追加した
  • 2021/01/02
    • ControlRigに指骨や両足のコントローラを追加した。
  • 2020/12/30
    • ControlRigをインポートしたモデルに適用できるようにした。サンプルを追加した。
    • PoseRig設定時、つま先の親骨基準位置がずれているのを修正した。
    • Alphaを別テクスチャから参照できるようにした。(UTS2のアセット対応)
    • ノーマルマップのみUV値にスケールを適用できるようにした。
  • 2020/12/04
    • UE4.26に対応した。
  • 2020/11/25
    • モデルの一部のパーツの座標がずれてしまうことがあるのを修正した。(パーツの原点がワールド原点でないもの)
  • 2020/11/18
    • SSSモードのデフォルトマテリアル設定を変更した(MatCapとShadeColor/ShadeHueShiftを有効化)
    • SingleAssetFile無効時も、AssetUtilによるマテリアル変更を可能にした。
    • MatCapに法線補正が影響しないようにした
    • キャラ用フォグシートを追加した。
    • インポートオプションに、スキンのウェイトの骨数制限を追加。(2~8を選択可能)
    • インポートオプションに、Mipmap生成を追加。
  • 2020/10/28
    • VRM以外のファイルについて、デフォルトのアウトラインカラーを設定した。
    • SingleUAssetFile未使用時、未使用なリダイレクタが残ってしまうのを修正した。
    • VRM4UEditorモジュールがゲームビルドで失敗することがあるのを修正した。
  • 2020/10/09
    • なんでもインポート時、テクスチャファイル名に2バイト文字が入っていると正しくマテリアル作成できないのを修正した。
  • 2020/10/08
    • インポート時にSkeletonを指定すると、骨がずれてしまうのを修正した。
    • UE4.26用にAOパラメータを再設定した。
  • 2020/09/17
    • UE4.24のランタイムロードで停止するのを修正した。
    • Skeleton指定でインポート失敗した時、停止するのを修正した。
    • エフェクトマテリアル用にUVを操作できるようにした。
  • 2020/08/21
    • カメラターゲットが無い時、ズームできなくなるのを修正した。
    • FilmicToneMap無効化をパラメータで制御できるようにした。
    • エフェクトマテリアル作成用の機能を追加した。
    • ランタイムロードするとMorphTargetが動作しないのを修正した。
    • ランタイムロードサンプルにファイル選択ダイアログを追加した。
    • マテリアルサンプルにSSSを追加した。
  • 2020/08/07
    • モバイルのmatcapが真っ白になるのを修正した。
    • 注視キャラクタのスケール値をライトやカメラに適用するようにした。
    • PBRマテリアルもMPCで調整できるようにした。
  • 2020/07/25
    • インポートマテリアルを整頓した。インポート時にSSSマテリアルを選択できるようにした。
    • キャラカメラのフォーカス位置を変更できるようにした。(F,G,Hキー)
    • キャラカメラにブリージングオプションを追加した。
    • キャラライトの回転軸がずれることがあるのを修正した。
    • AssImpなんでもインポート時、拡張子の判定がすり抜けることがあるのを修正した。
  • 2020/07/21
    • ベースマテリアルが正しく描画されないのを修正した(MaterialFunctionにした時のミス)
  • 2020/07/18
    • LiveLinkFaceサンプルを整理しました。
  • 2020/07/16
    • UE4.25向けのLiveLinkFaceサンプルを追加した。
    • キャラカメラのpitchが動作しないことがあるのを修正した。
    • ベースマテリアルをMaterialFunctionにまとめた。
    • build, cook時に警告が出ている箇所を対処した。
  • 2020/07/11
    • (注意)エディタのプラグインウィンドウより明示的にプラグインを有効化してください。
    • BlueprintProjectのパッケージ実行時にエラー終了するのを修正した。
    • リファレンスがA-poseのモデルに対して、T-poseを明示的に作成するようにした。
    • リファレンスポーズを後から変更できるようにした。
    • assimpを最新にマージした。assimpのサポートするモデルフォーマットを読み込み可能にした。
  • 2020/06/25
    • マテリアル毎の法線補正機能を追加した。
    • VRの客観視点に、キャラクターカメラの画像を設定できるようにした。
    • カラーグラデーションの初期値を変更し、上部2隅のみ色を残した。
  • 2020/06/11
    • キャラクターrigで指が動作しないのを修正した。
    • ランタイムロードでモデルが崩れるのを修正した。
    • 無名のテクスチャのロードに失敗することがあるのを修正した。(最適化済Vroidモデル対策)
    • ModelActorの処理負荷を下げた。
    • PoseCopy時、モデルを差し替え可能にした
  • 2020/05/30
    • MaterialUtil処理を高速化した。
    • アニメーションプレビュー処理を高速化した。
    • プリミティブ毎のCastShadowsが効かないのを修正した(要再インポート)
    • ランタイムロードサンプルのアニメーションが動作しないのを修正した。
  • 2020/05/20
    • UE4.25でOculusVRプラグインが無効の時、停止してしまうのを修正した。
    • インポート時、UAssetを個別に保存できるようにした。
    • SSS切替時のデフォルトパラメータを調整した。
    • RectLightのアーティファクトが目立たなくなるようにした。(ShadowSlopeBiasを変更した)
  • 2020/05/17
    • 汎用的なキャラライトを追加した。初期値をSpotLightに戻した。(SSSでノイズが出るため)
    • SSSパラメータをMaterialSystemで一括オーバーライドできるようにした。
    • キャラカメラに、キャラ注視のまま操作できるモードを追加した。
    • 色が残りやすいBloomを追加した。
    • VRMインポート時のデータチェックを厳密にし、クラッシュしにくくした。
  • 2020/05/11
    • 描画クオリティをMaterialSystemから変更できるようにした。
    • SSS設定時のラフネス初期値を変更した(0.8->0.7)
    • SSS設定時のNoTranslucentオプションが動作しないことがあるのを修正した。
    • インポート時のマテリアルマージで半透明が判別できないのを修正した。
    • 4.25でのインポート後、エディタ再起動でブレンドシェイプが消えるのを修正した。
  • 2020/05/06
    • UE4.25に対応した。
    • キャラマテリアルにPBRモードを追加した。
    • サブライトを設定できるようにした。
    • マテリアル切り替え時にエディタが停止することがあるのを修正した。
    • マテリアルに彩度調整を追加した。
  • 2020/05/02
    • Editor用のモジュールを追加した。
    • rig生成時、NearZを自動で変更(10->1)するようにした。選択しにくい場合の対処のためZオフセットを変更した。
    • rigからAnimSequenceを出力できるようにした。
  • 2020/04/29
    • キャラライトを面光源にした。オプションでスポットライト変更。
    • MaterialSystemのPostprocess優先度を上げた。0->10
    • morph操作時、初期向きをモデルに合わせた。
    • 全身rigモードを追加した。
    • rigの表示位置をターゲットモデルに合わせた。
  • 2020/04/23
    • rigとlookAt組み合わせ時、PIEで頭位置がズレるのを修正した。
    • マテリアル一括編集ツールを追加した。
    • 小物Attach用のモードを追加した。
  • 2020/04/20
    • サンプルを更新・追加した(リグ、カラーグレーディング、トラッキング)
    • rig生成時、半透明選択を有効化した。
    • rigの上体の位置と回転を分離した。
    • 初期ポーズのON/OFFを選択可能にした。(アタッチがずれる対処)
  • 2020/04/18
    • 初期ポーズ機能をONにした。
    • ポーズを微調整するRigを追加した。
    • テンプレートモデルVRoidSimpleを最適化した。リターゲットポーズを追加した。
  • 2020/04/13
    • 前回の更新で揺れ骨が動作しなくなったのを修正した。(初期ポーズ機能をOFFにした)
    • glb, gltfのインポート時に座標系がずれるのを修正した。
    • インポート時にpbrマテリアル指定していても、mtoonで出力されることがあるのを修正した。
  • 2020/04/11
    • アニメーションの初期ポーズを適用できるようにした。
    • BPの命名に沿わないものをリネームした。
    • ポスト処理による4色カラーグレーディングを追加した。
    • Standaloneでアニメーションが動作しないのを修正した。
    • ARKitのフェイシャル、OVRLipsyncのアニメをコピーできるようにした。
  • 2020/04/04
    • 透過ウインドウに制限を入れた(新規ウインドウ実行時のみ有効)
    • UE4.25 gameビルドに対応した。
    • MToonMaterialSystemに自前のPostProcessVolumeを持たせるようにした。
    • Exposureをオーバーライドするオプションを追加した。
    • 一部のモジュールをMacで動作できるようにした。(ただしインポートは不可)
  • 2020/03/31
    • 色再現を優先するモードを追加した(FilmicToneMapperをOFF、色逆変換を無効化)
    • デバッグカメラ操作に、Roll回転とZoomを追加した。
    • 揺れ骨簡易設定のデフォルトパラメータを変更した。
    • AnimBlueprintにトラッキング用IKを追加した。UE4.25用にOculusQuestのハンドトラッキングテストを追加した。
  • 2020/03/25
    • 揺れ骨を簡易的に再設定できるようにした。デバッグ表示を追加した。
    • リターゲットポーズを追加した。足の開閉パターン2種類ぶん。
    • ライセンス情報が欠けていたのを修正した。
    • インポートウインドウにモデルのライセンスと画像サムネイルを表示するようにした。
  • 2020/03/21
    • ポーズコピー元にSkeletalmeshを指定できるようにした。morphを連動させた。
    • ウェイトが無いパーツについて、追従する骨を正しく設定するようにした。
    • ランタイムリターゲット時、RootMotionが反映されないのを修正した。
    • 背景のクロマキー、ウィンドウ透過サンプルを追加した。
  • 2020/03/17
    • 風のゆらぎ、座標によるディレイを追加した。
    • 揺れ骨のカテゴリ変更、風を無視する骨を設定できるようにした。
    • ポーズコピー時、フレームレート操作できるようにした。
    • ドキュメントのサンプルBVHを読めるようにした。
  • 2020/03/15
    • 多くの機能をAnimControlComponentにうつした。
    • 風を設定できるようにした。
    • 揺れ骨の設定をActorから操作できるようにした。
    • アニメーションのフレームレートを操作できるようにした。
    • Stencil設定用に、モデルを姿勢ごとコピーするActorを追加した。
  • 2020/03/12
    • Toonの初期化をConstructionScriptに移動した。
    • UpperChestが無いモデルの視線追従が弱いのを修正した。
    • CustomAnimSequenceのアセット選択候補をリターゲット元のみにした。
    • Morphコントロールをレベル上で確認可能にした。
    • レベル上でアタッチ可能なアクタ VRMModelActorを追加した。
  • 2020/03/08
    • 視線追従Actorのターゲットを修正した。
    • PIEでキャラライトを設定すると 座標がずれるのを修正した。
    • UE4.25pre1に対応した。
  • 2020/03/04
    • Skeletonのマージをした後、VRMSpringBoneで停止することがあるのを修正した。
  • これ以前のものはこちら → https://github.com/ruyo/VRM4U/blob/master/CHANGELOG.md