サイコロを作る
鉛筆を作る<< サイコロを作る >> Tシャツを作る
モデリング入門チュートリアル第二弾です。

目的

サブディビジョンサーフェスを使ったモデリングを覚えます。
またハイポリからローポリへの転写等を身につけます。

覚えられる機能一覧:
オブジェクトを隠す、オブジェクト名変更、複製、Subdivide、サブディビジョンサーフェスモディファイア、プロポーショナルエディット、ミラーモディファイア
Remove Doublesでの頂点マージ

元ネタとなった北田さんのブログ記事




必要ツール

Blender
NifSkope
B.A.E
Photoshopもしくは
GimpPaint.Net


事前の準備

まず資料を集めて、作るのものの情報を整理します。
角が丸い。1の目は大きい。
サイコロの面は天一地六東五西二南三北四。

流れとしてはローポリ→UV→ハイポリ→ペイント→ベイク→出力です。

まずLoop Toolsというアドオンを導入します。
  1. File→User Preferences→上部のAddonsボタン を押します。
  2. 検索窓でloopと打つと LoopTools が出るのでチェックを入れます。
  3. 左下の Save User Setting を押して、ウィンドウを閉じます。


ローポリゴンモデルとUV作成

Blenderを立ち上げると立方体が出てますよね? ローポリのモデリングはそれで終了です。
UVを展開します。エディットモードで Aキー で全選択上に対にして、 Uキー のあとSmart UV Projectで設定はそのままです。
Sキー で全部0.9倍ぐらいのサイズにして、各UVの島の間隔を空けてください。
UVの島が近いとベイクした時に境目が発生してしまうので。

Nキー でプロパティ出して、Nameの項目にLowPolyとつけておきます。 ※オブジェクト名は必ず英語で付けてください!


ハイポリゴンモデルの作成

オブジェクトモードでローポリモデルを選択して、 Shift+D→右クリック で複製します。
複製した方にHighPolyとつけます。
LowPolyの方を選択して、 Hキー で隠します。
HighPolyの方を選択してエディットモードに入ります。

Wキー でスペシャルメニュー出してSubdivideを選びます。
ツールシェルフ側のOperatorでNumber of Cutsを7にします。
これで面の数が8x8で作れます。

他の目に流用しやすいので5の目の面から作ります。
東が5なので、 Ctrl+テンキー3 で視点を移動します。
Bキーのボックス選択 で右上の4マスを選択して、 Iキー で面の内側に面を作って、そのままマウスを動かして調整して左クリックで確定します。

ツールシェルフのToolsタブのLoopToolsの Circle を押して作った内側の面を円形にします。
そのあと {Iキー}を3回繰り返して画像のようにします。

サブディビジョンサーフェスモディファイアをかけます。サブディビジョンサーフェスの特性についてはモデリング入門で解説してます。
モディファイアから Subdivision Surface を選んで以下のように設定します。

Oキー もしくは画像の赤枠を選択してProportional Editを有効にします。
隣接する頂点辺面を同時に動かす機能です。

Gキー 押してからマウスホイールでその影響範囲を調整できます。
円真ん中の頂点を選択してから Gキー→X→0.05 でProportional Sizeは 0.22 で。

きれいな凹みになるように円のエッジ位置を調整。
Oキー 押してProportional Editをオフにして、
ループ選択(Alt+右クリック)とG2回押しでエッジに沿ってスライドを使います。


サイコロど真ん中の頂点一つを X→Vertice で削除します。

Bキーのボックス選択 で目の部分を選択して、 Shift+D で複製します。
そのまま、 Ctrlキー 押しながら移動させて真ん中のくり抜いた部分に当てはめます。

面をくっつける必要があるので
Aキーで全選択 してから、ツールシェルフの Remove Doubles を押してマージします。
押した後にその下の項目でMerge Distanceを0.01します。

ミラーで5つの目を作るために、サイコロの3/4削除をします。
X→Vertice

プロパティウィンドウからモディファイア→ミラーモディファイアを選びます。
YZにチェックを入れて、Xは外して、赤枠矢印のところを押してサブディビジョンサーフェスモディファイアより上にもっていきます。
モディファイアは上から順番に適用されるのですが、サブディビジョンが先だと角が丸まって頂点がくっつかないためです。
ミラーモディファイアの Apply を押します。

あとはこれの応用です。

3の目を作ります。南3なので5からみて左隣です。

3の目の部分を予め削除しておき、5の目の部分から目を3つ選択します。
Shift+D で複製してから、 テンキー7 で視点切り替え、 R→90 で回転して、左クリックで確定します。
Aキー で全選択してから Remove Doubles でマージ。

あとは1以外は全部同じ要領で作ります。(穴あけ→コピー→回転→マージ)



1の目を作ります。
サブディビのモディファイアかかっていると作業しにくいので、モディファイアの目のマークを押して表示をオフにします。

テンキー7 で上を向けてから、真ん中8マスを Bキー で選択します。
X→Dissolve Face で内側の余分な頂点を削除。
LoopToolsのCircleで円形にします。

ナイフツールで以下のように繋ぎます。全部四角面ですね。
再びサブディビのモディファイアを表示オン、Proportional Edit(O)もオンにしてから G→Z で凹ませます。
Alt+クリック のループ選択と G二回 押しで各円の位置を調整します。

仕上がりはこんな感じです。

テクスチャペイント

鉛筆チュートリアルとかぶるのでさっくりと。
ハイポリの方でテクスチャペイントモードに切り替えてSlotsタブでスロットを新しく作ります。1024x1024pxで。
画面分割して、UV/Image Editorを表示します。
ToolsタブでFillのブラシを選んでRGBすべて0.95ぐらいで全面塗ります。

切り貼りで作った関係で1以外の目の部分は一つ塗れば全部適用されるはずです。
ブラシをTexDrawに切り替えてRGB0.1ぐらいのグレーで目を塗ります。
あとは一の目をR0.45G0.1B0.1ぐらいの暗めに塗ります。

描いたテクスチャをベイクするのにはマテリアルの設定でテクスチャを指定しないといけません。
テクスチャペイントしただけだと仮の状態なので。
UV/Image Editor→Image→Save as Image で塗ったマップを保存します。

マテリアルを New を押して新規作成して、となりのテクスチャプロパティでも New を押します。

▼Imageからテクスチャペイントしたマップを選びます。
これでテクスチャの指定は終了です。


ベイク

Blenderでベイクします。

まずきれいにベイクするためにSmoothをかけます。
タブキーでオブジェクトモードに戻って、ツールシェルフからShadingを Smooth にします。
ローポリの方は隠してあるので Alt+H で再表示して、こちらもShadingを Smooth にします。

ノーマルマップのベイク

オブジェクトモードでハイポリの方を先に選択して、次に Shiftキーを押しながらローポリを選択 します。
この状態でプロパティウィンドウのRender→Bakeのところを以下のように設定して、 Bakeボタン を押します。
(エラーが出たらたぶんベイク先の画像がないためなので、ローポリを選択してUV/Image Editor開いて新しく画像作ってください)

作ったノーマルマップは Image→Save as Image で保存してください。例ではdice_n.png

テクスチャのベイクと修正

Bake ModeをTexturesにして、ベイクします。

ベイクした状態そのままだと四隅の部分が黒くてはみ出るのと、
6の部分がハイポリ側のUVの関係で余計な転写されてるので塗りつぶします。
UV Editorのモードをペイントに切り替えて、直接UV上に塗ります。
ブラシの設定はTキー押せば出ます。 Sキー でスポイトしてグレーの色を拾って、赤枠の該当の部分を塗りつぶします。
四隅は全ての面で塗りつぶしておきます。
塗り終えたら、Image→Save as Imageで保存してください。例ではdice.png

AOベイク

立体感をつけるためにアンビエントオクルージョンマップをつくります。

プロパティウィンドウのWorld(地球マーク)からAmbient Occlusionにチェックを入れて、以下のように設定してBakeボタンを押します。
ベイクが終わったら、 Image→Save as Image で保存してください。例ではdice_ao.png

AOマップとディフューズマップを合成します。
Gimpやフォトショップでdice.pngをドラッグアンドドロップしてから、そのあとその上からdice_ao.pngをドラッグアンドドロップします。
dice_aoの方をレイヤー上で上にしてブレンド方法を乗算にしてください。

マップはPaint.NET等ですべてddsに変換してください。


出力

バニラのファイルの置き換えで出力します。例ではジュリアノスのオブジェです。
  1. B.A.Eで Skyrim - Meshes.bsa を開きます。
  2. Select Noneボタン を押して全部のチェックを解除。
  3. meshes\clutter\shrines\shrinejulianos.nif だけチェックを入れます。
  4. Extractボタン を押して展開します。

File→Import→ NetImmerse から先ほど展開した shrinejulianos.nif を選択して、
Import Scaleを0.1にして、あとはデフォルトのままで読み込みます。

オブジェクトモードでLowPolyの立方体を G→Z で上に持って行き、ジュリアノスのオブジェと同じ高さに持ってきます。

オブジェクトを結合します。 結合される方→結合先の順 なので、LowPoly→ジュリアノスの順に Shift押しながら選択 して、 Ctrl+J で結合します。
エディットモードに入って、ジュリアノスの方のメッシュを消します。
これで設定をすべて引き継ぎました。
オブジェクトモードに戻って File→Export→ NetImmerse で以下の設定で出力。

配置

Data\meshes\clutter\shrines\ shrinejulianos.nif にリネームして配置。

そのnifファイルをnifskopeで開いて、
BSLightingShaderProperty→BSShaderTextureSetのTexturesを
textures\dice.dds
textures\dice_n.dds に書き換え。

Data\Textures\ dice.dds dice_n.dds を配置。

ゲーム起動して確認します。
ソリチュードの神々の神殿が確認しやすいかと思います。
コンソールコマンドcoc solitudetempleofthedivines