17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unreal Engine (UE)Advent Calendar 2024

Day 21

UnrealEngineでアバターを動かす方法

Posted at

はじめに

本記事では UnrealEngineでアバターをモーションキャプチャで動かす方法 について紹介します!
カメラがあるだけでも手軽に始められますし、mocopi を使えば フルトラッキング でアバターを自由に動かせます✨

UnrealEngineでアバター(VRM形式)を動かすためのツールは、ありがたいことに 先人の方々 がたくさん開発してくださっています!
ただ、その活用方法が1つにまとまっておらず、私も最初は右往左往していました…。

なので、この記事で手順をまとめてみました!

🎉 UnrealEngine×アバターの楽しみ方は無限大! 🎉

  • VTuberデビュー してみる
  • 自分の思い通りの映像制作に挑戦
  • お好きなポージングでアバターを愛でる

:sparkles::two_hearts:下記は私が今までUnrealEngineでアバターを動かして遊んでいた投稿です🎉
こういうことが簡単にできちゃいます!🌟
:two_hearts::sparkles:

初心者の方でも再現できるように丁寧に解説を試みます!
Qiita初投稿なので、もし読みにくいところがあればごめんなさい💦
何かあればXかコメントで教えてもらえると嬉しいです💕

1. UnrealEngineをダウンロード

まずはUnrealEngineを以下のリンクからダウンロードしましょう👇
image.png

Unreal Engine ダウンロードページ

2. UnrealEngine 5.1.1をインストール

ダウンロードしたランチャーを起動し、UnrealEngine 5.1.1 をインストールします。

今回使用する神ツール様たちがUnrealEngine 5.1に対応しているため、最新バージョンではなく5.1を選択しています!
ツール作成者の方々に感謝しつつ、環境を整えましょう。

3. プロジェクトを作成

UnrealEngine 5.1.1を起動し、「Virtual Production」を選択してプロジェクトを作成します。
作成後、プロジェクトが立ち上がったら、一度「×」ボタンで閉じてください。
image.png

新規プロジェクトフォルダを作成するのが目的です。
他が良い方は「Virtual Production」以外でも問題ありません。

4. 必要なツールをダウンロード

ここで今回使用する 神ツール様 たちをダウンロードします!
これらのツールは、素晴らしい先人の皆さまが開発してくださっています。
本当に感謝しかありません🙏

下記に指定しているものを全てダウンロードしてください。

ツール一覧

VRM4Uとは?
VRM形式のアバターをUnrealEngineで扱えるようにする超重要プラグインです!
開発者: はるべえ haru様


VMC4UEとは?
モーションキャプチャデータをUnrealEngineに送るためのプラグインです!
これがあるからアバターを動かせる✨
開発者: はるく様


ueOSCとは?
UnrealEngineに対してモーションデータをリアルタイムでやり取りするための便利なツールです!
開発者: はるく様


UniVRMとは?
UnityでVRM形式のアバターを扱うための必須ツールです!
後ほど使うので忘れずにダウンロードしてください。
開発者: こちらの皆様🙏


VRMMapExporterとは?
アバターをUnrealEngineで動かすための設定データ(VRMMap)を出力するツールです!
開発者: はるく様

5. ダウンロードしたツールをUnrealEngineのプロジェクトに追加

ダウンロードしたツールをUnrealEngineプロジェクトに追加します。

  1. プロジェクトのフォルダを開く
    UnrealEngineランチャーで、先ほど新規に作成したプロジェクトを右クリックし、「フォルダで開く」を選択します👇
    image.png

  2. Pluginsフォルダを作成
    開いたプロジェクトフォルダに「Plugins」という名前の新しいフォルダを作成します。
    image.png

  3. 解凍したツールを追加
    以下の3つのツールを解凍し、それぞれの「Plugins」フォルダの内容をUnrealEngineの「Plugins」フォルダにコピーします。

    • VRM4U
    • VMC4UE
    • ueOSC
      image.png

注意:
UniVRMやVRMMapExporterはUnrealEngineの「Plugins」フォルダには追加しません!これらはUnityで使用します。

6. プラグインを有効化

作成したUnrealEngineプロジェクトをダブルクリックして立ち上げます。
上部メニューの「編集」から「プラグイン」をクリックしてください。
image.png


プラグインの有効化

以下の3つのプラグインをそれぞれ検索し、有効化してください。

  1. VRM4U
    検索バーに「VRM4U」と入力し、表示された項目にチェックを入れます。
    image.png

  2. VMC4UE
    検索バーに「VMC4UE」と入力して、有効化します。
    image.png

  3. ueOSC
    検索バーに「ueOSC」と入力して、有効化します。
    image.png

すべてのプラグインを有効化したら、プロジェクトを保存し、再びプロジェクトごと閉じてください。

7. アバターの準備

次に、動かしたいアバターファイル(VRM形式)を用意します。
まだアバターを持っていない方は、VRoid Studio を使って簡単に作成することができます。

VRoid Studio

私自身もアバターの作成を受注しています!気になる方はこちらからどうぞ👇
https://minta.base.ec/items/87467982

8. 設定ファイル(VRMMap)の作成

ここでUnityを一時的に使用します。
Unityをまだインストールしていない方は、以下のリンクからダウンロードしてください👇
Unity ダウンロードページ

Unity 2022.3 LTS以降のバージョンをインストールして使用します。
image.png


Unityプロジェクトの作成

  1. Unity Hubを起動し、3Dテンプレートを選択して新規プロジェクトを作成します。
    image.png

  2. 先ほどダウンロードした以下の2つのファイルをUnityプロジェクトにドラッグ&ドロップしてください。

    • UniVRM
    • VRMMapExporter
      各ファイルを追加すると「Import」画面が表示されるので、「Import」をクリックします。
      image.png
  3. 動かしたいVRMアバターファイルをUnityプロジェクトにドラッグ&ドロップします。
    image.png

  4. アバターがUnity内に表示されたら、左側のシーンビューにドラッグ&ドロップしてください。
    image.png


VRMMapのエクスポート

  1. シーンに配置したアバターを選択した状態で、上部メニューの「VRMMap」→「Export」をクリックします。
    image.png

  2. エクスポートが成功すると、画面下部に「Export Successful」とともにフォルダパスが表示されます。
    .vrmmapファイル が作成されているので、そのパスを控えておいてください。
    Unityはもう閉じて大丈夫です。

補足:
他のアバターを動かしたい場合も、このUnityプロジェクトを再利用できるので保存しておくことをお勧めします。

9. UnrealEngineにアバターをインポート

UnrealEngineを再び立ち上げ、Unityで作成したVRMMapファイルをインポートします。

  1. VRMMapファイル をUnrealEngineのコンテンツブラウザにドラッグ&ドロップしてください。
    image.png

  2. 動かしたいアバターファイル(VRM)も同様にインポートします。
    image.png


マテリアル設定

  1. アバターのインポート時に表示されるオプションで、Material Type を選択します。
    個人的には「Subsurface」が好きですが、お好みの設定を選んでください!
    VTuberぽいのはデフォルトの「MToon Unlit」だと思います。
    残りの設定値はそのままで「Import」を押します。
    image.png

10. UnrealEngineでアバターを動かす設定

次に、インポートしたアバターを動かす設定を行います。

アバターファイルの配置

  1. アバターファイルインポート後、たくさんのファイルが生成されます。その中から「SKEL_」で始まるアバターファイルを探してください。

  2. このファイルをビューポート(メインの画面)にドラッグ&ドロップします。
    image.png

  3. アバターがビューポート内に配置されます!(カワイイ!💗)
    image.png


Animブループリントの作成

  1. SKEL_」で始まるアバターファイルを右クリックし、「作成する」→「Animブループリント」を選択します。
    image.png

  2. ○○_AnimBluePrint」という名前のファイルが作成されます。これをダブルクリックしてください。

補足:
ブループリントは、UnrealEngineでプログラミングができる便利なシステムです。
ノードを線でつなげるだけで簡単に設定できます!


VMC4UEのノードを追加

  1. Animブループリントを開くと、格子状のエディタ画面が表示されます。
    そこで右クリックし、「VMC4UE」と検索してください。
  2. 以下の2つのノードを追加します。
    • Modify VMC4UE Bones
    • Modify VMC4UE Morph
      image.png

VRMMappingの設定

  1. 追加した2つのノードそれぞれに「VRMMapping」という項目があります。
    この項目の「アセットを選択」をクリックしてください。
    image.png

  2. 一覧に先ほどインポートしたVRMMapが表示されるので、それを選択してください。
    image.png


ノードを接続

  1. 追加したノード同士をドラッグして線でつなぎます。以下のように「Bones」→「Morph」の順で接続してください。
    image.png

Portの設定

  1. Port の項目に「39539」と入力してください。  
    ※他の数字でも問題ありませんが、ここではこの数字を使用します。後で調整可能です。
    image.png

保存

最後に、左上の「保存」ボタンをクリックして設定を保存します。
image.png

これで、アバターを動かす準備が完了しました!

11. アバターを動かします!

やっとちょっと大変な設定が終わりました!あと一息です✨
ここでは、手軽にカメラだけで手の動き含め全身キャプチャができる 「Webcam Motion Capture」 を利用します。

補足:
「Webcam Motion Capture」 は有料版の契約が必要です!
無料で試したい方は「VSeeFace」がオススメです!
顔のトラッキングだけですが、無料で非常に優秀なツールです
(今回は詳細割愛します)。


Webcam Motion Captureのダウンロード

  1. 以下のリンクから Webcam Motion Capture をダウンロードしてください👇
    Webcam Motion Capture ダウンロードページ
    image.png

  2. 有料版(月額199円) を契約してください(執筆時点の価格です)。


Webcam Motion Captureの設定

  1. Webcam Motion Captureを立ち上げ、以下のように設定してください。
    image.png

  2. 設定後、「送信開始」をクリックします。


UnrealEngineで連動

  1. UnrealEngine側のブループリント画面に戻り、画面上部の「再生ボタン ▶」を押します。
    UnrealEngineとWebcam Motion Captureが連動し、アバターが動き始めます!
    image.png

  2. ブループリント画面を「×」で閉じます。


アニメーション設定

  1. UnrealEngineメイン画面の「アウトライナー」部分で、先ほど追加した「SKEL_○○」を見つけて選択してください。
  2. 下部の詳細ウィンドウで「Animation」セクションを探し、AnimClass に先ほど作成した Animブループリント を設定します。
    image.png

12. アバターをビューポート内で動かす

  1. UnrealEngineメイン画面上部の「」から「シミュレート」を選択します。
    image.png

  2. モーションキャプチャに合わせてアバターが可愛く動き始めました!!🎉
    :sparkles::two_hearts:おめでとうございます!:two_hearts::sparkles:

    ダウンロード.gif
    かわいいいいい( * ˘ཀ˘) :sparkles:💘

(おまけ)アバターをよりリアルに動かしたい場合

私は、アバターを動かす際に「バーチャルモーションキャプチャー」をよく利用しています。
このツールを使うと、Webcam Motion Captureのモーション情報に加え、他の機器から取得したモーションデータもブレンドでき、さらにリッチな動きを再現可能です。


バーチャルモーションキャプチャーのダウンロード

  1. 以下のリンクから バーチャルモーションキャプチャー をダウンロードしてください👇
    公式サイト
    支援版はこちらから!
    image.png

UnrealEngineで使用する場合は支援版を契約ください💗
VR配信するときにも使える超神ツールです⚡
開発者: あきら☎︎@VMC様


VMCプロトコルの設定

  1. Webcam Motion Captureで指の動きを取得し、mocopiで全身の動きを取得する場合、以下のように VMCプロトコル のポート番号を複数設定します。
    image.png

  2. どのポートで身体のどの部分を制御したいかは適宜設定してください。
    mocopiの細かい設定方法などはここでは割愛します。
    スクリーンショット 2024-12-14 225710.png

  3. 最後に「OSCでモーション送信を有効にする」にチェックを入れて適用します。
    これで、よりリッチな動きをUnrealEngineで再現可能です!

おわりに

いかがでしたでしょうか?
私自身、UnrealEngineは趣味で触っているだけなので、もっと効率的な方法があるかもしれません。
しかし、この手順は アバターをとにかく動かしたい! という執念で初心者ながら試行錯誤してたどり着いたものです。

ぜひ、自分のアバターをハイクオリティな空間で自由に動かしてみてください!
思いっきり愛でてあげましょう✨

もし何かわからないことがあれば、X(旧Twitter) で気軽にリプしてください!
拡散フォローしていただけると喜んで懐きます🐾

本記事が皆さんのお役に立てれば幸いです!😊
ここまでお読みいただきありがとうございました!:sparkles::two_hearts:
 

17
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?