トレンド&テクノロジー / 冨田和弘が斬る!建築ビジュアライゼーション業界
第33回:ComputerGraphics温故知新
- 3ds Max
- コラム
- 学生・初心者
- 建築・製造・広告
温故知新とは論語に出てくる孔子の言葉で、簡単に言えば先人の知恵を持って今に生かすという感じでしょうか。正確な意味はWebで検索してもらうとして、今回のコラムは昔はCG制作者として当たり前であったCGの基礎を、今また学ぶ必要が出てきたな〜というお話しです(温故知新のニュアンスとはちょいと違っていますがご勘弁を)。今回のコラムの内容は私がCGを始めた頃やその前後、またそれより昔の人は当たり前すぎて読む価値は無いと思いますので、事例を読んでもらって「へ〜、今時はそんなレベルなの?」と世を儚んでもらえればと思います。私よりも若い人のどの辺りから以降のコラムの内容を意識しなくなった(知らなくなった)か定かではありませんが、知識として持っていなかった人は良く読んでみて下さい。
授業の最初に趣旨説明を行ったあと各々でモデリングをやってもらい、3Dモデルから設計の評価を行いつつアニメーションを作ってもらうという流れになりますが、さてアニメを作ろうと各々のモデリングソフトからハードウェアレンダラーにデータを持ってくると必ず起こるのが「データが消えた!」または「データが読み込めない!」といった事件です。使っているモデラーは3ds Maxを含め2〜3種類で何れも大凡は私が知識を持っているものです。そのデータをネイティブファイルや中間フォーマットを介してハードウェアレンダラーにインポートするのですが、モデラー上では問題無いように見えるデータがレンダラー側で読み込めなかったり、データが一部消えたりする事が起こったのです。このワークフローは私が仕事上良く経験しているものなので、最初はそんな馬鹿なと思いましたが確かにデータがおかしいと思える現象でした。
さてここでコラム読者への問題です。ここまで読んで何が原因だと推察されますか? すぐに見当が付いた方は冒頭でお話しした古くからCGをやっている方またはきちんと勉強されてる若い方でしょうから、この後は読み物としてお読み下さい。見当が付かない方は今一度知識を総動員して、自分が仕事上で直面したトラブルと思って考えて見て下さい。
ここまで読むと先のトラブル原因の1つが見えてきたんじゃないでしょうか。答えは2バイト文字です。ファイル名やオブジェクト名、使用しているテクスチャの名前、はたまたディレクトリ構成に日本語を使用していたために読み込めないという現象が起こっていたのです。犯人はモデラー側では無く、2バイト文字を扱えないハードウェアレンダラーだったわけです。とは言え、ハードウェアレンダラーにばかり責任を押しつけるのも問題です。Autodeskの様なワールドワイドに展開している企業のソフトは2バイト文字も対応すべくローカライズしたソフトを用意してくれますが、そうでは無いソフトは2バイト文字など考慮はしてないケースが殆どです。今回使用しているレンダラーは日本では知名度が低くこれからのソフトでもあるので、この辺の事情は推して計るべしで、私に言わせればワークフロー自体の問題だったと言えるトラブルです。私はPCのディレクトリ名、ファイル名、Maxではレイヤ名、オブジェクト名、マテリアル名、使用するテクスチャ名など、ありとあらゆるもので2バイト文字は使用しません。あと、メタキャラ等も使用しません。何も英語が得意な訳ではありません。英語が思いつかない時はローマ字表記の名前にします。昔からの癖と言うこともありますが、ワークフローの性質上、様々なソフトを使ったり、中にはネットで見つけた海外のソフトを使用したりするので、仕事上のトラブルを未然に防ぐ最低限の処置といえます。
ここ最近、様々なテクノロジーを駆使したソフトが登場しています。以前のコラムでも書いたように新しいテクノロジーを詰め込むための私の頭は容量・能力的にオーバーフローしているためMaxベースのプラグイン的な扱いの出来るソフトに限定した知識ではありますが、新しいものは昔と変わらず海外から多く発信されています。ソフトも大手に喧嘩をうるようなインテグレートされたものというより、特色をもったプラグイン的なものが多く、そういった性質上メジャーソフトのデータを利用することを前提としているのでMaxは必ずと言って良いほどサポートされているのが私にとって救いなのですが、2バイト問題はついて回ります。件の大学院のトラブルで最初に戸惑ったのも、私のワークフローでは起こらない話だったからです。
とにもかくにも、建築CGを生業として他者とデータのやり取りが発生している、またはCGの世界で新しい事にチャレンジしようと思っているような方は2バイト文字の使用は控えましょう。締め切り前のドタバタしている時にデータのトラブルが発生したりしたら、あなたは冷静に対処出来る自信がありますか? そういったリスクを避けるためにも転ばぬ先の杖として実践してみてはどうでしょうか。
図1 サーフェスの表裏
図1の様に、a→b→c→d→aの順番でサーフェスを作成すると法線Aの向きがこの面の表となります。逆の順序で書けばBが表になります。
プログラムでは裏面は表示しなかったり、レンダリング計算上除外したりします。モデリングの際に裏面が表示されないと作業がやりにくくなってしまうので、モデリングでは両面が表示されるのが一般的です。参考図2〜4のようにMaxでもモデリング時、レンダリング時、マテリアルと裏面の表示をどうするかのスイッチがあります。図のマテリアルはmentalrayですがVrayマテリアルにも存在します。
何故こんなものがあるのか? 簡単に言えば計算負荷の軽減のためです(それ以外にも理由はあるかもしれませんが…)。単純な話をしましょう。サイコロのような直方体をレンダリングする際にカメラで見た時に見えている面は幾つありますか? 見える面は最小1面、最大で3面です。と言うことは残りの見えて無い面は計算する必要がありません。表示上の計算負荷は少なくとも半分になります。実際に陰影やGI計算などとそこまで単純な話にはなりませんが、それでも計算負荷の軽減にはなります。最近はハード・ソフトのスペックが一頃に比べ格段にUPしているので、昔ほど気にしないで済む問題という事もあって知らずに済んでいる人がいるんだと思いますが、高速描画が信条のハードウェアレンダラーでは基本的に裏面表示はしません(少なくとも私の知る限り)。使用するソフトやハードによっても状況は変わると思いますが、先ほどの2バイト文字の話と同じく、面の表裏に関する知識は持っているべきだし、シングルサーフェースを作る・扱う際は注意しないと転んでしまう結果を招きます。
データが消える!
私は法政大学の大学院で設計のstudioを専任の教授と共に担当しています。studioの内容は平たく言えば設計演習のようなもので、studioの最初に設計条件を出し、それに対して各人が半年間かけて設計を行い最後に教授陣の前で自身の設計をプレゼンして評価を受ける(単位の取得)というものです。卒業設計のような良く有る設計演習なのですが、私のstudioは最終成果物がムービーによる提出と他のstudioとは違うアウトプットを課しているところが特色です。設計の基本はデジタルで且つ3Dを主としてやってもらい、アウトプットがムービーであることからCGアニメーションの制作を必須にしています。発表時間が5分程度のため基本は5分のムービーを作ってもらうことになりますが、全てをアニメで作る必要はなくアニメーション+CAD図その他資料といった総合的なプレゼン用成果物を作ります。履修する学生はCGに強いといった訳では無く他のstudioを取っている学生よりは使えるとかムービーに興味を持った程度なので、ソフト選定は彼らが使いやすいものにしています。アニメーション制作の経験は皆無と言った事がこれまで3年教えてきた中で通例であるため、アニメーションに関しては制作が簡単なハードウェアレンダラーをこちらで用意して使ってもらっています。法政大学はAutodeskとソフトウェアに関して包括的な契約を結んでいるので今だったらRevit+3ds Maxあたりでやってもらえると私としてもありがたいのですが、CAD・CGの授業では無く設計のstudioなのでなかなかそうはいかないのが実情です。授業の最初に趣旨説明を行ったあと各々でモデリングをやってもらい、3Dモデルから設計の評価を行いつつアニメーションを作ってもらうという流れになりますが、さてアニメを作ろうと各々のモデリングソフトからハードウェアレンダラーにデータを持ってくると必ず起こるのが「データが消えた!」または「データが読み込めない!」といった事件です。使っているモデラーは3ds Maxを含め2〜3種類で何れも大凡は私が知識を持っているものです。そのデータをネイティブファイルや中間フォーマットを介してハードウェアレンダラーにインポートするのですが、モデラー上では問題無いように見えるデータがレンダラー側で読み込めなかったり、データが一部消えたりする事が起こったのです。このワークフローは私が仕事上良く経験しているものなので、最初はそんな馬鹿なと思いましたが確かにデータがおかしいと思える現象でした。
さてここでコラム読者への問題です。ここまで読んで何が原因だと推察されますか? すぐに見当が付いた方は冒頭でお話しした古くからCGをやっている方またはきちんと勉強されてる若い方でしょうから、この後は読み物としてお読み下さい。見当が付かない方は今一度知識を総動員して、自分が仕事上で直面したトラブルと思って考えて見て下さい。
原因その1
私のようにCGに関する経験が30年近い人間にとってCG関係のソフトとは基本的に外国製というのがお決まりでした(始めて触ったAutoCADバージョン2もアメリカ製でしたし)。国産も無かった訳ではありませんが少数派で、大多数は外国製品が占めていました。OSに至っても、今のようなGUIでの日本語ベースでは無くCUI(Character User Interfaceの略。マウスでメニューを選ぶスタイルでは無く、キーボードでコマンドを入力して作業を行う)で、英語のコマンドベースで作業をしていました。ここまで読むと先のトラブル原因の1つが見えてきたんじゃないでしょうか。答えは2バイト文字です。ファイル名やオブジェクト名、使用しているテクスチャの名前、はたまたディレクトリ構成に日本語を使用していたために読み込めないという現象が起こっていたのです。犯人はモデラー側では無く、2バイト文字を扱えないハードウェアレンダラーだったわけです。とは言え、ハードウェアレンダラーにばかり責任を押しつけるのも問題です。Autodeskの様なワールドワイドに展開している企業のソフトは2バイト文字も対応すべくローカライズしたソフトを用意してくれますが、そうでは無いソフトは2バイト文字など考慮はしてないケースが殆どです。今回使用しているレンダラーは日本では知名度が低くこれからのソフトでもあるので、この辺の事情は推して計るべしで、私に言わせればワークフロー自体の問題だったと言えるトラブルです。私はPCのディレクトリ名、ファイル名、Maxではレイヤ名、オブジェクト名、マテリアル名、使用するテクスチャ名など、ありとあらゆるもので2バイト文字は使用しません。あと、メタキャラ等も使用しません。何も英語が得意な訳ではありません。英語が思いつかない時はローマ字表記の名前にします。昔からの癖と言うこともありますが、ワークフローの性質上、様々なソフトを使ったり、中にはネットで見つけた海外のソフトを使用したりするので、仕事上のトラブルを未然に防ぐ最低限の処置といえます。
ここ最近、様々なテクノロジーを駆使したソフトが登場しています。以前のコラムでも書いたように新しいテクノロジーを詰め込むための私の頭は容量・能力的にオーバーフローしているためMaxベースのプラグイン的な扱いの出来るソフトに限定した知識ではありますが、新しいものは昔と変わらず海外から多く発信されています。ソフトも大手に喧嘩をうるようなインテグレートされたものというより、特色をもったプラグイン的なものが多く、そういった性質上メジャーソフトのデータを利用することを前提としているのでMaxは必ずと言って良いほどサポートされているのが私にとって救いなのですが、2バイト問題はついて回ります。件の大学院のトラブルで最初に戸惑ったのも、私のワークフローでは起こらない話だったからです。
とにもかくにも、建築CGを生業として他者とデータのやり取りが発生している、またはCGの世界で新しい事にチャレンジしようと思っているような方は2バイト文字の使用は控えましょう。締め切り前のドタバタしている時にデータのトラブルが発生したりしたら、あなたは冷静に対処出来る自信がありますか? そういったリスクを避けるためにも転ばぬ先の杖として実践してみてはどうでしょうか。
原因その2
先ほどの話はデータが読み込まれていないというデータそのものが存在しない(インポート出来ない)問題でしたが、もう一つの方はデータは存在しているけど見えないというものです。見えないというのはどういう事か? 読者の皆さんはサーフェスには表裏があるのをご存知ですか? 僕らの時代では当たり前の話で、レンダリング時間の軽減にも繋がっている話なのですが、CGをかじっていても最近は知らない人がいるみたいです。件の学生のデータを反対方向から見てみると実は存在していました。図1 サーフェスの表裏
図1の様に、a→b→c→d→aの順番でサーフェスを作成すると法線Aの向きがこの面の表となります。逆の順序で書けばBが表になります。
プログラムでは裏面は表示しなかったり、レンダリング計算上除外したりします。モデリングの際に裏面が表示されないと作業がやりにくくなってしまうので、モデリングでは両面が表示されるのが一般的です。参考図2〜4のようにMaxでもモデリング時、レンダリング時、マテリアルと裏面の表示をどうするかのスイッチがあります。図のマテリアルはmentalrayですがVrayマテリアルにも存在します。
何故こんなものがあるのか? 簡単に言えば計算負荷の軽減のためです(それ以外にも理由はあるかもしれませんが…)。単純な話をしましょう。サイコロのような直方体をレンダリングする際にカメラで見た時に見えている面は幾つありますか? 見える面は最小1面、最大で3面です。と言うことは残りの見えて無い面は計算する必要がありません。表示上の計算負荷は少なくとも半分になります。実際に陰影やGI計算などとそこまで単純な話にはなりませんが、それでも計算負荷の軽減にはなります。最近はハード・ソフトのスペックが一頃に比べ格段にUPしているので、昔ほど気にしないで済む問題という事もあって知らずに済んでいる人がいるんだと思いますが、高速描画が信条のハードウェアレンダラーでは基本的に裏面表示はしません(少なくとも私の知る限り)。使用するソフトやハードによっても状況は変わると思いますが、先ほどの2バイト文字の話と同じく、面の表裏に関する知識は持っているべきだし、シングルサーフェースを作る・扱う際は注意しないと転んでしまう結果を招きます。