You are here: Home / shade+OSX / 実践-人物編#9

実践-人物編#9

習作の集大成として、キャラクターをモデリングしてみる。

一通りモデルが揃ったところで、本体にボーンを仕込む。

基本的な仕込み方は、実践-小動物編#11でやっている通り。ただし、今回はモデル自体が右半身まで完成している状態になっているので、ボーンは右半身、左半身それぞれでバインド(スキニング)する必要がある点が異なるぐらいか。

 

手のボーンを作成

面倒くさいところから先に片づけてしまおう。というわけで、手。ネズミのときとは違い、指が独立して動くわけなので、それに合わせてボーンを作成する。ちまちまとボールジョイントや回転ジョイントを並べていき、

null

こんな感じに仕上げてみた。左端のでっかい球が、手首のジョイント。そのすぐ右の小さな球五個は、手を開いたり畳んだり(つまり、「ジャンケンのパー」の手と「空手チョップ」の手)を表現するために、お試しで追加したものだったりする。

・・・が、最終的に表示してみたところ、そもそも違いがわかるほど大写しされないことに気がついた。ローポリを表示させる程度の画面サイズでは、ほとんどわからないレベルの差しか出なかったのだ。というわけで、このジョイントは、ほぼ完全に無駄ジョイントと成り下がってしまった。はっはっは。

各指の先端に付いているジョイントは、自動バインド用の捨てジョイントだ。詳しくは、実践-小動物編#12を参照。

 

左半身のボーンを作成

足元については、木靴を履いているので、足の指やつま先を作る必要はない。というわけで、続いて左半身を作成する。要領は、小動物編の時と同じだ。結果、

null

ボーン作成#3

こうなった。胸のすぐ左上にある小さなジョイントは、鎖骨のジョイント。ネズミの時は作成しなかったが、これがないと、腕を上げたときの肩の上下が不自然に見えてしまっていたので、今回追加したものだ。

 

右半身のボーンを作成

作成した左半身のボーンのうち、体の中心以外のボーンをY軸対象でコピーして作成する。右半身のジョイントを手作業で作成する方法もあるが、今回は、ネズミの時と同様に、この方法をとってみた。結果、全身は、

ボーン作成#3

こんな感じになる。スカートなどのヒラヒラ物を除き、これでひとまず全身が稼働する状態になるわけだ。

そこで、まずはこの段階で、対応するモデルにボーンをバインドしてしまう。

 

スキニングその1

最初のスキニングは、手首から先のバインドと、全身のバインド、の二段階で行う。全てまとめてバインドしてしまうと、細かいパーツの動きが期待通りに行かないことが多いからだ。

まずは、左手。スキニングしたいモデルの頂点を選択状態にしておいてから、

スキニング#1

メニューの[表示]-[スキン]でスキンウインドウを開き、スコープを「左手首」として、手首から先のジョイントのみを対象として、頂点をジョイントにバインドする。

スキニング#1

これで、選択されている頂点に対して、自動で大まかなスキニングが完了する。

あとは、各ジョイントをちまちまと動かしてみて、意図しない動きをする頂点を探し出し、その頂点に対するジョイントの設定や影響値を修正して、全体を整えればよい。

スキニング#2a

 

・・・のだが。

この作業をしていると、なぜかShadeが頻繁にクラッシュするんだな、これが。あまりこういうことは書きたくないが、嫌になるほど頻繁にクラッシュする。特に、複数の頂点に対して同時に値を設定するような作業をしていると、数回の調整ごとに、つまり、10秒に一回程度の割合で強制終了する

OpenGL使用の環境設定など、いろいろ試してみたものの、まるで効果無し。あまりに頻繁に落ちるので、自動バックアップも効果無し。

・・・勘弁してくれ orz。

仕方がないので、一つ値を設定するごとに保存、を繰り返すわけだが、これだと、お試しで値を変更して、結果が良くなければUndoで戻って、ということが出来ない。ハッキリ言って、作業にならない。困った。

 

今回は、それでもダマしつつ誤魔化しつつ作業を進めたのだが、これはたまらない。次期バージョンで直っていると有難いのだが。

というか、是非直して下さい。> イーフロンティア様

 

閑話休題。

 

とにかく、左手のスキニングが完了したら、次は同じノリで右手のスキニングを行う。

以上で、手首から先のスキニングが完了。

 

続けて、残りの全身をスキニングする。すでにスキニングを済ませている手以外の頂点を選択状態にして、スコープを「無し」の状態でバインドすればよいのだが、その前に一作業。

全身のボーンのうち、設定済みの幾つかのジョイントについては、その先の子ジョイントを操作する目的で設定したものがある。

たとえば、前述の鎖骨ジョイントなどがそれだ。

このジョイントについては、他のジョイントを動かす目的のジョイントなので、スキニングで頂点を割り当てて欲しくない。

というわけで、先にその設定を済ませておく。

やり方そのものは簡単。ブラウザウインドウで、対象外にしたいジョイントの「バインド」設定をOFFにしてやればよい。

スキニング#1

あとの作業は、手首の時と同じ。ジョイントを動かしてみて、おかしな動きをする頂点を探し出して、スキニングを手動で調整する。

 

・・・が、ここでまた、罠が一つ。今回、右半身のジョイントは、コピーによる反転で作成したのだが、じつはこれには副作用がある。ジョイントに設定されている初期値が変化するのだ。

形状情報ウインドウで確認できるが、たとえば左股関節と右股関節を比べると、

スキニング#1

左股関節のマトリックスに対して、

スキニング#1

右股関節は、このようになってしまう。

「反転」による副作用だ。オイラー角の初期Y値が180となっていることでも、このジョイントがY軸反転により作成されたことがわかる。

これが良い影響となる場合もあるのだが、悪い影響にも、もちろんなる。

たとえば今回の場合、おしりの頂点の移動に影響が出てしまった。スキニングの設定を合わせても、左右で動きが異なってしまっているだ。

スキニング#1

スキニング#1

画像がイヤンな構図になってしまっている点はご勘弁。

見ての通り、股関節による頂点の移動がおかしくなってしまっている。これは、元となっている「腰」のジョイントに対して、右股関節が反転してしまっているのが原因だと思われる。

本来なら、ここから、ちまちまと修正作業を入れていくわけだが。

今回は、諸般の事情により、これ以上の調整はしないことにした。スカートに隠れて見えない部分でもあるし、ここまで大きく動かすこともないだろうからだ。

 

とはいえ、このようなずれが生じてしまうことを考えると、右半身についても、手作業でジョイントを配置してやった方が良いのかも知れない。

人体ジョイントについては、一度作成してしまえば、あとはバインド前のジョイントを保存しておいて、他の人体に流用できるわけだし。

 

ともあれ、これにて、

スキニング#2a

 

第一段階のスキニングが完了!

 

次回は、スカートのボーンを作成して、Finish。の、予定。