Tips

チュートリアル / How to系

れっつPoserFusion! − Shadeの形状集をPoserで使う −

まえがき

図1
図1:たまにこんなふうに……

Poserを使っている方で、Shadeを持っている方、そしてShadeの形状データを持っている方、結構いらっしゃるのではないかと思います。最近はコンテンツパラダイスでも週ごとにフリーアイテムの配布があったりします。この形状データ、Poserでも使えたらいいな〜、と思いませんか?

ところが、Shadeはもともと自由曲面を得意とするモデラです。その形状データも自由曲面ベースで作られたものが少なくありません。そして、そういった形状データをそのままコンバートすると、なんだかポリゴンの裏表が反転してたり、テクスチャが貼れてなかったりしてしまいます。

ここでは、Shadeの自由曲面の形状を、適切にPoserへ読み込む手順を説明します。

ちなみに、Shadeの形状集をPoser化したものを、配布したりすることは絶対に止めましょう。当然ですが著作権法違反になります。(自分でイチから作ったものは別です)

用意するもの

だいたいの手順

  1. 形状データの位置やサイズ合わせをする
  2. ポリゴン変換とリダクション
  3. 形状をチェックする
  4. WavefrontOBJ形式で書き出す
  5. テスト読み込みとマテリアル名の確認
  6. マテリアル名の変更とPoserでのインポート
  7. マテリアルルームでマテリアルの再設定
  8. ライブラリに登録する

まずは眺めてみよう

今回使用するのは、2006年4月26日から5月3日までのフリー配布物である、チューリップです。

図2
図2:読み込み直後の状態
まずは新規ファイルを作成し、形状データをインポートしましょう。

形状データそのものを開いて、別名で保存してもOKです。ちなみにShadeの場合、読み込みやペースト時には、形状はカーソルの位置を基準に貼り付けられます。読み込み時には、原点をクリックしておきましょう。

読み込むと、なんだか変な位置に現れました。

取り合えず位置を合わせましょう。

図3
図3:移動
形状全体を選択して、Command+Shift+ドラッグ(WinはAlt+X+ドラッグ)で移動します。

チューリップの根元が原点に合うように、正面図と上面図(または側面図)で移動させてください。

位置を合わせたら、次はサイズを確認します。市販の形状集の中には、実際のサイズよりずっと大きなサイズで作成されているものがあります。比較的新しい形状データは正確な寸法で作成されていますが、コンテンツパラダイスでフリー配布しているものは古いものばかりです。Poserで大きさを合わせなくてもいいように、ここで確認しておきましょう。

「表示メニュー」>「定規」で定規を表示させ、形状のサイズを計ります。

この形状データの大きさは22センチ、大体合っているようなのでそのままにします。もし、縮尺が大きく異なる場合は、縮小してしまいましょう。

図4
図4:均等拡大縮小
パート全体を選択し、ツールパレットの「Move>均等拡大縮小」を選びます。
次に、変形させる中心位置をクリックし、次いでドラッグで縮小します。
大体の大きさが合ったら、ここでパートと表面材質をチェックします。

ブラウザで、折り畳まれているパートをoption+クリック(WinはCtrl+クリック)し、全ての階層を表示させます。確認するのは、

などです。

取り合えずカメラを回して、どんな形状になっているのか把握しておきましょう。また、ここで一度全体のパートを複製して、バックアップを取っておきましょう。

ポリゴン変換とリダクション

次に、自由曲面をポリゴンメッシュに変換します。

もちろん、WavefrontOBJ形式でエクスポートすれば、形状は自動的にポリゴンに変換されます。ではなぜここで手動でコンバートするのでしょうか? まずはShadeの曲面分割の仕組みを見てみましょう。

図5
図5:曲面分割

適当な形状を選択し、ツールパレットから「Convert>ポリゴンメッシュに変換」を選択すると、曲面分割のダイアログが表示されます。プルダウンリストから分割しない・粗い・普通・細かい・最も細かい・カスタムの6種類が選択できますが、この分割は、WavefrontOBJエクスポーターと同じものです。ここで、同じ形状を分割数を変えてポリゴン化してみます。

「分割しない」を選ぶと、ポリゴンの頂点が自由曲面のポイントの位置にあることがわかります。つまりこの「曲面の分割」は、自由曲面のコントロールポイントの間を、均等に分割しているだけなのです。

表1:分割のレベルと分割数の関係
分割レベル 分割方法
分割しない コントロールポイントの位置
粗い コントロールポイント間を2分割
普通 コントロールポイント間を4分割
細かい コントロールポイント間を8分割
最も細かい コントロールポイント間を16分割

これでは、自由曲面のコントロールポイントの間隔が広い場所はメッシュが粗く、間隔の狭いところは不要なほど密集してしまいます。そこで、自由曲面をいきなりポリゴンメッシュに変換するのではなく、一度疑似ポリゴンに変換して、程よい分割数に修正します。疑似ポリゴンはコントロールハンドルを持たない自由曲面の一種で、ポリゴンメッシュのように扱えます。

まずは、コントロールポイントがなるべく均一になるように、間隔の空いている箇所にコントロールポイントを追加します。

図6
図6:コントロールポイントの追加
葉の自由曲面の一つを選択し、Mキーを押下してModifyモードにします。
Command+option(WinはX+Z)を押下したまま線形状を横切るようにドラッグします。

線形状とドラッグの軌跡が交差する箇所に、コントロールポイントが追加されます。

コントロールポイントが追加されない場合は、自由曲面を右クリックするかModifyメニューの「切り替え」で、現在アクティブになっている線形状を横から縦に切り替えて下さい。

コントロールポイントを追加し終えたら、Return(Enter)キーを押下するかツールパレットのFinishボタンをクリックし、Modifyモードを終了します。

図7
図7:疑似ポリゴンに変換
自由曲面を選択し、「Convert>疑似ポリゴンに変換」を選びます。

曲面の分割は「普通」を選択します。

変換すると、自由曲面は「@」という名前に変更され、スムージングされていない状態になります。この疑似ポリゴンはまだ自由曲面のように縦と横の線形状を切り替えることができます。

図8
図8:線形状の間引き(左)と間引き後(右)
削除しても問題がないと思われる線形状をDeleteキーで削除します。

元の形状の特徴を残すように、特に面の変化がないところや、線形状が密集している箇所の線形状を選択して削除します。失敗したら、Command+Z(WindowsはCtrl+Z)で取り消しできます。Poserと違い、Shadeは最大100回までの取り消しができますので、納得がいくまで操作してみましょう。また、疑似ポリゴンの状態でも自由曲面と同様にコントロールポイントの追加ができますので、必要と思われる箇所に線形状を引くこともできます。

不要と思われる線形状を間引いたところです。各面の大きさもだいたい均一になったと思います。

図9
図9:ポリゴンメッシュに変換
間引きした形状を選択し、「Convert>ポリゴンメッシュに変換」を選択します。

今度は曲面の分割を「分割しない」にします。

ここで、ダイアログの下の分割数を確認してみましょう。元の形状をそのまま「普通」で分割すると16×20になりますが、今回は12×18となっています。つまり、16×20=320ポリゴンから、12×18=216ポリゴンに減らしたということになります。

このようにポリゴンリダクションをすれば、元の形状の特徴を残したまま、ポリゴン数を節約することができます。

図10
図10:茎の変換
この要領で、全ての自由曲面を疑似ポリゴン→ポリゴンメッシュに変換します。

茎の場合は、均等にコントロールポイントを追加すればいいでしょう。

図11
図11:雌しべ・雄しべの変換

雌しべや雄しべは小さくてあまり目立たないところですので、思い切ってポリゴン数を減らしています。

図12
図12:花弁の変換(ちょっと細かすぎ?)

花弁は形状も細かく、アップになりやすいところですので、コントロールポイントを増やし、間引きは控えめにします。

さて、景気良くポリゴンメッシュに変換してきましたが、花弁はテクスチャマッピングが施されています。この場合、テクスチャはどのように変換されるのでしょう?

自由曲面はポリゴンメッシュに変換される時、ラップマッピングとほぼ同じ状態になるよう自動的にUV展開されます。従って、元からラップマッピングされているテクスチャは、そのままエクスボートしても同じように使用することができます。

図13
図13:UV展開の図

図13はUVマッピングエディタで、変換した花弁のUVマップを確認しているところです。(UVマッピングエディタはStanderd以上のグレードに付属しているプラグインです。BasicではUVマップの確認はできませんが、UV展開はされています)

ちなみに、ShadeのUVは距離補正とラップの二種類の異なるマップを持つことができますが、WavefrontOBJ出力で書き出されるUV値は距離補正の一種類だけです。自作など自分でUVを調整される方は、距離補正を使うようにしましょう。

また、ラップマッピング以外の方法でテクスチャがマッピングされている場合、WavefrontOBJエクスポータは自動的にUVを貼り直してくれるようです。

形状のチェック

すべての形状をポリゴンメッシュに変換したら、書き出す前に形状の確認をします。

図14
図14:片面表示にする
投影図を右クリックして、片面にチェックを入れます。

すでに片面表示にしている場合はそのままで構いません。

図15
図15:面反転チェックボックスをオフにする
ブラウザ上の、面反転のチェックを全て外します。

面反転チェックボックスが表示されていない場合は、ブラウザの右側の三角をクリックして、表示させて下さい。

Shadeではラジオシティを使用する時以外面の裏表を区別しませんが、Poserではポリゴンの裏表は重要です。そこで、全ての面が外側を向いているかの確認をします。片面表示になっていると、面の裏側は表示されません。

ここでは、雄しべが裏向きになっているようですので、面を反転させます。

図16
図16:選択モードを「面」に
形状選択モードに切り替え、面を反転させる形状を選択します。

ポリゴン編集パレットで、選択モードが面になっていることを確認しておいてください。

Command+A(WinはCtrl+A)で全ての面を選択します。

選択された面が赤く表示されます。選択漏れがあるといけませんので、必ず「全てを選択」で選択するようにしてください。

図17
図17:面反転
ポリゴン編集パレットのflipをクリックします。

選択されている面が反転します。

面がどちらを向いているか分かりにくい場合は、「Modify>法線を表示」にチェックを入れて下さい。Modifyモードになっている時、法線の向き(表側)に、赤いトゲのようなものが表示されます。

全ての面が表を向いたら、今度はポリゴングループの名前を付けます。

WavefrontOBJエクスポータでは、ポリゴンメッシュに付いた名前をそのままグループ名に使用します。同じ名前がついているものは、一つのグループとして扱われます。後の事を考えて、分かりやすい名前を付けましょう。

ついでに、葉や花弁など、同じマテリアルのものは一つのポリゴンメッシュに変換してしまいます。

図18
図18:ポリゴンの統合
統合したい形状をパートに入れ、親階層のパートを選択します。
「Convert>ポリゴンメッシュに変換」を選択します。

曲面の分割ダイアログはそのままにします。変換後は一つのポリゴンメッシュになります。同じ位置の頂点などは結合されています。形状の名前は、形状を入れていた親パートの名前を継承します。次のステップで名前をつけていますが、この時点で親パートに名前をつけてから統合した方がわかりやすいかもしれません。

図19
図19:ポリゴンに名前を付けたところ
ブラウザの形状をダブルクリックして、名前を付けます。

全ての形状に名前を付け終わりました。

WavefrontOBJ形式で書き出す

ようやく形状を書き出すところまで辿り着きました。次は、いよいよエクスポートです。

図20
図20:書き出し
書き出す形状を選択します。
「ファイルメニュー>エクスポート>Wavefront OBJ...」を選択します。

ポリゴンメッシュの変換と似たダイアログが表示されます。「出力」欄は「選択された形状」を、すべての形状がポリゴンメッシュになっていますので、「曲面の分割」欄は「分割しない」を選びます。

保存ファイル名と保存先を指定します。
図21
図21:出力オプション
エクスポート設定を図21のようにします。

これで、保存名の名前のついた.objと.mtlのファイルと、mtl_〜.pctという画像ファイルが作成されます。

補足

UV値の書き出しには制約があります。自由曲面を変換したポリゴンメッシュは通常UV値を持っていますが、このうちWavefrontOBJエクスポータで出力されるUV値は、材質設定のマッピングで「イメージ」がマッピングされているものだけに限られます。エクスポート設定でUV値にチェックを入れていても、イメージがマッピングされていない形状はUV値が(0,0)になってしまいます。もしPoser上でテクスチャマッピングを使用するなら、あらかじめその形状に何らかのイメージファイルを適用してください。

また、UV値の書き出しは、形状に直接イメージマッピングが設定されていなくても、親階層のいずれかに適用されていれば有効になります。

テスト読み込みとマテリアル名の確認

ここで一度Shadeでの作業を終了し、Poserで先程保存した.objファイルを読み込みます。

図22
図22:Poserでテスト読み込み
「ファイル>インポート>WavefrontOBJ」を選択します。

読み込み設定では、全てのチェックを外します。

試しに、レンダリングしてみましょう。

図23
図23:真っ黒になる場合は影をオフにする

インポートした形状が小さい場合、シャドウマップでは影が計算できずに真っ黒になってしまう場合があります。その場合、基本小道具など別の形状を読み込むか、レンダリングオプションで影の計算をオフにして下さい。

ここでは、後から葉にテクスチャが貼れるように、ダミーのガイドテクスチャを貼っています。どうやらマテリアルも面の向きも正常なようです。

では、マテリアルルームに入ります。マテリアルをのリストを見ると、マテリアルの名称がmtl_001、mtl_002〜という名称になっています。

ShadeのWavefrontOBJエクスポータでは、マテリアル名をつけることができません。Shade上で異なる材質設定がされている場合に、ただ機械的に番号を振っていくだけです。これではあまりにも分かりにくいので、面倒ですが手で修正してしまいましょう。

図24
図24:マテリアルの確認
それぞれのマテリアルを選択し、それがどの部分なのかを調べます。

拡散色などを変更して、どの部分のマテリアルなのかを確認します。確認したら、マテリアル名と該当場所をメモしておきましょう。

一度Poserを終了し、先程出力した.objと.mtlの両方のファイルをテキストエディタで開きます。エディタは何でも構いませんが、検索と置換が使えるものが良いです。

図25
図25:マテリアルの置き換え
.mtlファイルの中の、「newmtl mtl_〜」の部分を置き換えます。

名前は適当で構いません。自分がわかりやすい名前をつけましょう。

図26
図26:オブジェクトファイルの置き換え
同様に.objファイルの中の「usemtl mtl_〜」の部分を、適当な名前に置き換えます。

.mtlファイル中の、テクスチャファイルの指定は変更しないようにします。また、.objファイルでは、マテリアルグループは複数箇所に分散している可能性がありますので、検索と置換で確実に変換します。

図27
図27:変更されたマテリアル

全てのマテリアル名が置換できたらたら、ファイルを上書きして保存します。再度Poserの読み込みを行うと、マテリアル名が変更されています。

マテリアルの調整

WavefrontOBJ形式では、表面材質のパラメータを詳細にやりとりすることはできません。再度マテリアルルームで、マテリアルの設定を見直します。

鏡面値や環境色に入ったランダムな値を適切に設定し直します。また、植物ならそのままレンダリングすると影が落ちて暗くなってしまいますので、SSSを適用したり環境色で少し明るめにするとよいでしょう。

また出力されたテクスチャファイルも、必要なら分かりやすい名前を付けて保存し、イメージマップノードの参照先も変更しておくとよいでしょう。

ライブラリに登録する

図28
図28:完成

これで、小道具化が完了しました。完成した小道具は、ライブラリに登録しておきましょう。

▲ Tipsタイトルに戻る
◆ ホームに戻る