![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
・アクセサリーが付いた服のクロスシミュレーション
POSERでクロスシミュレーションを行う際、服が単一の布ならことは簡単なのだが、 時には、縁取りがあったりアクセサリーが付いていたりと、構造が複雑な服をまとめてシミュレーションしたいこともある。 POSERにはそのための機能(グループ分け)があるので簡単に解説する。 左の画像は、巡音ルカの衣装の一部。黒い服に対して、黄色の縁取りがある。 縁取りは印刷ではなく立体感があるため、SHADEでモデリングした際、別パーツとして制作している。(右図)
SHADEで制作したデータをOBJファイルで出力し、これをPOSERで読み込む。何も工夫せずにクロスシミュレーションを行うと、
2つにわかれてるデータがシミュレーション中に分離し、右図のような結果になってしまう。(黒服は肩に掛かるのでずり落ちないが、黄色の部分は掛かる場所がないので重力で落ちてくる) これを防ぐために、POSERの「ソフトグループ」や「リジッドグループ」を使う。 「グループ」とは、クロスシミュレーションを行う時に、各部分に特定の性質を割り当てる機能だと考えればよい。 (以前に書いた「強制グループ」(このページの中ほど参照)もその一つで、ずり落ちを防ぐために、 服の一部を固定するように指定するためのもの。) 「ソフトグループ」は、服の変形に合わせて一緒に伸び縮みするような性質を指定する。 図の黄色い部分は、黒い服の縁取りなので、黒い服と一緒に変形/伸び縮みさせる必要があるので、これに相当する。 一方の「リジッドグループ」は、位置は服の変形に合わせて一緒に移動するが、形状は固定(変形しない)という指定になる。 ペンダントなどのアクセサリーは、これを使用する。 ![]()
「ソフトグループ」に指定するには、まず、POSER画面左下の「ソフトグループの編集」をクリックし、
グループ編集画面を表示させる。
次に「グループの追加」をクリックし、開いたウィンドウでで「縁取り」に設定したデータの名称を選択する。
このデータの名称は、SHADEでモデリングしたときにブラウザ上で設定した名称。(最初のSHADEの画面を参照)
設定が終了したらグループ編集画面を閉じ、クロスシミュレーションを実行する。黄色い縁取りのデータが黒い服と一緒に変形してくれる。(右図) ・唇に光沢を入れる
唇に光沢があるのと無いのとでは、印象がかなり変わる。(とくにピンク色は光沢が重要(^^)) テキスチャに光沢を書き込むのは単調になってしまうので、SHADEの表面材質設定で光沢を設定すると、 微調整もやりやすくておすすめ。 V4は、唇だけ独立したパーツになっているため調整するには便利な構造だと思う。
ちなみに、肌全体に光沢を入れるとちょっとなまめかしい(^^;)
・DAZ製、V4.2の肌色修正
DAZ製の3Dフィギュアデータ「V4.2」を買ってみた。 (ネット上でクレジットカード番号を打ち込むのは恐い(^^;)) POSER7上でキャラクターの設定をした後、これをそのままSHADE9で読み込むと、肌が妙に青白くなってしまう。(^^;)(左側) 原因は、なぜかV4.2のデータでは、POSER7上でのマテリアル設定に「水色」が入っていること。 これを白にしてやれば、きれいな肌色になる。ただし、V4.2の肌テキスチャーはやや暗めのため、 ペイント系ソフトで明るく修正した方がきれになる。 さらにトンテンカンあれこれ修正すれば、右側の通り。 なんとか日本人になりそう・・?
・Poser7 のデータを手軽にリアルにする
Poser7 のデータをShade9に読み込んでレンダリングする際、 当然ながらレンダラーの特性が異なるため、完成した画像は異なったものになる。 およそShade9のレンダラーの方が画質が向上するが、一部、Poser7に劣る部分があり、 これを訂正することによりよりリアルな画像が得られる。 その一つが目の光沢(反射)。 Shade9でそのままレンダリングすると、目の光沢がやや鈍くなってしまう。 これを補正するため、ブラウザ上で「EyeTrans」を選択し、表面材質の「反射」を 0.1〜0.15程度に設定する。 すると右図のようにアイライトも出やすくなり、より生き生きした表情になる。 ・Shade9変形ジョイント階層サポート 以前、Shade9の変形ジョイントは階層構造をサポートしていない(形は変形できるが、材質設定が反映されない) と記載したが、その後対策方法が見つかった。階層構造の名前を「パート」にしておくといいらしい。 パートの名称は自由に変えられるので、いつもわかりやすい名称に変えるくせが付いていたのだが、 どうもこれがまずかったようだ。 名称を階層構造の名称を「パート」のままにしておくと、材質設定が正しく設定される。 これで、物体の出現シーン(変形ジョイントで透明−>有色に変える)などがやりやすくなった。
・レースのカーテンをクロスシミュレーションで作る
Poser7 のダイナミッククロスはいろいろ使える。今回はレースのカーテンを作ってみた。 ベランダが見える窓際に設置するとなかなかいい雰囲気。
まずSHADEでカーテンを作り、これをPOSERで読み込む。
ただしカーテンだけだとシミュレーション計算中にカーテンが重力で下に落ちてしまうため、
強制グループを使用して、カーテンの上部を固定する。
注意点は、固定するためのモノが必要なことと、カーテンとこのモノとの距離が小さくないと
うまく固定できないこと。
ここでは、長方形の立体を置いてから強制グループの設定をする。
(右図で、赤い点になっている部分)
次に風を起こすためウィンドフィールドを設置する。
配置は適当にして(^^;)、右図のように「振幅」パラメーターを10ぐらいにしてみる。
配置と振幅の強さは、実際にシミュレーションを繰り返しながら微調整。
シミュレーション計算ができたらSHADEで読み、部屋に配置してレンダリングすれば完成。
・省メモリ対策
しかたなく解像度を下げてあれこれ試してみる。 ブラウザの中で指定していた、曲面の精度を上げるオプション指定”<<”を あちこち削除し、最低限に減らしてなんとかクリア。 CG制作はメモリ不足との戦いである。(^^;) ・歩行アニメーションのコツ 歩行アニメーションを制作する場合、Poser7の「歩行デザイン」機能を思い浮かべるが、 実際にこれで微調整をしながらお目当ての歩き方を制作するのはかなり難しい。 (私が慣れないだけなのかもしれないが) なら自分で作った方が速い・・・ということで、手順を簡単にまとめてみる。 ここでは、キャラクターの手足の動きはPoserで作り、 キャラクターの移動はShade上にて直線移動アニメーションとして調整する、 という方法をとっている。 (1)Poserにて、おおまかに手足の動きをつくる。作成するポーズは、 ・右足が前、左足が後ろの状態 ・右足がまっすぐ(右足で立っている)で、かつ、左足は曲げて軽く持ち上げている(空を移動中)状態 ・左足が前、右足が後ろの状態 ・左足がまっすぐ(左足で立っている)で、かつ、右足は曲げて軽く持ち上げている(空を移動中)状態 の4つ。(間のフレームは、Poserが自動で計算してくれる) 各パターンにて、両足は、地面についている時はまっすぐに伸ばし、後ろから前に移動する時は軽く膝をまげて地面から浮かせる。 両手は、足とは逆になるよう、肩から軽く曲げておけばよい。(肘は曲げない方が落ち着いた歩き方になる) (2)足首の向きを微調整する。 足首の向きは、地面についているときは地面と水平になるよう(物理的に当然だが)、 地面から浮いている時はつま先が少し下を向くようにすると自然になる。 先の4つのパターンそれぞれについて、足首の微調整をする。 (3)体全体の高さを微調整する。 両足が前後に開いているときは、ボディの高さがやや低くなる。 逆に、両足が左右に並んでいる時(一方の足に体重が掛かっているとき)はやや高くなる。 ・・・と言う理屈は軽く流して、要は、先の4つのパターンにおいて、 地面に付いている側の足の高さが、常に地面と正しく接している状態になるように、 体全体を上下して調整すればよい。 地面に立っているわけだから、物理的に正しい高さにする・・ということである。 下手に体を上下に揺すってやろうと意識するより、足の高さが地面と合うように調整すると考えた方が自然な上下運動になる。 (4)左右のねじれを微調整する。 歩くときに腕を振ると同時に、上半身がやや左右にねじれる。「胸」パーツを選択し、 腕の振りに合わせて左右共に5度ぐらいひねってやるとリアリティがでる。 なお、胸をひねると首も一緒に動いてしまうため、首は逆側にねじるよう設定して、常に前を向くように補正する。 (5)Shadeでの前進移動の調整 実際の前進移動の調整はShadeで読み込んでから行う。(Poser上では、同じ位置で手足を動かしているだけ) 移動には直線移動ジョイントを使うが、階層構造にして2つの直線移動ジョイントを使うのがミソ。 まず、1つめの直線移動ジョイントを作り(当然、歩く方向に合わせて作る)、 ブラウザ上でPoserキャラクターをこれに含める。 ブラウザ上でPoserキャラクター選択する。 読み込んだPoserデータのデフォルトのアニメーション設定は、 1フレーム目で0,残りはPoserデータに合わせて右上がりの形・・・となっているはずである。 これを、歩行一周期分の繰り返しになるよう、設定しなおす。 例としてPoserデータ上での一周期分のフレームが54〜77フレームだとすると、 ・まずフレームの0に54,23に77、24に54の値を設定する。(計3カ所、最初の一周期分) このとき、動作を直線にするため「コーナー」にチェックを入れておくこと。 ・残る2周期分以降の設定は、必要なフレーム数だけコピーすれば良い。 このとき、コピーする範囲は「1周期分+1フレーム」を選択し、グループ化してコピー数を指定することに注意。 (この例ではフレーム0〜24までをグループ化する) 1周期分だけをコピーすると、最後のフレームの位置データと、コピー後の1フレーム目の位置データが 同一フレームに重なって記録されてしまうからである。 (Shadeでは同一フレームに複数のポイントを設定できるため、こうなるらしい。) 次に、ブラウザ上で直線移動ジョイントを選択し、1周期分の移動パターンを設定する。 こつは、地面に付いている側の足が一定の位置になるように(地面上で滑らないように)位置あわせをすること。 1フレームずつ(これ大事)、こつこつと調整する。(一周期分だけなので、きちんと合わせよう。) 一周期分の位置設定ができたら、Poserデータと同じように、2周期分以降の設定をコピーで作成する。 続いてもう一つ直線移動ジョイント作り、先の直線移動ジョイントとPoserデータをこれに含める。 新たに制作した直線移動ジョイントは、1周期ごとの移動量を設定するためのもの。 1周期分歩くごとに、前進する移動量を加算していく。このため、追加した直線移動ジョイントは 階段状の形になる。 補足: 一つの直線移動ジョイントだけで全歩数分の移動設定をしてもいいが、歩数が増えると手間が大変になる。 先のように2段の階層構造にして一周期分の移動量と全体の移動量を分けることで、 2周期目以降の設定をコピーで作成でき、作業が楽になる。 ・アニメーション時のメモリ節約方法 Shade9.2のモーションウィンドウでアニメーションの動きを設定し、確認のための再生をくりかえしていると、 なぜか使用メモリがどんどん増加していく場合がある。 そのままアニメーションレンダリングを行うと使用メモリが不足する心配が出てくるので、 一度ファイルを保存して、Shadeを再起動すると良い。 再起動で使用メモリが減少するので、それからアニメーションレンダリングすると安心できる。 ま、データが多くなってきたら、常にパフォーマンスメーターを表示しておくのが無難かな・・・
・物理シミュレーションの突き抜け対策
手のひらにボールを落としていくようなアニメーションをShade(9.2)で作る場合、 落下するボールが手を突き抜けてしまうことがある。 これは、重力加速度がある分、下方向へのボールの速度が速いため、 衝突対象物の厚みが薄いと衝突判定がうまくいかず、突き抜けてしまう・・・らしい。 (あくまで推測。ひょっとすると別の要因かも) 仮にそうだとすれば手のひらの厚みを増やせばいいのだが、手の形がおかしくなってしまうため 厚みだけ増やすというわけにもいかない。 で考えたのが、右図のように衝突対象として手ではなく複数の「箱」を設定した例。 ここでは、3つの箱を作って手のひらの形状に合わせて配置、下側の箱に厚みをもたせることで 突き抜けを防止している。 図では箱が丸見えだが、材質設定を透明度1.0(100%)にしてやればレンダリング時に箱は消える。 これでアニメーションレンダリングを行うと、 落下するボールは箱に衝突してはねかえる動きをするが、 見た目は手のひらで跳ね返っているような映像を作ることができる。 実際にこれで突き抜けはなくなったが・・・まだ確証はない(^^;) なお、このように複数の衝突対処を使用する場合、 対象物同士が重なると衝突判定がうまくいかないことがあるので、 重ならないように配置しておくのが無難。 完成アニメーション
・パーティクルエフェクタのバグ対策
Shade(9.2)のパーティクルエフェクタでは初期設定がうまくいっていないらしく、 いきなりレンダリングを行うとパーティクルエフェクタの計算が狂うことがある。 一度レンダリングすると初期設定がやり直されるようなので、 パーティクルエフェクタの効果を確認するには「レンダリングを2回行う」と良い。 (右図:左が一回目、右が二回目) 同じ理由で、アニメーションレンダリングを行う場合も、 先頭フレームで一度レンダリングを行ってからアニメーションレンダリングを開始することを勧める。 でないと、アニメーションレンダリング全体でパーティクルエフェクタの計算が狂い、 何時間もかけて全フレームのレンダリングが終わってから「あれぇ?」ということになりかねない。(経験済み(^^;))
・万華鏡のモデリング
万華鏡は、3枚の鏡を組み合わせた形をしている。 鏡の面を内側にして三角の筒状に組み合わせる。片側から中を覗くと、もう一方側の景色が三枚の鏡で反射を繰り返し、 万華鏡独自の複雑な映像として見える。(右図) CG上で同様の鏡をモデリングしてやれば、万華鏡の映像を実現できることになる。
右は、Shadeで3枚の鏡をモデリングした例。
鏡の反射率は1.0(100%)ではなく、0.8〜0.9程度にした方が反射による光の減衰が表現でき、
より万華鏡らしくなる。鏡を回転させれば、万華鏡アニメーションのできあがり。 こんな感じ
・Poser7布シミュレーションのバグ(?)
Poser7で布シミュレーションを行う際、右のように手首に布が食い込んでしまう場合がある。 これは、衝突オブジェクトの設定にバグがあるらしい・・。
右のように衝突オブジェクトの設定を見ると、デフォルトでは腕や手首もチェックがオンになっているが、
実際のシミュレーションでは外れているようにしか思えない。そこで、ONになっている場所をいったんOFFにしてから再度ONにするという手間をかけてやると・・・
右のように、ちゃんと衝突設定が正しく反映される。ONになっている設定を、一度OFFにしてからONにしないとだめというバグは、 結構いろいろなソフトウェアで経験するが、 実はVISTA64のファイルマネージャーにも・・・ チェックボックスの評価テストって、あまりやらないのかね。
・対象物の手前に雲を作る
右図のように対象物の手前に雲を作りたい場合、静止画であればペイントソフトなどで 後処理で雲を書き込む方法もあるが、アニメーションでの応用が利かないという欠点がある。 (一コマ一コマ修正していては大変) ここでは、Shadeのレンダリングで対象物の手前に雲を作る例を紹介する。
まず、右図のように雲のイメージを白黒で用意する。
後でShadeの設定として、黒い部分が雲、白い部分が透明になるので、そのつもりで描く。
右図のように対象物(宇宙船)をつくり、その手前に四角形の板を作成して置く。
ここでは宇宙船の左右に雲を描くために、板を2枚置いてある。
2枚の板に、右図のような材質を設定する。
マッピングとして先の雲のイメージを読み込み、階層1に透明、,階層2に拡散反射を設定する。
拡散反射には「反転」チェックを入れておく。これでOK。あとはレンダリング結果を見ながら、位置やサイズの調整を行えばよい。 アニメーションにした例
・Shade9のバグ?(その4)半分解決 Poserキャラクターで「透明」設定した素材が正しくレンダリングされず、 前髪とまつげが衝突すると白くなってしまう不具合があったが、やっと回避方法をみつけた。 「視線追跡」の設定値をデフォルトの5から10に変更すると正しくレンダリングできた。 実は以前にもこれを疑って試したのだが、控えめに8に設定して効果がなかったので関係ないと思いこんでいた。 これで一つ問題が消えた。が・・・。 もう一方のレンダリング不具合、モデリングデータが増えてくるとPoserキャラの目が真っ黒になる 症状には効果がない。ためしに最大値の100にしてたがやはり変わらず。 実はこっちの方が問題なのだが・・・
・PoserキャラをShadeで変身させる方法(その2)
例として、水のような透明なキャラが本来の色に変わっていく、というサンプルを作ってみる。 (1)Poserでキャラクターを作成し、Poser FUSION経由でShadeに読み込む。 (2)読み込んだキャラクターを同一の場所でコピーして、同一キャラが2つ、同じ座標で重なった状態にする。 注意:Poserキャラはデータ量が多いので、ブラウザ上でCNTL-C,CNTL-Vを使ってコピーすると、 Shadeがフリーズする(^^;)(SAHDE9.2の場合)。 このため、普通に「COPY」アイコンをクリック−>「数値入力」を選定、 数値をデフォルトにしたまま(等倍設定)Poserキャラをクリック、という方法でコピーすることを勧める。 (3)右図のように、ブラウザ上で、Poserキャラを各パーツに分解し、それぞれのパーツに変形ジョイントを作り、 変身前のパーツと変身後のパーツをその中に含ませる。 同じPoserキャラをコピーしたため各パーツの名称も同じになっているが、 上側が変身前のパーツ、下側が変身後のパーツになる。混同しないよう注意。 Poserキャラのパーツは全部で20以上あるので、根気よく。そのうちスクリプトでも作るかな。 (4)アニメーション設定ウィンドウを開き、すべての変形ジョイントに、適当なタイミングでパラメータを設定する。 とりあえずは、総フレーム数を100くらいにして、1コマ目は0,最終コマで1になるよう、 すべての変形ジョイントを設定してみれば良い。 数が多くて手間は掛かるが、なれれば30分くらいでできる。 別の見方をすれば、各パーツごとに設定するため、変更のタイミングをパーツごとに変えられる という応用が利くと前向きに考えよう。(^^;) (5)あとはアニメーションレンダリングすれば完成。 応用例はこんな感じ ・PoserキャラをShadeで変身させる方法(その1) Shade9の「変形ジョイント」機能を利用すると、変身アニメーション(?)のようなものが作れる。 しかし問題が2つある。 一つは、変形前と後のモデルの頂点数が同じでなければ利用できないこと。 複雑なモデルで変身させたいとき、頂点数を同じにするというのは、実際にはかなり難しい。 (簡単な形を変形させても映像的にはおもしろくないし) もうひとつは、階層構造をサポートしていないこと。 変形自体はできるのだが、テキスチャーが消去されてしまい、ねずみ色になってしまう。 (サポートしていないのかバグなのか、イマイチ判断が難しい症状である) 従って、Poserキャラのような複雑なものを変身させるのは基本的には無理・・ということになってしまう。 それではくやしいので(笑)、あれこれ解決策を探ってみた。結果、以下の方法でなんとか簡易的な変身ができる。 (1)同じキャラクターを変身させる: 座っている状態から立たせる、透明から本来の色に色が変わるなど、同じキャラクターでの変身 (とはいわないかもしれないが)なら頂点数が同じなので、変形ジョイントが使用可能になる。 (2)各パーツ個別に変形ジョイントを設定し、階層構造をなくす: 手間は掛かるが、階層構造が使えない以上しかたがない。 難点は、階層構造を解除するとPoserキャラのアニメーション設定が消えてしまうこと。 このため、Poserでアニメーション設定をしたキャラクターを、アニメーションで動かしながら変身させる・・・ という応用は利かない。 なんだかイマイチ中途半端な機能だが、まぁ、価格相応ということで・・・。 ・Poser7 ダイナミッククロス(2) −風をおこしてみる−
せっかくドレスをダイナミッククロスで作ったのだから、アニメーションに風を採り入れてみる。 風を起こすには、「ウィンドフィールド」というものを適当な位置に設置する。(メニュからオブジェクト−>ウィンド作成) とりあえず右図のようにキャラクターに向かって置いてみる。ウィンドフィールドの設定パラメータも右図を参照。 (「範囲を0.2」にした以外はデフォルトだと思う)
次にクロスルームに移動し、シミュレーションで風の影響度の設定を行う。 右図の通り、ここでは「エアーダンピングを0.1」としている。 「乱気流」はとりあえず0でも布がなびく。突風(?)を再現したいときだけこの値を設定する。 (布の特性設定でも変わってくるので、最適な値をさぐってください。) あとはシミュレーションを実行すればOK。ポーズルームに戻って、アニメーション再生で効果を確認しながら、 忍耐強く(これ重要)微調整を行う。 できあがりはこんな感じ ・Poser7 ダイナミッククロス(1)
ある程度まとまった衣装をダイナミッククロスで作ろうとすると、布が複数枚必要になる。 Poser7では、一つのシミュレーションで複数の布を指定できることになっているが、 実際にやってみると、布の選択を切り替えてパラメーターをいじると、他の布の設定値が消えてしまったりして、 うまくいかない。 試行錯誤の結果、各布ごとに一つのシミュレーションを設定するのが良いという結論に達した。 (シミュレーションは、プロジェクトファイルに複数設定可能。 また、ファイル名の頭にプロジェクトファイル名が追加されるため、 異なるプロジェクトで同名のシミュレーション名を使用しても、ちゃんと別ファイルで保存される。) アニメーションする際に、シミュレーションの数だけ演算を行う必要があるという手間はあるが、 衝突対象に他の布を指定することができるため、布同士が重なったとき食い込まないようにすることが可能 というメリットがある。 右の例は、緑のドレス(ブラウス、スカート)と、黒いマント(?)を別々のシミュレーション設定にして製作した例。 黒マントがドレスに食い込まずきれいに覆っているのは、緑のドレスを衝突対象に含めているため。 (実際にシミュレーションすると、微妙に食い込むこともあるが・・(^^;)) ・Shadeで超簡単に服を作る方法
Shadeで、Poserキャラクター用の服を超簡単に作る方法を紹介。 ドーナツ状の布を作り、これをキャラクターにかぶせ、後はPoserで布シミュレーションをすれば完成! なんと安直(^^;) |
| 中国アクセスプロテクト: 天安門事件 法輪功 民主主義体制 チベット 独立運動 |