ジャンル雑多なゲーム・ゲーム制作関連の色々な情報を取り扱っているブログ。最近はBlenderについてが中心。
[Blender 2.8] テクスチャを投影するようにマッピング [UV投影モディファイアー]

[Blender 2.8] テクスチャを投影するようにマッピング [UV投影モディファイアー]

[Blender 2.8] 3Dオブジェクトへのテクスチャマッピングに便利な、UV投影モディファイアーの機能と使い方のご紹介

今回の記事は、Blenderで、『テクスチャマッピング』をする時に便利な『UV投影モディファイアー』についてです。

このモディファイアーは、「光」を照射するような感覚で、テクスチャ(UVマップ)をオブジェクトに投影する事が出来ます。

具体的には、テクスチャを照射するためのオブジェクトの負のZ軸からUVマップを放出し、「光」が当たるとオブジェクトに適用します。

なので、一枚の写真から、「立方体」や「球体」などの3Dオブジェクトへの『テクスチャマッピング』の時などに凄く便利だと思います。

その3Dオブジェクトへの『テクスチャマッピング』の例を、おまけとして載せています。

Blender UV投影 モディファイアー ベイク テクスチャマッピング 3DCG モデリング
『UV投影モディファイアー』を使って作ってみたもの

この記事を通して少しでもこのモディファイアーの便利さが伝われば…!と願いつつ詳しくご紹介させていただきます。

後日追記:『テクスチャマッピング』の編集という点で共通する『UVワープモディファイアー』についての記事を書かせていただきました。UVエディターを介さず、3Dビューポート上で『テクスチャマッピング』の調整がしたい場合にはこちらのモディファイアーがオススメです。

※2020年3月9日 加筆修正を行いました。
※2020年3月16日 加筆修正を行いました。
※2020年5月25日 加筆修正を行いました。

目次

まず最初に

Blender UV投影 モディファイアー 3DCG モディファイアー

『UV投影モディファイアー』を追加したいオブジェクトを選択しておき、[プロパティエディタ]>[モディファイアー]>[モディファイアーを追加]で表示される一覧から、[UV投影]という項目を選びます。

ちなみに、追加した際の『モディファイアー名』の表記は[UVProject]となるようです。

Blender UV投影 モディファイアー 3DCG モディファイアー

ちなみに、ここでの”Project”は、「計画」や「企画」といった意味ではなく、「投影する」や「映す」といった意味です。

「プロジェクションマッピング」の”Projection”という方が伝わりやすいでしょうか?

projectとは

(大規模な)計画、企画、(大がかりな)事業、プロジェクト、(特定の問題についての詳しい)研究、研究課題、公団住宅、団地

// 中略 //////////

〔+目的語(+前置詞+(代)名詞)〕〈光・影・映像などを〉〔…に〕投影する,映す 〔on,onto〕.
The oak projected a shadow on the ground. オークの木は地上に影を投げていた.
The film was projected onto a screen. 映画がスクリーンに映し出された.

引用元:projectの意味・使い方・読み方|Weblio英和辞書

[UV投影]の詳細設定項目一覧

[UVマップ(UV Map)]

変更するUVマップ。デフォルトはアクティブなレンダリングレイヤーです。

[プロジェクター(Projectors)]

最大10個のプロジェクターオブジェクトがサポートされています。各面は、その表面法線方向に最も近似なプロジェクターを選択します。投影は、負のZ軸から放出されます(つまり、カメラまたはライトをまっすぐ下に向けます)。プロジェクターがカメラの場合、投影方法はその透視投影・平行投影の設定に従います。

[オブジェクト(Objects)]

プロジェクターオブジェクトを設定します。

カメラを使ってマッピングしてみた例

例えば、↓のような並びで”Camera”と”モンキー”、”平面”の3つのオブジェクトを配置します。

Blender UV投影 モディファイアー 平面 カメラ モンキー メッシュ テクスチャマッピング 3DCG モデリング

テクスチャマッピングするために『カラーグリッド』のテクスチャを新規作成します。

Blender UV投影 モディファイアー テクスチャマッピング UVエディター テクスチャ カラーグリッド 3DCG モデリング

“モンキー”と”平面”オブジェクトにそれぞれ『UV投影モディファイアー』を追加し、[オブジェクト]に”Camera”を設定します。

Blender UV投影 モディファイアー カメラ メッシュ テクスチャマッピング 3DCG モデリング

その場合、カメラ視点から見ると↓のようになります。

Blender UV投影 モディファイアー 平面 カメラ モンキー メッシュ テクスチャマッピング 3DCG モデリング

アスペクトとスケール

画像の縦横比や大きさを簡単に操作できます。カメラをプロジェクターオブジェクトとして使用する場合に適用されます。

  • [アスペクトX(Aspect X)] …縦横比で横の比率。
  • [アスペクトY(Aspect Y)] …縦横比で縦の比率。
  • [拡縮X(Scale X)] …横の方向の拡大縮小。
  • [拡縮Y(Scale Y)] …縦の方向の拡大縮小。
Blender UV投影 モディファイアー 平面 カメラ モンキー メッシュ テクスチャマッピング 3DCG モデリング アスペクト
アスペクト比や拡大縮小の操作

おまけ:作ってみた物

ちなみに、今回私が作ってみた物や、このモディファイアーをご紹介するにあたり、大変参考にさせていただいた動画がありますのでご紹介させていただきます。

工程一覧

テクスチャマッピング用の画像を用意

まず、テクスチャマッピング用の画像を用意します。

私の場合は無料のフリー素材サイト「ぱくたそ」様から画像をお借りしました。

趣があってつい一目惚れしてしまい、今回使用させていただきました 笑
(画像撮影者のすしぱく様に深く感謝申し上げます)

お借りした素材は↓のページで配布されています。

外部リンク:昭和レトロの和家具がある古民家の様子 | 無料の写真素材はフリー素材のぱくたそ

素材として利用させていただいた画像

『fSpy』とアドオン『Import fSpy project』

写真を3DCGで加工したりする際によく使われるらしい『fSpy』というソフトを活用して、撮影時のカメラの設定をBlenderで再現します。

外部リンク:fSpy

こちらの詳しいダウンロード方法~使い方は↓の記事を参考にさせていただきました。

画像の上から「X,Y,Zの3軸に対応した線」を設置して、ソフトにパースの計算をしてもらいます。

fSpy パース計算 ソフト 画像
fSpyでパースの計算

このパース計算の結果を左上にある[File]>[Save]から保存することができます。

fSpy fileメニュー save
Fileメニュー

ちなみに、この[Save]から保存した時に作成されるファイルの拡張子は「.fspy」なのですが、デフォルトではこの形式ファイルはBlenderにインポートできません。

そこで便利なのが、この「.fspy」のファイルをBlenderにインポートを可能にする『Import fSpy project』というアドオンです。

Blender ファイル インポート 3DCG モデリング
[ファイル]>[インポート]で一覧に「.fSpy」がない
Blender ファイル インポート fSpy Import アドオン 3DCG モデリング テクスチャ
『Import fSpy project』アドオンを有効化した時の[インポート]出来るファイル形式一覧

『Import fSpy project』は↓のGitHubのページからダウンロードし、Blenderにインストールします。

外部リンク:GitHub – stuffmatic/fSpy-Blender: Official fSpy importer for Blender

このアドオンを使ってインポートすると、カメラオブジェクトにテクスチャが設定された状態になります。

ちなみに、外部からアドオンをインストールするやり方は、↓の記事の「おまけ:外部ファイルからインストールして使う『アドオン』の場合」の項が参考になるのではないかと思います。

今回の場合は、インポートするとこんな感じになりました。

Blender fSpy Import カメラオブジェクト 下絵 和室 画像 3DCG モデリング
“washitu.fspy”をインポートして作成された『下絵』付きのカメラオブジェクト

後でややこしくならないように、元からある”Camera”を削除し、””を”Camera”に改名し、更に『下絵』として設定しているテクスチャ名を”mappingimage”に改名しておきます。

Blender fSpy Import カメラオブジェクト 下絵 和室 画像 3DCG モデリング
“washitu.fspy”の名前を”Camera”に変更
Blender fSpy Import カメラオブジェクト 下絵 和室 画像 3DCG モデリング
[プロパティエディター]>[オブジェクトデータプロパティ]>[下絵]のテクスチャ名を”mappingimage”に変更

テクスチャに合うようにオブジェクトを形成

メッシュオブジェクトをテクスチャに合うように形成します。名前は”original”としました。

カメラ視点(テンキー[0])から見るとこんな感じに。

Blender fSpy Import カメラオブジェクト 下絵 和室 画像 メッシュオブジェクト 3DCG モデリング
メッシュオブジェクト(カメラ視点)

そして斜め上から見るとこんな感じにしました。

Blender fSpy Import カメラオブジェクト 下絵 和室 画像 メッシュオブジェクト 3DCG モデリング
メッシュオブジェクト(斜め上からの視点)

テクスチャマッピング

1つ『マテリアル』を作成し、[シェーダーエディター]でノードを編集します。[マテリアル出力]ノードにつながっている[プリンシプルBSDF]ノードを削除して、[放射]というノード新たに追加して↓のように繋ぎます。

Blender マテリアル シェーダーエディター 放射 マテリアル出力 ノード 3DCG モデリング
[シェーダーエディター]で[マテリアル出力]と[放射]ノードを繋ぐ

更に、テクスチャマッピング用に↓のようにノードを繋ぎます。

Blender マテリアル シェーダーエディター 放射 マテリアル出力 画像テクスチャ  マッピング  テクスチャ座標 ノード 3DCG モデリング
[画像テクスチャ]、[マッピング]、[テクスチャ座標]ノード追加

ちなみにこの時、デフォルトでインストールされている『Node Wrangler』というアドオンを有効にすると、

Blender Node Wragler アドオン 3DCG モデリング シェーダーエディター ノード プリファレンス
[プリファレンス]>[アドオン]で[Node: Node Wrangler]アドオンを有効化

[Ctrl]+[T]というショートカットキーで、『Node Wrangler』で設定されている「Add Texture Setup」というノードの組み合わせ(テクスチャマッピング用のノード)が簡単にセットできるので、非常にオススメです。

Blender Node Wragler アドオン 3DCG モデリング シェーダーエディター ノード
『Node Wrangler』で設定されている「Add Texture Setup([Ctrl]+[T])」のノードセット

本当にざっくりですが説明しますと、

『Node Wrangler』とは、 ある程度使用頻度の高いノードの組み合わせ・繋ぎ方のパターンを、ショートカットキーで効率的に組む事が出来るアドオンです。

他にも[シェーダーエディター]でよく使いそうな便利なノードの組み合わせが色々ありますので、ご興味ある方はBlender公式マニュアルのページをご覧ください。

外部リンク:Node Wrangler — Blender Manual

テクスチャマッピング用にノードが組めたら、[画像テクスチャ]ノードに”mappingimage”をセットします。

Blender マテリアル シェーダーエディター 放射 マテリアル出力 画像テクスチャ マッピング テクスチャ座標 ノード 3DCG モデリング
[画像テクスチャ]ノードに”mappingimage”テクスチャをセット

すると、テクスチャがメッシュオブジェクト”original”にマッピングされるわけですが、この状態でのマッピングはUVマップを元にマッピングされるので、”Camera”に設定されている『下絵』と同じ様にはマッピングされません。

Blender テクスチャマッピング UVエディター UVマップ テクスチャ 和室 画像 メッシュオブジェクト 3DCG モデリング
メッシュオブジェクト”original”のUVマップの状態 ([UVエディター]での表示)
Blender fSpy Import カメラオブジェクト 下絵 和室 画像 メッシュオブジェクト 3DCG モデリング
この段階でのメッシュオブジェクト”original”のテクスチャマッピング結果 ([3Dビューポート]での表示)

『UV投影モディファイアー』と『サブディビジョンサーフェスモディファイアー』でマッピング調整

さて、ようやく『UV投影モディファイアー』を使っていきます。

ですがその前に、[プロパティエディター]>[オブジェクトデータプロパティ]>[UVマップ]にあるUVマップの名前を変更しておきます。”finalunwrap”としました。

Blender テクスチャマッピング UVマップ メッシュオブジェクト プロパティエディター 3DCG モデリング
UVマップを”finalunwrap”に改名

そして、『UV投影モディファイアー』を追加して、[UVマップ]に”finalunwrap”を設定し、[プロジェクターオブジェクト]に”Camera”を指定します。

Blender UV投影 モディファイアー テクスチャマッピング UVマッピング 3DCG モデリング
『UV投影モディファイアー』を使用したテクスチャマッピング

この時、めちゃくちゃテクスチャが歪んでマッピングされてますが、『サブディビジョンサーフェスモディファイアー』を使用して細分化すれば歪みが少なくなります。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング UVマッピング 3DCG モデリング
『サブディビジョンサーフェスモディファイアー』で細分化

ちなみに、『サブディビジョンサーフェスモディファイアー』について、詳しくは↓の記事をご覧ください。

更に、元画像ファイルのプロパティから「縦横比」を調べて、アスペクトやスケールの調整をします。

今回は[アスペクトX]を”1.5″にしました。

Blender UV投影 モディファイアー テクスチャマッピング UVマッピング 3DCG モデリング アスペクト
[アスペクトX: 1.5]に設定

これで2つのモディファイアーを[適用]して完成でも良いのですが、参考元の動画では「ベイクしてローポリゴンの方のオブジェクトにテクスチャマッピング」をしていましたので、そこまでやってみたいと思います。

ベイク用のオブジェクト準備

まず、シーム付けと「UVマッピング(ショートカットキー:[U])」>[展開]でUV展開し直します。

Blender UV投影 モディファイアー テクスチャマッピング シーム メッシュ 3DCG モデリング
シーム付け
Blender UV投影 モディファイアー テクスチャマッピング シーム メッシュ 3DCG モデリング UVマップ UVエディター テクスチャ 展開
UVマップ”finalunwrap”を展開しなおし

メッシュオブジェクト”original”を複製([Alt]+[D])して、ベイク用のオブジェクト”projection”を用意しておきます。

Blender UV投影 モディファイアー テクスチャマッピング メッシュ 3DCG モデリング

ベイク用のオブジェクトが作成出来たら、”original”の方の『UV投影モディファイアー』と『サブディビジョンサーフェスモディファイアー』は必要ないので、削除しておきます。

“projection”の方の[UVマップ]の[+]を押して、もう一つ『UVマップ』”projectionunwrap”を新規作成し、横のカメラマークを押してアクティブレンダーに設定しておきます。

Blender テクスチャマッピング UVマップ メッシュオブジェクト プロパティエディター 3DCG モデリング

『UV投影モディファイアー』の[UVマップ]の設定を”projectionunwrap”に変更します。

Blender UV投影 モディファイアー テクスチャマッピング UVマッピング 3DCG モデリング

その状態で 『サブディビジョンサーフェスモディファイアー』、『UV投影モディファイアー』を適用しますと、UVマップ”projectionunwrap”は↓のように変形します。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング シーム メッシュ 3DCG モデリング UVエディター
『サブディビジョンサーフェスモディファイアー』、『UV投影モディファイアー』適用後の”projectionunwrap” ([UVエディター]での表示)

ベイク

そうしましたら、[シェーダーエディター]で[画像テクスチャ]のノードを複製([Shift]+[D])し、新しいテクスチャ”bakeprojection”を作成します。この[画像テクスチャ]ノードのみを選択状態にしておいてください。

また、この時点ではまだ他のノードとは繋ぎません。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング メッシュ 3DCG モデリング シェーダーエディター 画像テクスチャノード
[画像テクスチャ]ノードをコピーし、新規で”bakeprojection”というテクスチャを作成

メッシュを全選択([A])状態にして、[UVマップ]の設定でアクティブレンダー(カメラマーク)は”projectionunwrap”のまま、”finalunwrap”の方を選択状態にします。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング シーム メッシュ 3DCG モデリング UVエディター
テクスチャ”bakeprojection”にUVマップ”finalunwrap” ([UVエディター]表示)
Blender テクスチャマッピング UVマップ メッシュオブジェクト プロパティエディター 3DCG モデリング
選択状態のUVマップを”finalunwrap”へ切り替え

[レンダーエンジン]を[Cycles]に変更し、[ベイクタイプ]を[放射]に設定して、[ベイク]ボタンを押します。

Blender UV投影 モディファイアー ベイク テクスチャマッピング UVマップ メッシュ 3DCG モデリング
ベイク設定

上手くベイク出来たら、[UVエディター]でテクスチャがこんな感じに表示されるはずです。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング シーム メッシュ 3DCG モデリング UVエディター ベイク
ベイク後のテクスチャ”bakeprojection”

[シェーダーエディター]で、[放射]のすぐ後に、ベイクしたテクスチャが設定されている[画像テクスチャ]ノードを繋ぎなおします。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング メッシュ 3DCG モデリング シェーダーエディター 画像テクスチャノード
[シェーダーエディター]上でノードの繋ぎなおし

アクティブレンダーを”finalunwrap”に切り替えると、[3Dビューポート]での表示でちゃんと”Camera”の『下絵』そのままにマッピング出来ているのが確認できるかと思います。

Blender UV投影 サブディビジョンサーフェス モディファイアー テクスチャマッピング シーム メッシュ 3DCG モデリング UVエディター ベイク

完成

ローポリゴンのオリジナルの方のオブジェクトで表示すると、細分化してハイポリ化したベイク用オブジェクトと同じように表示されるはずです。

これで完成です!

Blender UV投影 モディファイアー ベイク テクスチャマッピング 3DCG モデリング

ここまで読んでくださりありがとうございました!

参考にさせていただいたサイト・ページ一覧

お借りした素材

モディファイアー関連の記事のご紹介

この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。

生成

Blenderに関する記事や作品をまとめたページ作りました!

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください