建物の表面材質を割り当て

  • マスターサーフェスを参照している形状を逆引き
  • ブラウザの階層構造を2つ出す
  • ポリゴンメッシュのボックスUV展開
  • ポリゴンメッシュのUVの再配置(Standard/Professional)
  • テクスチャのマッピングサイズの調整(反復)
  • テクスチャのマッピングサイズの調整(UV図面上でのリサイズ)
  • UV図面での連続面選択
  • 複数のポリゴンメッシュを1つに結合
  • ポリゴンメッシュの投影UV展開

建物の壁や床などに表面材質を割り当てていきます。
建具や家具などをその都度インポートしたため、同じマスターサーフェスが重複していたり、形状に直接表面材質が独立して割り当てされたままの箇所があります。
この段階で、マスターサーフェスを整理していきます。
現段階では以下のようになっています。

この段階で、すでにどれに割り当たっているマスターサーフェスなのか区別しにくい状態です。
また、英語名と日本語名が混じっています。
管理しやすいようにするため、以下のように統一するようにしました。

  1. 形状に独立した状態の表面材質を与えない。材質はすべてマスターサーフェスにする
  2. 表面材質の拡散反射色で、直接の色指定をしない(レンダリングのリニアワークフローのため)
  3. 同じ表面材質(マスターサーフェス)を参照するポリゴンメッシュは1つに結合
  4. マスターサーフェス名は半角英字に統一
  5. マスターサーフェス名が重複しないようにする

[4][5]番目は今回のテーマでは対象になりませんが、これはUnityなどの他のツールに渡す際に手間を省く目的もあります。
他の3DCGツールでも、同一名や日本語を含む全角の形状名/マテリアル名を受け付けないものが多いです。
今のうちにこのあたりは考慮しておくことにします。

また、いくつかのテクスチャマッピングの流れを試すようにしました。
遠回りのマッピングを行いつつ、機能と流れを説明しているところもあります。
マッピングする箇所によって方法は変わると思われますので、どれが目的にあったマッピングとなるか、試行錯誤しながら進めていくようにします。

マスターサーフェスがどの形状に割り当てられているか調べる

これだけマスターサーフェスがあると、どの形状に指定のマスターサーフェスが割り当てられているか探すのが大変です。
そこで、ブラウザで各マスターサーフェスが参照されている形状を一覧する方法があります。
ブラウザの下のバーを上にドラッグすると、ウィンドウが2つに分かれます。
下の領域に各マスターサーフェスを使用している形状の一覧、各イメージを使用しているマスターサーフェスまたは形状の一覧が表示されます。

ただし、ポリゴンメッシュのフェイスグループとしてマスターサーフェスを割り当てている場合は、対象形状は列挙されません。
上画像では、「床」のマスターサーフェスが「床」のパートで使用されています。
「wall」のマスターサーフェスはどの形状でも参照されていません。
もし、マスターサーフェスがフェイスグループから参照されていない場合は、利用されていないマスターサーフェスを削除します。
下の一覧で「マスターサーフェス」内のマスターサーフェス名を選択し、[Del]キーを押すことで対象のマスターサーフェスは削除できます。

このブラウザの階層とマスターサーフェス/イメージ一覧を見ながら、マスターサーフェスとテクスチャを整理していきます。

イメージ名を英字に統一

イメージパート内のテクスチャ名を半角英字の「xxxx.png」となるように名前変更しました。
また、同一名は指定しないようにしています。

fbx出力時は、拡張子指定がない場合に自動的にpngの拡張子を付けてファイル出力されます。

マスターサーフェスを整理

形状から参照されていないマスターサーフェスを削除し、マスターサーフェス名が半角英字になるように調整しました。
これは、ブラウザのマスターサーフェス一覧より整理していきます。

ブラウザでマスターサーフェスを切り替え、表面材質ウィンドウを見て同一の割り当てがある場合は、マスターサーフェスをまとめます。
以下の場合は、室内ドアと窓の取っ手のマスターサーフェスは同じ材質ですが、2つのマスターサーフェスに分かれています。

マスターサーフェスの変更は、ブラウザのマスターサーフェス一覧より各マスターサーフェス内の形状を選択。
表面材質ウィンドウの「使用」より、変更したいマスターサーフェスを選択します。

これで、各形状のマスターサーフェスを変更することができます。
これをマスターサーフェスを変更するすべての形状で行い、どの形状からも参照されなくなったマスターサーフェスを削除します。

シーンの階層構造を2つ表示して確認しやすくする

建物のモデリングのようにシーンにたくさんの形状を配置した場合、ブラウザでは1つの階層表示だけではその都度スクロールして確認、などの手間がかかります。
ブラウザの上のバーをドラッグして下に下げることで、階層構造を2つ表示することができるようになります。

また、選択した形状に自動スクロールする機能をオフにする場合は、ブラウザ左上の「選択」をクリックしたポップアップメニューより「自動的に選択形状を表示」をオフにしておきます。
縦スクロールは、ブラウザで[Space]キーを押しながらドラッグすると手早く目的の形状を探しやすくなります。

基礎の表面材質を割り当てる

「ボックスUV展開」+「UVの再配置」+「表面材質での反復指定」でのマッピング

建具や家具類は、個々のモデリング時にすでに表面材質が割り当てられているため、
それ以外の壁や床、基礎、屋根などの表面材質をマスターサーフェスとして割り当てます。

基礎や壁はタイリングされた上下左右に繰り返して使えるテクスチャを割り当てることにします。
ポリゴンメッシュに対してUVを割り当てることでマッピングします。
建物をモデリングした際に、基礎や壁はほぼ垂直で構成されるようにしているため、「ボックスUV」を使用してテクスチャを展開することにします。

基礎のUVマッピング

コンクリートのテクスチャを以下のように用意しました。
左が拡散反射用、右が法線マップ用です。タイリング加工しています。
タイリング加工についてはチュートリアルの「土のテクスチャ素材を作成」をご参照ください。

この拡散反射と法線マップのテクスチャをインポートし、基礎のマスターサーフェスに割り当てておきます。

なお、基礎は1つのポリゴンメッシュとしてモデリングされています。
これにUVを与えます。

基礎をブラウザで選択し、UV図面を表示。「UVメニュー」ポップアップメニューより、「UV層の追加」を選択します。

UV層がすでに存在する場合は、「UV1(距離補正)」を選択して表示しておきます。
この「UV1(距離補正)」に対して、「UVメニュー」より「UV作成」を選択し、「ボックスUV」で「全ての面を展開」します。

以下のようにボックスUV展開されました。

この状態ではUV図面上で隙間が空きすぎているため、「UVの再配置」より「全ての面」を選択します。

これでUVの配置が調整されましたが、左上にある大きめの枠部分は基礎の見えない部分になりますので選択して削除し、再度「UVの再配置」を行いました。
「UVの再配置」は、Standard/Professional版で使用できる機能になります。

なお、UV図面で選択した面を[Del]キーで削除する場合は、形状自身の面が削除されることになります。
UV情報だけが消えて形状としての面が残るわけではないのでご注意くださいませ。

透視図では以下のような基礎のマッピングになりました。

まだテクスチャが大きすぎるため、マッピングのサイズを調整します。

マッピングの繰り返しを調整

表面材質の「マッピング」でイメージの「反復」を調整して、マッピングを細かくします。
基礎のマスターサーフェスを選択し、表面材質ウィンドウの「マッピング」で「イメージ」タブを選択。
反復を16, 16としました。
基礎では、「イメージ-拡散反射」「イメージ-法線」の2つのレイヤを使用しているため、両方に反復を指定しています。

このような、テクスチャの模様が一律の材質の場合は同じようにマッピング対応できそうです。
続いて、壁も同じように処理します。
外壁の場合は基礎よりも見えている面積が大きいため、少しだけ異なる処理を行います。

外壁の表面材質を割り当てる

「ボックスUV展開」+「UVの再配置」+「UV値としてのサイズ調整」でのマッピング

外壁のマスターサーフェスのマッピングに、以下のテクスチャを割り当てました。

外壁のポリゴンメッシュにUV層を追加し、「ボックスUV」と「UVの再配置」で以下のようになりました。

形状編集モード + 面選択モードにし、UV図面上でUV面を重ねていきます。

UV図面上で、連続面の選択と移動

UV図面上で1つの面を選択し、ツールボックスの「編集」-「メッシュ」-「選択」-「連続面選択」を選択することで、
UVとしてのつながった面が選択状態になります。

面が選択された状態でマニピュレータでドラッグし、UV図面上の左上に移動させます。

これをすべての連続した面で行い、以下のようにしました。

UV図面上でリサイズ

すべての面を選択し、UV図面上でマニピュレータをドラッグしてリサイズします。
マニピュレータをドラッグ後にツールパラメータでUとVの拡大縮小値として同じ値を入力することで、縦横を等倍できます。

以下のようにリサイズし、透視図でテクスチャを確認しました。

この場合はUV値として繰り返しを行ったことになるため、表面材質のマッピングで「反復」を指定する必要はありません。
他ツールに形状や表面材質を渡す場合は、表面材質のマッピングの「反復」よりも
UV値としてテクスチャの繰り返し表現を行うほうが、確実にマッピング情報を渡すことができます。

内壁の表面材質を割り当てる

「ボックスUV展開」(フィット)+「UV値としてのサイズ調整」でのマッピング

建物の壁については、この方法が一番スマートかもしれません。
「UVの再配置」機能を使わないため、Basic版でも使用できます。

内壁のポリゴンメッシュを1つに結合

内壁は、部屋ごとに複数のポリゴンメッシュに分かれています。
これを1つに結合してしまいます。

複数のポリゴンメッシュを選択した状態で、ツールボックスの「編集」-「メッシュ」-「結合/除去」-「オブジェクトの結合」を選択。

これで、1つのポリゴンメッシュにまとめられました。
形状情報ウィンドウを表示し、「フェイスグループ情報」のリスト項目をすべて選択、右下の「削除」ボタンを押します。

ポリゴンメッシュを「内壁」という名前に変更し、ポリゴンメッシュとしての表面材質で内壁のマスターサーフェスを選択しました。

内壁のテクスチャをマッピング

ShadeExplorerより、壁の模様に近い表面材質を読み込んで割り当てました。

UV図面上で「ボックスUV」展開時に「フィット」チェックボックスをオンにして、「全ての面を展開」ボタンを押します。
以下のようになりました。

フィットは、ボックスUV展開時に分割された面のグループごとを並べずに重ねたまま配置します。
壁などのマッピングの場合は、このほうがシンプルになるかもしれません。

UV図面ですべての面を選択し、マニピュレータの拡大縮小を調整しU/Vともに5倍しました。

床/天井の表面材質を割り当てる

床や天井も内壁のときと同様に、1つのポリゴンメッシュに結合してからテクスチャを割り当て、UVを割り当てていきます。
テクスチャはShadeExplorerから読み込みました。

天井は壁と同じテクスチャを指定しています。

その他、「幅木」「廻りぶち」なども同じ要領で表面材質を割り当てていきます。
プレビューレンダリングを行い、室内は以下のようになりました。

すいぶんと部屋らしくなりました。
ただ、まだこの状態ではリニアワークフローのガンマの調整などをしておらず、まだレンダリング調整が残っています。

最後に、外観の屋根を調整します。

屋根の表面材質を割り当てる

ポーチの土台部分や柱は前述の表面材質指定でのマッピングと同じ作業を行いました。
この部分の流れは同じですので説明を省きます。

ポーチの上の屋根と建物の屋根のテクスチャマッピングとUV指定を行います。
横シマのテクスチャを割り当てるようにしました。

屋根のポリゴンメッシュを1つに結合し、表面材質としてマスターサーフェスを指定。
マッピングに、上記のテクスチャを割り当てます。

UV図面で、UVメニューより「UV作成」を選択し「投影UV」を選択。
投影面を「正面図」として「全ての面を展開」ボタンを押します。

すべての面を選択し、UV図面でマニピュレータで上方向に拡大すると、透視図では屋根のシマ模様が見えてきます。

側面部分はUVとしては面積がないため、透視図と右面図から側面から面を選択。
UV図面で「投影UV」の「投影面」を「右面図」とし、「選択面を展開」ボタンを押します。

UV図面上の選択面のマニピュレータで上方向に拡大して、以下のように正面と側面の模様が揃うようにしました。

ポーチの屋根も同様の処理を行います。

プレビューレンダリングを行い、外観は以下のようになりました。

以上で、表面材質(マスターサーフェス)の割り当てとUVを使ったテクスチャマッピングは一通り完了です。
目的に合わせていくつかの機能を組み合わせる流れ、が把握できれば幸いです。
材質とマッピングの指定はモデリングと同じくらい作業量も多くなりますので、じっくり取り組むのがよさそうです。

次に、ライティングとレンダリングに進みます。
ようやくゴールが見えてきました。

カテゴリー: 建物を作る