「テラジェン2tpティップス−2」

 

ティップス1へ

ティップス3へ

「星空をつくる方法」
これもフォーラムの投稿記事のひとつですが、 背景に星空を置く方法です。左記のページに貼り付けてある星空の画像を拾ってきます。これはフォトショップのプラグインでつくられたものだそうで、ここで手に入るそうです。 右下のノードネットワークでオブジェクトのグループを開き、バックグラウンド(Background)のノードを開きます。サーフェスシェーダーのタブにはバックグラウンドシェーダーが指定されていますが、これの代わりにデフォルトシェーダーを選びます。デフォルトシェーダーを開き、反射色(Diffuse colour)と光度(Luminosity)のところに星空の画像を指定します。明るくしたいときは光度を増やすといいようです。
   たぶん擬似的なやり方なので、例えば地平線近くまで星が見えたりと、いろいろと問題はありますが、それなりに使えそうです。上記のページには作例が二つほどあり、二番目のものは、丸い形が見えるようにした(visible disk にチェック)、また直径(Radius)を大きくした太陽の手前に惑星のオブジェクトを置いているようです。
   下は私の作例ですが、まだまだ研究の余地はありそうです。




「フェークストーンを好きな色で好きな場所に」
これが簡単そうに見えて意外に簡単ではない、ということがだんだんとわかってきました。フェークストーンはTG2tpで実装された、きわめて実用的な機能ですので、あらゆる場面で使いたくなります。しかし、使っていくうちに、これはバグなのだろうか、仕様なのだろうかと疑問を感じるような現象が起こってきます。その前に、いちばん簡単なフェークストーンの設定はこのようなものでしょう。

 

まったくもって単純そのものですが、もう少し手を加えればはるかにリアリティが増します。フェークストーンが使えるユーティリティであることは一目瞭然です。しかし、実際には、フェークストーンはこんな使い方はしません。一般的には、標高と傾斜によってどの場所に置くかを制限するのが普通でしょう。例えば、峡谷の川床だけに小石を置くといった使い方です。そこで、普通考えるのは、次のような使い方でしょう。

 

上の絵を見てもまだピンと来ないかもしれません。設定では、石を平地に配置(ディストリビュート)するために、ディストリビューションシェーダーを指定し、ディストリビューションシェーダー本体のほうで、傾斜30度以下に石が配置されるように設定しています。上の絵では、石の色は地面の色よりわずかに濃いぐらいです。これをまったく別の色にしてみましょう。



上の絵のように、青い色の石に地面の茶色がかぶってしまっています。これと同じ現象は、写真等のイメージマップをフェークストーンに貼り付けても同じことです。原因は、フェークストーンの配置にディストリビューションシェーダーを使ったことにあります。ディストリビューションシェーダーは、例えば多数のオブジェクトを配置するポピュレーションのときになくてはならないものですが、少なくとも上記のような使い方をしたときには、このような現象が起きます。回避策がないのならバグというしかないですが、これを回避する方法はあるのです。それは、フェークストーンの配置制限にはディストリビューションシェーダーを使うのはやめることです。しかし、それでは、石に色をつけることはできても、好きな場所に置くことができません。じつは、標高と傾斜による配置の制限のタブが、ほかのシェーダーにもあったことを憶えているでしょうか。それはサーフェスシェーダーまたはサーフェスレイヤーです。サーフェスシェーダーは地面に色をつけるだけでなく、色とは無関係に、物体の表面のレイヤーになることもできます。

  

石にきれいに色が乗り、地面の色と干渉していません。ポイントは、フェークストーンシェーダーをサーフェスシェーダーの子のレイヤーに入れるということです。あとはサーフェスシェーダーの「色を使う Apply colour」のチェックを外すこと、そして下の"Final normal"を"Terrain nomal"に変更するということです。
私がまだわからない問題として、異なる色のフェークストーンを配置した場合、違った色の石が重なり合ってしまうということがあります。このへんの解決策はまだよくわかりませんが、 例えば、大中小の大きさの違う石を置く場合には、小さい石から順に階層にしていくのがいいようです。ノードリストだと上から順に「小→中→大」の並び方です。
   そのフェークストーンの作例を貼っておきます。右の山肌にはストラタ(地層)シェーダーを使っていますが、まだ大したことはできないようです。今後の改良に期待しましょう。石板のイメージマップの貼り方も難しかったです。イメージを貼り、しかもディスプレースメントをかけるのは(少なくとも現時点では)無理かもしれません。 というのも、岩等のオブジェクトにディスプレースメントをかけると、フェースがバラバラになってしまうという現象があるからです。なにか方法があるのだろうか? 
    フェークストーンにイメージマップを貼り、しかもディスプレースメントをかけることは可能です。"Canyon Impression"を参考にしてみてください。先にサーフェスシェーダーをつくり、そのディスプレースメントのタブでパワーフラクタルシェーダーを指定して、設定し、カラーのタブではもうひとつサーフェスシェーダーを(子の階層に)指定し、その子の階層のサーフェスシェーダーのカラータブでイメージマップシェーダーを指定すればいいです。



 

「深い雪」は使える
これもフォーラムの"Deep snow example"というスレッドを参考にしたというか、それの分析です。 このスレッドに画像とともにTGDファイルもあるので、ノードの接続や設定等、参考にするといいでしょう。同じTGDを使うのも気が引けるので、自分で同じように設定しなおしたもので、レンダリングしたのが以下の画像です。じつはもっとリアルに細部が表現される"Embossed snow"(盛り上がった雪)というスレッドもあるのですが、これは次回に研究することにします。この「深い雪」のテクニックは、雪に限らず、砂丘等、他の表現にも使えるかもしれません。

 

   さて、地形ですが、これは普通のパワーフラクタルを使っています。上記の設定のように、シェーダーに関しては、ベースカラーの下にサーフェスレイヤー01がつくられています。ここの設定がいちばん重要ですので、以下に画像とともに説明します。 色はデフォルトの0・5のグレーのままですが、これが雪の色になります。雪は真っ白でなければならないと思っていたのですが、このほうがかえって陰影がよく出るのかもしれません。目からうろこです。



   ポイントのひとつは、 ディスプレースメントの方向が"Along normal"(法線方向)ではなく"Along vertical"(垂直方向)になっていることです。これは深く積もった雪を表すのだから当然といえますね。強さは10になっています。もうひとつ重要なのは、ディスプレースメントのファンクションに二つ目のサーフェスレイヤーである02が指定されていることです。詳しいことはわかりませんが、大雑把に言うと、ディスプレースメントは色情報を元にして、明るい部分は持ち上げる、暗い部分はへこませるという機能です。その色情報をサーフェスレイヤー02が提供している、ということのようです。02の色はグレーですので、サーフェスレイヤー01の雪のレイヤーを全体として少し持ち上げる効果があるようです。(たぶん上の画像の盛り上がりはすべてこの効果によるものでしょう)それが深い雪に見えるということでしょうか。上の画像はあまりいいサンプルではないのかもしれませんが、中景から遠景では、深い雪に見えるのではないでしょうか。細部までリアルにしたいなら、前出の「エンボス」をおぼえる必要があるでしょう。
   それから、サーフェスレイヤー02に付属するフラクタルブレークアップ02は、サーフェスレイヤー02のフラクタルブレークアップを指定するチェックボックスを外していますので、実質的に機能していません。フラクタルブレークアップは色が単色にならないように、色むらを発生させる機能であり、この場合ならグレーの単色ではなく、それに陰影をつける機能なわけです。しかし、雪の表現の場合には、ふわっとした深い雪がでこぼこしていては困るわけですから、このチェックを外しているということなのでしょう。また、サーフェスレイヤー01の設定でも、やはりフラクタルブレークアップ01のチェックが外されています。これも雪を滑らかに見せるという目的で外しているのだと思われます。それから、画像は載せませんが、次のスムージングのタブでチェックが入っています。深い雪なので当然かもしれませんが。



   下のタブグループに行きますが、ここでは見えませんが、標高の制限が200メートル、ファジーが100になっています。山の上だけに雪が積もるようにしているわけです。そして上の画像の傾斜の制限ですが、40度でファジーが5ですね。ファジーが少ないのは、深い雪と(雪が融けて露出した)岩肌のコントラストをはっきりさせるためでしょう。 左下の"Use Y"にチェックが入っていますが、これはおそらく、その右の窓で、デフォルトでは"Final normal"ですが、ここでは"Terrain normal"が指定されているためかもしれません。あえてY軸を垂直軸に指定しているわけでしょう。前にも述べましたが、この下のタブグループの最初のタブ、つまり"Coverage and breakup"で、フラクタル・ブレークアップのチェックが外され、フラクタルブレークアップ01を使わないようになっています。
   さて、 サーフェスレイヤー02ですが、これはただ色情報を提供するだけで、フラクタルブレークアップ02のチェックが外されている以外、すべてデフォルトのままです。
   以上で分析は終わりです。このなかには、深い雪の表現だけでなく、いろいろと使えそうなテクニックが含まれているようです。


"Twist and shear shader"(ひねったり切ったりシェーダー)は 、特定の設定のディスプレースメントシェーダーなのだそうです。横方向のディスプレースメントをもっとコントロールしたいときは、"Redirect Shader"を使い、ディスプレースメント機能を持つシェーダー、例えばパワーフラクタルなどを、ディスプレースメントを効かせたい軸のインプットに接続するのだそうです。(もちろんこれは右下のノードネットワークで行います)XとZだけに接続すれば、横方向だけのディスプレースメントが得られる。強さ等はディスプレースメントを提供しているシェーダー、つまりパワーフラクタルの方で調整する。……なるほど、TG2の基本的な仕組みがよくわかりますね。
   余談ですが、多くのシェーダーは、他の複数の基本的な機能のシェーダーを接続して、特定の機能を持たせたものにすぎず、それがひとつのシェーダーとして見えているだけのようです(つまり内部ネットワークを構成している)。フェークストーンシェーダーはそうではないようですが。 そういえば、ノードネットワークで右クリックすると、よく使うシェーダー以外にも、単一の機能を持つ、数学的な名前のノードがいろいろとありますが、ああいったものを接続したりして、ひとつのシェーダーができるのでしょうか?


フラクタル地形の「線」
ここ 2週間ぐらい、ストラタ・シェーダー(Strata and outcrops shader)を使って、砂漠の砂のなかに地層(strata)が現れているシーンをつくろうと苦戦していたのですが、どうしてもうまくいきませんでした。地層や岩盤はなんとかできても、最後に大きなサイズでレンダリングしたとき、とてもじゃないが見るにたえない絵になってしまう。下の最初の絵のように、地表に線が出てしまうのです。それで、またまたフォーラムを調べてみましたが、あまり多くの情報はありませんでした。しかし、フラクタルの線(fractal lines)という表現があったので、それまで使っていたフラクタル地形(power fractal)をやめて、ハイトフィールドを生成して使ってみると、この「線」の問題はほぼ解決しました。そのわずかな情報によると、それでも線が出てしまう場合には、ハイトフィールド・シェーダーのフラクタル・ディテール・タブの量(amount)とバリエーションを調整してみるといい、といったようなことが書いてありました。
   プロシージャルなフラクタル地形(power fractal)は、無限の大きさの地形がつくれるので便利ですが、将来的に改良されるのかどうかはともかく、現時点では、まだ問題が残っているようです。(フラクタルの線に関しては、例えば樹木のオブジェクトを並べるとか、雪を積もらせるとか、使いようによっては目立たないと思われます)地形の形そのものも、2週間もいじっていると、 ある独特の癖というか、フラクタル特有の形を持っていることがわかってきます。その意味では、ハイトフィールドも捨てたものではありません。下の右の絵はシェーダー等はほとんどそのままの設定で、地形だけをハイトフィールドにしてレンダリングしたものです。どこにも不自然な直線は出ていません。設定を最適化すればもっとよくなりそうです。

 

 

自作「森の散歩道」の解説
  またまた厚かましくも自分の作品(?)の解説をし、これまで触れなかったテクニックについて説明します。 今回はTGDファイルを公開しますが、あくまでも説明しやすくするためで、著作権を放棄したわけではないので、参考のためとお考えください。TGDファイル
  以下の絵は 800x600 でレンダリングしたものを 640x480 に縮小しています。





  さて、上の二枚目の小さな画像がシェーダーノードのツリービューです。折り畳んだ形になっていますが、説明が進むにつれて、開いた内容も示していきます。
  先に進む前に、地形(Terrain)ノードで簡単な設定の変更をしています。地形はパワーフラクタルを使っていますが、そのままだと山が険しすぎるので、この作品に合うように、もっとなだらかにしています。変更したのは Fractal Terrain 01 の Displacement タブのディスプレースメントの強さ(Displacement Amplitude)を200にしています。デフォルトでは2000です。ここ以外に、同じタブのなかの Displacement spike limit の数値を低くしても山はなだらかになりますが、このスパイクとは突起のことらしく、確かになだらかにはなりますが、凸凹(突起)がなくなってのっぺりしすぎるので、ディスプレースメントのほうで調整しました。
  さて、ここで、ノードネットワークのシェーダーの配置図を以下に示しておきます。



これを見るとかなり複雑そうですが、基本は最初の小さな画像のように、 4つのグループに分けられます。
  では、最初の"Moss"のグループですが、これはきわめて簡単です。普通のサーフェースレイヤーをつくると、自動的にフラクタルブレークアップもついてきますが、それ以外に、色のタブのカラーファンクションのところでパワーフラクタルシェーダーを指定して、より微妙な色が出せるようにしているだけです。あとは分布範囲(Coverage)を60パーセントぐらいにしています。ここで話は少しそれますが、例えば遠くの山に草が生えている場面を描くとき、オブジェクトとしての草をたくさん配置したらよりリアルになると思いますが、意外とそうでもないのです。旧バージョンのテラジェンのように、ただの緑色の地表をかぶせたほうが、むしろリアルだったりします。ケースバイケースですが、「オブジェクトのほうがリアル」という頭は捨てて、オブジェクトをより効果的に使う方法を考えたほうがいいようです。
  次に中ぐらいの石(MiddleStone)のグループを見ていきます。最初の作品の絵では、道の両側に散らばっている大きめの石がそれです。ツリーを展開したものが以下です。



要点だけを説明します。MiddleStone と名付けたシェーダーは元々サーフェースレイヤーです。なぜサーフェースレイヤーの下の階層にフェークストーンシェーダーを入れるかですが、これは以前に説明したように、地面の色が石にかぶるのを防ぐためです。ですから、傾斜の制限のタブで"Terrain Normal"を選択しています。MiddleStone では色を適用していません。色は別のパワーフラクタルシェーダーで行っています。さて、MiddleStone の子の階層につくったフェークストーンシェーダーですが、設定画面は以下のようになっています。



このシェーダーの色は使わず、 上のように、サーフェースシェーダーのところで Surface layer 02 を指定しています。また、下の"Blend by shader"をチェックして、ここにマージシェーダーを指定しています。また、ブレンドシェーダーを反転する(Invert blendshader)もチェックしています。あとで説明しますが、ここでの指定は、フェークストーンの分布を決めるものです。
  さて、この Surface layer 02 ですが、じつはこれも下の階層を持っています。その理由ですが、"Moss"のところでも同じでしたが、サーフェースレイヤーの色の設定にパワーフラクタルシェーダーを使うと2色の指定ができます。普通の石の色ならこれで十分ですが、この石に苔を生やしたかったので、3色以上の色を使えるようにしたわけです。ノードネットワークの「中くらいの石」の部分だけを取り出してみます。



この黄色がフェークストーンに石の色をつける部分です。そして青が苔の色をつける部分、赤は後で説明しますが、石の配置を決める部分です。ですから石の色は Surface layer 02 の Colour function のインプットに接続された Stone colour が決定します。苔の色は Child layers のインプットに接続した Moss colour が決定しますが、苔の生える分量をコントロールしたいので、あいだに Surface layer 01 を入れています。
  問題は赤い範囲に含まれる三つのシェーダーの役割ですが、もっと簡単な例で説明してみましょう。これは一部のユーザーのあいだでは知られていると思いますが、複数のフェークストーンシェーダーを使った場合、大きな石の上に小さな石が乗ってしまうという現象が起きます。(フォーラムのこれに関連したスレッドに画像があります。)これを回避するには、大きな石がどの位置に配置されるかという情報を小さな石のシェーダーに教えてやり、その範囲を反転させればいいわけです。具体的にいいますと、この Middle stone のグループの次に説明する大きな石(Rock)のグループに含まれるフェークストーンシェーダーを丸々コピーし、それを上の図ですと、Fake stones shader 01 の Blending shader のインプットにつなげばいいのです。二つ上の画像の Surface layer 02 の設定画面の下のほうを見てください。すでに説明しましたが、Blend by shader にチェックが入り、Merge shader 01 が指定されていますが、ここで Rock グループのフェークストーンシェーダーの丸々コピーを指定すればいいわけです。フェークストーンシェーダーをよく見るとわかりますが、それはどれぐらいの大きさの石がどれぐらいの範囲に分布するかを設定しています。そして具体的にどの位置に配置されるかはシード値が決定しているのです。ですから、設定されたフェークストーンシェーダーは石の位置情報を持っています。その位置情報は、そのままですと、この場所に配置しろという命令ですので、それを「この場所に配置するな」という情報にするために、Invert blendshader(ブレンドシェーダーを反転させる)にチェックを入れるわけです。
  以上が基本的な考え方です。しかし、この例では、マージシェーダーを仲介して、イメージマップシェーダーも接続されています。それは、配置しろ、配置するな、というもうひとつの情報も付け加えたいためなのです。 (マージとは融合、合流という意味)さて、では、このイメージマップシェーダーが与える情報とはどのようなものなのか? それはこの作品の絵のなかに伸びている一本の道、森のなかの道です。この道の上にも中くらいの石を置きたくないので、そこに置くなという情報を与えているわけです。つまりここでは、大きな石の上に置くな、道の上に置くな、という二つの情報をマージシェーダーでまとめているということになります。イメージマップシェーダーを使った配置については、後の道(Path)のグループのところで説明します。ここで付け加えておくと、大きな石(Rock)グループのなかのフェークストーンシェーダーを丸々コピーしたいときには、それをハイライト(選択)してから、上のメニューバーの Edit のなかの Duplicate(複製)を押すか、"Ctrl + D"のキー操作をします。ちなみに、後から、元々の Rock に含まれるフェークストーンシェーダーの設定を変更した場合には、この複製のほうも同じように変更するか、または新たに複製して接続し直します。もうひとつ重要な設定は、この複製のフェークストーンシェーダーでは、そのカラータブの Colour variation のチェックを外しておきます。これを外さないと色にバリエーションがつき、完全な白黒二色だけの分布になりません。
  忘れないうちにマージシェーダーの設定について説明しておきます。この二つの(非)配置情報をマージシェーダーでまとめているわけですが、これは私が試行錯誤でうまくいったものなので、正式のやり方かどうかはわかりません。まず、丸々コピーのフェークストーンシェーダーは、マージシェーダーの Input node に接続しています。もう一方のイメージマップシェーダーは Shader A に接続しています。そしてマージシェーダーの設定は以下の通りです。





最初のタブでは Mix to A が「1」になっています。次のタブでは Merge displacement のチェックを外し、 Colour merge mode は"Add"を選択しています。
  次は大きな石(Rock)のグループの説明です。ツリービューとノードネットワークの両方を示します。

 

やはりここでも石の色と苔の色の両方を使えるようにしています。Power fractal shader v3 05 はディスプレースメントファンクションのインプットに入っていて、これは石の表面の凸凹をコントロールするためのものです。またフェークストーンシェーダーのブレンディングシェーダーのインプットにはイメージマップシェーダーがつながっていますが、これは先にも述べたように、この大きな石(Rock)を特定の場所にだけは配置したくないために、それをコントロールするためのものです。具体的には、道の上に大きな石を置きたくないのですが、これは標高や傾斜の制限によってはできませんよね。
  ここで少し先回りして、二つ目のカメラの設置について説明しておきます。上の図にも TopView というカメラが表示されていますが、これはレンダリング用のカメラ、ふだん使っている Render camera とは別の二台目のカメラなのです。これをつくるのは簡単で、ノードネットワークでカメラのグループを表示し、右クリックで Create other>Camera でつくることができます。レンダー用カメラと二台目のカメラの切り替えは、使いたいカメラのアウトプットから接続線を Full render や Quick render につなぐだけです。(つないだら、プレビュー画面下の View camera をダブルクリックする)
  ここではイメージマップを使ってマスクをし、特定の場所にオブジェクトを置いたり、置かなかったりするために、二台目のカメラを使うわけですが、それ以外に、というか、もっと基本的な使い方として、二台目のカメラがあるととても便利です。つまり、真上から見下ろす位置にカメラをつくっておくと、オブジェクトの配置などがしやすくなります。 さて、たんに見下ろすだけのための二台目のカメラですと、特別な設定はいらないのですが、 イメージマップに使うためには特別な設定をした方がいいようです。じつは、サンプルのTGDファイルでは、あまり正しくない設定になっています。しかし、後から変更すると、他の設定がグチャグチャになってしまうので、あえて変更していません。ですから、イメージマップのマスク用には、以下の説明の設定にしたほうがいいようです。以下が正しいであろうマスク用カメラの設定です。



まず、上の Rotation のX軸ですが、きちんと−90度にしたほうがいいでしょう。Y軸も180度に揃えています。0度にすると上下が逆さまになります。しかし、いちばん重要なのは、レンダリング用のカメラですと Perspective にチェックが入り、パースペクティブ(遠近法)のカメラを使っています。イメージマップによるマスク用には Orthographic(正射影法)のカメラを使ったほうがいいと思われます。遠近法だと、カメラのある点から、例えば60度の画角に二本の直線を延ばした範囲が見えることになりますが、 正射影法ですと、平行する直線を延ばすことになるようです。(このへんは詳しくないというか、よく調べていませんので推測です)その正射影法では、見える範囲を決めるのに、広さか高さのどちらかを設定することになります。"Use ortho width"では、おそらく、画面の長辺の長さを指定するのでしょう(メートル)。"Use ortho height"では、地表からの高さを指定するものと思われます。マスク用のカメラの設定を変えると、投影されるマスクの位置や大きさが変わってしまいますので、全体を見たいときには、普通の遠近法の第三のカメラをつくるといいでしょう。では、イメージマップによるマスクの手法の説明も含めて、最後の"Path"グループの説明をしましょう。
  じつは"Path"グループはとてもシンプルで、例によって実質はサーフェースシェーダーの"Path"の子の階層にフェークストーンシェーダーが入り、その色の設定にパワーフラクタルを使い、特定の場所にだけ配置するためにイメージマップシェーダーを使っています。フェークストーンシェーダーの設定は以下の通りです。



ここの Blend by shader ではインバートにチェックが入っていません。
   では、イメージマップを使ってマスキングをする方法を簡単に説明します。マスクまたはマスキングは2Dの画像ソフト、例えばフォトショップなどでもよく使われる手法のようですが、私は必要に迫られたことがないので使ったことはありませんでした。テラジェンの旧バージョンでも、外部のソフトでマスクを使うことができたようですが、動作が不安定とか、難しいとか、いろいろな理由でチャレンジしませんでした。しかし、このテラジェン2では、マスクを簡単に使うことができますし、また使わないと困る場面がしばしばあるようなので、チャレンジしてみました。正式にどこかのマニュアルを見たりしたわけではないので、これで正しいのかどうか、確かではありませんが、とりあえずこれで使えています。
  具体的な手順です。上の設定画面の下、 Blend by shader にチェックを入れ、その右端の「…」でイメージマップシェーダーを選択します。するとすぐに、どの画像をイメージマップに使うのか聞いてくるので、この場合ですと、以下の画像を指定しました。



これは実物の25パーセントに縮小したものです。いずれにせよ、タブレットでもあればいいのですが、マウスやトラックボールで絵を描くのは至難の業なので、選択ツールで適当に描いたものです。要するに、白い部分にはオブジェクトが配置され、黒い部分には配置されない、ただそれだけのことなのです。ですから、"Path"のなかのフェークストーンはこの白い部分にだけ現れます。では、そのイメージマップシェーダーの設定画面を見てみましょう。



真ん中のプロジェクションタイプには Through Camera が指定されています。デフォルトでこれが出るのですが、問題はその下です。プロジェクションカメラには"TopView"を指定しています。ここでカメラを指定しないで、レンダリングすると、ソフトが落ちるのでご注意ください。このカメラにレンダリング用のカメラを指定してもかまわないのですが、レンダーカメラはひんぱんに位置を変えたりしますので、そのたびに投影位置が変わってしまいます。
  さて、上の説明で、イメージマップによるマスキングのやり方がだいたいわかったと思います。ここで以前に戻って、"Middle stone"や"Rock"のイメージマップによるマスキングを、改めて確認しておきましょう。まず"Middle stone"ですが、マージシェーダーに接続した複製のフェークストーンシェーダーについては、すでに説明したのでここでは触れません。もう一方のイメージマップシェーダーですが、"Middle stone"で使っているイメージマップも、じつは上の白黒の画像なのです。それでは、中くらいの石が道の上に配置されてしまうのではないか、と思うかもしれませんが、すでに説明したように"Invert blendshader"をチェックしているので、配置の関係が逆転し、中くらいの石は白い部分以外の部分に配置されるのです。
  いま私はあえて「黒い部分に配置される」とは言いませんでした。「白い部分以外の部分に配置される」と言ったのです。これはどういうことかというと、以下の画像を見てください。



上のような画像を使ったほうが簡単なようにも思えます。これなら、白い部分に中くらいの石が配置されるのではないでしょうか。確かにそうなのですが、上の画像を使うと、中くらいの石はこの長方形の内部の、道を示す黒い部分を除いた部分にだけ配置され、この長方形の外側の部分には配置されないのです。 このようなケースがあるので、インバート(反転)は上手に使う必要があります。
  次に"Rock"ですが、これもやはり最初の白い道の画像をインバートして使っています。
  これで終わりではありません。オブジェクトにおいても、やはりその配置のために、イメージマップによるマスキングを使っていますので、それを簡単に説明しておきます。まず樹木ですが、これは"Middle stone"や"Rock"とまったく同じですので、特に説明する必要はないでしょう。しかし、草はどうでしょうか。草は、作品を見るとわかりますが、車のわだちを表現するために、道の両脇と真ん中に草を生やすようにしています。イメージマップには以下の画像を使いました。



これも一目瞭然でしょう。ほかのパタンーも考えられますし、インバートするやり方もありますが、草は近くだけ見えればいいのでこのようにしました。
  以上で自作品「森の散歩道」に使われている手法の説明を終わります。
  これで終わりたかったのですが、失敗について書いておきます。TGDファイルのマスキング用のカメラの設定が正しくないことはすでに書きました。ほかに、完成した作品を見ても、たぶんわからないと思いますが、 レンダリングの途中を見ていると、樹木の手前に雲がかかるのです。最初、これはバグなのかと思っていましたが、じつは設定ミスでした。それはスケールの設定を誤っていたのです。このままの設定だと、樹木が数千メートルの高さになり、だから手前に雲がかかってもおかしくないのです。CGなので、数メートルでも数千メートルでもどちらでもいいような気もしますが、例えば雲の高さなど、いちおう、デフォルトで現実の世界のスケールに合わせてあり、その他の要素もだいたいのところ、現実の世界のスケールに合わせてあるものが多いようですので、新しいシーンを制作するときは、最初からできるだけ現実の世界に合わせるようにしたほうが、あとで困らないと思われます。ただし、フェークストーンなど、数メートルのものと数百メートルのものでは、デフォルトの状態でも、ディスプレースメントのかかり方が違うようなので、その効果を生かすというやり方もあると思います。

ティップス3へ