ちょっとわき道に戻る
マスターサーフェスについて
一般住宅のパースを作成していると外壁、内壁、屋根材などを変更するケースが多々あります。
もし、マスターサーフェスが無かったらパートを展開して一つ一つ設定しなおさなければなりません。
今回はこの重宝するマスターサフェスについて思いつくまま、書いてみようと思います。
ところでマスターサーフェスとは何でしょう。


形状のモデリングをしたら次にする事は表面材質の設定ではないかと思います。
普通は形状やパートを選択して個々に表面材質設定windowで設定していきます。
一方マスターサーフェスはマスターサーフェスという特殊形状に設定された表面材質設定を指定してそのまま利用するものです。
両者の違いは図を参照してください。


マスターサーフェスを使う理由

それではなぜマスターサーフェスを使うのでしょう。いくつかその利点を挙げてみましょう。

1.表面材質設定の作業を簡単にする
同じような設定を何度も繰返す作業ほど疲れるものはありません。
設定は一回、後はコピーという流れにすることにより作業を楽にします。
すでに必要な表面材質を持っていてそれをマスタサーフェスに読み込めばもっと楽です。

2.メモリー、ファイルサイズの点から
図からも判るようにマスターサーフェスを使わない時は同じ表面材質設定でも形状に設定した分だけ表面材質データが必要となり、重複する分だけメモリーサイズもファイルサイズも増大します。
マスターサーフェスを利用すると、同じ表面材質は一つしか持たないので重複する分のデータ領域を節約することができます。
非常に複雑な形状にサイズの大きな表面材質(イメージを使ったものなど)を使用する場合などはこのマスターサーフェスは欠かせないものとなるでしょう。

3.テクスチャーの一括変更
住宅のような分野ではある特定の部分を変更させてシュミレーションさせるケースが少なくありません。
そのような時にマスターサーフェスを利用して表面材質を設定していればあっという間に変更できます。


Topへ

数字で検証

ところで実際にどれだけファイルサイズに影響するのでしょう。
最初にこんなテストをしてみました。

新規に表面材質を全く設定しないスケルトンの形状を作ります。(図を参照)
それをファイルに保存します。(sample1.shd)
次にマスターサーフェスを一つ作り全ての形状に適用します。
それをファイルに別名で保存します。(sample2.shd)
次にプラグインの「マスターサーフェスから独立」を使って個々の形状への直接設定にします。
マスターサーフェスを削除します。
それをファイルに別名で保存します。(sample3.shd)
※他の要因をカットする為他の操作はしません。(特にレンダリングなど)



test目的:
・表面材質設定の設定の仕方によるファイルのサイズの違いを確認する。

test条件:
・Fileに保存された491KBの表面材質(イメージを使用したサイズの大きいもの)を使いました。

・スケルトン形状ファイルは長方形をY軸に沿って30個並べたものを使用(画像参照)

結果:
・スケルトン形状ファイル (sample1.shd)
16.5KB

・マスターサーフェス使用形状ファイル(sample2.shd)
1027.8KB

・個々に設定した形状ファイル(sample3.shd)
30128.8KB

考察:
・当初はせいぜい表面材質設定ファイルのサイズの30倍近辺で収まると思っていたのですが実際には約その倍のサイズになってしまい予想以上に影響することがわかりました。

・表面材質のサイズで結果が違うかもしれないと思い追加テストで136KBの表面材質を使ってみたところもっと差(比率)が大きくなりました。


ここまで来てふと、

「”マスターサーフェスを持った形状ファイルの大きさ”と、”スケルトンの形状ファイルと全てのマスターサーフェスを保存した表面材質の総サイズ”とどちらが大きいのだろう」という疑問が頭を掠めたのでtestしてみました。

(実はこれ、使用しているスクリプトに「マスターサーフェス付エクスポート」と「マスターサーフェス付インポート」というのがあり、これらを使って部品を溜め込み始めているのですが、普通にマスターサーフェスのついた形状を保存するのに比較してどの程度ロスが出るか知りたかったからなんです。)

結果はマスターサーフェスのついた形状をそのまま保存するよりもマスターサーフェスの表面材質をファイルに分離して保存した場合の方がサイズが小さくて済むことが判りました。

testは2つの違った条件でしか行わなかったので再現性のほどは判りませんが、結構差が出ました。

最初のtest結果から、新たに実験するまでも無く「マスターサーフェスから分離」をしてからエキスポートした場合とでは相当な差が出るだろうということは容易に想像できます。

(この結果を見て「マスターサーフェス付エキスポート」スクリプトで形状部品を溜め込んでいくことはロスどころか大きなディスクスペース節約になるということがわかり喜んでいます。)

Topへ

使いにくい点

こんな便利なマスターサーフェスも使いにくいところがいくつかあります。

独立性が無い
マスターサーフェスの性質上当然ですが「少しずつ何かを変える」といったことができません。
また基準点を個々に設定することもできないようです。(裏技があるかどうかわかりませんが)
唯一できるのはマスターサーフェスの「基本色」を設定せず、それぞれの形状に「基本色」を持たせて多様性を実現することです。

インポート、エキスポートで使えない。
通常のインポート、エキスポートではマスターサーフェスを維持できません。
表面材質を持ったパート、もしくは形状をエキスポートするには「マスターサーフェスから独立」プラグインで個々に設定してからエキスポートするしかありません。
またインポートの際も同様にマスターサーフェスは維持されません。
スクリプトやプラグインを利用するか手作業で設定していくしかないでしょう。
(参考スクリプト MasterExpImpページへリンク

一括設定ができない。
複数形状を選択してマスターサーフェスを設定できるような仕様になっていないので、個々に設定していかなければならない。
これは結構面倒な作業です。
現状ではやはりスクリプトやプラグインなどを利用するしか手が無いようです。
(参考スクリプト MasterSetAtOnceページへリンク)

あるマスターサーフェスを別のマスターサーフェスに置き換えようとしたら一つ一つ設定しなおさなければならない。
マスターサーフェスの複製はできるのですが、あるマスターサーフェスの表面材質を他のマスターサーフェスで置き換えるとなると、
いったんファイルに保存してそのファイルを別のマスターサーフェスで読み込むというような作業になります。
さらに同じマスターサーフェスがあってそれを一つに統合するとなるとパートを展開して一つ一つ設定しなおさなくてはなりません。
非常に厄介です。これもスクリプトやプラグインで対応するしかないでしょう。
(参考スクリプト MasterUnifyページへリンク)

こう考えていくと作業の効率化のためにもプラグインは難しくてもスクリプトぐらいは使えるようになっておきたいですね。
別にスクリプトの必要性を訴える為に長々と記述したわけではありませんので誤解しないで下さいね。
他のホームページでマスターサーフェス関係のスクリプトを見たことがありますのでそちらを利用されてはいかがでしょう。
私が使っているもの(機能は対して変わりません)も説明ページが出来次第UPしたいと思います。
実はこの説明ページ作りがひと苦労なのでしばらくお待ちください。
(2003/09/09:UPしました。上にリンクを追加してます。)



ちょっとわき道に戻る Topへ