~3.タイリング~こんばんは、makoto@virtualDiyerです。前回の2.絶対座標系編で、絶対座標系でテクスチャを貼ることに成功しました。続いて、コンクリートのタイリングについてお話しします。寸法、ピーコン位置をmm単位で指定することで、様々な種類のコンクリートを表現しようとしたときのお話です。1.mm単位での寸法指定を実装した理由1.1.建築ではmm単位でモデルの制作が必要まずはどうしてそんな機能が必要か、という話です。前提として、建築分野でモデル制作をするときには、mm単位でモデリングやテクスチャを張ることが普通です。普段UE4などを触っていらっしゃるゲーム分野の方は「?」マークが浮かぶことでしょうが、そういうもんです。UE4でのmm単位でのテクスチャあわせが必要なのにはまだ理由があります。簡単に言えば、メッシュなどの修正が繰り返されるため、テクスチャの微調整が何度も必要コンクリート種類(目地間隔などの違い)ごとにテクスチャが必要。これらについて、これから説明していきます。1.2.繰り返しの修正が頻発まず一点目、メッシュなどの修正が繰り返されるため、テクスチャの微調整が何度も必要についてです。メッシュの変更がない場合には、(そんなことあるわけないでしょうが。)普通にメッシュごとにコンクリートのテクスチャを作ればいいだけです。→UE4で確認という順番でした。※Modlab便利なんで皆さんもよければ使ってみてください。ノーマルマップがきれいに作れてクオリティが上がると思いますよ。これでうまくいけばいいものの、そんなうまい話はなく、ポンコツな私にミスはつきものでして、メッシュやテクスチャの寸法が違う裏表でタイリングの間隔が違うなどなど修正が繰り返されました。そのたびにテクスチャがずれていないか確認をして、ずれていた場合には調整しなおして、、、。修正の度にたくさんのソフトを行き来して作業をしており、非常に時間を費やしていました。1.3.使用テクスチャが膨大に二点目の理由として挙げたコンクリート種類(目地間隔などの違い)ごとにテクスチャが必要。いうのは、コンクリートには目地の寸法違いや、ピーコン跡の位置の違いなどがあり、それぞれについてコンクリートのテクスチャを作る必要があった、ということです。VR長屋の場合、必要なコンクリートの寸法を例示すると、1800*900コンクリート1200*900コンクリート900*600コンクリートetc...上記それぞれに対して、テクスチャとマテリアルを作りました。最終的にはテクスチャ:12枚(ノーマル含む)マテリアル:9個(マテリアルインスタンス除く)このように膨大な量が存在していました。(途中で使わなくなったマテリアルも5~6個くらいあったと思います。)これだけ色々作っているのだから、作業時間もばかになりません。複数のマテリアルに対し変更をかけなくてはいけない状況も発生し、非常に大変な作業でした。実際、Nafでの展示企画の直前に行っていた修正は、コンクリートのテクスチャ調整とかで1週間近くかけていたような気がします。※ちなみに、VRコンテンツを制作する場合、現在は極力軽いデータを制作する必要があります。詳しくは割愛しますが、こういった観点からもテクスチャが多いのは望ましくありません。そんなわけで、もうこんなことはしたくない!!というわけで、解決法を模索したわけですね。上述のような問題に対して、以下の主な二つの機能を「UE4上のマテリアルインスタンスで変更可能な形で」実装しました。タイリングの間隔をmm単位で指定できるように。跡の位置をmm単位で指定できるように。上記の機能に加えて、ピーコン跡の個数を4,6,8のいずれかで、垂直方向or平行方向で並べられるようにしました。コンクリートマテリアルの「ピーコン跡の位置をmm単位で変更できる」これが一番苦労した機能でした!(遡ったら動画でお見せしていないことに気づいた、、、。2019年6月30日コンクリートのマテリアル、ピーコンを4つ、6つ、8つと、垂直水平をチェックボックスで切り替えられるようになりました。周りの進度が早くて最近ビビっております。実装した方法を簡単に説明したいと思います。基本的には力業でやったと思っているのですが、まずはピーコン跡のないコンクリートテクスチャを用意。この上に目地とピーコンを重ねていくようにしました。この後は目地のみのテクスチャを準備する。テクスチャ一枚当たりの大きさを絶対座標系で張る時に指定する。このような方法で目地間隔を設定した後、ピーコン跡のみのテクスチャを用意する。目地間隔に対しての、目地からの各ピーコン跡までの距離の割合を計算する。その割合に応じてピーコンのテクスチャを移動させる。することで、コンクリートの拡大縮小をせずに、目地間隔とピーコン跡の位置を独立に変更することができるようになりました。目地間隔については、2.絶対座標系編で紹介した方法で実装しています。ピーコンの配置は、こちらの画像で組んだような比較的単純に作りました。入力の4つは、下図で示す数値をそれぞれ表しています。混同しやすいのですが、InputTextureSizeは、使用しているコンクリートテクスチャのUE4内での寸法を示しています。1800*1800mmの範囲を2048*2048pixelのテクスチャで作成しておくイメージです。絶対座標でテクスチャを貼っているため、このような考え方をする必要がありました。この機能を実装したあたりで今回のコンクリートの基本的な要素はできていて、全体では以下ツイートのようなノード構成になっていました。先ほど紹介したのは、この一部に使われているマテリアルファンクションになります。先日のコンクリートのマテリアル、関数名とかnodeとかきれいにしたった。ノーマルがきれいに反映されていないとか、ピーコンの影が濃すぎ、薄すぎとかいろいろ微調整も一緒に。上下左右でテクスチャ張り替えたりしちゃったもんでこんなことになってしまったんですよね(笑)今回は以上です。次回以降は細かい修正の話にると思いますが、どうぞよろしくお願いします。説明2019年12月25日#まいにちUE4の一年間2018年7月30日ターンバックルの使い方2018年7月22日はじめまして。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。DIYer27991090はじめまして。まこと@virtualDIYerです。最近UE4のお勉強がんばってます。virtual&realのいい所取りを目指して頭捻り中。/主にごはんとCG作ってる人。Virtualをもっと身近に。