「サイコロを作る」の編集履歴(バックアップ)一覧に戻る

サイコロを作る - (2016/06/07 (火) 16:36:55) のソース

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

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

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

元ネタとなった[[北田さんのブログ記事>http://eijikitada.blogspot.jp/2012/03/cg.html]]

----

#contents

*必要ツール
[[Blender>>http://www.blender.org/download/]]
[[NifSkope>>http://niftools.sourceforge.net/wiki/NifSkope]]
[[B.A.E>>http://www.nexusmods.com/fallout4/mods/78/]]
Photoshopもしくは
[[Gimp>>http://www.gimp.org/]]と[[Paint.Net>>http://www.getpaint.net/]]


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

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

まずLoop Toolsというアドオンを導入します。
+&bold(){&color(#134f5c){File→User Preferences→上部のAddonsボタン}}を押します。
+検索窓でloopと打つと&bold(){LoopTools}が出るのでチェックを入れます。
+左下の&bold(){Save User Setting}を押して、ウィンドウを閉じます。
#ref(addon.png)


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

&color(#4c1130){Nキー}でプロパティ出して、Nameの項目にLowPolyとつけておきます。&bold(){※オブジェクト名は必ず英語で付けてください!}
#ref(changename.png)


*ハイポリゴンモデルの作成
オブジェクトモードでローポリモデルを選択して、&color(#4c1130){Shift+D→右クリック}で複製します。
複製した方にHighPolyとつけます。
LowPolyの方を選択して、&color(#4c1130){Hキー}で隠します。
HighPolyの方を選択してエディットモードに入ります。

#ref(subdivide.png)
&color(#4c1130){Wキー}でスペシャルメニュー出してSubdivideを選びます。
ツールシェルフ側のOperatorでNumber of Cutsを7にします。
これで面の数が8x8で作れます。

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

ツールシェルフのToolsタブのLoopToolsの&bold(){Circle}を押して作った内側の面を円形にします。
そのあと&color(#4c1130){Iキー}を3回繰り返して画像のようにします。
#ref(circlei3.png)

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

&color(#4c1130){Oキー}もしくは画像の赤枠を選択してProportional Editを有効にします。
隣接する頂点辺面を同時に動かす機能です。
#ref(propotionaledit.png)

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

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


サイコロど真ん中の頂点一つを&color(#4c1130){X→Vertice}で削除します。

&color(#4c1130){Bキーのボックス選択}で目の部分を選択して、&color(#4c1130){Shift+D}で複製します。
そのまま、&color(#4c1130){Ctrlキー}押しながら移動させて真ん中のくり抜いた部分に当てはめます。
#ref(dupli.png)

面をくっつける必要があるので
&color(#4c1130){Aキーで全選択}してから、ツールシェルフの&bold(){Remove Doubles}を押してマージします。
押した後にその下の項目でMerge Distanceを0.01します。
#ref(removedoubles.png)

ミラーで5つの目を作るために、サイコロの3/4削除をします。
&color(#4c1130){X→Vertice}
#ref(delete.png)

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

あとはこれの応用です。

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

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

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

#ref(other.png)


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

&color(#4c1130){テンキー7}で上を向けてから、真ん中8マスを&color(#4c1130){Bキー}で選択します。
&color(#4c1130){X→Dissolve Face}で内側の余分な頂点を削除。
LoopToolsのCircleで円形にします。
#ref(bcirclei5.png)

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

仕上がりはこんな感じです。
#ref(1.png)

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

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

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

マテリアルを&bold(){New}を押して新規作成して、となりのテクスチャプロパティでも&bold(){New}を押します。
#ref(newmaterial.png) #ref(newtexture.png)

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


*ベイク
#ref(bake.png)
Blenderでベイクします。

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

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

作ったノーマルマップは&bold(){&color(#134f5c){Image→Save as Image}}で保存してください。例ではdice_n.png

**テクスチャのベイクと修正
Bake ModeをTexturesにして、ベイクします。

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

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

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

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

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


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

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

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

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

**配置
&bold(){&color(#134f5c){Data\meshes\clutter\shrines\}}に&bold(){&color(#134f5c){shrinejulianos.nif}}にリネームして配置。

そのnifファイルをnifskopeで開いて、
BSLightingShaderProperty→BSShaderTextureSetのTexturesを
&bold(){&color(#134f5c){textures\dice.dds}}
&bold(){&color(#134f5c){textures\dice_n.dds}}に書き換え。

&bold(){&color(#134f5c){Data\Textures\}}に&bold(){&color(#134f5c){dice.dds}}と&bold(){&color(#134f5c){dice_n.dds}}を配置。

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


 
目安箱バナー