カレンのMMD用セットアップ



オリキャラ「カレン」にPMX Editorで剛体とジョイントを付けてMMD用の揺れモノ対応物理セットアップをしてみました。




剛体の構成はだいたいこんな具合です。




ここで、前にBlenderでのIKの設定そのままだとMMDモデルではうまく動かないと書いた事についてです。

BlenderでボーンコンストレイントのIKを設定しただけでは足がグリングリンと人間の関節ではありえない方向に曲がったりしてしまいます。ですので、ボーンに軸の角度制限を付けておくことになります。

足の膝の関節は腰を下ろせば膝が前方に折れ曲がるのが自然です。ですので、膝が後方に曲がらないようにX軸に0~180度の制限を付けておきます。Y軸Z軸は動かないよう0にしておきます。

しかし、この設定でMMDに持っていきIKを効かせると膝が後方に曲がり「逆くの字」になってしまいます。どうやら、BlenderとMMDの仕様の違いで逆になってしまうようです。




そこで、PMXEでボーンの設定を変更する必要があります。足のIKボーンの[Link]の「ひざ」の角度制限をBlenderと逆側になるようにX軸の角度制限を「0~180度」ではなく「-180~0度」に変更します。IKの効き具合が弱かったら[Loop]値を大きめにするといいかもしれません。




これで、PMXE(MMD)上でも膝が前方に曲がるようになります。




Blenderで設定した他のボーンコンストレイントも逆方向に働くようだったら[付与率]に[-1]を掛けた値にするとうまく動くようになります。

あと、PMX Editorの見逃しがちな大事な設定のこともついでに書いておきたいと思います。このままこのモデルをMMDに持っていくと「表情操作」で表情を変化させてキーフレームを打つことも出来ますが、そのキーがフレーム上に表示されず編集作業がやりにくいです。

これは、「表示枠」の項目で設定しておく必要があります。




「モーフ」項目でモーフを[Ctrl+A]で全て選択して、右クリックして「Indexコピー」をします。




「表示枠」項目の[表情]を選択して「枠内要素」の空欄上にポインターを持っていって右クリックで「クリックボードから追加/更新」(Ctrl+V)でコピーしておいたものをそこに追加します。




これで、表情もフレーム上に表示されるようになります。

IKや髪などもフレーム上に表示させたい時は同様な手順で対象をIndexコピーして「表示枠」のしかるべく場所に貼り付けておきます。

カレンのMMD用物理セットアップと表情付けの記念に「うごイラ」にしてみました。







MMDと言っていますが実際のモーション付けとレンダリングはMMMで行っています。

MMMはMikuMikuMovingの略でMikuMikuDanceの互換ソフトです(公式サイトはこちら)。MMDよりもモーション付けがし易いように色々と便利な機能が使えるようになっています。MMMとボーンコンストレイントを併用すればMMDモデルのモーション付けも驚くほどやりやすくなりますね。

カレンも表情豊かになりました。しかし、相変わらずキャラ設定を考えていないのでした。f(^^;)

次はUnityで動かしてみるつもりです。

スポンサーサイト
テーマ: CG ジャンル: 日記
Blenderのシェイプキーで表情付け



Blenderのシェイプキーでオリキャラ「カレン」の表情をいくつか付けてみました。




Blenderの「シェイプキー」というのは他の3DCGアプリケーションでいう「モーフミキサー」と言うものと同じです。例えば、「目をつぶる」と「口を開く」の別々の2つの表情をミックスさせて「目をつぶりながら口を開く」という表情を作ったり出来ます。

正直言ってBlenderでモーフターゲットを作るのはめちゃ捗りますね。自分的にはモデリングソフトとしてのBlenderはもう手に馴染んですごく使いやすいです。
(ちなみに、自分はデフォルトの「右クリック選択」でやっています)

嬉しいことに、Blenderではモーフを作ってしまった後でも、そのベースのメッシュに形状を追加したいときにはメッシュが崩壊することもなく出来たりします。後から「あれ入れておけばよかった・・・」とか後悔することもありません。(^^;)




とりあえず、Blenderで作った表情ですが、pmxでエクスポートしてMMDでモーフィングさせてみました。モーフは分かりやすいようにPMXEでそれぞれのカテゴリーに分類しておきました。




「素の表情」です。




口「あ3_歯あり」で笑顔。




眉「困り」と口「たじろぎ_歯無し」で「はぁ~、何言ってるの!?」的な表情。




眉「怒り」と口「い」で何かめっちゃ怒ってます(^^;)。両目ボーンも上目遣いで使っています。




眉「怒り」、目「まばたき」、口「への字」で「渋々納得」的な表情。




目「ウィンク_R」と口「う」で「なーんて、冗談でした♥」的な表情。

指に付けておいたボーンコンストレイントのおかげで手を握るという動作もやりやすいですね。

まだ試したい表情もありますが、追々やっていくことにしましょう。その前にBlenderでUnity用のモーションを作ってみたいですね。Blenderのアニメーション機能は結構色々出来ることが判りました。Blender、まだ知らない機能がたんまりありそうです。

テーマ: CG ジャンル: 日記
Visual Studio 2017のインストール



今朝、MicroSoft社からVisual Studio 2017の正式版が使えるようになったとお知らせメールが着ていました。VS2017はUnityとの連帯もさらに良くなっているそうです。

なので、早速インストルさせてもらうことにしました。とりあえず、Visual Studio Community 2015をアンインストールして30GBぐらいCドライブの空き領域を確保しておきました。




Visual Studio 2017のダウンロードのページから無償版の「Community 2017」をインストールしてみることにします。




何も選択していないVisual Studio 2017の本体のサイズは606MBとずいぶん小さいですね。ここから利用者の必要なものを選んで入れればいいのですね。




試しに全部選択してみると50.52GBとすごいことになります。全部入れておいてもいい気もしますが、さすがにこのサイズともなると躊躇しますね。まず、必要なものだけ入れておいて後から必要になったら追加するようにしておいた方がいいかもしれませんね。






とりあえず、今のところ自分的にはWindowsディスクトップアプリ関連とUnity関連だけで良さそうです。インストールサイズは17.5GBでお手頃です。(^^;)




インストールに時間がかかるものだと思っていましたが、昼食をとるタイミングでインストールを開始して30分ぐらいして戻ってきたら、もうインストールが済んでました。思っていた以上に早かったですね。Visual Studio 2015の時は3~4時間ぐらいかかったような気がします。(Update 3のときは何故か丸2日ぐらいかかりました・・・)




それで早速、Unityのスクリプトエディターに登録してみました。

Unityのメニューバーの[Edit >> Preferences]から[Unity Preferences]
パネルを開き、[External Tools >> External Script Editor]から、
[C:\ProgramData\Microsoft\Windows\Start Menu\Programs]
にある、「Visual Studio 2017」のショートカットを選びます。




これで、UnityでVisual Studio 2017をスクリプトエディターとして設定することが出来ました。UnityのスクリプトをダブルクリックするとVS2017がスクリプトエディターとして起ち上がりました。




onと二文字打っただけで入力候補がいっぱい出てきます。




現れた候補からOnCollisionEnterを確定すると、
private void OnCollisionEnter(Collision collision) {}
とprivate voidからパラメーターとしてcollisionまで用意してくれます。たった二文字からここまでしていただけるとは至れり尽くせりですね。(^^;)

VS2015まではOnCollisionやOnTriggerなど入力候補として現れてくれず、全文字をキー入力しないとなりませんでした。これはすごく便利になりましたね。

あと、クラス単位やメソッドごとに点線でくくられているので終わりのカッコがどこのカッコか判別しやすくなっていますね。

じつはUnity5.5はまだインストールしてないのですが、そろそろ入れてみたいですね。


テーマ: CG ジャンル: 日記
Blenderでカレンのセットアップ



Unity用にShade 3Dで制作したオリキャラ「カレン」でしたが、アニメーションに対応したセットアップはBlenderの方が何かと都合がいいです。ですので、続きはBlenderでやっていこうと思います。




Shade 3DからFBXで書き出して、そのままBlenderに読み込ませるとこんな感じになってしまいます。ボーンの向きがなんともおかしいです。このままでも普通に動かすことは出来ますがボーンの向きに統一感があった方が見やすく扱いやすいので直したいところです。ボーンの向きを一つ一つ直していくことも出来ますが、それでは相当大変そうです。




こういう時はBlenderのインポートの設定を見直して入れ直した方が簡単です。「アーマチュア」の項目で「リーフボーンを無視」と「子を強制的に接続」と「ボーン方向の自動整列」にチェックを入れインポートし直します。

キャラクターが横たわってしまうようなら、「メイン」項目の「方向を手動で設定」を設定してみるといいかもしれません。




これで、うまくいきました。




リーフボーン(Leaf Bone)というのは、ボーンの末端の空のボーンのことです。一般的な3DCGソフトでは一本のボーンでも実際は始点ボーンと末端ボーンの2つで構成されます。Blederでは一本のボーンは一本だけでいいので、リーフボーンも一つのボーンとして認識されてしまいます。そもそもリーフボーンは向きや長さが不確定なためにBlender側がなるべく自然になるようにそれらを自動で設定するようです。とくにリーフボーンが必要ないならオプションで「リーフボーンを無視」にチェックを入れることで実体化されなくなります。




Blenderでさらにプロポーションなど色々メッシュの変更、ボーン、スキンの修正など施してみました。一旦、ポリゴン化した形状の再編集はBlenderの方がやりやすいですねぇ。ポリ頂点をペジェ曲線のようにコントロールできますからね。

マテリアルの設定はうまくインポートされなかったので手動で付け直しました。Blenderのマテリアルの設定は少々ややこしいんですよねぇ。それでも、テクスチャの修正をペンタブを使って3Dペイントでやるとすごくはかどりますね。(もう3Dペイント無しなんて考えられません^^;)

このキャラはUnityで使うことが前提ですが、MMDでも動くようにしたいと思います。Unity上でMMDモデルのシェーダー設定と物理エンジン設定を再現できるプラグイン「MMD4Mecanim」で使うという選択肢も増えます。
(でも、ストア向けアプリ用とするならばMMD4Mecanimを使わなくても動くようにしたいですね)

MMDモデルをBlenderにインポートして色々研究させてもらっていたら、今までMMDモデル用のIKやらコンストレイントの設定はPMXEでやるものだと思っていたのですが、大抵の設定はBlender上でも出来てしまうんですね。驚きです。




それで、まず「ボーンコンストレイント」を使って足にIKを仕込んでみました。「全ての親」も付けてみました。




よくMMDモデルで見かける頭上にある両目を動かすためのボーンもボーンコンストレイントの回転コピーで設定できるのですね。




指の第三関節に従うようにボーンコンストレイントの回転コピーを第一関節、第二関節に設定しておけば「握る」という動作もすごく楽に出来ますね。Blenderでアニメーションをやったことがありませんでしたが、思っている以上にやりやすいのかもしれませんね。こちらも勉強してみることにしましょう。




セットアップ完了後、Blenderからpmxでエクスポートして、PMXEで輪郭線やマテリアルの設定をしてMMDに取り込んでみた図です。




IKはちょっとBlenderでのそのままの設定ではうまく動かないようで、PMXEで変更作業が必要でした。そのことについては日を改めて書きたいと思います。でも、結果的にIKもうまくいきました。




「両目ボーン」はうまく動きました。一つのボーンで左右の目の動きをコントロールできます。

長くなってしまったので、揺れモノ等の続きの話は次回にでもしたいと思います。

このカレンはUnityのパーティクルで魔法エフェクトを使わせたいと思い作ったファンタジー系キャラクターでしたが、いつの間にか半年も経ってしまっていました(汗)。そろそろ、実現させないと。f(^^;)


テーマ: CG ジャンル: 日記
カテゴリ
ini-T MUSIC SKY
プロフィール