オリジナルアバターをVRChatにアップロードするまで ③リギング編

前回作成したモデルを使って、リギングを行っていきます。モデルを動かすために必要な作業となります。

準備

実際の作業に入る前にいくつか準備することがあります。とはいってもすぐに終わるのでちゃっとやってしまいましょう。

インターフェース変更

初期設定ではインターフェースがすべて英語となっているので、日本語にしておきます。

File > User Preferences を選択します。

Systemタブから日本語を選択した後に、日本語化したい項目を選びます。今回はとりあえずInterfaceのみを押下して日本語化しました。

設定を変更した後は、左下の保存ボタンを押さないと次回起動時に元に戻ってしまうので忘れずにクリックです。

初期オブジェクトの削除

shiftを押しながらライト、カメラ、箱を右クリックで選択し、デリートを押してOKしてください。今回これらのものは不要なので消しておきます。

ファイルのインポートとスケール変更

ファイル  > インポート > Stanford(.Ply) で作成したモデルのインポートを行います。

インポートした時点ではあまりにもモデルが大きすぎるので、「s」を押して適当に0.1とか0.2とか打ち込んでください。これでちょうどいいサイズのモデルになりました。

ところで、モデルが灰色一色でどういうことなの?と思われるかもしれませんが、これは表示方法が「ソリッド」になっていることが原因なので、「テクスチャ」へ変えるとモデリングした時の色が表示されます。

ウィンドウ下の丸い玉をクリックするとテクスチャが選べます。

ちなみに、ホイールクリックで視点をぐりぐり変えることができます。

重複している頂点の削除

モデルをインポートした段階では、モデルの頂点データに重複があるので、これを削除しておきます。

今回使うモデルは複雑で重いものではないので、この工程がなくても問題ないと思いますが、データは軽いほうが良いので。

さて、モデルを右クリックで選択後、「Tab」を押してオブジェクトモードから編集モードに切り替えます。次にモデルを選択します。モデルすべてを選択できていない場合は「a」を押してすべて選択してください。(aキーで全選択/選択解除を行うことができます。)

左のメニューのツールタブから削除という項目があるので、その中の「重複頂点を削除」をクリックします。すると不要な頂点が削除されます。

クリックしても特にメッセージは表示されませんが、ちゃんと削除されています。ファイルメニューのあるバーと同じ行にblenderのマークがあると思います(オレンジの目玉みたいなやつ)。そのマークの右に「頂点」という表示があるので、「Ctrl+z」でUndoをして削除前の頂点数を確認してください。「Ctrl+Shift+z」でRedoをして戻しておきましょう。

ちなみに、オブジェクトモードと編集モードがどんなものかという説明は以下の通り。

以上で準備が終わりました。

作業

テクスチャ作成

準備が終わったらリギングを始めたいところですが、その前にやることがあります。それはモデルの色をUnityで再現するための工程です。これをやらずにUnityへもっていくと

こうなります。

モデルの色を再現できてませんねー……。

本記事が参考にしたサイト様の説明によると

現状見た感じ色はついているのですが、実は頂点カラーという機能でポリゴンに色を塗っている状態です。Blender内では反映されているのですが、Unityへ持っていくと頂点カラー機能はそのままいつでも使えるという訳ではないので、表面のこの色合いを保存した画像を貼り付けようという訳です。

引用:オリジナルアバターを簡単に作りたい人向けチュートリアル リギング編

上の図が正に頂点カラーがUnityで使えていないという状態なのでしょう。

というわけで、Unityでモデルの色を再現するためにテクスチャを作っていきましょう。

モデルのuv展開図を作成する

まずは下にあるウィンドウを大きくして、作業領域を快適にします。

恐らく今、モデルは編集モードでモデルのメッシュが全て選択されている状態だと思います。されていなければ「a」を押して選択状態にしてください。

モデルが表示されているウィンドウ上で「u」を押して、画像のように「スマートUV投影」を選択します。

すると下図のような画面が出るのでOKを押します。

これで三次元モデルの展開図を作ることができました。やってることはサイコロを二次元図面上に展開するみたいなアレですね。ちなみにUVとは二次元に投影されたイメージの座標軸のことだそうです。

現時点では、モデルの三次元空間での形状をどう二次元平面に展開するかを規定しただけで、まだ画像データがないので、画像を作ります。

新規ボタンを押して、自分のわかりやすい名前を付けてOKを押してください。

ベイク

次にベイクしていきます。

モデルをベイクするって何?とお思いの方も多いのではないでしょうか。その疑問にお答えします。

Baking、ベイクとは一般に、のちに行う他の処理を高速化するために、何かを事前計算することを指します。ゼロからレンダリングを行うと、設定によっては多くの時間がかかります。このため Blender では、選択したオブジェクトのレンダリングの一部を先に「焼いておく/ベイクする」ことができます。こうすればレンダリングボタンを押したとき、このオブジェクトの色は再計算する必要がないため、シーン全体が高速にレンダリングされます。
レンダリング結果を焼き込むと、レンダリングされたメッシュオブジェクト表面の2次元のビットマップ画像ができます。オブジェクトの UV 座標をつかって、画像をオブジェクトに再マップすることができます。ベイクは個々のメッシュが UV展開されたときにはじめて完成します。

引用:Render Baking

とのことです(丸投げ)。

まぁベイクボタンを押したら何となく何をしたのか分かるので。

ウィンドウ右にあるカメラマークをクリックします。

すると、ベイクというメニューがあるので、展開します。

ベイクモードの「フルレンダー」をクリックして、頂点カラーへ切り替えます。それがすんだらベイクボタンをクリック。

先ほどの画像を作るときに押した「新規」ボタンの左側にある「画像」から別名保存で、画像を保存しておきます。

これで、テクスチャの作成が終わりました。

次にこのモデルにマテリアルを設定し、今作ったテクスチャを設定します。

マテリアルとテクスチャの違いについてはこちらのサイト様をご参照ください。

=前置き= 以前に書いた説明しよう!シェーダーとはッ! - Master of Noneの続きのようなもの。シェーダまわりの学習を始めた頃は「マテリアルとテクスチャとシェーダの関係」や「ポリゴンとモデルの違い」もよくわからなかったのを思い出したので、そこらへんの説明を昔の自分がわかるように書いてみようと思う。 前回と同...

マテリアルの作成とテクスチャの設定

ウィンドウ右のメニューからツヤツヤしてる玉を選択してください、それから新規ボタンをクリック。

これでマテリアルがモデルにセットされました。続いて、マテリアルへテクスチャを追加します。同じく右のメニューからチェック模様のマークをクリックして新規ボタンをクリック。

下のほうへ画像という項目があるので、下の画像の赤枠で囲ったボタンをクリックして先ほど作成したテクスチャを選択します。

これでマテリアルにテクスチャが追加されました。

リギング

いよいよリギングに入っていきます。ここまで長かったですね。リギング自体はすんなりいくとあっという間に終わります。

ボーンの生成と調整

ボーンと呼ばれる要素を作ります。一つ一つ作っていく方法もあるのですが、面倒くさいので今回はパス。 Blenderにはアドオンで、完成された人型のボーンが用意されているので、今回はこれを使って楽をしたいと思います。

オブジェクトモードで3Dビュー上にカーソルを置いてから「Shift+a」を押してください。

すると下図のようなメニューが表示されるので、Basic Humanを選択します。

ボーンを生成したら、これをモデルに合うように調整してしていきます。まずはボーンとモデルの位置を合わせましょう。

「n」を押して出てきたメニューから、座標を変更します。それぞれ0と設定します。

このままではボーンとモデルが被って見づらいので、下図のように、右のメニューからレントゲンにチェックを入れます。

ところで現状、遠近感のきいた表示となっているため、作業がやりやすいように、テンキーの「5」を押して並行投影に変更しておきます。

「s」を押してモデルとボーンが同じくらいのサイズになるようにスケール変更。いいくらいの大きさになったら左クリックで確定します。

テンキーの「1」を押してみます。すると、モデルを正面から見た図になります。こんな感じになりました。

この状態だと、腕のおさまりが悪いので、少し角度を変えていきます。

オブジェクトモードでボーンを選択後「Tab」を押して編集モードに切り替えます。ボーンを左右対称に操作するために、左にあるメニューのオプションタブからX軸ミラーを選択しときます。

いまのところボーン全体が選択されている状態なので、とりあえずAキーで選択解除しておきます。 Bキーを押すと範囲選択ができるようになるので、押してから回転させたい腕の片方どちらかを選択します。

下図にある3Dカーソルを選択し、左クリックで回転の中心を決めます。次に3Dカーソルの右下にある回転コマンドを選択。

真正面からだと回転させたいハンドルが表示されていないので、視点をホイールクリックで少し変えて、緑色の回転バーを表示させます。これを操作して腕を回転させます。

かなりアバウトですが、今回はこれで良しとします(単純なモデルだし……)。

今回は腕を少し回転だけさせましたが、細かく調整したい場合は、先ほど指定した回転ボタンの左がオブジェクトの移動、右が拡大縮小なので、これらを使って調整してください。

ボーンとモデルの関連付け

次にモデルのメッシュとボーンを関連付けます。

オブジェクトモードで「Shift」を押しながら、モデル → ボーンの順番に選択し、「Ctrl+P」を押してください。「自動のウエイトで」を選択します。これで、モデルを動かすことができるようになりました。

エクスポート

ファイル > エクスポート > FBX(.fbx)と選択していき、左下にエクスポート設定をする項目があるので、そちらをデフォルトから以下のように変えていく。それぞれの設定タブに対して以下のように設定をする。

メイン

カメラとランプのデータはいらないので、「Shift」を押しながら左クリックして選択解除。

ジオメトリ

「モディファイアーを適用」のチェックをオフ

アーマチュア

「リーフボーン追加」のチェックをオフ

アニメーション

「ベイク済みアニメーション」のチェックをオフ

モディファイアーやリーフボーンについては調べたが、今の自分の理解力ではわからなかったので、思考停止して参考サイト様にならった設定をそのまま使うことにする。いつかきっと分かるだろう。

あとは、任意のフォルダにFBXをエクスポートして終了です。

次は最後の工程である、VRChatへのアップロード設定をしてゴールです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする