【Blender】モデリング練習メモ「モグフィー」編

というわけで、今回はひさびさに Blender に関するお話です!
ひさびさどころか、新ブログに入って1度も書いていなかったりしますが・・・。

shot2ss20160517232039451

タイトル通り、Blender を使ったモデリングの練習になります!
モデリングの方法を変えたり、キャラクターをリデザインしたりしました。

モデリング手法の変更

Blender のモデリング手法は大きく2つに分かれるそうです。
「Cube や Sphere を変形させて形作る」か「1つの面を伸縮・拡張させて形作る」かですね。

今まで自分は前者のやり方でモデリングしていました。
が、Sphere に対してスカルプトモードでコネコネしたりすると歪んで行ってしまい、全体的な出来栄えが悪くなりました。
また、形作っているうちに頂点数がとんでもない数になっていたり、面の形がバラバラでどうしようもない状態になってしまったりもしました。
(3DCGを理解している人ならアフターケアが上手だったり、そもそもそんな状態にはならないと思われますが・・・)

ということで、今回は「1つの面を拡張させてモデリングする」方法にチャレンジしてみます。
既存オブジェクトを変形させる方法より手間が掛かりますが、面や頂点を整えて作っていけるので、細かい修正が楽です。
Unity 的にはインポート時のパフォーマンスは勿論、Clothコンポーネントを付けたりする際に重要になってきます。

実際の手順等は下記サイトを参考にさせて頂きました!
今回のモデリングの基本的な流れも書いてある通りに行っています。

http://nvtrlab.jp/column/2-2

キャラクターのモデリング修正

項目冒頭で愚痴ですが、「キャラクターのモデリング」とぐぐっても、大抵はリアルな人間や動物ばかりヒットします。
自分のゲームのキャラのような、「2足歩行する動物っぽいキャラ」なんてモデリングしている人はいないようです。
日々グラフィック技術が進化する中、こんな「ローポリのよく分からないキャラ」を好き好んで作ること自体がマイナーなのでしょうか。
そんな時代との逆行感を(勝手に)感じながらも挑戦します!

今回のお題はメインキャラの1匹「モグフィー」です!
本ブログヘッダー右上の紫色のキャラがそれです。
特にモチーフとしている動物もなく、適当に作って形にしたよく分からないキャラです。
しいて言えば猫・・・でしょうか。

shot2ss20160517233741388

上が今ゲーム内で使用しているモデルです。
見た目はそこまで破錠していませんが、モデルの頂点や面が壊滅的なことになっています。
ほぼ全て Sphere を変形させて作ったので、球状になっている部分は特に酷いです。

また、このキャラを知人友人に見せたところ「全体的に暗い」「劣化ドラ○もん」など散々な言われようだったりします。
この際せっかくなのでデザインも変えてしまおうと思います。

参考サイト曰く、ガイドとなる絵があるといいらしいです。
モグフィーのリデザインも兼ねてさくっと描いてみました!

mogffy12

大きな変更点は頭の模様と前後に垂れたマフラー、そして下半身に服を着ていることです。
割と別キャラ化している感はありますが、他2匹と違ってフィーリングで作ったキャラなので問題ないです。
モデリングのガイドとなるかは微妙ですが、ひとまず Blender 上でバックイメージとして設定します。

配色は考えていませんが、前よりは明るい色を使いつつ、局所的に暗い色を使うようなイメージでいきます。
「そもそもイラストが下手」というのは仕様なので気にしないようにします。

shot2ss20160517232321275

悪戦苦闘しつつ、とりあえず形にしたのがこちらです。
初めての面貼り手法だったので変になっている部分もあり、妥協している部分も多いです。
やり方は分かってきた気はしますが、原案とはかけ離れた微妙な出来です。

shot2ss20160517232600939

服は胴体部分にスッポリ着せています。
一見すると「服着てたら内側の本体要らなくね」という話ですが、ここも Unity でClothコンポーネントを使用する予定のため、内側も作っています。
改めてみるとかなり厚みのある服で、動きにくそうな印象を受けます。

実際に今回考えたデザインで行くかはまだ考えていません。
旧モグフィーもそれはそれで気に入っているので悩ましいところです。
いくつか考えたり作ったりして、お互いの良いところをマージしたモグフィーを作り上げたいです。

ちょっとした操作メモ

「個人的に割と重要だった」操作についてメモします!

・辺の中間点に頂点を作る
辺を選択後、Wキーのメニューから「Subdivide」を選択すると、辺の中心に頂点が作られます。

・頂点の統合(マージ)
Alt+M でマージメニューが表示されます。
選択中の頂点をどのように統合するかを選択できます。

・重複している頂点を削除
エディットモードで選択後に Ctrl+V の頂点メニューから「Remove Docubles」で実行できます。

自分がよくやるミスで「エルード(E)しようと思ったけど、右クリックでキャンセル」があります。
右クリックした時点で伸縮用に新しい頂点が作られるので、そのまま頂点移動せずに操作を終えてしまいます。
結果、同じ位置に頂点が重複してできていることがあります。
なので、頂点移動した際のメッシュが明らかに変な場合は、これで解決したりします。

・Proportional Editing モード
こう書くと何のことだかさっぱりですが、3Dビュー下のこのボタンのことです!

shot2ss20160517232851323

これを切り替えると、頂点や面などを変形させた際の影響範囲を変更できます。
Connected の場合は変形に合わせて影響範囲内の頂点も変化します。
影響範囲は円で表示されるので、マウスホイールの上下で範囲を拡縮できます。

・定期的なオブジェクトの全コピー
すごく単純なことですが、作成中のオブジェクトを定期的に全コピーし、適当な場所に置いています。
XY軸を合わせると視点を切り替えた際に邪魔なのでずらしておきます。

shot2ss20160517232943099

勿論こまめにファイル自体も上書き保存していますが、進めてから「この部分ダメだった!」的なことが起きた場合、現物のコピーからやり直せるのは大きいです。
「Ctrl+Zでいいじゃん」とも思いますが、Blender のアンドゥは変な挙動をするときがあるので、あまり信用していなかったりします。
インポートする際に消せばいいだけなので、割と重宝しています。

まとめ

そんなわけで、Blender のモデリングの練習をしてみました!
Unity と比べて Blender は日本語サイトが少ないので、モデリング1つでも大変です。

自分のゲームではリアルなモデルである必要はないので、割と妥協している部分もあります。
後々気が向いた時に直す程度に考えておくと気が楽です。
そういった意味でも、今回の手法なら手直しがしやすいので、こんな感じのモデリングも練習していきたいです。
いろいろなものを作ってみるのが何よりも大切・・・でしょうか。

【再編集】Blender開発メモまとめ

※本記事は旧ブログの記事を再編集し、再度投稿したものです。
 一部内容に差異がある可能性がありますので、予めご了承ください。

ちょっとしたメモ

基本的なことからどうでもいいことまでメモしておきます!

・法線の再計算
面選択後、ツールシェルフからRecalcrateを選ぶかCtrl+Nでできます。
Unityへインポートした際にメッシュの表示がおかしくなる場合、法線を外側に再計算させるといい感じです。

・オブジェクトの中点の修正
Shift+SでCursor to Centerを選択し、カーソルを真ん中に移動させておきます。
オブジェクトを選択し、Shift+SのSelection to Cursorを選択します。
あとは3DView左下のObjectメニューから、Transform→Origin to 3D Cursorを選択。
Origin to 3D Cursorをする前に、ずれを手動で修正するといい感じです。

・RemoveDoubles
Editモード中に面選択後、Ctrl+Vのメニュー内にあります。
オブジェクトの面が重複しているかをチェックし、取り除いてくれるものです。
面選択の具合がおかしかったり、テクスチャが上手く貼れない場合に試してみるといいかも。

オブジェクトを結合した際の不自然な線もこれで修正できます。
エクスポートする前にも確認するとよさそうです。

・MarkSeam
Editモードで辺選択後、Ctrl+Eかツールシェルフ内にあります。
赤い線ができ、この状態でUV展開を行うことで、赤い線を切れ目とした展開図になります。
円形のオブジェクトにテクスチャで模様を貼ったりする際に便利です。

・Boneを左右対称に作る
AmatureオプションのX-Axis-Mirrorをオンにした状態で、Shiftを押しながらEで伸ばします。

モディファイア

・Mirror
オブジェクトを左右対称に作る際に使用します。
Editモードで片側のみを削除してから適用するといい感じです。

・Subdivision Surface
「頂点数を増やさずに面数を増やす」モディファイアです。
Cubeなどの単純なオブジェクトから形作る際に便利です。

shot2ss20150422233129491

オブジェクトの面自体は多くなっていますが、頂点数はCubeのままなので、エディットモードでの編集が楽になります。
Viewの値を変えることで面の細かさを変更することができます。
Iキーの面挿入やEキーのエルード、Ctrl+Rのループカット等を組み合わせれば、これだけでも多彩なモデリングができます。
上手く調節すると曲面も簡単に作成できたりします。

Applyすると頂点数が実際の面数に合わせて作られます。
適用後、smoothモディファイアを使えばかなり滑らかになります。

・Boolean
ブール演算を行う際に使用します。
オブジェクトを別のオブジェクトの形に合わせて切り抜くことができます。
単純ながらかなり効果的です。

Oprationを切り替えることで切り抜く以外の演算も行えます。
Objectには切り抜く部分となるオブジェクトを選択します。

アニメーション分割

長いアニメーションをUnityでフレーム区切りするのではなく、各アニメーションを独立させてインポートする方法です。
EditorTypeをDopeSheetに変更し、メニューバーのNewボタンを押して新規アニメーションを作成します。
アニメーション名を入力し終えたら横のFを忘れずに押します。

この状態でキーフレームを取得していくと、作成したアニメーションに対して設定されていきます。
次のアニメーションを作る際は「+ではなく×」を押します。(重要)
+は「現在のアニメーションを複製」みたいな挙動になるので、単に次のアクションを作る場合は不便です。
×を押すとアニメーションが消えるので、再度Newボタンを押して作成していきます。

Blender全般の操作ですが、×を押しただけでは消えないようになっています。
アニメーションも同様で、画面上は消えていますが、内部的には保存されています。
本当に消したい場合はShiftを押しながら×をクリックした後、Blenderを再起動すると削除されます。

ファイルパス修正

テクスチャとして貼られている画像ファイルをBlenderが見失った場合、テクスチャ部分がピンク色で表示されます。
「該当ファイルを移動・削除」「ドライブレターが変わった」などで起こりえます。

とりあえずの直し方として、メニューのFile→External_Data→FindMissingFilesを選びます。
ダイアログが表示されるので、テクスチャとなる画像ファイルが存在するフォルダを選択しましょう。
上手く認識すればピンク色の部分にテクスチャが貼り直されます。

画像ファイルの扱いを絶対パスから変更することで、間接的に防止できます。
以下の2つのどちらかで出来るようです。

・ファイル参照を相対パスにする
先程のExternal_Dataの中の「MakeAllPathsRelative」を選択します。
これは使用しているすべてのファイルの参照を相対パスに変換してくれます。
これならドライブレターが変わっても大丈夫です。

・Blenderファイルに画像ファイルを内包させる
こちらは画像ファイルを参照せずに、そのままデータとして入れてしまおうという話です。
External_Dataの中の「Pack into .blend file」を選択。
最も確実な方法ですが、画像ファイル分サイズが大きくなること、画像ファイルの修正が面倒になることに注意が必要です。