【blender→MMD tips】Rigifyを使ったボーンを作った時にMMDに持っていく前にやること

UnityやVRCでも使えるモデルを、私も販売してみたくて作業してたんですけど、
Unity向けモデルの作り方に「Rigifyを使ってボーンを作る」ってあったので、とりあえず従ってみたんですよ。
Rigifyはblenderでモデルを動かす時に便利なリグが簡単に作れるスグレモノなんですけどね。

そんで、とりあえず動作確認するかーってMMDに持っていったら複雑骨折。
接続が違うんですね、MMDと。
nnn4960.jpg

hipボーンに全部ついてくるので、薄々は気づいてたんですけど、
すぐ忘れるので、変更点をメモしておきます。
後続の誰か、役立ててくれ。


hips→センターボーン実は下半身からしか繋がっていない。
spine→下半身脊椎の意味。
付け根の位置がMMDと違う。上向きに上半身に繋がっている。
というか今気づいたけど、もしかしてこれ「下半身」じゃなくて「上半身」に相当するのでは?
そうするとhipボーンが「下半身」で、センターボーン不在なのでは?
chest→上半身胸部の意味。1本が基本。


hips→spine→chestでhipsの親がない状態。

・hipをセンターボーン、spineを下半身ボーン、chestを上半身ボーンとした時。
上半身ボーンの親が下半身ボーンになっているので、センターを親に直す。

・hipを下半身ボーン、spineを上半身ボーン、chestを上半身2ボーンとした時。
センターボーンを作成する。
下半身ボーンと上半身ボーンの親を両方ともセンターボーンに直す。


以上!少ない!忘れすぎ!


ついでに標準ミクさんと自分のつま先のIKの設定も書いておこう。
ひざLoop40単位角114.5916角度制限-180 -0.5
Loop40単位角114.5916角度制限なし
足首Loop3単位角229.1831角度制限なし
つま先Loop10単位角114.5916角度制限-3.0 3.0


なんていう実のない記事なんだ。

【モデリングtips】膝の構造

自分は今こうやってるってだけなので、ベストかどうかは分からないし、
多分そのうち正座がきれいにできる構造を導入するので、変わります。

ボーン名は基本はMMD準拠。

注:膝裏ボーンは必要なくて、膝裏ボーンの分のウエイトを半分にしてひざに乗せればいいことに気づきました。
下に追記してあります。


【ポリ割】
nnn4411.jpgこんな感じ。
膝頭側は膝の形をキープするためにポリ割多め。
あまり少なくしても曲げた時に丸くならなかったので、そこそこ割ってある。
膝裏側は縦は細かく割らない。
というか縦はほぼ線を2本っていう感じに割る。

ちなみに膝のすぐ上に一本引いてあるのは、膝裏ボーンの動きの問題。


【ボーン設定】
ボーンの置き方は、その2本の間の高さに置く。
色々やったけど中心が一番良かった。
前後に関してはイマイチよくわからないです。
これも中心が良かった気がする。
じゃあなんでこれちょっと前に置いてあるんだろうね。
動きに合わせて調整するしかないよね。


膝の後ろの方に出ているのが膝裏ボーンです。
ふくらはぎと太ももの裏が曲がる時にムニッとへこむよねっていう動きのためにある。
膝裏ボーンの親は足。
IK影響下の子にするので、変形階層をIK影響下よりプラス1しないとダメです。注意。
回転連動0.5、連動親はひざ。

【ウエイト】
基本はこういう感じで。
正面は略で書いたんですけど、裏は完全に二分割です。
こうすることでへこんだりしない膝になる。
指も同じで、曲がる方向性が決まってる部分のポリ割は内側を100/0にしておくといいよ。
DY2vm-vVAAEhuuU.jpg
膝の正面は下のウエイト一覧みたいに、正確に言うと、真ん中を50/50ではなく、真ん中から少し下を50/50にすると、膝の丸みが出ます。
膝が潰れるなーという人は。やってみて下さい。

ここに膝裏ボーンが入るので、塗り方が変わります。
左端と右端だけ見るとややこしいんですが、要は裏側の2本線のところのウエイトを、上が50%、下が40%、膝裏ボーンに乗せました。
nnn4415.jpg(クリックで拡大表示されるよ)
これは何をさせてるかというと、ひざボーン回転による移動量を抑えてる。

この膝裏ボーンがない場合の膝を曲げた時のポリの変形はこうです。
オレンジ色のラインが、上で膝裏ボーンにウエイトを乗せてるラインです。
のめり込むんですよね、なんか硬い感じに。
nnn4417.jpg180726_2.gif


それでこちらが、膝裏ボーンありの同じ部位。
ふくらはぎの付け根が若干沈んでいるのがおわかりいただけるだろうか。
nnn4420.jpg180726_1.gif


この方法の利点は、膝の横にMMDでエッジが出過ぎないことなんですよ。
同じくらい曲げても、膝下のポリゴンが太ももに突き刺さらない。
若干分かりづらいんですが、太ももの2つの線って言ってた上のポリゴンの裏側にもほんの少しだけ膝裏ボーンのウエイト入れてます。
太ももの方もムニッとするよね、みたいな気持ちで。


膝IKボーンに比べると、やっぱり正座する時に脚と太ももがのめり込むのはどうしても避けられれないんですけど、足を上げる程度だと割と誤魔化せるやり方です。
ベルギー(ドレス版)モデルや、マギマリ(捏造デザイン)、ラヴィニアのあたりのモデルはこれが導入されてるので、見てみてください。

あとは基本!動かしながらいい感じになるのを手探っていくしかねぇ!!!!

【追記】
これを書き終わってから気づいたんですけど、膝裏ボーンは足ボーンが親で、ひざボーンに0.5で連動するなら、そもそも膝裏ボーンに乗せたウエイトの半分をひざボーンで塗れば良かったのでは…?
つまり膝裏が上から、

| 0.9| 0.5| 0.0
膝裏| 0.1| 0.5| 0.4
ひざ| 0.0| 0.0| 0.6

| 0.95| 0.75| 0.2
ひざ| 0.05| 0.25| 0.8

ひざの0.05部分は0.1でもいいかもしれない。
このあたりの数字はポリ割の距離によって変わってくると思います。

これで解決でしたわ。なんでボーン一本足したんだろう。
うん、考えつかなかったからだね。
余計なボーンも増やさなくて済んだね。

【覚書】PmxEでNaNが入っちゃうやつ

PmxEはプラグインでやったときとか、TransFormViewから変形した時とか、
なんかふとした時に、jointの値に「NaN」が入ってしまうことがある。
当然ながらちゃんとした数値ではないので、動かすとアババババってする。
でもこれPmxEの「PMXデータの状態確認」では引っかからない。
(ファイル>PMXデータの状態確認で、△や✕がついてると正常に動かない可能性があるので、
 モデルが完成したぞい!と思ったら配布する前にチェックするといいよ。
 あと配布モデルをもらってきておかしいな?と思ったらここからチェックするといいよ。)

「PMXデータの状態確認」で引っかからないの、モデラー(セットアッパー)としては結構やっかいで、
知らないうちにデータがアウトになってるのやめて欲しい。
(知らないうちに軸制限が狂うのもやめて欲しい)

チェックするプラグインが欲しいよね、という話があったので作った。
もうちょっと手直しして一般配布します。


プログラミングとかやってない人には分からないと思うので一応説明すると、
NaNというのは、まあなんだ、簡単に言うと
「プログラム上は数値として扱うけど、正常でない数値」 のことだ。
0を0で割るとか、虚数(2乗すると-1になるやつ)とかね。
なので正常でない角度を指定されてもMMDくんが混乱するのでアババババってなるんですけど。


--ここからプログラミングの話なので読まなくていいです。--

で、このNaNが入ってしまったPmxデータをもらったんですけど、
jointの数値をC#で取り出す場合って、型はfloatなんですよ。

角度制限下限は
this.PMX.Joint[i].Limit_AngleLow
でV3で取り出せるんですけど。

スマートにやる方法が分からなかったので、
float.IsNaN(this.PMX.Joint[i].Limit_AngleLow.X)
でTRUE/FALSEをチェックしてみたんですけど、全部FALSE。
(jointは変数に入れてるので、いちいちthis.PMX.Joint[i]とは書いてないです。大丈夫です。)

で、メッセージボックスで該当のjointインデックスの値を表示してみると、ちゃんとNaNと表示されるんですね。
でもメッセージボックスはstring型なので、stringに型変換して入れてるんですけど。

最終的に
this.PMX.Joint[i].Limit_AngleLow.X.ToString() == "NaN"
で、TRUEになりました。
お前string型だったんかーーーーい。

っていう。
float型の中にstring型のNaNって入れられるものなの??
というかこれは無理矢理stringにしてるだけで、floatのNaNとして扱ってるの?
いや、扱ってないよな?IsNaNでFALSEでもんな??

jointをcsvコピーしたら確かにそのままNaNって入ってたので、
薄々stringじゃないかなこれ…とは思ってたんですけど、まさかなーと思ったし、
この値取り出してきたらfloatだよ!!って怒られた(VSEに)ので、最初にIsNaNにしたんですよ!


私はプログラミングド素人なのでなんか間違ってたら教えて下さい。


ということで、チェックはできるようになったので、
あとはNaNが入ってる所を自動的に"0"に置き換えるかどうかのチェックボックスを作ります。
ダイアログ出して選択した結果をもらってくるの死ぬほど苦手なので、ダメだったら2種類同梱します。
Class間の数値のやり取りの概念が未だにわからないんだ。
ミニキャラプラグインどうやって作ったんだろう。
横jointプラグインもダイアログで選択するようにできなくて2種類同梱した。

とりあえずやりたいことだけを場当たり的にできるように独学してるとこれだよ。
誰か分かりやすく教えてくれ。

【モデリングtips】まぶたボーン導入のススメ

その1: 【モデリングtips】顎ボーン導入のススメ
その2: 【モデリングtips】眉毛ボーン導入のススメ

>>まぶたは難しいよ<< マジで。

なんせ自分も未だに勘でやってる。

もともと、「眼球って球体」→「じゃあまぶたも回転運動しないと眼球を貫通する」→「ボーンモーフじゃん!」
という流れで始めたんですが、ボーンの位置調整が難しい難しい。
ウエイトは慣れてきたけど、目の形がキャラによって違うので、
「笑い」モーフまでボーンで作れたモデルは、未だに1体だけです。
なので、「まばたき」はボーンモーフ、「笑い」は頂点モーフでやってます。

遊ぶのは楽しいよ!
左がデフォルトで、右がまぶたボーンでツリ目にしたやつ。
(ただしこのままではまばたきは破綻する)
DObN8HOUMAA4bid.jpg DObQLDHVwAEJuAQ.jpg

あとまぶたをボーンにしておくと、視線IKと連動させて色々できる。(楽しい)
171113.gif





続きを読む

【モデリングtips】眉毛ボーン導入のススメ

前回「顎ボーン導入のススメ」を書いたんですが、難易度から言ったら眉毛の方が先でした。
←難しい [ 瞼 >>> 口角 >> 顎 >>> 眉毛 ] 簡単→

一番簡単なんですが、眉毛のモーフの形にこだわりがある人には向かないかも。
そういう人はモーフはモーフで入れておいて、
ボーンもついでに入れておくとやれることが増えるかなーみたいな気持ち。

モーフ作るの超絶めんどくさいマンには向いてます。
つまり私。
これくらいはできるよっていうサンプル(クリックでちょっと大きくなる)。
左から、デフォルト、真面目、困る、にこり、怒り。
171112_01.jpg 171112_02.jpg 171112_03.jpg 171112_04.jpg 171112_05.jpg
もちろん上下もできる。
左右バラバラに動かすのは、モーフが多くなりすぎるので入れてないですけど、ボーンを動かせばいい。


続きを読む

プロフィール

のののP

Author:のののP
絵描いたり動画作ったり歌ったり3Dモデリングしたりゲームしたり。

■ニコ動
mylist/2325248
■youtube
nononoP00
■Pixiv
id=141058
■連絡
opm_niconico○yahoo.co.jp
○→@

MMD配布系まとめ
PMDE講座まとめ
blender tips

配布物以外の無断使用禁止。

商用利用、商業依頼については上記連絡先までメール下さい。

カテゴリー
アーカイブ
ブログ内検索
リンク
RSSフィード