Blenderで海面(波のある水面)を作る方法はいくつかありますが、基本的なやり方は大きく分けて
- **Ocean Modifier(オーシャンモディファイア)**を使う方法(高速・リアル)
- ジオメトリノードやディスプレイスメントを使う方法(カスタム性高め)
- **流体シミュレーション(Fluid Simulation)**を使う方法(物理ベース)
ここでは一番簡単でリアルな Ocean Modifier を使った手順を説明します。
🌊 Blenderで海面を作る手順(Ocean Modifier編)
1. メッシュを用意
Shift + A→ Mesh > Plane(平面)を追加- スケールを大きくして (
Sキー)、例えば 50×50 くらいにする

2. Ocean Modifier を追加
- 平面を選択
- 右側の モディファイアタブ(レンチアイコン) へ
- Add Modifier → Ocean を選択

3. 波の設定
- Resolution(解像度)を上げると細かい波になる(例: 12〜16)
- Size:波の大きさ(海のスケール感調整)
- Choppiness:波のとがり具合
- Time:波のアニメーション進行
- Scale:全体的な波の高さ
4. マテリアル設定(リアルな水色)
- Shadingタブへ移動
- 新規マテリアルを作成
- Principled BSDF の設定:
- Base Color:濃い青〜青緑
- Transmission:1.0(完全透明)
- Roughness:0.0〜0.1(反射を強く)
- IOR:1.333(水の屈折率)
- Environment Texture(HDRI)を使って反射をリアルにする
WorldタブでHDRIを読み込み(海辺や空のHDRIが効果的)
5. アニメーション
- Ocean Modifier の Time にキーフレーム(
Iキー)を打って進めると波が動く - 例:フレーム0で
Time=0、フレーム250でTime=10
💡 ポイント
- 遠景用ならOcean ModifierだけでOK
- 近景や水飛沫が必要なら パーティクル+スプラッシュのエフェクト を追加
- リアルさを求めるなら EeveeよりCyclesレンダーが水の反射・透過で有利
ここからさらに波の泡などを表現したい場合は、**Oceanモディファイア+物理っぽい水シェーダ+白波(Foam)**までを、数値例つきで解説します。
↓↓↓
0) 事前セットアップ(仕上がりが安定します)
- 単位:
Scene > Unitsを Metric / Unit Scale = 1.0 / Length = Meters - 平面サイズ:海は広いので、100–500 m くらいのスケールで考えると各値が調整しやすい
- カラーマネジメント:
Render > Color Management→ View Transform: Filmic / Look: Medium High Contrast(反射が締まる)
1) 海面メッシュを用意
Shift + A > Mesh > PlaneSでスケールし、まずは 200 m 四方 を目安に(数値入力ならS→200)- 名前を
Ocean_Planeに
2) Ocean モディファイアの正しい使い方
Ocean_Planeを選択 → モディファイア → Add Modifier > Ocean- 主なパラメータ
- Geometry:
- Generate … 平面から専用の海面ジオメトリを“生成”。Foamの頂点カラー出力を使うならこちらが楽
- Displace … 既存メッシュを変位。自分のトポロジーを使いたいときに
- Resolution:波の細かさ(グリッドの解像度)。12–16 で十分。アップショットや寄りは 18–24
- Spatial Size (Size):波モデルの実寸範囲(m)。200–1000 くらい。海の“スケール感”に直結
- Wave Scale (Scale):波高のスケール。0.7–3.0 目安
- Choppiness:波の“とがり”。0.8–2.0(上げるとシャープで海らしい)
- Wind Velocity:風の強さ。10–40(上げるほど荒れる)
- Alignment / Direction:風向き・整列(風波を方向づけたい時)
- Time:時間進行。アニメの鍵
- Repeat X/Y:平面をタイル状に繰り返し、広く見せる(パースで端が見えにくい値に)
- Foam:白波強度を計算して頂点カラー(属性)として出力
- Foam Data Layer Name に例:
foam_maskと入力 - 後でシェーダでこの属性を読む
- Foam Data Layer Name に例:
- Geometry:
推奨の出発点(昼の少し風のある海)
- Geometry: Generate / Resolution: 14 / Spatial Size: 500
- Wave Scale: 1.4 / Choppiness: 1.2 / Wind Velocity: 20
- Repeat X/Y: 2 / 2
- Foam: 有効、Data Layer Name: foam_mask
3) アニメーション設定(Time の打ち方)
- タイムライン 0f:
Time = 0.0で I キー(Keyframe) - 250f:
Time = 10.0で I- 再生で自然に波が進行
- 等速でよければ、Graph Editor で
Timeの補間を Linear に - 速度感:Time の差を増やすだけでOK(例:0→20 にすると速くなる)
ループさせたい場合
- 完全シームレスにしたいなら、Ocean Bake(キャッシュ)を書き出して範囲をループ再生するのが堅実。
- あるいは 0→T→0 をクロスフェード合成(VSE/外部編集)で疑似ループに。
4) “ちゃんと水に見える”シェーダ(Cycles/Eevee 両対応)
基本ノード(マテリアル)
- Principled BSDF 1個
- Base Color:やや深い青緑(後述の吸収で色づくので薄めでOK)
- Transmission = 1.0
- Roughness = 0.02–0.08(寄りは 0.02–0.05、引きは 0.05–0.08)
- IOR = 1.333(水の屈折)
- Specular = 0.5(デフォルトでOK)
- Volume Absorption ノード(海の“厚みで暗くなる”吸収)
- Color:やや青緑、Density = 0.02–0.08(深いほど上げる)
- Material Output
- Surface に Principled BSDF
- Volume に Volume Absorption を接続
これで「透明・反射・吸収」の3点が揃い、一気に水っぽくなります。
反射環境(超重要)
World→ Environment Texture に HDRI(空や晴天)を読み込み- Mapping で回転し、太陽や明るい空が反射で入る角度を探す
- 必要なら Sun Light を追加(Strength 2–5、Angle 0.3–1.0)
Eevee の追加設定
Render Properties > Screen Space ReflectionsをON- その中の Refraction もON
- マテリアル側:
Settings > Screen Space RefractionをON、Refraction Depth を 1–3 m くらい Render Properties > Bloomはお好みで(ハイライトのにじみ)
Cycles の追加メモ
Light Paths:Max Bounces は 6–10 程度- Shadow Caustics(対応バージョンのみ):ライト/オブジェクトで有効にすると水越しの影がきれいに
5) 白波(Foam)を出す:Ocean の出力をシェーダで使う
- Ocean モディファイアの Foam をON、Data Layer Name =
foam_mask - シェーダで Attribute / Color Attribute / Vertex Color ノードを追加
- Name に
foam_maskと入力
- Name に
- ColorRamp を挟み、黒~白を調整(白=泡が強い)
- MixRGB(または Mix)で
- Color A:海のベース色(BSDF前段)
- Color B:ほぼ白(#f8f8f8)
- Fac:
ColorRamp(foam_mask)
→ 泡のところだけ白くなる
- 泡を少しだけ粗く・マットにしたい場合
Roughnessをfoam_maskで少し上げる(Map Range→0〜0.2 など)
泡の“線が細い”ときは、Ocean側の Choppiness を上げたり、Foam Threshold(バージョンによる)や ColorRamp の白側を手前に寄せて強調。
6) 近景の立体感:法線の追加(細かいさざ波)
- Normal Map テクスチャ(細かい水面法線)を 1枚足すと寄りで一気にリアル
- Normal Map ノード → Principled BSDF の Normal へ
- Strength 0.1–0.4
- UV は Object(またはTriplanar/Box)投影でタイル、Scale 10–30 くらい
- アニメなら Mapping の Location/Rotation を少し動かし、海面の微細な揺らぎを演出
7) 環境・ライティング・大気表現
- ミスト(遠景の空気感):
World > Volumeに Volume Scatter(Anisotropy 0.6–0.8、Density 0.005–0.02) - または
View Layer > Passes > MistをONにしてコンポジットで減衰 - 地平線の切れが気になるときは、カメラの高さを下げる+焦点距離 35–85mm あたりで圧縮
8) パフォーマンスとレンダリングTips
- Viewport もたつく
- Ocean Resolution を落とす(レンダー時だけ上げる)
- Displace モードで、自前の軽いメッシュ+Subdivision の方が軽い場合あり
- ジャギー/チラつき
- カメラの Clipping Start を 0.1–0.3 m 程度に、End は必要十分に
- Eevee なら TAA(Sample を上げる)、Cycles なら Sample 64–256+Denoise
- 真っ黒に沈む
- Volume Absorption の Density 下げる
- Refraction Depth(Eevee)を上げる
9) 数値プリセット(コピペ用の目安)
穏やかな外洋(引き画)
- Resolution: 14 / Spatial Size: 800
- Wave Scale: 0.9 / Choppiness: 0.9 / Wind: 12
- Roughness: 0.05 / IOR: 1.333 / Absorption Density: 0.03
風強めの海(中~寄り)
- Resolution: 16 / Spatial Size: 500
- Wave Scale: 1.6 / Choppiness: 1.4 / Wind: 24
- Foam:有効(
foam_mask)+ColorRampで強め - Roughness: 0.035(泡部は 0.1 まで上げる)/ Absorption: 0.05
荒天・嵐
- Resolution: 18–20 / Spatial Size: 600–1000
- Wave Scale: 2.4–3.0 / Choppiness: 1.8–2.2 / Wind: 32–40
- Sun を弱め、空HDRIを暗く、Volume Scatter 強め(霧感)
10) さらに踏み込む(必要なら)
- Ocean Bake:
Cacheにフレーム範囲を入れて Bake。重い大規模海面の再生が軽くなる - ジオメトリノードで白波パーティクル
Attribute(foam_mask) > ColorRamp > 比較で閾値を作り、Points on Facesで発生 → スプライトやメッシュ飛沫をインスタンス
- 岸(浅瀬):Depthベースの色変化
- カメラ高さ一定なら Geometry > Position の Z で色を上下にグラデーション
- 物体と交差する波打ち際は Dynamic Paint や Distance フィールドでマスク作成
11) よくある質問(Q&A)
Q. 海が暗い/濁る
A. Absorption の Density を下げ、HDRI 露出(World の Strength)や Sun を上げる。Eevee は Screen Space Refraction をON。
Q. 近景で波が“のっぺり”
A. Normal Map を必ず追加。さらに Choppiness を上げる。Specular Tint を少し(0.2)足すのも有効。
Q. 端が見えてしまう
A. Camera の向きで地平線を画面上縁に寄せる/Repeat X/Y を増やす/被写界深度+霧で隠す。


コメント