Blenderにおける「薄膜」の美しさ
Blenderのマテリアル設定には、「Thin Film(薄膜)」というちょっと見慣れないパラメータがあります。この設定を使うと、シャボン玉や油膜のように、表面に虹色の光の干渉模様を加えることができます。あまり見ることのない現象かもしれませんが、自然の中で出会うと再現してみたくなる美しさと面白さがあります。
また、最近は特殊な加工をほどこしたプロダクト製品やパッケージも多くなってきていますので、新しい表現として使えるようになっておくと、オリジナルな表現や提案ができると思います。
でも、そもそも「薄膜」って何?どうしてあんな色が出るの?と疑問に思う方も多いですよね。
この記事では、まずその現象の元になっている「薄膜干渉」についてやさしく解説し、Blenderでそれを再現するための設定方法を紹介します。
この記事は、BlenderのThin Filmパラメータで干渉模様を作る方法を解説した初心者~中級者向けの記事です。
難易度
薄膜干渉とは?──虹色の理由
シャボン玉や水たまりに浮かぶ油の表面が、見る角度によって七色に輝くのを見たことがあると思います。これは薄膜干渉(interference in thin films)という光の物理現象によるものです。
この虹色は、その物体自体が虹色をしているわけではありません。光が薄い膜の中で反射を繰り返すことで、波の干渉が起こり、特定の波長(=色)の光が強め合ったり、打ち消し合ったりします。その結果、場所や角度によって異なる色が強く見え、あたかも虹色に輝いているように見えるのです。

光の「波」がぶつかり合う
シャボン玉の膜を拡大してみましょう。
太陽などの光源から来た光は、まず膜の表面で反射し、「反射光」として外に戻ります。一方、光の一部は膜の中に屈折して進入し、内側の境界(裏面)で反射した後、再び外に出てきます。
このとき、最初の反射光と、膜の中を通って出てきた光が重なり合い、波の「位相のズレ」によって干渉が起こります。
- 位相が一致すれば、波は強め合い(明るくなる)
- 位相がずれていれば、波は打ち消し合い(暗くなる)
周囲に向かってグラデーションのように色が変わるのは、光の入射角度が変わる(出てくる光の位相がズレる)ことが原因です。
さらに、シャボン玉の膜は場所によって厚さが微妙に異なるため、干渉の起こり方が場所ごとに違います。ある場所では青が強く見えたり、別の場所では赤が強くなったりします。
こうして、見る角度や位置によって色が変化する、虹色の干渉模様が現れるのです。


干渉模様が綺麗に出る条件
薄膜干渉が目に見えるほどの効果を出すには、膜の厚さが光の波長と同じくらいか、それより小さいことが重要です。
可視光の波長はだいたい 380〜780nm(ナノメートル)というスケールです。髪の毛の太さがおよそ70,000nmなのでかなり薄いことがわかります。
Blenderで薄膜の厚さを設定するときに重要になってくるので覚えておいてください。
膜が厚くなるとたくさんの波長が混ざって打ち消しあい、綺麗な色が出なくなります。

※太陽光には全ての色の光が含まれていて、それが混ざって白く見えています。
その他の干渉模様
玉虫やモルフォ蝶の構造色、CDの表面などに見られる角度によって変化する色は、薄膜によるものではなく、規則正しいナノスケールの微細な構造が光を回折・干渉させて生まれる色です。
原理は薄膜干渉とは少し異なりますが、どちらも光の波の干渉を利用した構造色であり、Blenderの「Thin Film」機能で近い見た目を再現することができます。

Blenderで薄膜干渉を再現してみる
右のチュートリアル動画は、薄膜干渉を再現してみるにあたって、参考にさせていただいた動画です。とても丁寧に薄膜干渉の物理的説明をしていてわかりやすいんですが、英語です。
準備
シャボン玉で薄膜干渉を再現するセットアップをしていきます。
- UV Sphereを追加します
- 大きさを10cmなど普通のシャボン玉程度の大きさにしておき、スケールを適用しておきます。サブディビジョンサーフェスモディファイアをつけ、Shade Smoothでなめらかにしておきます。
- レンダーエンジンをCyclesにします。
- Thin filmはCyclesでしか機能しません
- HDRI背景画像を設定します。
- 背景が真っ白だったり真っ黒だったりすると模様がよく見えません
- エリアライトなどを用意します
- 光沢の見栄えが良くなるように設置するだけなのでなくても良いです。

シャボン玉薄膜干渉のマテリアル設定
UV Sphereにマテリアルを設定していきます。Principled BSDFを使います。
- ラフネスを0に近いところまで下げます。
- IORを1にします
- Transmission(伝播)を1にし、透過させます
これでつるつるの透明なシャボン玉ができましたが、薄膜干渉は起こっていません。Thin Filmで薄膜の厚さを設定していないからです。

IOR(屈折率)の設定
IORとは屈折率のことで、物質ごとに決まった数値があります。
空気のIORは約1.0、シャボン玉の膜のIORは約1.33です。
Principled BSDFではメインのIORに1.0、Thin Film > IORに1.33を設定します。

この値を 1.0(空気)や、メインマテリアルと同じIOR に設定すると、薄膜の効果は消失します。
これは、光学的に膜が空気や素材と「一体化して見える」ためです。
薄膜の厚さを設定する
Thin Film > Thicknessで、薄膜の厚さを設定します。
光の色の波長380~780nmの範囲で比較してみました。
厚さが違うことで、見える色が変わってきます。(※Blenderマニュアルでは約100~1000nmで効果が強くなると書いてあります)

※IORを1.0~2.0くらいに変化させても見え方は変化します。
厚さを変化させる
さらに、局所的に薄膜の厚さを変えることで色が混ざりあい、もっとリアルなシャボン玉を作ることもできます。
厚さに、光の波長に近い200~800の数値を入力したいため、ノイズテクスチャの0~1の出力をMap Rangeで200~800にリマッピングします。
ノイズを4Dにし、Wの値をドライバで変化させれば、干渉模様が美しく変化していくアニメを作ることができます。

不透明な物質の薄膜干渉
シャボン玉は透明でしたが、不透明な物質にも干渉模様を作ることができます。
- Base Colorは少しグレーな方が効果がわかりやすいです。
- ラフネスは少し荒さを残しても効果が出ます
- Thin Film > Thicknessはシャボン玉と同様に光の波長の範囲で変化させています
- IORはメインマテリアルのIORと、表層にのった薄い膜のThin Film > IORで差が出るように設定します。(IORに差がないと薄膜干渉は出現しません)

ベースカラーを暗くすると、玉虫のような色があらわれてきました。

金属の薄膜干渉
Blender4.5のマニュアルには
薄膜干渉(Thin-film interference)は、現在のところ非金属(dielectric)マテリアルにのみ適用されます。将来的には金属の上に薄膜を重ねた表現(例:焼き色など)にも対応予定です。
とあり、金属マテリアルには薄膜干渉は適用されていません。実際、Metallicのパラメータを上げて、Base Colorをつけると、薄膜干渉は消えてしまいます。
スペキュラで金属質感を再現する
しかし参考にした動画によると、Metallicのパラメータを上げなくても、IORを高くして、Specular > Tintで色をつければ金属のような効果が得られるということです。
やってみたところ、確かに金属のような質感の上に薄膜干渉を同時に表現することができました(周囲の景色を反射していないので反射は別につける必要がありそうです。)

- Metallicの値は0にし、色を黒にします。
- メインのIORを60~80に高くして、金属風の強い反射を表現します(非金属用なので金属特有の効果が得られるわけではありません)
- Base Colorはつけられないので、Specular > Tintで色をつけます。
これなら、金属ではないので、薄膜干渉の模様を出すことができました。
この効果を使って、タマムシ色を作ってみました。
アニメーションで色の見え方が変化します。これは薄膜干渉の厚さをノイズで変化させたものです。
まとめ
シャボン玉など、透明の物体に薄膜干渉模様を出すには、Principled BSDFのThin Filmを適切に設定するだけで簡単にできることがわかりました。不透明な物質にも薄膜干渉を起こすことができ、Thin Filmを設定すれば、表層に薄い膜が乗ったように干渉模様を出すことができます。不透明の物体の上に微妙に虹色が見える効果は美しく、独自でおもしろい表現ができそうです。
金属にはまだ薄膜干渉の機能が使えないと書いてありますが、将来的には対応予定ということですので今後金属についた油膜や焼き色などの表現が簡単にできるようになる可能性が高いです。
金属の代わりにスペキュラを使ったり、使いこなすには光のふるまいに関しての知識がないと少し難しいところがあったかもしれません。以前IORや反射などについて書いた記事がありますので、よかったら読んでみてください。↓
IORや反射についての知識をつけたあとにやってみると、薄膜干渉についての理解がより深まると思います。