【14】マテリアルと投影法 その2  2022.03 改稿しました

画像はクリックすると拡大されます。戻る   デジタル降魔録へ   次へ

2022年 3月 4日補足



 カラーチャンネルとアルファチャンネルを使って色とロゴ(pngデータ)を重ねる方法は何とか理解できましたが、その中でひとつの疑問が残りました。
 もう一度この写真を見てください。


グラデーション(ステップ塗りですので、もはやグラデーションとは言えません)の白塗りの範囲を動かすと(③の白い三角)、球体は周囲をひと塗りされていくのに、立方体は 6面に分かれて塗り幅が変化します。これはなぜ?
 その疑問を発生させた大もとの原因は、ネットで紹介されていた説明を誤解して覚えていたせいだと思います。

 その説明とは投影法のことです。
 製作したマテリアルをオブジェクトにどのような方法で描画するかを指定する処理のことですが、 ここもまたややこしい のです。

 そのややこしいのを文章だけで理解するのは、かなりムリがありまして、例えば、投影法の中にある『球』の場合、『マテリアルを球体に包むようにする』と説明されると思います。いろいろな形状のオブジェクトで試してみましたら、確かにその通りの結果になりますが、素人から見たらだからなんだ? となるのです。貼り付けたテクスチャ画像は想定以上に歪んでしまい、ちっとも思うとおりの結果にならないからです。

 原因の一つは、レンダリングしないと正しく反映されないこと。
 AEでは意識せずにレンダリングしてくれてますが、C4d Lではレンダリング指示を出すか、あとはインタラクティブレンダラーでも行わない限り、エディットビューに出ている姿は仮の状態だということを頭に焼き付けないといけないようです。
 そしてもう一つはやはり言葉や文章では説明しきれないこと。ならいったいどうすればいいのか……。

 そこで考えました。
 理解しずらいのは、指定の投影法でマテリアルを貼ってもその結果しか見られないからで、各投影法がどのような法則性をもっているのか伝わってこないからです。そこで、動きのある方法で実験することにしました。
 マテリアルの貼り付けを動きのある方法で見る……。
 どうするのか……。

 前回のアルファチャンネル、白塗りの部分は不透明になり、【カラー】チャンネルが反映されますが、黒塗りの範囲は透明になり下地(最初に貼られたマテリアル)が出るという性質を利用します。塗り幅を増減するアニメーションを作ると、その結果がマテリアルにリアルタイムに現れます。それに加えて下地となるマテリアルにもpng画像を貼っておき、そのテクスチャが各投影法によってどう展開されるのかを見れば、少しでも理解できるのではないかと思いました。

 まず、テクスチャとして使用する png画像はすべて同じものです。それを球体、円柱、立方体に貼り、各オブジェクトも 3つのサイズを並べて、大きさにも影響が出るのかを異なる角度から見ていきます。


 今回の実験では、映像から受ける情報量が多いので注目すべき点を先に述べておきます。その部分を重点的に観察してください。いろいろなことが解ります。

 その1:アルファチャンネルで使う白塗り部分の動きは、初めは横向きで、次に縦に切り替えます。この時の塗り領域を反転したことも考慮してください。反転、すなわちそれは下に隠されたマテリアルが映る部分となります。

 その2:オブジェクトの形状によって、マテリアルがどう貼られるか。(ネットの説明通りです)

 その3:同じオブジェクトでもそれ自身のサイズによってマテリアルの貼られる領域が異なるところ。

 その4:テクスチャ画像のどの領域が各オブジェクトの、どの面にどのように貼られていくかを、オブジェクトの形状や投影法によって異なる様を観察してください。

 その5:テクスチャ画像センターの青い楕円形は、あえて縦:横= 2:1の比率にした楕円にしています。 なぜあえて楕円 なのか。



 最初は投影法の『球体』です。


【球 体】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/DlsaroM34Ks


『球』というだけあって球体に特化しているのが見て取れます。テクスチャも球状に歪んでいます。
 ところがテクスチャ画像のセンターの楕円の絵がその歪みによって、ちょうどいい円形になっています。これは重要な事です。


 続いて『円柱』です。


【円 柱】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/aLMj7T-lDro

テクスチャ画像が円柱に貼られるように処理さています。球体であろうが立方体であろう横から巻き付けるように貼られていきす。
 どういうわけか、センターの楕円がおかしな具合に歪みますし、球体には面が 1つしかないのですが、それがあるかのように貼られています。


 次は『平行』です。


【平 行】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/Ui_wpe7uolo

オブジェクトの形状により色々ですが、正面からそのまま平行にと表現するのが最適なのか、なんとも伝えにくいです。とにかく映像を見て理解してください。これが『平行』です。
 よく見ると、立方体の真ん中に位置するサイズの物だけが前面と背面だけに、テクスチャ画像がドンピシャリとハマっています。これについては後述します。


 今度は『立方体』です。


【立方体】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/OmMgakEx7_w

立方体の各面に同じテクスチャが貼られています。グラデーションの動きも同じで、球体であってしても四角く塗られていくのが見て取れます。


『正面』です。


【正 面】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/pD_I-83Bgxw

何んと表現していいのか。どういうシチュエーションでこの貼り付け方を使用すればいいのか、一瞬、プロジェクションマッピングを想像しました。


 これが一般的な『UVW マップ』です。


【UVW マップ】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/M2GlBc0liMg

球体は球体に合わせて、円柱は円柱、立方体も立方体に合わせて貼られていますし、どのサイズでも完全フィットしています。



「まあ、UVW マップが無難か」とネットで囁かれる場所に落ち着くのですが、共通して言えることは、アルファチャンネルの塗りしろは投影法には影響されていないということは理解できました。


 ここまでして痛感したことは、オブジェクトの形状によって投影法を選んでもテクスチャは大きく歪められるということで、歪められた状態で正しく映るようにあらかじめ画像を歪めて作っておかなければいけないという事実です。今回のような平面的なテクスチャ画像がそのまま使えるのは、いいとこ立方体か円柱どまりだと認識できました。そのためのツールが BodyPaint 3Dだそうですが、 ここでは時期尚早 です。

 もう一つ気づいたことは、『UVW マップ』は除外しますが、オブジェクトのサイズでテクスチャが何枚も繰り返して貼られています。これは属性マネージャのマテリアルタグにある【タイリング】にチェックが入っているからで、チェックを外すと一つだけになりますが、オブジェクトのサイズとテクスチャのサイズが一致しないというところです。つまりオブジェクトのサイズは属性マネージャで調整できますが、マテリアルのサイズはどこで調整したらいいのでしょうか。


 最初に見つけた方法。
 属性マネージャを【タグ】にして、『タグ』ボタンを押して、『サイズ U』と『サイズ V』で大きさを、『オフセット U』『オフセット V』で位置を調整しました。
 ですが……。

「にしても……なんかやりにくいな」
 そうなんです。新たな疑問の発生です。

 マテリアルのサイズと位置合わせをこのパラメターの調整だけでこなすには、あまりにも簡易的ではないだろうか?
 3D作業の中でも重要度の高いマテリアルの貼り付けです。もっと細かい調整ができないはずがないのです。


 ツールボタンやマテリアルタグを右クリックして、しばらくあちこちを探ります。
「ぜったいに、なにかある……」
 見つけました。この疑惑はビンゴでした。『UVW マップ』では変化が無いので、気づくのが遅れたのです。

 テクスチャも動かせます。



【テクスチャモードの操作方法】


最初に①のボタンをクリックして、テクスチャモードに切り替えます。
 続いて貼られる位置を動かしたいテクスチャタグを選択。②です。
 すると、③です。いつもの 3D軸が出ます。④を押して座標を出してから3D軸を動かすと、座標の数値も変化してそれに同期してテクスチャの位置も動きます。もちろん投影法に沿った動きしかできませんので、平面のテクスチャ画像が自由自在になるわけではないですが、どこ向いてんだかわからない、オフセットを調整するよりかは楽です。


テクスチャの位置を動かすとこうなります
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/6q9evOPIQMs

注意することは、『UVW マップ』では動きません。たぶん常にフィットが UVW マップの掟だからではないかと考えています。



 これでテクスチャでの疑問はあらかた解けたのですが、ずっと抱いていたものがあります。オブジェクトの任意の面だけにテクスチャ画像を貼るにはどうするのか、です。

 オブジェクトの形状により、持っている面はそれぞれで異なるのですが、テクスチャを貼るとすべての面に貼られてしまいます。例えば立方体は 6面すべてが同じ画像になりますので、サイコロを作りたくても 面に対して異なるテクスチャを貼る方法が解らないと作れないわけでして。このままでは AEでサイコロを作った時と同じように、平面を 6枚作って、立方体に組むしかないのです。何か手立てを考えなくては……。



【2022.03.04補足】


 現時点の知識で解決できる方法は次のとおりです。


① アルファチャンネルを利用して、黒塗りの部分に下地のマテリアルを出す方法。
② 押し出しで作ったオブジェクトなら押し出した面に別のマテリアルを貼る。
③ マテリアルのサイズに合わせた平面オブジェクトを作りそれにマテリアル貼って、そのオブジェクトを好きな場所に設置する方法です。ちょうどシールを貼るイメージです。
④ 面を指定して専用のマテリアルを貼る方法。

 ① の方法は特殊で限定的ですので、サイコロのように 6面全てを自由にとまではいきません。
 ② も押し出した面だけに有効ですので解決までには至りませんが、以外と使いますので、補足情報『押し出した面に別のマテリアルを反映させるには』をご覧ください。
 ③ も苦し紛れですが、比較的自由度が高いので使えるかもしれません。
 ④ はストレートに面を選択してその面だけにマテリアルを貼る方法です。

 まずは ③です。とにかく直感的で理解しやすい方法で、好きな位置にマテリアルを貼れますが、ちょっとスマートとは言えないかもです。でもワタシは多用しています。

 最初はマテリアルのサイズに合わせた平面オブジェクトを作ります。できたらそれに投影法の【UVWマップ】でマテリアルを貼り、それを好きな位置に設置します。
 ちょうどシールを貼るようなイメージで、相手が平たい物ならどこにでも貼れます。曲面は無理ですが、意外とそういうシチュエーションは多いようで重宝しています。

 それらしく貼るコツは、極限にまで貼る相手の表面に近づけることです。そうしないと宙に浮いているのが見えてしまいます。

 例として、段ボール箱を作ってそれらしくしてみました。


テクスチャを貼った平面オブジェクトを動かせばどこでも自由に貼れます。側面のロゴや割れ物注意のロゴなども同じように作って任意の場所に貼っています。
 画像の四隅や空白部分を透明にした pngデータを使わないと余白部分が見えてしまいます。



 工程も超簡単。重要なのは画像の縦横比と作る平面オブジェクトの縦横比を同じにすることです。

 では最初にロゴを Aiで作ります。


ロゴの大きさの単位はミリメートルにしています。これは C4d Lにはピクセルという単位が無いためです。重要なのはロゴとなる画像の縦横比で、それをテクスチャを貼る平面と同じにすることです。縦横比だけ同じならサイズはいくらでも変更できます。

 Aiで作ったロゴを pngデータに落とします。写真では背景が白ですが、ロゴ以外は透明にすることを忘れないでください。


 次にテクスチャを貼る平面を同じサイズで作って、箱の側面に貼ります。平面は【プリミティブオブジェクト】の『平面』を選びます。
 Aiでのロゴのサイズは、横 452mm、縦 214mmでしたので、ひとまずこちらも同じ値にします。

 それがこの写真です。


452×214mmでは少し小さすぎましたので、縦横を同じ比率で 8倍に拡大します。
 するとこんな感じです。OMでは『正面ロゴ-1』という名前にしてあります。


箱からはみ出た部分はロゴの透明になる部分で見えなくなりますが、念のため少し小さくします。オブジェクトの【幅】の数値と【高さ】の数値をそれぞれ『×0.8』して同比率で小さくします。縦横比を変えてしまうとテクスチャ画像が歪みます。

 次に 【アルファ】チャンネルのテクスチャに【画像を読み込む】で pngデータを読み込みます。
 読み込んだらアルファチャンネルの設定にある【画像の濃度を使う】と【アルファチャンネルを使う】にチェックを入れます。




 続いて、同じ pngデータを【カラー】チャンネルのテクスチャとしても読み込みます。これでこのマテリアルはロゴの画像どおりの色と透明部分を保持したものになりますので、それを先ほどの『正面ロゴ-1』に適用します。

 この例では貼り付け先のオブジェクトが長方形平面という単純なカタチですので、投影法は【UVWマップ】できれいにマッピングされると思います。もし位置ずれが起きたときはタグの【オフセット U】【オフセット V】で調整します。

 スプラインパスを利用して作った平面を押し出して作ったオブジェクトに、【UVWマップ】で貼り付けると位置ずれが起きたり、オブジェクトの形を変えるとその都度【UVWマップ】の調整を強いられて苦痛になりますので、その時は投影法を【平行】にします。

 平行は初めの初期設定で手間取りますが、一度貼ってしまえばオブジェクトの形やサイズを変えても定位置で固定されますので、使い方によっては好都合なときがあります。『【23】ペーパーアニメーションを考える』をご覧ください。

 また投影法の【平行】に関しての補足情報は
 投影法の【平行】を使って、正確にテクスチャを配置させたい
 どうしてもテクスチャが出てこない(表示されない)
 をご覧ください。





【任意のポリゴンだけにテクスチャを貼る】


 続いて ④の方法です。
 これは、作ったオブジェクトをエレメントに分解した編集可能状態にして、任意の面を選択してテクスチャを貼ります。自由度が高いですが、編集可能状態にしますと元のプリミティブなオブジェクトには戻らないみたいですので注意してください。


【任意のポリゴンだけ】
 画質が落ちますがユーチューブでもご覧いただけます。https://youtu.be/6b7gOaCGOF0

上の動画のように、面の分割数を増やすと選択面が増えてさらに自由度が上がります。動画では 1面を縦横で 2分割しています。


 まず指定する面を選択するために、オブジェクトを編集可能状態にします。


写真の①をクリックして、編集可能状態にします。
 すると ②、OMのタグ一覧に『チェッカーフラッグ』みたいなタグが追加されます。

 続いて③のポリゴン(面)モードにして、貼り付けたい面を選択。写真では面分割を 1面のままにしていますので、上下左右と手前と奥の面の 6面です。
 ポリゴン選択後、⑤のウィンドウメニューの【選択】を押して、『選択範囲を記録』を押します。

 分割をもっと細かくすると、例えば先に挙げた動画の【指定ポリゴンだけ】の場合は x、y、z面を 2分割ずつして、1面につき 4分割された右上と左下の面だけを選択しています。


[意外と重要な事]
 今回のように単純な立方体だとそれほど面分割を意識しませんが、複雑なものになるとかなりの分割を強いられることもあります。するとポリゴンの選択がとても難しくなります。そこで C4dではいろいろな方法が準備されています。


●通常の選択ツール(ライブ選択とか)が選ばれているときに【属性マネージャ】の【モード】を【ツール】にして【オプション】にすると【可視エレメントのみ選択】のチェック欄が出ます。チェックを付けると見えている範囲のみ選択されるようになります。こうしておくと、表を選択しているときに裏のポリゴンが選択されませんのでとても便利です。

●ウィンドウメニューの【選択】の中にある【ループ選択】や【リング選択】などはオブジェクトの選択範囲をぐるっと 1周分まとめて選択してくれます。ブレることなくきれいに一周しますのでとても楽になります。これは【可視エレメントのみ選択】にチェックが入っていても裏側まで選択されます。



 選択範囲が記録されると、⑥の位置に『ポリゴン選択範囲タグ』が追加されますのでそれをクリック。
 すると属性マネージャが写真のように切り替わります。
 続けて ⑦の『名前』欄のテキストをコピーします。

 コピーしたら、これまでと同じ要領でマテリアルをドラッグアンドドロップして貼り付けます。
 ⑧の状態です。


再び属性マネージャが写真のように切り替わりますので、先ほどコピーした名前のテキストを、⑨の『選択範囲に限定』欄へペーストすると、指定面にだけテクスチャが貼られました。
 意外と簡単にできました。これならサイコロの目を画像で作って、6面に貼ればできますね。AEでやった時よりもキレイなサイコロができそうです。
 また曲面に対しても可能ですのでこの方法は優れていると思います。







ここまでくるとそこそこ自由になってきて PE2のロボットもひとまず終盤に近づきました。


【 PE2 】


残すところ、あとは腕の縞模様に欲しいデコボコ感をどうやって出すのか、に尽きます。




 次回はバンプです。
 そして湾曲と続きます。

 それらを使って、キャラクターアニメーションの舞台となる未来都市に必要な、たくさんのストラクチャを作っていきます。




【14】マテリアルと投影法 その2  さらに続きます

戻る   デジタル降魔録へ   次へ