キャラクターを動かしてみる ~ その1 ~ | CINEMA4D(Prime)レポート

CINEMA4D(Prime)レポート

3DCGまったく初心者の私が『CINEMA4D Prime R13』と言うソフトと出会い、
脳から煙が出るほど膨大な情報と日々格闘しながら、
その多彩な機能を少しずつ覚えていくという”実験レポートブログ”です。

果たしてどこまで進歩出来るのか・・・。

今回から本格的に体の中にボーンを入れていきます。

このキャラクターはゲーム用ではないんですが、ゲーム用のキャラクターのつもりで話を進めていきたいと思います。



但し注意して頂きたいのが、これから書くボーンの入れ方は絶対正しいと言う方法ではありません。

私の場合独学でやっているので、勝手な解釈や間違った考えも混じっている可能性がありますドクロ

ですからこれから書く内容を正解だと思わないで、色々な情報と照らし合わせながらブログを読んで下さい。

(=▽=;<よろしくお願いします。



ゲームのキャラクターを作る時には色々な決まり事があります。

以前ゲームキャラクターを作る時に、プログラマーさんから色々注意事項を教えてもらった事があるんですが、例えば・・・・


○ キャラクターをモデリングする時は1ファイルにつき1つのモデルだけ。

○ キャラクターのポリゴンは三角ポリゴンにする。

○ 決められたポリゴン数を大幅に超えない。

○ テクスチャは1枚で収める。

○ キャラクターは必ずワールド座標の中心に置き、体の向きをZ軸に向けなければならない。


など他にも色々あります。


その中でも特に注意して欲しいと言われたのが体の向きです。

どうして向きが大事なのか聞いてみたんですけど、もし座標の中心からずれた状態でアニメーションを作ってしまうと、プログラム側で制御不能になってしまって扱いにくくなるそうなんです。


そこで今回使うキャラクターもZ軸方向にします。

それと足の裏の接点がX=0の位置にしておきます。



----------------------------------------------------------------------


準備が出来たところで、まずジョイントツールをクリックして属性マネージャの設定を変えます。

まずオプションの設定の中にあるルートヌルのチェックを外します。



このチェックをつけていると、ボーンを作った時にヌルオブジェクトが自動的に出来ます。

ヌルオブジェクトが必要な場合はつけますが、今回は使わないのでチェックを外します。


他の項目も簡単に説明すると、ボーンは”子オブジェクトへ”になっていますが、この設定はボーンを作っていくとそのボーンが階層の下になる・・・つまり子になる設定になっています。

他にも色々な設定がありますが、この設定のままでOKです。


IKチェーンは”なし”になっています。

この設定には”なし”の他に”2D、3D、スプライン”があります。

もしこの設定のどれかにすると、ボーンを作った時に自動的にIKチェーンと言うものがつきます。

IKチェーンの事に関しては今回まだブロでは書けないので、この設定はなしにしておきます。


サイズは”長さ”になっています。

このサイズはボーンの厚みの設定が出来ます。

長さはボーンを作った時に、その長さによって厚みが決まります。

もう一つ”カスタム”と言う設定がありますが、これを選択すると右側のcmが表示されて、そこに好きな数値を入れてボーンの厚みを決める事が出来ます。

例えば写真左が”長さ”の設定で作ったボーンで、写真右がカスタムを設定して数値を20cmにしたボーンです。


 → 


これを設定するかどうかは自由だと思います。

例えば、指のボーンを作った時に細くて見づらいなと思った時に変えるとか・・・そういう時に使えそうな機能だと思います。

でも今回は”長さ”の設定のままでも十分ボーンの形は分かるので、カスタム設定はしません。


ポールヌルはIKチェーンの設定を”2D”した時に使います。

これもIKに関する設定なので、今回は使う予定がないので設定しません。


軸を整列にチェックをつけると描画したジョイントオブジェクトが自動的に回転して、それぞれのジョイントオブジェクトのZ軸が次のジョイントオブジェクトの方向を向くようになります。

そしてボーンの長さに沿って整列します。


試しに軸の整列ありとなしでジョイントオブジェクトのZ軸がどうなるのかやってみました。

ボーンは骨盤から頭の方向に作っています。



ちょっと見づらいですが(^^;骨盤から頭の頂点までは軸を整列ありにしています。

この場合、ジョイントオブジェクトのZ軸(青い線)が、ボーンが作られた方向に向いているのが分かります。

一方、頭の頂点から上に突き出て伸びているボーンは軸を整列なしにしています。

頂点の矢印を見ると緑のY軸が上になっています。

つまり軸を整列なしにすると、ワールド軸と同じ方向になるわけです。


うんでも(-▽-;それはつまり~・・・・どう言う事なんだろう???


今回ブログを書く為に初めて整列なしを使ってみたんですけど、ここで疑問が出てきました。

試しに整列なしの設定で全身ボーンを作って、関節を色々曲げてみたんですが特にこれと言って大きな問題もなく普通に曲げる事が出来ました。

う~ん(==;整列なしってどういう時に使うのか、今の段階ではちょっと分かりません。

でも今までずっと軸を整列ありでやってきたんですが、特に問題なく動いたので今回もその設定でやっていきたいと思います。



表示はボーンを作ってマウスを重ねた時に、そのボーンがどの様に表示されるのか設定する事が出来ます。

ハイライトはマウスがボーンの上に重なった時、白線が明るくなって選択されている事が分かりやすくなります。




境界ボックスにチェックをつけると、ボーンの上にマウスが重なった時にボーンを囲む様なオレンジ色の枠が出来て、選択された状態が分かりやすくなります。

それにボーンがちゃんと正確な位置と向きになっているかどうか、この枠があると分かりやすいと思うので、今回はチェックをつけてやってみたいと思います。




対称はこれからブログの後半で使うので、ここでは詳しく説明しません。

ボーンを作ってこの機能を使う時に、改めて詳しく書きたいと思います。




最後はキーコンビネーションですが、これは前回説明した通りなので、このままの設定でやっていきます。



--------------------------------------------------------------------


ツールの設定が終わったので、キャラクターの体にボーンを入れていきます。

カメラを前面、表示をにしたものを使います。




まず最初は前回作った時と同じ様に、骨盤から頭の頂点までボーンを1本作ります。


骨盤の中心にポインタを重ねたらCtrl+左クリックを押します。

ジョイントが出来たら頭の頂点にマウスのポインタを移動してCtrl+左クリックします。



次に、、の順でShift+左クリックしてボーンを4箇所分割します。




今度はカメラを左面にします。

先ほど分割して出来たジョイントを、人間の背骨の位置に合わせます。

移動の仕方はジョイントツールのまま各ジョイントをクリック&ドラッグで移動させるだけです。

ボーンの流れは背骨の様に少し湾曲させるといいと思います。


 → 


これで背骨と頭のボーンが出来ました。


しかしここでまた分からない事が出てきましたドクロ

試しに今、軸がどうなっているのかなと思って移動ツールを使ってジョイントを選択してみたんです。

そしたら境界ボックスがずれてる・・・つまりZ軸がずれてるんですよ(==;

前面で見るとZ軸がちゃんと真っ直ぐに見えるんですけど、左面で見るとこれだけずれていました。



これってこのままにしておいたら、あんまり良くない気がするんですよね・・・・汗


今まで境界ボックスを使わないで作っていたので、あまり軸の事なんて気にしないでボーンを作っていましたが、今回初めて使ってみて凄く違和感を感じました。

それはどうしてかと言うと、私は属性マネージャの設定で軸を整列ありで作りました。

その設定で作れば自動的にZ軸が次のジョイントオブジェクトのZ軸方向に向くようにならないといけないはずなんです。

でもこれだと次のZ軸からずれている事になる・・・・と、思ったわけです。

でも今は疑問が出てきてもサポートには聞けないので(T T)多分こうだろう的な考えのまま己を信じて進むしかありません。

(T T)<ぶわっ


そこで今回は、試しにこの境界ボックスの向きとZ軸の向きを全て直して、ボーンを作っていく事にしました。

それで今後もしキャラクターを動かした時に何か不具合が出てしまったら、もう一度最初からボーンを入れ直したものを使ってブログを書きたいと思います。

(T△T)<ぶわわっ


境界ボックス・・・と言うかZ軸の位置を直すには、まずオジェクトマネージャで直したいジョイントを選択して属性マネージャを表示させます。

するとジョイントツールの設定がジョイントの設定に変わります。

この設定では、ジョイントやボーンがどの様に表示されるか色々設定する事が出来ます。

今回はZ軸の方向を直したいので、Zの設定のままにしておいて整列をクリックすると・・・




境界ボックスとZ軸が真っ直ぐになりました。




・・・・・(=_=;


OK直った(=▽=;


とりあえず真っ直ぐな事はいい事だ(=▽=☆ ←ポジティブに考えてみた


これで頭のジョイントの軸は整列されたので、他のジョイントのZ軸も念のため全て整列で向きを直しておきます。



次は足にボーンを入れていきます。

まずは右足から入れていきます。

ジョイントツールで最初に作ったジョイントをクリックして選択します。




オブジェクトマネージャを見てみると、骨盤のジョイントが選択状態になっています。




なぜ最初に作ったジョイントを選択したのかと言うと、右足のボーンと選択したジョイントを繋げる為です。


ジョイント同士を繋げる方法は2通りあって、一つは繋げたいジョイントを選択してからボーンを描画する方法と、もう一つは作ったジョイントを繋げたいジョイントにドラッグして子にする方法です。

私はいつも前者の方法で繋げています。

その方が一気に作れて楽な感じがするんですよね(-▽-)☆



以上を踏まえて、右足のボーンを作っていきます。

(※ 写真では左足にボーンが入ってる様に見えますが、これはカメラが前面になっているのでそう見えています。


最初に作ったジョイントを選択して右足の太ももの付け根の中心辺りをクリックします。

すると骨盤のジョイントから、ボーンが繋がった状態で1本出来ました。




オブジェクトマネージャを見てみると、新しく出来たジョイントが最初に作ったジョイントの子になっているのが分かります。



しかしここでカメラを前面から左面にしてみます。

するとボーンの先が前の方にあるのが分かります。

これは正しい位置ではないので、4分割のビューを見ながら直していきます。

正しいジョイントオブジェクトの位置は、足の骨の位置です。





ジョイントの位置が直った所で、このジョイントの軸を見てみるとZ軸がずれているので整列で直します。



Z軸がボーンの向きと同じ向きになりました。




ジョイントツールを選択して右足の最後にあるジョイントを選択したら、そこから足のかかとの位置までボーンを1本作ります。




そのボーンの膝をShiftキー+左クリックで分割させます。




カメラを左面にしてみると、ボーンが前の方になっています。

これを実際の足の骨と同じ様な形にしたいので、膝とかかとの位置を直します。

膝は少し曲げた感じにすると自然に見えます。


 

今作ったボーンを整列したら、またジョイントツールを選択して、かかと→つま先の順にボーンを作っていきます。

この時、足の指の付け根部分がかかとよりも少し下がっていると自然に見えます。



カメラを透視にしてボーンを確認してみると、作ったボーンがずれてるので位置を直します。







このボーンも整列で向きを直しておきます。


--------------------------------------------------------------------


これで右足のボーンがつきました。




さてこれから左足にも同じ様にボーンを入れていくわけですが、右足と同じ様にジョイントツールで描画していけば作れます。

でも同じ作業をもう一度するのはちょっと面倒と言う人に便利な機能があるんです。

それが先ほど説明を省いた、属性マネージャの”対称”の機能です。

この機能を使うと、右足と同じ形で左足にもボーンを作る事が出来ます。


今までの作業は、この対称の機能の説明をする為の前振りです汗

ここまで読んで下さった方には大変申し訳ないんですが(=▽=;先ほど作った右足のジョイントを全て消去して、これから対称の説明をしたいと思います。



対称の機能を使ってボーンを作る時は、キャラクターの体の形が左右対称になっている事が条件です。

例えば右手が人間の手で左手が蟹の手だった場合、指のボーンの数が全然違うので対称機能は使えません。



ではこれからその機能を使ってボーンを作ってみたいと思います。


初期設定の場合、対称は”なし”になっているのでこれを”描画”にします。

これでボーンを対称に作る事が出来ます。




平面は”ワールド-YZ”になっています。

この座標の事をヘルプで見たんですけど・・・うん、ごめんなさい(=▽=;

ちょっとよく分かりませんあせる←頭の中が混乱中

数学に弱い私には「?」の連続です。

でも今の設定をよ~く考えてイメージしてみると、平面状の鏡の様なものがワールド座標のY軸とZ軸の始点を使って出来る様なイメージなのかなと思います。


始点は”ワールド”になっています。

これはビュー上で、先ほど設定した平面状の鏡がどの位置にあるのかという事を設定する・・・のかな?

今の設定はワールドなので、ワールドの原点に平面状の鏡が配置される様なイメージだと思います。

この設定はこのままでOKです。

(ぎゃ~自分でも何言ってるか分からなくなってきた~叫びあせる


対称ツールの設定が出来たので、最初に作ったジョイントをジョイントツールで選択します。

そしてそのまま足の付け根にマウスのポインタを移動してクリックします。

すると左右対称にボーンが出来ました。




左面で見るとジョイントの位置がずれているので直します。



ここで注意しなければいけないのが、対称の機能を使っている時に別の操作をしない事ですドクロ

例えばここで移動ツールを選択してジョイントの位置を直した後、再度ジョイントツールの対称を使って続きを作ろうとしたとします。

しかし、ご覧の通り↓左足に出来るはずの対称のボーンが何と右足のジョイントに出来てしまいました。

この様に対称ツールを使っている時に他の作業をやってしまうと、対称の機能が続けて働かなくなってしまうみたいです。

ですから対称ツールを使う時は、一気に作っていった方がいいかもしれません。



もし対称の機能が切れてしまった場合は、ボーンを消去してまた一からやり直さなければいけないかもしれません。


もう一度ジョイントを作り直した写真がこちら↓

先ほどと同じ様に骨盤のジョイントから1本ボーンを作り、その後一気に足の裏まで1本ボーンを作って、足首の部分を分割しています。



左面にして分割したジョイントの位置を直します。

膝のジョイントは少し前に出すと自然に見えます。

一番最後のジョイントをは足の先まで伸ばして、指の付け根の部分を分割して位置を直します。


 

足の先にあるボーンがちょっと直線的過ぎるので、位置を少し外側にします。

対称の機能が継続しているので片方のジョイントを直すと、もう1方の対称となっているジョイントも一緒に動きます。






後は全体のボーンを見て位置が悪い所は直し、軸も曲がっているものがあったら整列しておきます。


---------------------------------------------------------------

これで左足と右足のボーンが出来ました。



ちょっと心配だったので、この状態で一度バインドして関節がちゃんと動くかどうかやってみたんですけど、今の所問題はないみたいです。




服がびよ~んと変な形になっていますが↑、これは足のウェイトが服に影響しているせいです。

試しにどの部分が影響しているのか調べてみると、伸びているスカートの色がつま先と同じ色になっています。

つまりつま先部分のジョイントの影響がスカートにも影響していると言う事になります。




体に全てのジョイントが入ったら、こういった影響度で形が変わっている部分を直す作業があります。

この作業は体のボーンが全て入った後、ブログで書きたいと思います。


-----------------------------------------------------------


さて、ブログがだいぶ長くなってしまったので続きは次回にしようと思います。


う~ん(==;

やっぱり最初に心配していた通り、ツールの機能の事でよく分からないところが出てきました。

CINEMA4Dを3年近く使っていても、使う機会がない&よく分からなくて使わなかった機能があるので、問題が出てくると戸惑います。

今回初めて境界ボックスと軸の整列を使いましたが、果たしてこのまま使うとどうなるのかまだ分かりません汗


正直言ってこれが正解なのかも分からないまま進めるのは、後で動作の不具合に繋がるので危険なんですが、それでも失敗を恐れず作っていくしかありません。

もし駄目だったら最初からやり直す・・・独学はこの繰り返しです。

このやり方って結構時間もかかるし効率も悪くて大変なんですが、それでも・・・


(」゚■゚)」<CINEMA4Dが大好きだ~~~ドキドキ!うら~っ!


と言う熱い思いがあったので、今まで挫折することなく続けてこられたんだろうな~と思います。

今回のブログも途中で全部やり直さなければいけない様な大失敗が起きるかもしれませんが、そういう失敗も含めて最後まで見て頂ければと思います。