先日は、

 

■ ローポリ 【 Blender 2.83LTS 】

 

にて、ローポリモデルを作りました。

 

 

な感じで、

 

 

 

 

のように366ポリゴン位のものになりますが、今回は、このモデルをUV展開を行って、テクスチャーペイントを施す事にしました。ここまでローポリだと、単一のベースだけのテクスチャーで、WorkBenchを使ったような作りにしたほうがよさそうな気がしたので、Bleder 2.79bのBGEで軽量に作る場合の選択肢のとして存在したマルチテクスチャーの表示でゲームを作る場合のテクスチャーと同じ感じで一枚の画像のみで作る事にしました。とりあえず、この方法だと、BAKEでAOとサブサーフェース辺りの情報を得たほうがいいので、景観の光で構成された質感(その作り方だと、スカイドームは光源ではなく、反球体の天体用のオブジェクトになるので、これがキャラと一緒に動くイメージになります。この時に、BGEだと表示範囲が限定されているので、これを回避するために、ローレゾで情報を増やす場合だと、精度を犠牲にして、縮尺を小さくして、オブジェクトを詰めることで、天球のサイズは同じでも、空間内の空のサイズを大きくすることができます。あとは、その空に浮かんでいる雲などをテクスチャーとして書き入れることになります。これと同じIBLの素材で光源を得てシーン内のBAKEを行うと、広めなシーンの陰影を追加できるので、カメラ位置と光源の向きが変わらないゲームの作り方だと、セルフシャドウの計算の必要がなくなるので、このBAKE時の質感を使用できます。)を使うことになりますが、今回は、

 

【 無謀にもトラックボールでテクスチャーペイントを行う 】

 

と言う自他共に認める 【 非推奨な方法 】 で、テクスチャーを追加することにしました。

 

 

デルに切れ目を入れる             

 

 テクスチャー絵を描く場合、各ポリゴンに対してカラーの情報を追加することになりますが、この場合、2つの方法があります。まず、超ハイポリもでるのように頂点の間隔が狭く、テクスチャー及び色彩を頂点単位で指定しても問題がない条件で使用できる 【 頂点ペイント 】 と言う物があります。Blenderでも頂点ペイントは可能なので、リトポロジーを行わない条件でハイポリモデルの物に関しては、条件が合えば頂点ペイントを使いますが、今回は、

 

【 レトロハードのようなローポリモデル 】

 

ですから、頂点ペイントを使うと、何処を目指しているのか解らないような物が出来上がるので、この方法は使いません。その為一般的に使用される 【 UV空間を使用して色彩の情報を割り当てる 】 方法を使います。ゲームのモデルの場合だとローレゾで作る場合もUV展開をしてテクスチャーを当てることになりますから、今回はこの方法を用います。この方法は、スタンダードな方法なので、モデルに合った展開を行って、テクスチャーを描いていくことなります。

 

 

■ UV空間                       

 

 3DCGは三つの座標軸を持つ立体ですが、テクスチャーと言うのは画像なので二次元空間ですから、平面なので、二つの座標軸しか持っていません。当然、この異なる物を適応することはできませんから、ポリゴンの座標をテクスチャーに合った平面に変換して座標を指定する必要があります。この時に使用するがUV空間です。この空間内に、ポリゴンメッシュの展開図を作成して、そのポリゴンの面が存在する場所にテクスチャーを描きこむことによりドット単位で指定したカラーデータを適応する事ができます。

 

 マテリアルの指定では、単一のメッシュに単一のカラーになり、頂点ペイントだと頂点から特定の効果範囲までの間にその色が指定されるという流れになりますが、UV展開後にそのUV空間に対してテクスチャーを当てることにより、細かく色が変化する画像をポリゴンメッシュに適応する事ができます。

 

 

■ UV展開                        

 

  UV空間には、ポリゴンメッシュの展開図を使用することになりますが、球体を切れ目も入れずに展開する事が物理的に不可能なように複雑な形状を展開するのに切れ目も入れずに展開することはできません。その為、UV展開時には展開が可能になるように、ポリゴンメッシュに切れ目を入れます。ただし、3DCGでは、切れ目と言う呼び名ではなく、縫い目を示す 【 シーム 】 になりますが、辺に対してシームを入れることになります。

 

 その為、テクスチャーを当てる前には、ポリゴンメッシュの展開図が作れるようにシームを入れることになります。

 

 

 ームをつける                    

 

 まず、

 

 

のようにモデルがありますが、人体の場合、大きく分けると5つのフラクタルで構成された筒状の物として考える事ができます。そうなると、筒を展開するためには縦に切れ目を入れる必要があるのでシームを入れることになりますし、5分岐しているのであれば、分岐をした先と元で分割する必要があります。その為、首、腕、脚の部分にシームを入れて、動体や頭も通常はシームを入れます。

 

 

のように首の付け根の辺を選択して、 【 CTRL 】 + 【 E 】 キーでメニューを出して 【 シームをマーク 】 を選択します。。

 

  

すると、シームが付きます。これを繰り返して、今回は、

 

 

のような場所にシームを付けておきました。シームを付けたら、

 

 

のようにメッシュ全体を選択して、 【 U 】 キーを押して、メニューを出して、その中から、 【 展開 】 を選択します。

 

 

すると、展開が行われるのですが、サイズが小さいので、今回は、

 

 

のように顔と手のテクスチャーを置きくするためにその部分のメッシュのサイズを調整しておきました。この平面の範囲にテクスチャーが来るので、解像度で指定したピクセルの相対比で情報を追加できますから、面積が大きいほどディテールを多く追加できます。

 

 通常は一体化をして展開するのですが、今回は、シンメトリーな状態で使うマップという想定で、鏡面用のテクスチャーを反転させて重ねた状態で使っているようなマップの使い方をしています。この状態で、新規テクスチャーを追加すると、

 

 

のようになります。この状態で、オブジェクトにもテクスチャーを適応する事になりますが、今回は、Workbenchや2.79bのBGEでマルチテクスチャーを使った時のような 【 光源の演算を全く行わない処理方法 】

を想定していますから、プリンシプルBSDFのテクスチャーはベースカラーに割り当てます。

 

 クスチャーペイント                 

 

 UV展開とテクスチャーが用意できたので、テクスチャーペイントを行います。タブでテクスチャーペイントの画面に切り替え

 

 

のようにしたら、テクスチャーをモデルに割り当てます。今回は、ベースからーに先ほど作ったテクスチャーを割り当てるので、ベースからーの横のアイコンをクリックすると割り当てる事ができる物が一覧で表示されますが、この中から 【 画像テクスチャー 】 を選択します。

 

 

すると、テクスチャーの選択になります。そこで【 +新規 】の左の画像のようなアイコンをクリックすると、

 

 

のように先ほど作ったテクスチャーが表示されます。この時に、作成したテクスチャーとこの読み込んだテクスチャーはフェイクユーザーの指定をして、消えないようにしておく必要があります。というのも、Blenderは作業内で使用していないマテリアルやテクスチャーを自動で整理してくれる非常に便利な機能を実装しているので、割り当てが行われていないテクスチャーやマテリアルは自動で削除されます。これを残す場合にはフェイクユーザーの指定をして消えないようにしておく必要があります。とは言っても、テクスチャーペイントを行っている場合、blenderが落ちてしまうと描いているデータが消えるので、テクスチャーペイントでテクスチャーが完成した場合には、必ずテクスチャーを画像ファイルとして保存しておく必要があります。これはBAKEを行う場合も同じです。

 

 画像の指定をすると、テクスチャが割り当てられるので、モデルにテクスチャーのカラーの黒色が割り当てられます。この状態になると、

 

    モデル

    テクスチャー

 

の双方でテクスチャーを描き込めるようになります。通常は、

 

    Eevee

    マテリアルビュー

    Cycles

 

で出力するので、質感が反映されますが、今回の仕様では、そうした計算を全くしないフラットな状態での表示を前提としているので、色を乗せただけだと、

 

 

のようになります。と言うか、モデルがしっかりしている場合だと、ポーズ人形の代わりになりそうな状態ですから、グリースペンシルで作業をする場合だと、逆に使えそうな気もしなくもありませんが、この状態だと、全く使えませんから、テクスチャーでディテールを描き込みます。

 

 マテリアル表示にすると、

 

 

のように凹凸が出るので、これを基準に色を塗っていきます。

 

 

■ カラーパレット                    

 

 先日、

 

■ GIMP

 

でブラシとレイヤーについて書きましたが、Blenderのブラシの仕様もGIMPと同じで、レイヤー効果のように重ね合わせた時に指定した効果を与えるような作りになっていますその為、画像をレイヤーで調整する事ができないので、塗りながら調整していくことになります。

 

 また、色を変えながら作業をするので、色を保存しながら作業を行う事になります。Belnderにも 【 カラーパレット 】 があるので、

 

 

のようにカラーおあれっとを新規作成して、 【 + 】 をクリックすることで、現在して入りしてる色を記憶できます。色を変えて塗りで使用する色が決まったら

 

 

のように追加していきます。とりあえず、色を変えながら、トラックボールでガシガシと描き

 

 

のような感じにします。これをレンダービューにすると、陰影がなくなるので、

 

 

のようになります。CyclesでAOとかをBAKEした場合には、この質感に対して影の情報やSSSによる半透明な状態も追加する事ができます。

 

 

のように描きこむと、

 

 

のようになります。その為、色彩の違いがあるとこんな感じでレンダリング結果にも反映されます。モデルについては、髪の毛を入れる時に肌色だと、露骨にスキンヘッドになるので、スキンヘッドを使わない条件だと、

 

 

のように地肌が透けても影響がないように色を入れておくほうがいいような気がします。ローポリだと帽子とリボンのような考え方になりますが、房を一体化させて一つの反球体の加工品を髪の毛のメインの部分として使用して、それ以外の部分を板ポリゴンや他角形ポリゴンでおさげやメインの髪の毛以外を作る感じになりますがスキンヘッドのテクスチャーとそうでないテクスチャーを用意すると使いやすいかもしれません。

 

 ちなみに、レンダーの結果ですが、カラーマネージメントに対応しているので、

 

 

 

のように質感を変更する事ができます。これは明るさの変更なので、シーンの光源の影響をBAKEで適応した場合には、カラーマネージメントの影響を受けるので、ガンマや露出で暗くした場合には、BAKEの結果も暗くなります。また、カラーマネージメントでは、コントラストの変更もできるので、同じモデルで同じテクスチャーでも、コントラストの違いで

 

 

のような違いが出ます。とりあえず、今回は全て塗ったわけではありませんが、

 

 

のような感じでUV展開をして、トラックボールを使ってテクスチャーペイントでテクスチャーを作ってみました。

 

 BAKEについては、

 

■ BAKE 【 Blender 2.83 LTS 】

 

で使用しましたが、単一のテクスチャーで光源お計算をしない場合に質感を出そうと思うとそう言った処理を併用すると光と影の計算結果をベースカラーにテクスチャーを割り当てただけのモデルに対しても適応できます。

 

 

回の作業環境                   

 

  ■ Core i5 650

  ■ H55M-Pro 

  ■ DDR 1333 2GBx2+1GBx2(DUAL CH)

  ■ Quadro K620(PCI Express x16 【GEN2動作】)

  ■ SATA HDD

  ■ WINDOWS 10 x64 (1909)

 

  ■ Blender 2.82a (x64) 

     https://www.blender.org/

 

  ■ Gimp 2.10.18 (x64)

     https://www.gimp.org/