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

[Blender 2.8] テクスチャをオブジェクトでマッピング[UVワープモディファイアー]

[Blender 2.8] 3Dビュー上でオブジェクトを使ってテクスチャマッピングが出来る、UVワープモディファイアーの機能と使い方のご紹介

今回の記事は、Blenderで、UVエディター上ではなく、3Dビューポート上で『テクスチャマッピング』の操作・調整することが出来る『UVワープモディファイアー』についてです。

『UVワープモディファイアー』は、2つのオブジェクト(コントローラー用のオブジェクトまたはボーン)を使用して、3DビューからオブジェクトのUVマッピングのトランスフォームを直接制御することが出来ます。

恐らくよく使われる場面としては、「キャラクターの目や口の形を画像から表示する時に、その部分のマッピングを変化させる」ような時にこのモディファイアーが活用されるのではないかと思います。

ちなみに、『テクスチャマッピング』に使用するという共通点を持つモディファイアーに、『UV投影モディファイアー』があります。こちらは、「オブジェクトに対して光を当ててテクスチャを投影する様にマッピングすることが出来る」モディファイアーです。2Dよりは3Dのオブジェクトへの、全体的なテクスチャマッピングに適していると思います。

別の記事で詳しくご紹介させていただいておりますので、ご興味湧かれましたら、こちらもご覧ください。

※2020年3月17日 加筆修正を行いました。

目次

まず最初に

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

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

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

[元]と[先]にそれぞれオブジェクトを設定していない場合、下の辺りに警告が表示されるようです。

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

準備

目をマッピングしてみようかと思うので、それっぽい目を作成しておき、『ミラーモディファイアー』を使って片方の目を複製しています。

ちなみに、今回は[テクスチャ]>[U軸反転]にチェックを入れて有効にしています。

Blender ミラー モディファイアー オブジェクト 目 3DCG モデリング
今回マッピングに使用する目のメッシュ
Blender ミラー モディファイアー モデリング 3DCG
ミラーモディファイアーの設定

memo: 『ミラーモディファイアー』と『テクスチャマッピング』

何故[U軸反転]を有効にしたかと言うと、『ミラーモディファイアー』の複製体は、テクスチャマッピングした時に、本物のメッシュの方とは反転したマッピングになってしまうのです。

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
普通に『ミラーモディファイアー』を使って複製した場合のマッピング

ですので、それを本物のメッシュと同じ方向にマッピングされるように、「テクスチャマッピングの反転」を設定している訳です。

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
『ミラーモディファイアー』の[U軸反転]を有効にした場合のマッピング

[U軸反転]などの詳しい『ミラーモディファイアー』の動作や機能について、詳しくは↓の記事をご覧ください。

次に、瞳を描いたテクスチャを用意し(左下画像)、目のメッシュをUV展開してUVマップのスケールや配置を、ちゃんと瞳の位置が合うようにセッティングしておきます。

Blender UVワープ モディファイアー モデリング 3DCG テクスチャ
瞳用のテクスチャ
Blender UVワープ モディファイアー モデリング 3DCG テクスチャ UV マッピング
UV展開してテクスチャの瞳の位置に合わせる

シェーダーエディター上でノードを編集して、テクスチャマッピング専用マテリアルを作成します。

一番左の茶色のノードは[画像テクスチャ]ノードで、[プリンシプルBSDF]の[ベースカラー]と[放射]の項目につないでいます。

Blender UVワープ モディファイアー モデリング 3DCG テクスチャ UVマッピング マテリアル シェーダーエディター
テクスチャマッピング出来るようにノードを繋ぐ

この時点で、テクスチャマッピングが上手く出来ていれば、目はこんな感じに表示されているはずです。

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
テクスチャマッピングして瞳を映した目

これで、テクスチャマッピング自体の準備はOK。

更に、『UVワープモディファイアー』を使用してマッピングするために、[元]用のオブジェクト”from empty”という円形のエンプティオブジェクトと、[先]用のオブジェクト”to empty”を用意します。

Blender エンプティ オブジェクト 円 3DCG モデリング
円エンプティ”from empty”
Blender エンプティ オブジェクト 十字 3DCG モデリング
十字エンプティ”to empty”

この2つのエンプティは同じ位置、同じ回転、同じスケールで配置しておきます。

UVのワープ方法は、[元]オブジェクトと[先]オブジェクトのトランスフォーム(位置、回転、スケール)の違いによって決まります。

[元]オブジェクトと[先]オブジェクトが、3Dビュー上で全く同じトランスフォーム(同じ位置、同じ回転、同じスケール)である場合は、UVのマッピングに変化はありません。

用意出来たらそれぞれ、[元: from empty]、[先: to empty]というように設定します。

Blender UVワープ モディファイアー モデリング 3DCG

また、ここではフロント(前方)視点で操作するので、[UV軸]を[X]、[Z]にしておきました。

[UVワープ]の詳細設定項目一覧

[UV中心点(UV Center)]

スケールまたは回転を適用するときに使用するUVマップの中心点。 左下が(0、0)で、右上が(1、1)です。 デフォルトは中心(0.5、0.5)です。

以下のGIFは(0.5, 0.5)と(0.0, 0.0)に設定し、”to empty”を回転([R])や拡大縮小([S])してみたものです。

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
デフォルト(0.5, 0.5)で回転と拡大縮小した場合
Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
デフォルト(0.0, 0.0)で回転と拡大縮小した場合

[UV軸(UV Axis)]

3D座標を2Dにマッピングするときに使用する軸です。

フロント(前方)視点から操作しているので、今回は[X]、[Z]で動かしています。

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
[UV軸]X, Z フロント視点

ちょっと見辛くなってしまいますが、斜め上からの視点にして、[X]、[Y]に設定して動かしてた場合↓

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
[UV軸]X, Y 斜め上からの視点

[元(From)]

UVのトランスフォームの定義に使用されるオブジェクトの1つ。

設定したオブジェクトがアーマチュアである場合、下にボーンを設定する[ボーン]という項目が出現します。

Blender UVワープ モディファイアー モデリング 3DCG アーマチュア ボーン
[元]や[先]にアーマチュアを設定した場合[ボーン]という項目が出現

[先(To)]

[元]と同じく、UVのトランスフォームの定義に使用されるオブジェクトの1つ。

設定したオブジェクトがアーマチュアである場合、下にボーンを設定する[ボーン]という項目が出現します。

[頂点グループ(Vertex Group)]

頂点グループの、頂点毎に割り当てられているウェイト値を使って、UVトランスフォームの影響を調整できます。

『頂点グループ』について、詳しくは↓の記事をご覧ください。

“pupil”という頂点グループを作成し、↓のように円の中心付近にだけウェイト値を割り当てました。

Blender UVワープ モディファイアー モデリング 3DCG  ウェイトペイント メッシュ 目 瞳 頂点グループ
頂点グループ”pupil”での各頂点へのウェイト割り当て

ウェイトの割り当てが済んだら、[頂点グループ]に”pupil”を設定します。

Blender UVワープ モディファイアー モデリング 3DCG 瞳 頂点グループ
[頂点グループ: pupil]と設定

その状態で、”to empty”を三軸回転させてみると、瞳孔が中々面白い動きをしました。

Blender UVワープ ミラー モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳
頂点グループ”pupil”で瞳孔のマッピングだけを変化

[UVマップ(UV Map)]

変換する対象のUVマップを指定します。デフォルトではその時点でアクティブレンダーとなっているUVマップでマッピングします。

『アクティブレンダー』とは、具体的には、↓画像の[UVマップ]の右のカメラマークが白くなっているもの。

Blender UVワープ モディファイアー オブジェクト 目 3DCG モデリング UV テクスチャ マッピング 瞳 UVマップ
アクティブ状態のUVマップ

おまけ:瞳にバリエーション加えたい場合

このモディファイアーの活用方法の一例として、瞳にちょっとバリエーション出してみたものをご紹介します。

↓の動画を参考にさせていただきました。

活用方法の前に、「UVのトランスフォームのやり方」で使った目だけではつまらなかったので、顔や髪、眉、まつ毛等々を追加で着けてみました。

Blender UVワープ  ミラー モディファイアー 人間 キャラクター 女の子 碧眼 白髪 モデリング 3DCG

次に、青以外の色の瞳も追加したテクスチャを用意し、UVマップを設定しました。

Blender UVワープ モディファイアー モデリング 3DCG テクスチャ 瞳 碧眼 黄色の瞳 赤色の瞳
3種類の瞳のテクスチャ
Blender UVワープ モディファイアー モデリング 3DCG テクスチャ 瞳 碧眼 黄色の瞳 赤色の瞳 UVマップ
3種類の瞳のテクスチャでUVマッピング

マテリアルの方でも、使用する画像テクスチャを変更するのに伴い、[画像テクスチャ]ノードに設定しているテクスチャを変更します。

Blender UVワープ モディファイアー モデリング 3DCG テクスチャ UVマッピング マテリアル シェーダーエディター
画像テクスチャノードに設定しているテクスチャを変更

ここではボーンを使用してみようと思いますので、アーマチュア”pupil controller”を作成します。

[元]の項目でご説明しましたように、設定したオブジェクトがアーマチュアである場合、下にボーンを設定する[ボーン]という項目が出現しますので、[元]、[先]どちらも”pupil controller”を設定し、その下の[ボーン]にそれぞれ”from”と”to”を設定します。

Blender UVワープ モディファイアー モデリング 3DCG アーマチュア ボーン

ちなみに、アーマチュアに関しましては、『頂点グループ』と密接な関わりがあり、先程もご紹介しました『頂点グループ』についての記事の中で触れておりますので、参考までにどうぞ。

ということで、動かしてアニメーション作ってみました。瞼の動きが不自然なのはお許しくださいm(_ _;)m

(そして作ってから気付いたんですが”from”の方のボーン動かしてました汗)

Blender UVワープ モディファイアー 人間 キャラクター 女の子 オッドアイ 赤目 碧眼 茶色の目 白髪 モデリング 3DCG アニメーション ボーン アーマチュア
瞳のテクスチャマッピングをボーンを使ってアニメーション

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

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

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

生成

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

Pocket

コメントを残す

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

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