ボーンおさらい
シムのメッシュには、必ず「ボーン」が必要です。
これが何かというと、「メッシュのパーツが、どの体の位置に属しているかの情報」です。
人型のシムとペットで違いますが、人では19個〜21個、ペットでは25〜29あります。(ペットでの増減は尻尾関節の数など)
通常はこれをわりつけるのに、ウェイト値を使います。
例えば左腕・ひじから手首の場合、対応するボーンはL_ARM2です。そこで、そのパーツを範囲選択コマンドでくるっと選択します。
それからウェイト値を選んで・・・・。
今度は材質パネルのところを見ます。
ここの、mat1やinfo、nameなど、ボーンと関係ないものを除外して、ボーンになっているところの上から何番目に今割り付けたいボーンが来ているか数えます。
(この図では見やすいようにウェイト値コマンドでの範囲選択画面と、材質設定の画像を合成してあります)
b2q2の場合、L_ARM2はこの画面での$name以下19個のうちの一番下、つまり19番目です。
これに0.01を掛けます。0.19になりますね。
これがこのボディにおけるL_ARM2のウェイト値になります。
そこで、このパーツが選択状態のまま、ウェイト値0.00という小窓に、0.19と入れれば完了です。これで選択していた部分全てにL_ARM2のボーンが割り振られました。
ここでご注意。
この材質パネルのボーンの並び方は、ベースとなるシムのスキンごとに異なります。なので、同じL_ARM2でも、メッシュによっては0.19だったり0.05だったりするわけです。そこだけご注意を。
どのボーンに割り振るか
アクセサリのボーン設定についてですが、動いてしまうと困るアクセサリーの場合は、人シムでは上半身ならSPINE1・2あたり、下半身ですとPELVISなどを割り付けるといいですね。逆に手足に付いているものは手足に付随して動かないと妙ですから、該当する手足各部分に指定します。例えば上腕の腕輪などなら、ARM1に割り付けます。
スカートやロングコート、マントなど、足と直接連動するタイプのオブジェクトのボーン設定についてです。
歩いたり座ったりするときに、足にあわせて動かしたくない、せいぜいわさわさとゆれる程度にしたい場合はスカート全体をPELVISに指定します。
この場合、スカートより足の開きが大きいと(たとえば走った場合)や、座ったときにドレスを足が突き抜けます。ですからこの指定が適しているのは大きくすそが膨らんだお椀形のドレス、バレリーナのチュチュ、ごく短いマントのようなものです。たいていの場合、このくらいスカートが開いている、又は短いマントならば、動作によって足が突き抜ける度合い、機会が少ないからです。
脚が見えないドレスの場合は、脚をカットしてしまうのも手。
この方法の欠点は、椅子や家具がスカートなどにめり込んでしまう点。また、タイトタイプのスカートでは座ったときなど大きい動作時に足がスカートを突き抜けてしまうのでこの方法は不向きです。
逆に部分部分にあわせたボーン設定ですと、腿、ひざに合わせて歩くつどスカートが左右に 伸びて動きます。女性ならお分かりでしょうが、ちょうど伸縮素材生地の「タイトスカート」をはいたときの動きに近くなります。チャイナドレス、タイトスカー
トなど、足にフィットしたスカート、キモノはこの指定のほうがより自然に見えます。半ズボン、バミューダやパンツはもちろん、ほとんどのスカートやワンピースなどもこの指定です。
ロングコートや長いマントも1ボーンだと脚が突き抜けたりしてしまいますが、アンカーなしだと、複数ボーンにしてもぺこっと折れ曲がった感じに・・。
ただし、この方法の大きな欠点として、パンツ類は問題がありませんが、スカート・タイプのメッシュの場合、大きく動く足の間に「膜」を張る形になって いますから、足の動きに連動してその部分のポリゴンが大きく伸び縮みし、ひざから足首の、足の内側部分テクスチャの柄が、動きにあわせて大きく崩れてしまうということが挙げられます。絵入りの風船を大きく膨らませたりしぼませたりしているような感じですね。ほかにも、スカートなのに動くとキュロットのように左右にパーツが分かれてしまう点も欠点に挙げられます。
ドレスの場合、すべてPELVISにした場合、座り動作などで破綻します。
ボーンの割り当てについては、これといった決め手がないので、いろいろ組み合わせを探ることになります。
PS2などのコンシューマーゲームなどでは振袖やドレスのすそ、長い髪などが自然に動きますが、あれらはドレス、振袖の袖、髪の毛専用のボーンが存在しており、ゲームシステム側で対応しているのであのように自然に動作させることが出来るのです。
シムピープルには袖、髪、スカートのすそを重力に応じて動かすための細かいボーンが存在せず、さらに作成することも出来ないため、こういったシムのゲームシステム自体に該当するボーンが存在しないパーツの動きを、ゲーム中でなるべく破綻しないようにするのは非常に難しいのです。
こんな風に、すそに近く、指定ボーンから離れるほどテクスチャが間延びします。白い水玉はもとは全て同じサイズです。これだけ伸びます。まあ、ゲーム内では小さいので目立ちませんが。テクスチャは試験用自作品。メッシュはMaxisのデフォルト、L401です。
アンカーについて
これはSMB特有の仕様です。
ブレンドデータを作成できるように、というのと、ウェイト値でちまちま数えるのが面倒、という両方をクリアできます。
どうすればいいかといいますと、まずオブジェクトパネルに新規objを作ります。うっかりSimsなんかで作っちゃった場合は、そのオブジェクトを選択状態にして、上のメニュー、「選択部処理」>「選択面を新規オブジェクトに」を実行すれば良いです。
この新しく出来たobjの名前を、割り付けたいボーンの名前に変えます。このとき、SMBにそれがアンカーということを知らせるための記号をつけます。今回はすね部分、LEG1でやってみます。
まず、オブジェクトパネルに新規オブジェクトを追加。obj1をWクリックでひらきます。次に、基本情報の欄に、セットしたいボーン名を$boneを頭につけて入力します。
こんな感じです。
名前のところに、$boneL_LEG1と入れました。この、$boneというのがアンカー記号です。これでメッシュ変換時にアンカーだとSMBが認識してくれますから、箱ロボットにならずに済みます。
そのボーン・オブジェクトを指定した状態で、「閉じた」図形(完全に「表」面で囲まれた物体)を作成します。この図形作成は、基本図形を使えばワンタッチでOKです
もしアンカーオブジェクトをを半透明にしたいときは、、材質パネルに新規でmat*(には数字が入ります)を作ります。そしてmat*をWクリックして材質設定を開き、諸設定というところの「透明度」のスライドを真ん中あたりにします。
ここではmat1にシムのテクスチャを指定しているので、新規はmat2です。
これだけ。
透明度が設定されたmat*にカーソルがある状態で、新しいobjを作れば、自動的にこの半透明状態が割り振られます。
すでにシムと同じテクスチャが張られている場合は、mat*を選択にしたまま、アンカーオブを選択状態にして、「選択部処理」>「面に現在の材質を指定」にします。これでOK!
この半透明を表示させるためには、「表示」の、「色・光源を正確に表示」にチェックを入れておかないといけません。していないと、ただの白い箱になります。
この$boneL_LEG1というobjが選択状態のまま、基本図形の立方体を作ります。
アンカーのオブジェクトは、形や面数は問いませんが、「必ず閉じた立体で作成しなくてはいけない」という決まりがあります。
どういうことかといいますと、全てが面で囲まれている閉鎖空間であるということ。
左は閉じていますが、右は開いてます。
ある程度厚みがあり、全ての面にスキマ=ポリゴン割れがなればアンカーとして使えるということです。
形状は球でも台形でも円柱でも不定形でもかまいません。
ただ、アンカーを1つでも作ると、既存のブレンドデータは全て消えてしまいます。この点だけは注意してください。
実際に割り付けて見ます。
基本図形の立方体を作って、膝関節から足首までがすっぽり入るようにします。これだけ。
このとき、ボーンの名前を$boneLEG1と、左右指定しないで作成すると、SMBでの変換時に、反対側の同じ位置にも(ここでは右足側)同じ部位で左右が違うアンカーが存在するものとして処理されます。
1から作成したキャラクタの場合、この方法でで全ての頂点を囲ってしまえば改めてウェイト値の指定は必要ありません。ただし、1つでも囲いそびれている頂点があると、SMBでの変換時にエラーが出ますよ。
そして、もともとのメッシュの方にはウェイト値を割り付けていない場合、ノーボーン探しのプラグインを使えません。
使えなくはないのですが、そもそも全ての頂点がノーボーンですから、全ての頂点がノーボーン対象になってしまい、意味がないということです。
ブレンドデータについて
動作時にくっきりと分かれてしまう境目をなめらかにしてくれる機能を持つのがブレンドデータです。
今までやってきた方式では、ボーンを各部分ごと、単体のボーンを指定しています。人型シムの、パンツや素足ではこの方法でも大して問題がありません。
しかし、スカートやロングコート、、ペットなどでは、ちょっとした不具合が起こってくる場合があります。
まず、百聞は一見にしかず。見てください。
これはブレンドデータありのペット・グリフィン(猫タイプ)です。見やすいように翼はつけていません。尻尾を跳ね上げて歩いているところ。
同じポーズでブレンドデータなし。尻尾の付け根が膨らんでしまって不自然ですね。尻尾のカーブも角張ってかくかくしているのがわかります。後足のゆがみもやや大きいです。ゲームでは小さい表示なので目立たないですが。
これは極端な例ですが、ブレンドデータの有るなしで、これほど差が出てしまう場合があるのです。
ブレンドデータは、ボーンの境界を風船を膨らます感じで丸っこくし、角を取ります。
これが、SPINE1と2の境など、メリハリがあってアニメーションしないような箇所にありますと、その部分がぽっこりして逆に妙な具合になることがあります。
このデータの作成については、SHUNZOさんのSMBマニュアルに丁寧な解説が図入りでありますが、ここでも簡単に紹介せていただきます。
ブレンドデータはSMBを使用してmqo>sknに変換する場合だけ、アンカー方式という方法で作成することが出来ます。ただし、完全に動作が思うようになるかは、それなりの試行錯誤が必要ですよ。
尻尾での例を見てください。まずTAIL1のアンカーを作ります。
ついで、Tail2のアンカーを作ります。
両方のアンカーが、共用する頂点を作れるように、一部重ねます。
違うボーンのアンカーの図形を作るときは新規オブジェクトにするのを忘れないでください。
下の図のようにちゃんと2個重なっていても、2個とも$boneTAIL1では意味がありませんよ。
テクスチャをシムと共有にするとアンカー・オブジェクトにテクスチャが勝手に張られますが、気にしなくていいです。
こんな感じ。
ワイヤーフレームで見ると、こんな感じです。現在はBlendsを削除してあるので青い頂点はありませんね。
下図はアンカー指定したペット・ボディをsknに変換し、もう一度skn2mqoで変換し、メタセコイアで見てみたもの。青い頂点−ブレンド・データが出来ているのがわかります。
ペット編その1へ
ひとつ前へ
Enchanted Simsに戻る