<Menu <Tips Top | > Tips 001 < |
Rev.02.01
|
●Shade、Poser、Cinema4D 及び、Vue 間におけるスケール管理について いずれのアプリケーション間でも.OBJファイルでデータをやりとりするのは変わらないのだけれど、それぞれにスケールの扱いには特徴があるのでその辺りについて一席。 1.まずはShade 基上の製作環境ではモデリングは Shade が基本です。 Shade はバージョン 7.5 以降、“PoserFusion”に関連して .OBJ形式ファイルの取り扱いが標準装備となり、「Poser単位」への変換オプションまで装備されました。そんなわけで、Shade->Poser や Poser->Shade と言ったオブジェクトのやりとりにおけるスケール変換については何の問題もありません(問題はマテリアル設定なんだけど、そのお話は別途)。 Shade 内部でのスケールの取り扱いについては単純明快で、Shade のツールバーで設定する「単位」と Shade 内部でのスケール、いわば「Shade単位」とは1:1で対応しています。 例えば、設定単位を「mm(ミリメートル)」の状態で 1m 四方の立方体を Shade 上で製作したとします。 ここで設定単位を「m(メートル)」に変更したとします。画面上では表示倍率が変更されるために、立方体は縮小表示されて見えなくなりますが(勿論、画面の表示倍率を拡大していけば立方体が見えるようになります)、立方体の 各辺の寸法はそれぞれ 1m として Shade は扱っています。まぁ、当たり前ですが。寸法が変わっていないことは Shade の「定規」を立方体に当ててみれば確認出来ます。 Shade から.OBJ書き出しする際は、特別に理由がない限り「Poser単位」オプションを付けて書き出します。そうすることによって自動的に他のアプリケーションとでもスケールの相関をとることが出来ます。 要するに、.OBJファイルは「Poser単位」が基本、と言うことですね(この表現は誤解を招きそうだが…まぁ、いいや)。 2.次はC4D では、次は Cinema4D(以降、C4D と略)です。 C4D のスケール管理はちょっと独特で、Shade のように単純ではありません。 簡単に言って C4D のスケール管理は「無次元」、つまり単位がありません。「スケール」は有るけど「単位」が無い…何やら「禅問答」のようですが(笑)。勿論、C4D 内部でのスケール管理は存在します、いわば「C4D単位」ならぬ「C4Dスケール」。 C4D 内部での頂点 A と頂点 B との間隔は座標値の差として表現されますからスカラー量、つまり「スケール=数値」は有るんですが、それは「ミリメール」でも「キロメートル」でも「イン チ」でも「フィート」でも「寸」でも何でもいい、と言う扱い。座標間隔の数値が例えば X 軸について「300」だったとすれば、環境設定で単位として「mm(ミリメートル)」を選択していればそれは「300mm」、単位選択が「in(イン チ)」であれば「300in」と言う扱いになっています。従って、例えば C4D の単位設定が「m(メートル)」で、1m四方の立方体があるとき、単位設定を「cm(センチメートル)」に変更するとその立方体は1cm四方の立方体に扱 いが変わるわけです。このとき、立方体を C4D 内部で1m四方として扱うにはスケールを100倍に変更する必要があるわけですね。 これはこれで、幅広い単位系でオブジェクトを扱うための考え方の工夫ではあるのですが、単に、単位換算に合わせての内部スケーリング計算を省略しているだけのようにも見えますな(笑)。 さて、では C4Dスケールと Shade単位との相関は?と言うことで、Shade 上で 1m四方の立方体を作り、まずは「Poser単位」オプションを付けずに.OBJ書き出しを行います。こうすると、Shade での内部座標管理値が.OBJ形式で書き出されます。 これを C4D の編集>一般設定>インポート/エクスポート>Wavefrontインポート>スケールの項目を1(読み込み倍率1倍)の設定で読み込んでみますと〜読み 込んだ結果は“1”四方となります。このとき C4D 側の単位設定が「m」であれば 1m四方、「in」であれば 1in四方と言うことですね。 試しに、Shade で 1cm四方の立方体を作って C4D でよむと“0.01”四方の立方体となりました。 つまり、「Shade単位」の 1m が「C4Dスケール」の“1”に対応しているわけです。単位は兎も角、スケール的には Shade と C4D とは 1:1 と言って良いでしょう。 次に、例の 1m四方の立方体を「Poser単位」オプションを付けて Shade から.OBJ書き出しし、C4D へ持ち込みます。 すると、今度は“0.41”四方の立方体になりました。つまり、Shade は「Poser単位」オプションがつくとスケールを 0.41 倍(約 2.4384分の1に)して書き出している事が分かります。これはすなわち、一般の.OBJ形式のスケールに対する Poser 内部のスケール比率であることになります。 従って、「Poser単位」の.OBJファイルを C4D で扱う場合は、「Wavefrontインポート」の「スケール」設定を 2.4384 にしておけば、Poser単位で 1m四方の立方体を C4D でも“1”四方として扱える訳なのですが、問題は「単位設定」です。 「Wavefrontインポート」の「スケール」設定を 2.4384 で、「単位設定」を「m」にするのがもっとも明瞭ですが、こうすると C4D に取り込んだオブジェクトのスケールが小さくて扱いづらいので、基上の場合は「スケール」を 243.84 にして、「cm」単位で扱う設定にしてあります。さらに「Wavefrontエクスポート」のスケールも同様に 243.84 (こちらは 243.84倍の扱いになる)にしてあります。 これで Poser<->C4D<->Shade におけるスケール相関の問題は無くなりました(※Shade で.OBJ読み書きする際は必ず「Poser単位」オプションを指定)。 あったんですよ、実は。これを知ったのは実は結構最近なんですが。 いや、正確には三つかも?、 Poser4を含むそれ以前、Poser5、そして Poser6、この三系統。 とはいえ Poser4 を含むそれ以前、は、明確にスケール管理をしていなかった時代みたいなので、まぁ、気にする必要はないでしょう。 さて、Poser5。これは先ほどの Shade と C4D との相関で Shade での 1m が「Poser単位」適用で 0.41 になる、すなわち 2.4384 分の1 と言う事が分かっているので、1Poser単位は逆算して 2.4384mと 考えられます(本当は、0.41 の逆数をとっても 2.4384 にはなりません、2.43902…となります。2.4384 と言う数字は C4D で Shade で作った1m立方体を読み込んだとき、1mに対して端数が出ないようにインポートのスケール値を変えて探り出しました)。 この 2.4384m を「フィート」に換算すると、ちょうど8ft となります(※1ft=30.48cmで換算)。 で、問題は現行バージョンの Poser6。 Poser6 のリファレンスマニュアルの P.48 に次の一文が…「Poser単位は 8.6フィート、または 262.128センチメートルと同じです。」 なんだそうですが〜先ほど、Shade の「Poser単位」オプションから割り出した Poser5 での「Poser単位」と食い違っております。 そこで実験として、Poser6 にてデフォルトフィギュアであるジェシーさんを呼び出してみます。彼女の身長は Poser6 の世界では1頭耳長:9インチで8頭身、要するに 9×8=72インチ、約182cm。Poser5 のマニュアルによれば、Poser5 デフォルトフィギュアのジュディさんも同じ身長設定のハズなのですが、Poser6 へ読み出してみると…確かにジュディの方が背が高い(笑)。 そこで気になったので、Shade の現行バージョンである Shade8.5 の「Poser単位」オプションでの.OBJ書き出しを確認してみると〜結果は Shade7.5 と同じ。 どうやら、Poser6 の単位変更は Shade8 シリーズには反映されていない様子(一応、同じ会社の製品のハズなんですが?)。 当然、Poser6 発売以前の DAZ 等のフィギュアやオブジェクトは Poser5 単位系で作られているはずなんだろうけど、現在や今後はどうなるんでしょうか?…ねぇ。 ともあれ、Poser6 でのスケールの考え方は次の三つ。 1).Poser6 に読み込んだオブジェクトのスケールを 0.93倍(93%)にして使用する。 2).Poser6 付属のオブジェクト(ジェシーやジェームスとその衣類等)は 1.075倍(107.5%)にして使用する。 3).Poser6 デフォルトフィギュア(ジェシーとジェームス)の身長は 169cmだと思う。 ※但し、身長169cmで8頭身…可成りの「小顔」ですな(笑) 要は、Poser6 を使っていようとも、Poser6 付属のオブジェクトと絡まない限りは、スケールの相関を気にする必要は全くないわけでして(笑)。変更になったのは.OBJファイル形式での1スケールを Poser 内部でどういった単位で扱うか、と言う部分だけ。Poser6 付属のオブジェクトは当然 Poser6単位系に合わせて作って有るにしても、それ以外のモデル/オブジェクトが Poser5単位系で統一されていれば、Poser6 付属のオブジェクトを使用しない限りは何の影響もないし、読み書きする.OBJファイルでのスケールは Poser5単位系も Poser6単位系も変わらないので外部にも影響しない。Poser にモデリング機能が無いことが幸いしてます。これで、Poser6 にもしもモデリング機能があったりすると、もっとややこしい事になっていたかもしれませんね。 そこで、ただ一つ注意しなければならないことが有るとすれば… 『くれぐれも、Poser6 上で寸法を測らないように。』と言うことでしょうか(笑)。 因みに、今後とも基上が製作するモデルの単位系は Poser5単位系です。 4.最後は、Vue 調べてみたら、なんとInfinite の和文マニュアル、P.45 にキッパリハッキリと書いてありましたね〜 「1.0Vue単位=0.01Poser単位=0.08フィート=2.4384cm」
…と。これまでの調査と実験は何だったんだ(笑)。結局、Vue5 も Poser5単位系(の100倍)だ、と言うことで、ますます Poser6単位系は旗色が悪くなりました。 そんなわけで、Poser5単位系の.OBJファイルは、Vue に読み込んだら単純に100倍すればスケール相関が保てることが分かります。実は、このマニュアルの記述に気づく前は、Shade で作ったオブジェクトを一旦、Poser に読み込んで、PZ3ファイルに保存して Vue に読み込ませていました。 こうすると、自動的に Poserスケールが Vueスケールになってくれるので。 この手のもう一つのメリットは、Shade で作った.OBJファイルのマテリアルは Vue は読んでくれない、と言う点の対策になる事です。Poser でマテリアル設定を整理して PZ3 にして Vue へ渡せば、おおざっぱにはマテリアルが反映されるので、Vue でのマテリアル再設定が可成り楽になります。 それから、Vue の環境設定の項目に「取り込みオブジェクトのリサイズと中央配置」と言うオプションが有るんですが、これもどうやら読み込んだオブジェクトのスケールを100倍にしているようです。 それから、Vue の画面右上「オブジェクト属性パネル」の「数値」タブでのサイズ実寸表示の単位は「cm(センチメートル)」のようですね。 5.補足・OBJファイル仕様との相関 なんだかんだ言っても、結局の所 Poser も Shade も C4D もそして、Vue も Wavefront .OBJ ァイル形式でデータのやりとりを行っているわけです。そこで、.OBJファイル形式仕様との相関をまとめるのが一番わかりやすいかも、と言うことで、下表 のようなマトリックスを作ってみました…余計、分かり難いか(笑)。
各列が、各アプリケーションでの1単位。それぞれについて、各行でアプリケーション毎の換算値、と言うことです。 例えば、一番左列、.OBJ形式での1単位(無次元なので単位は有りません)が Shade では1m(メートル)、C4D では 1単位(C4D も単位がないので)、Poser5 では 2.4384m、Poser6 では 2.62128m、Vue5 では 243.84m になる、と言う感じで。 あまり、意味がなかったかな?(笑)。 ともあれ、これで各アプリケーション間でのスケールと単位相関のモヤモヤは解決、と。 − 了− 2006/03/22 記
|
<Menu <Tips Top | > Tips 001 < |
Rev.02.01
|