襟IK覚書き

簡単な襟IKの導入に成功したので、blenderとPMEXを使って襟IKを導入する方法について書いておきます。よくわかってないけどなんか動いた!という素人の書いた記事であることをご理解ください。

 

襟IKとは

まず襟IKとはなんぞや?というところから。
百聞は一見に如かずということで、動きを見てもらった方がわかりやすいと思います。
こちらが襟IKを使っていないモデル。首ボーンを回転させると、顔が襟にめり込んでしまいます。

f:id:shiragai:20190107174218g:plain


こちらが襟IKを導入したモデルです。

f:id:shiragai:20190107174445g:plain

首ボーンに追従して襟ボーンが動くので、めり込みが軽減されています。
詳しい仕組みについてはくぅさんのブロマガを参考にしてください。(私も理解しきれていないので……)

ch.nicovideo.jp

 

導入方法

まずは下準備として、blenderで首ボーンを複製して襟ボーンを作成します。
作成したら、襟ボーンに襟のウェイトを乗せましょう。

f:id:shiragai:20190107180218p:plain

この手順はPMXEでも可能ですが、blenderの方が操作に慣れているのでblenderでやりました。このモデルでは首ボーンと襟ボーンの位置を同じにしました。位置がずれても襟ボーンは首ボーンに追従するように動くので、挙動によって調整するのもいいのかもしれません。

次にPMXEでの作業に移ります。
頭ボーンを選択したら、右クリック→追加→複製を追加から、頭ボーンを三つ複製し、それぞれを「襟先」「襟IK」「襟IK親」とリネームしましょう。表示先から相対を選択し、すべてを0にします。また、襟先の親を襟に変更します。

f:id:shiragai:20190107181615p:plain

次にIKの設定をしましょう。
襟IKの性能からIKにチェックを付け、ターゲットを襟先に、ループを5に、リンクを襟に変更します。リンクにボーンを追加するには、追加したいボーンを選択して右クリック→Indexコピーをした後、リンクのウインドウを右クリックしてIndexコピーから追加を選択します。

f:id:shiragai:20190107181959p:plain

最後に、襟IK親に回転付与の設定をします。
付与の回転+にチェックを入れ、付与親を首にします。

f:id:shiragai:20190107182220p:plain

これで導入は終わりです。トランスフォームビューから襟ボーンが首ボーンに追従して動くことを確認しましょう。






MMD/VRMモデル「左右田めろん」を配布します

f:id:shiragai:20181020163143j:plain

配布します!

配布ページ↓

3d.nicovideo.jp

・更新履歴

<2018/10/20>配布開始


MMDモデルの方の補足

モーションによっては肩紐や腕、足などが貫通する場合があります。
紐を前に出したり貫通しそうな場所を縮小したりするようなモーフを用意したので、破綻が気になる場合はそちらを使用してください。だいたいが私の技量不足です。申し訳ありません。

 

VRMモデルの方の補足

Vpocketに連れていくとボーン位置の関係か割と膝が変な方向に曲がりがちです。
いつか修正します。
表情四種には口の動きを入れていないので多分リップシンクと競合して口が破綻したりとかはしないはずです。

みにみゅー配布しました

みにみゅーの配布をニコニ立体で開始していました。
シンプルなVRMモデルです。表情四種付き。

3d.nicovideo.jp

合わせて白雪まりんさんのVRMの配布も開始していました。表情四種+開眼差分付き。
けもみみとリボンと前髪に物理を入れましたが、前髪の物理は結構難があるのでそのうち切ると思います。

3d.nicovideo.jp


今後配布はニコニ立体をメインにやっていこうかなあと思います。
プレビューで実際に眺めることもできますし……

3d.nicovideo.jp

 

BOOTHを始めました

BOOTHを始めました。

shiragai.booth.pm

グッズ制作したいよ~の気持ちが高まったのでBOOTHを始めました。
今のところ売っているのは缶バッチのみですが、いろいろ増やしていきたいなあと思っています……!どんどん買ってね!!

MMDとかでの顔の影をなんとかする(法線をいろいろな方法でいじってみる)

タイトルの通りです。
モデルを作ったものの顔の影の出方がいまいちだったのでどうにかします。
多分法線というものが悪さをしているので、それを調整してみます。
なにやら法線というものの設定次第で、影を自由に操れるようになるらしいのです。
いくつか方法を調べてみたのでそれの解説など。
また、今回MMD上でテストするにあたってこちらのシェーダーを使用させていただいています。 

seiga.nicovideo.jp

 

・PMXエディタでいじる

まずはPMXエディタで調整をする方法について。
こちらを参考にやっていきます。

togetter.com

PMXエディタ上で頂点を回転させるだけ、という簡単なやりかた。

f:id:shiragai:20180928162832p:plain

調整しやすいようにまつげの材質を絞り込みから表示しないようにしています。
法線を調整したい頂点を選んだら、動(オブジェクト操作)から鏡像モードにチェックを入れ、回転から回転させていきます。

f:id:shiragai:20180928163400g:plain

まばたきをするとまぶたに変な影ができていたこのモデルも、

f:id:shiragai:20180928163800j:plain

このように改善できました。

f:id:shiragai:20180928164133j:plain

お手軽!

blenderであれやこれやする

blenderで法線を簡単に編集できるようになるアドオンをいれ、法線の変更に対応しているエクスポーターでPMXにする方法です。blenderでできるので、VRMなどにも対応できるのがいい点。こちらの記事を参考にしました。

blogs.yahoo.co.jp

用意するものは、
smooth Normalというblenderのアドオン↓と

github.com

カスタムノーマル対応のblender2pmx。

u7.getuploader.com

アドオンをインストールして有効にすると、左側のパネルにノーマルというタブが増えているかと思います。

f:id:shiragai:20180928165010p:plain

法線を編集したい部位を選択したら、Activateをクリック。スムーズをクリックすると、陰影の感じがなめらかになっていきます。何度かクリックしてPMXに出力、エディタやMMDなどで陰影がよさげになったら完成です。

f:id:shiragai:20180928170003g:plain

他にも法線の向きを表示できたり、頂点ごとに調整したりもできます。全体的にスムーズをかけてから細かく陰影を設定したい箇所は個別に調整していくのがいいかも。

f:id:shiragai:20180928170755g:plain

そんな感じで調整したモデルがこちら。
まばたき時の影が調整できました。(顔の変化だけ見たかったので体の材質はちょっとサボっています)

f:id:shiragai:20180928171613j:plain

 それぞれの影の変化はこんな感じ。
左から何もしていないモデル、PMXエディタのみで調整したモデル、blenderで調整したモデルです。


blenderでスムーズかけるのが一番綺麗かな……??

今回の記事は以上となります。
調べてみたら案外簡単にできたので嬉しいです。それでは。


<追記>
まぶたに変な影ができるのは法線のせいもあるけれどそもそもまぶたを閉じたときの造形の問題では?という気がしてきました。
見直してみたらかなり凹んだ形になっていたのでそれを直せばなんとかなるかも……??

自作MMDモデルをMMD4Mecanimを使わずにFBXにしてVRMにする

タイトルの通りです。
PMXエディタでいろいろセットアップする直前、ガワをすべて作り終わってボーンとウェイトの設定が終わった状態のblendファイルをHumanoidにしてVRMにします。
その過程で躓いたところのまとめです。
説明が割と雑なので詳しいコンバートの仕方とかは前回の記事を見てください。

 

 ・とりあえずそのままUnityに入れてみる

とりあえずblenderの方でFBXに変換しUnityでHumanoidを選びます。

f:id:shiragai:20180814103540p:plain

うわーすごいことになってる……直していきましょう。
Hipsは下半身に、Spineは上半身、Left ArmのHandは手首_Lにしてみましたが……

f:id:shiragai:20180814103929p:plain

上半身と下半身の親子関係がちょっとそのままでは駄目っぽいです。
Unity上での直し方がよくわからないので、一旦blenderに戻ってボーンの設定を変えましょう。
下半身の親をセンターから無しに変更、上半身の親をセンターから下半身に変更します。すると……

f:id:shiragai:20180814104414p:plain

今度は大丈夫そうです!
足首も設定をしなおして、Bodyはこんな感じ。

f:id:shiragai:20180814104728p:plain
LeftHandはこう。人差し指と親指を間違えていたので直しました。
右側はLとRが違うだけなので割愛します。

f:id:shiragai:20180814113022p:plain

Headはこう。あごあたりに前髪のボーンが割り当てられていたので消しました。

f:id:shiragai:20180814105023p:plain

追記
このような状態のFBXをVRchatにアップロードしようとしたところ、Chestが無いよ!と怒られました。blender側で上半身のボーンを細分化しChestに割り当てたところ無事にアップロードすることができました。

・Tポーズじゃないって怒られる

f:id:shiragai:20180814202831p:plain

Unityにシバかれていきますよ。
poseからEnforce T-Poseを選んでちゃんとTポーズにしてあげれば大丈夫みたいです。

f:id:shiragai:20180814203340p:plain

場所がわかりづらくて苦戦したので書いておきました。
ちなみにこの作業を怠ってVRMにすると……

f:id:shiragai:20180814203513p:plain

なんかちゃんとピシッとTポーズになってくれないんですね。そのうえ指もよく動かなかったです。

 

・Mtoonをどうにかする

VRMで使えるシェーダーは限られていて、今回はその中からVRM/MToonを使うことにしました。Mtoon、結構PMXエディタっぽい。
Mtoonで何ができるかというと、公式↓

MToon - dwango on GitHub

を見ればいいのですが、ざっくりまとめると

・アニメっぽい影ができる(陰色の設定がマテリアル毎に可能)
・輪郭を描画できる(太さ、色を調節可能)
・両面描画が簡単にできる

といった感じです。

いろいろ設定をし終わったのですが輪郭線が出て欲しくないところに出てしまいました……

f:id:shiragai:20180814214836p:plain

目周りだけに違うマテリアルを割り当て、そのマテリアルでは輪郭線を描画しないことで解決できます。

f:id:shiragai:20180814215250p:plain
こんな感じにマテリアルをblenderの方で分けています。
Unityで新しくエッジ消し用のマテリアルを作り、それをScene上のモデルのblenderでマテリアルを割り当てたあたりにD&Dすると新しくマテリアルを割り当てることができるので

f:id:shiragai:20180814220233p:plain

またテクスチャやシェーダーの設定をし、今度は輪郭線を出さないようにすると……

f:id:shiragai:20180814220458p:plain

勝利しました。

・あとはVRMにするだけ

ここまできたら後はVRMにするだけです。
前回の記事を読んでください。

shiragai.hatenablog.com

 

というわけでMMD用にセットアップしていたモデルを少しの手間でHumanoid及びVRMにすることができました。
ちょっとボーンの親子関係を見直すだけでよかったとは……

思ったよりもお手軽に、しかもプラグイン等を使わずにできたので嬉しいです。
MMD用、Unity用と二種類のボーンを組んでそれぞれにウェイト塗りをしなくてはならないのでは……???と戦々恐々としていたのでほっとしています。
それでは。

FBXをVRM変換してVPocketに持っていく

自作モデルをVRMに変換してVpocketに入れて遊ぶ。

 

・Vpocketとは?

スマホ上でVRMファイルを閲覧できたりするアプリです。

 

play.google.com

ポーズを付けたり、表情を編集できたり、さらにはARカメラまで付いているすごいアプリ。お出かけした時とかに出先で写真を撮ったりしたら楽しそうですね。

あまりにも楽しいので以前作ったVRC用モデルをVRMに変換してこのアプリに入れて遊んでみることにしました。それではやっていきましょう。

VRM変換をする

既存の3DモデルのVRM形式へのコンバートの仕方ですが、公式がかなり丁寧なマニュアルを作ってくれています。

VRMファイルを作ってみたい - dwango on GitHub

これを読みながら、特に躓くところもなく変換をすることができましたが、一応このブログでもやり方を紹介してみようと思います。 

まずUniVRMをダウンロードします。 

github.com

f:id:shiragai:20180804093728p:plain

Unityで新規プロジェクトを作ってUniVRMをUnityで読み込みます。
DLしたunitypackageをAssetsにD&Dすると読み込むことができます。

f:id:shiragai:20180804093430p:plain

こんなウインドウが出てくるのでImportを選択。

f:id:shiragai:20180804094227p:plain

 無事UniVRMを追加できました。VRMフォルダができています。

f:id:shiragai:20180804112313p:plain

 次は、変換したいファイルをプロジェクトに追加します。

f:id:shiragai:20180804112648p:plain

読み込ませたらマテリアルやリグの設定をします。
この辺、VRCにモデルをアップする時とまったく同じ手順でセットアップをしていきます。わかってる方は読み飛ばしてもらっても大丈夫です。
先ほど追加したファイルを今度はScenceにD&Dして配置しましょう。

f:id:shiragai:20180804113202p:plain

まだマテリアルの設定をしていないのでこんな表示です。

f:id:shiragai:20180804113404p:plain

テクスチャの画像をUnityに追加します。まずはモデルを追加した時と同じようにAssetsに画像をD&Dします。

f:id:shiragai:20180804114807p:plain


今回はシェーダーをunlitにしてテクスチャを読み込みます。シェーダーのこと全然わかってないのですがいろいろやると見栄えが良くなるはずです(わからん)unlitだと陰影なしで表示される感じなのかな……???
ここ、普通のUnityのunlit(???)にしていますが、公式サイトを見たところVRM/UnlitTextureなどが推奨されているみたいです。後で直そうと思った。

f:id:shiragai:20180804113717p:plain

unlitにしたらInspecterからテクスチャを選びます。

f:id:shiragai:20180804115206p:plain

無事テクスチャが反映されました。同様に他のマテリアルでも設定を行っていきましょう。

次はボーンの設定です。Assetsのモデルを選択したらInspecterのRigを選択、AnimationTypeをHumanoidにしてConfigureを選択。

f:id:shiragai:20180804115945p:plain

ボーンの設定をします。Unityが自動でボーンを認識してくれます。間違ったボーンが選択されていたら直しましょう。
このモデルはmixamoでリギングをしたのですが、何もいじらなくてもUnityにHumanoidだとわかってもらえました。mixamoはすごい。
設定が終わったらDoneを選択します。

f:id:shiragai:20180804120721p:plain

いよいよ、VRMに書き出していきます。
VRMの設定をするには合計二回の書き出しが必要となります。
まず一回目の書き出しでVRMの規約に合致するようにモデルを正規化し、二回目の書き出しで細かい設定をするらしいです。

書き出しの準備のためにモデルの位置を調整します。モデルが原点にいなくてはならないようなので

f:id:shiragai:20180804121554p:plain

Hierarchyからモデルを選択、InspectorのPositionを0,0,0にします。
(原点に配置するってこういうことでいいんだよね…?自信ない…)
モデルが+Zの方向に向いている必要があったりいろいろ条件があるみたいですが、今回は位置を調整するだけで大丈夫でした。

f:id:shiragai:20180804122110p:plain

VRM→exporthumanoidを選びます。

f:id:shiragai:20180804122351p:plain

ウインドウが出てくるので、チェックボックスに二つともチェックを入れてAuthorに作者の名前を入れます。名前を入れるとExportが選べるようになります。
クリックすると変換が始まります。

f:id:shiragai:20180804122932p:plain

変換が終わるとこのような画面になると思います。
まずはhierarchyから変換前のFBXを削除します。
そうしたら生成されたPrefab(上の画像の〇内の左側の方のファイル)をSceneにD&D。

f:id:shiragai:20180804123257p:plain

ここまでくればあともう一息です!
Inspecterからモデルのデータを入力しましょう。
モデルの作者名、作者への連絡先、親作品(あれば)、サムネイル、使用許諾・ライセンス情報などを入力できます。
ブレンドシェイプの設定もここからできるようです。
今回変換に使用したモデルはブレンドシェイプがないのであんまり関係ありません。
揺れ物もまったく作っていないので、モデルデータの入力さえしてしまえば完成と言えるでしょう。(揺れ物、公式サイトを見た限り結構お手軽に追加できそうです)

モデル情報を入れ終わったら再びexport humanoidを選択し……

f:id:shiragai:20180804124622p:plain

今度は両方ともチェックを入れずにエクスポートします。

これでモデルのFBX変換は完了です!

・Vpocketに導入する

スマホでVpocketをダウンロードしたらPCに繋いで
(スマホの機種名)→内部共有ストレージ→Vpocketを開きます。
(開くとアリシアちゃんとずん子さんのVRMデータが入っているはずです)
その中に先ほどエクスポートしたVRMを入れます。
これだけでアプリの方でモデルが使えるようになっているはずです!

(VRMのサムネは正方形なのでそれ以外の縦横比の画像をサムネにするとこのように引き延ばされます。注意しましょう)
これでいろんなポーズをさせ放題。
(ただウェイトの問題かボーンの配置かプリセット1での破綻が…)


どこにだってモデルを連れていけます。

いかがだったでしょうか。
VRMには注目していたものの対応アプリが少なくどうやって遊ぶのコレ?みたいな状態だったので、こうして手軽にVRMで遊ぶことのできるアプリが登場してくれて本当に嬉しく思っています。
VRMへのコンバートですが、やってみたら案外手軽にできてしまって驚きました。白雪まりんちゃんの方も折をみて変換して遊んでみたいですね。
それでは~