サイコロを作る
鉛筆を作る<< サイコロを作る >> 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.ddsdice_n.ddsを配置。

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