ゲーム制作

【Voxel】自作3Dモデルを動かそう4 – ウェイト編2【Blender】

ボクセルモデルをUnityで動かしたい

3Dモデルを動かすためには、ボーン(骨)の追加やモデルとボーンのリンクなど、さまざまな作業が必要です。まずは、MagicaVoxelで作成したボクセルモデルをUnityにインポートできる状態に整えることが重要です。

今回は3Dモデルを動かすために欠かせないボーンと3Dモデルをリンクさせるための『ウェイトペイント』をBlenderを使って行っていきます。

ボクセルを動かせるようになると、どんなことができる?

  • オリジナルゲームでキャラクターとして使える。
  • VRChatでアバターとして使える。
  • 動かせるボクセルモデルを使って、アニメーションを作成できる。
  • ポーズを取らせたボクセルモデルを3Dプリンターで立体物として出力できる。

Unityで自キャラにして操作してみたい!

用意するソフト

  • MagicaVoxel
  • Blender

この記事ではBlender4.2.1LTSを使用しています。

前回の記事

今回は前回のウェイト編の改良版!

本編

今回は前回のウェイト編の改良版になります。
便利なアドオン「VoxCleanerV2」を使用して、効率よくウェイトペイントを行う流れをまとめました。

前回までの問題点

前回ウェイトペイントを行うにあたっていくつか問題点があった。

インポートしたままのボクセルモデルだと頂点が多すぎる。
アドオンで頂点を綺麗にしたら腕や足を曲げるための頂点も無くなってしまった。

まずは、頂点が多すぎてウェイトペイントするのが大変

Blenderのアドオン「VoxCleanerV2」で頂点を減らすのに成功
VoxCleanerV2の記事

こちらの記事で詳しく書いてあるよ

上腕と下腕を曲げるために必要な頂点が無くなってしまった。

腕も足も真っ直ぐだから不要な頂点という事になってしまった

というわけで、まずはボクセルモデルの見直しから行っていく。

MagicaVoxel

身体の各部位を分割する

頂点を作りたい所で身体を分割し、無理やり頂点を作らせるという作戦。

分割したい部分を選択
範囲選択を使用し、頭を分割する

グリッド表示をONにすると白い部分が見やすくなる

横からの視点も上手く使おう

レイヤーを追加し貼り付け
頭のパーツを全て選択したら「Ctrl+X」で切り取りし、右上の「三角のボタン」を押す

「+」を押し新規レイヤーを追加

見やすいように右にずらし、再度三角のボタンを押す

Ctrl+Vで貼り付け

モデルサイズを合わせる

全ての部位を分割
同じ要領で各部位を分割していく

各部位を元の位置に戻す

Blenderにインポートした際、座標の位置が大事になる。

PLYで出力して次はBlenderへ

Blender

インポートしモデルを結合

出力したPLYを全てインポート

オブジェクトモードで全選択し結合

VoxCleanerV2

VoxCleaneプラグインを使用

「Apply Vertex Colors」頂点カラーを表示
「Clean Model」でクリーン

ボクセルモデルの比較
以前のボクセルモデルをクリーンしたもの
今回、各部位を分割したボクセルモデルをクリーンしたもの

腕と足が特に増えてる

ベイク

2に行きベイク?

UV開き、解像度高くし、ベイク

ベイクした画像は保存しておく

ウェイトペイントの準備

以前作ったアーマチュアがあるのでそちらを使用する。

アーマチュアの作り方はこちらの記事で

アーマチュアをアペンド
ファイル→アペンド

以前作成した「blendファイル」を選択

「Armatureフォルダ」の「アーマチュア」をアペンド

ボーンを最前面に表示

オブジェクト→ボーンの順に選択し、ペアリング

ボーン→オブジェクトの順に選択しウェイトペイントモードへ

ウェイトと強さを1.0にし、ブラシの「前面のみ」のチェックを外し、オプションの「自動正規化」をON。

ウェイト0をアクティブに、等高線表示とワイヤ表示をONにする

アクティブにすると塗っていない部分が黒くてわかりやすくなる

準備完了!次はウェイトペイントをしていくよ

ウェイトペイント

「Alt+クリック」で「Hip」のボーンを選択し、まずは全体を「ウェイト1」で塗る。

これで最終的に塗っていない部分を無くすことができる。

マスクを使って効率よく塗る

次はその上のボーン「Spine」を「Alt+クリック」で選択

編集モードに変更し、右上のビューポートシェーディングを「ワイヤーフレーム表示」にする

塗りたくない部分をCtrlを押しながら選択する

頂点の選択が外れた

ウェイトペイントに戻り、ペイントマスクにする

選択した部分だけ塗ることができる

Rキーを押し動かして確認する

※向きをリセットするにはAlt+R

「ボーン選択」にし、頭のボーンを「Alt+クリック」で選択

編集モードにし、頭のみ選択状態にする

頭を塗ったらこんな感じ

塗ったらRキーを押して動きを確認しよう

※Rキーを押したあと、もう一度Rキーを押すと回転の向きを変えることができる。

現在こんな感じで塗られている

ミラーリングを活用しよう

肩、上腕、下腕、手を塗っていく。

ミラーリング
オプションの隣にある項目、「ミラー」の「X」にチェックを入れる

ミラーにチェックを入れたら肩、上腕、下腕、手と順番に塗っていこう。

自分で塗ったほう
自動で塗ってくれたほう

ミラーを活用すると、反対側も自動で塗ってくれるようになる。

腕の残りもウェイトをかける
上腕を選択

下腕

足にもウェイトをかける

下足

足首の部分

足首は動かさないから塗らなくていいか

細かい調整を行う

このままでも動かすことはできるけど、気になる部分があるので細かく調整していこう。

ボーンの微調整
膝を曲げた時、足がつぶれてしまっている

ボーンの曲がる位置もずれている

ボーンの位置調整

オブジェクトモードでボーンを選択し、編集モードにする。
膝の部分を選択し、Gキーで上に移動。

いい感じ!

ウェイトの緩和
思いっきり足を上げるとやっぱりまだつぶれてしまう

ウェイトのかかり具合を緩和させよう

まず現在どういう状態かというと、上足は膝の部分にウェイトがかかっていなく、下足のみウェイトがかかっている。ウェイトをバランスよくかけることでつぶれるのを回避できる。

上足 ウェイト0
下足 ウェイト1

ウェイトをかける頂点を選択

上足のボーンを選択し、ウェイト0.5で4つの頂点を塗る

上足
下足

下足からウェイトを0.5貰ってくることができた。

膝の部分の頂点
上足のウェイト  0 → 0.5
下足のウェイト 1.0 → 0.5

※必ず合計が1.0になるようにしないといけない

ウェイトの数値のチェック

「頂点で選択」でウェイトの数値を確認することができる。

頂点で選択」にする

「Alt+クリック」でチェックしたい頂点を選択する

選択した頂点のウェイト情報が表示される。合計が1になっていると上手くウェイトが塗れているということになる。

2つのボーンに0.5ずつ割り振られている。

完成

ウェイトペイントが終わったのでポーズととらせてみよう

オブジェクトモードでボーンを選択
ポーズモードに変更し、各ボーンを選び動かす

ポーズをとらせる

感想

VoxCleanerV2を使いモデル容量を軽くしつつ、前回より楽にウェイトペイントを行う事が出来ました。MagicaVoxelでボクセルモデルを作る時は、先の事を考えながら作っていく必要があると感じました。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です