基礎知識
海洋エフェクトは、海洋シェーダが割り当てられた プレーンによって定義します。海洋エフェクトは、
最初の 3 つのレッスンで作成したダイナミック流体 エフェクトや非ダイナミック流体エフェクトのよう に流体コンテナでは作成しません。
シェーダは、シェーダを割り当てるプレーンのカ ラーやその他のサーフェスの特性を定義するアトリ ビュートの集まりです。海洋シェーダの場合、これ らのアトリビュートで巨大な水のかたまりの表面に リアルな波を定義します。
このレッスンでは、海洋を作成してその中に立方体 を入れ、立方体が海洋に浮かぶ様子を確認します。
次の方法について学習します。
• 海洋プレーンと海洋シェーダを作成する方法
• プレビュー プレーンを作成して、レンダーせずに変形具合などのシェーダのエフェクトを 確認する方法
• 海洋シェーダ アトリビュートを変更して波を大きくする方法
• シーンにオブジェクト(ボート)を作成する方法
• 海洋の上のボートの浮力を制御するエクスプレッションのアトリビュートを変更する方法 レッスンを開始する前に、「レッスンの準備」(56ページ)の手順を実行します。
海洋のプレーンとシェーダを作成する
流体エフェクトでは、最良の結果が得られるように最適化されたプレーンを作成する単一のコ マンドと、そのプレーンに適切にコネクトされた海洋シェーダを提供することにより、海洋の 作成プロセスを簡単にしています。
レッスン 4 > 海洋にプレビュープレーンを追加する
海洋シェーダを持つ海洋のプレーンを作成するには
1 流体エフェクト > 海洋 > 海洋の作成(Fluid Effects > Ocean > Create Ocean)を選択しま す。海洋のプレーンが作成され、海洋シェーダが割り当てられます。
2 ドリーアウトしてプレーンを表示します。
プレーンは、中心部にパッチが集中している NURBS プレーンです。これは、中心部でディテー ルが細かく、海洋が水平線に向かって広がるに従ってディテールが粗くなるという状態です。
インタラクティブ シェーディングでは再生スピードが落ちるので、サーフェスのシェーディン グはオフにします。
海洋にプレビュー プレーンを追加する
海洋のプレーンはシェーディングがオフになっているので、ハードウェア レンダーで変形具合 とシェーディングを確認するにはプレビュー プレーンが必要です。設定を変更すると海洋のプ レーン サーフェスが変化するので、さまざまな波の高さを確認することができます。
海洋にプレビュー プレーンを追加するには
1 プレーンの中心にもう一度ドリーインします。
2 流体エフェクト > 海洋 > プレビュー プレーンの追加(Fluid Effects > Ocean > Add Preview Plane)を選択します。
海洋のシェーディングパッチ上に海洋の変形具合をインタラクティブに表示する、プレ ビュープレーンが作成されます。プレーンをスケールしたり変換して、海洋のさまざまな 部分をプレビューすることができます。このプレーンはレンダーでは表示されません。
3 | 流体エフェクト
レッスン 4 > 海洋にプレビュープレーンを追加する
3 プレビュープレーンを選択した状態でスケールツール(Scale Tool)を選択し(ホットキー
: r)、中央のスケール ボックスを右にドラッグしてパッチを大きくします。約 25 倍の大き
さにします(ヘルプラインでスケーリング数を確認してください)。
4 Maya ウィンドウの下部にある再生コントロールを使用して、シミュレーションを再生し
ます。
プレビュー プレーンにわずかに波紋が発生し、小さい波の変形具合が表示されます。
5 レッスンのあとの部分でレンダーするのに備えて、シーンにライトを設定しておきます。
• 作成 > ライト > ディレクショナル ライト(Create > Lights > Directional Light)を選 択します。グリッドの中央に directionalLight1 という名前のディレクショナル ライト が作成されます。
• アトリビュート エディタを開き、directionalLightShape1 タブのディレクショナル ラ イト アトリビュート(Directional Light Attributes)セクションで強度(Intensity)を 2 に変更して、ライトを明るくします。
• directionalLight1 タブをクリックし、ライトを次のように回転して、光線を海洋の方
向に向けます。
レッスン 4 > 海洋アトリビュートを変更する
海洋アトリビュートを変更する
次の手順で、海洋シェーダの設定を変更して波を大きくしましょう。
海洋シェーダのアトリビュートを変更するには
1 海洋シェーダアトリビュートを変更する前に、カレントフレームをレンダーして、海洋が どのように見えるかを確認します。ステータスライン上の、カレントフレームのレンダー
(Render Current Frame)アイコン をクリックします。
2 プレビュー プレーンまたは海洋のプレーンを選択し(どちらでも構いません)、アトリ ビュート エディタで oceanShader1 タブをクリックします。
3 海洋アトリビュート(Ocean Attributes)セクションを開き、次の値を変更します。
• 周波数の値(Num Frequencies): 12
• 波長の最大(Wave Length Max): 40
周波数の値は、最小の波長と最大の波長の間の振動数を制御します。この値を大きくする と、水の表面により多くの波があるような外観になります。
波長の最大は、最大の波長をメートル単位で制御します。波長を長くすると、波は大きく なります。
3 | 流体エフェクト
レッスン 4 > 海洋アトリビュートを変更する
4 シミュレーションを再生して、海洋の波の変形具合を変更した結果を確認します。
5 再生を停止し、再生範囲の始めに移動します。
6 カレントフレームをレンダーします。
7 アトリビュートエディタの波のピーキング(Wave Peaking)グラフを調整して、波の表面 に波の山を作成します。
波のピーキングは、波の振動数の範囲における波の山の部分の量を制御します。波の上下 のモーションではなく、左右の振動をシミュレートします。波のピーキングは、荒い波(波 の乱気流(Wave Turbulence)が 0 ではない場所)のみに適用されます。
グラフ上でクリックして、位置マーカを作成します(下図を参照)。
レッスン 4 > 海洋アトリビュートを変更する
波の周波数が低いところのほうが、波の山は高くなります。
8 カレントフレームをレンダーします。
波の表面がわずかに盛り上がりました。
海洋の上に白いハイライトがあります。これは、水に当たったライトによって発生するス ぺキュラハイライトです。
9 ハイライトをあまり目立たない程度に暗くし、大きさを大きくします。スペキュラシェー ディング(Specular Shading)セクションを開き、次の設定を変更します。
クリックして...
...位置マーカを作成
3 | 流体エフェクト
レッスン 4 > オブジェクトを浮かべる
鏡面反射性は、スぺキュラ ハイライトの輝度を制御します。この値を大きくすると、より 明るいハイライトが作成されます。
偏心は、スぺキュラハイライトのサイズを制御します。この値を大きくすると、より大き いハイライトが作成されます。
10 カレントフレームをレンダーします。
オブジェクトを浮かべる
ジオメトリ(たとえばボート)を海洋に浮かべ、波のモーションによって適当に移動させるこ とができます。以下の手順では、簡単なポリゴン立方体を使用する方法を示します。
海洋に立方体を浮かべるには
1 ポリゴン立方体を作成します(作成 > ポリゴンプリミディブ > 立方体(Create > Polygon Primitives > Cube)を選択します)。
2 アトリビュート エディタで pCube1 タブをクリックし、立方体を次のようにスケールし ます。
• スケール(Scale): 10 10 10
レッスン 4 > オブジェクトを浮かべる
3 立方体と海洋プレーン(プレビュー プレーンではなく)を一度に選択し、流体エフェクト
> 海洋 > ボートの作成(Fluid Effects > Ocean > Make Boats)を選択します。
立方体の中心にボートのロケータが作成され、空間内の立方体の位置がマークされます。
ロケータは、浮力のエフェクトをシミュレートする定義済みのエクスプレッションにコネ クトされます。このエクスプレッションは、海洋の波の高さ(変形具合)にコネクトされ ます。
エクスプレッションについてさらに学習するには、『Maya スタートアップガイド』の「エ クスプレッション」のレッスンを参照してください。
4 Maya ウィンドウの下部にある再生コントロールを使用して、シミュレーションを再生し
ます。
立方体が海洋の中で上下に揺れたり、前後左右に揺れたりします。
5 アトリビュートエディタで locatorShape タブをクリックし、追加のアトリビュート(Extra
Attributes)セクションの次のオプションを変更します。これらはエクスプレッションへの
3 | 流体エフェクト レッスン 4 > レッスンを終えて
• ピッチ(Pitch): 0.2
浮力値を大きくすると、箱の浮力が大きくなって海洋に沈みにくくなります。ロール値と ピッチ値を小さくすると、波のモーションによる前後左右の揺れが小さくなります。
レッスンを終えて
このレッスンでは、海洋のエフェクトが、ダイナミックボリューム流体および非ダイナミック ボリューム流体エフェクトとは異なることを学習しました。海洋のエフェクトは、コンテナと 流体プロパティではなく、プレーンとシェーダを使用して作成します。海洋のエフェクトに関 しては、以下について学習しました。
• 海洋のプレーンとシェーダを作成する方法
• プレビュープレーンを作成して、レンダーせずにシェーダの変形具合を確認する方法
• 海洋シェーダのアトリビュートを変更して海洋の外観をカスタマイズする方法
• ジオメトリを海洋の中で揺らしたり移動させたりする方法
海洋シェーダのアトリビュートについてさらに学習するには、Maya に組み込まれている海洋 シェーダのサンプルを参照してください(流体エフェクト > 海洋/池サンプルの取得(Fluid Effects > Get Ocean/Pond Example))。これらのサンプルの一部では、海洋上の大気が 3 次元 の非ダイナミック ボリューム流体を使用して作成されています。
モーター ボート
流体エフェクト > 海洋 > モーターボートの作成(Fluid Effects > Ocean > Make Motor
Boats)を使用すると、ゲーム風のボートシミュレーションを作成できます。ボートのかじと
スロットル用のホットキーを設定すれば、海洋でボートを「操縦」することができます。ボー トは、前後左右に揺れたり、波の上を飛び越えたりします。
ボートの航跡
流体エフェクト > 海洋 > 波の作成(Fluid Effects > Ocean > Create Wakes)コマンドを使用 すると、ボートの航跡を作成することができます。航跡の流体は通常の流体のようなナビエス トークスソルバを使用せず、スプリングメッシュ(Spring Mesh)ソルバを使用します。流体 のモーションを駆動するのには、流体エミッタが使用されます。
池
もっと小さな水のかたまりをイメージしている場合は、流体エフェクト > 池 > 池の作成
(Fluid Effects > Pond > Create Pond)を使用すると池を作成できます。池はスプリングメッ シュソルバと高さ(Height)フィールドを使用する 2D 流体です。池に対して波の作成
(Create Wake)オプションを使用することで、泡、波紋、および波を生成できます。