凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Blender で初めてのキャラクターモデリングに挑戦してみた

はじめに

今年の目標はゲーム制作なので、キャラクターや背景を作るのにモデリングできるようになりたいな、と思いまして、今回、プログラミングを放ったらかして2週間ほど使ってチャレンジしてみました。前回ドット絵でゲーム制作にチャレンジした際は時間かかりすぎて途中で色々アレになって完成に至らなかったので、今回は Unity とかで 3D モデルを利用してゲーム制作にチャレンジしようと考えています。
Blender は前書いた記事(http://d.hatena.ne.jp/hecomi/20120818/1345307205)の前後で読んだ以下の本で仕入れた知識程度です。
後半部分は読んだだけで終わりましたが、ロケット飛ばすところまでは実践してやりました。

で、今回はキャラクターモデリングに挑戦するために、以下の本の前半部分に挑戦してみました。導入部分で Blender の基本操作について、そして前半がローポリモデル、後半がハイポリモデルの作成方法について書いてあります。この本のお陰で大分モデリングが出来るようになった気がします。作者様ありがとうございました。

それぞれのフェーズでどんな感想を持ったか等、次回の参考のためにメモ描きしておきます。各手順の詳細は本に詳しく書かれていますので、ぜひ皆さんも買ってチャレンジしてみてください!

完成後動画

本にサンプルキャラクターとして作成手順が載っている「鹿追 咲来さん」を作成しました。完成後に Blender でグリグリ動かしている様子です。

作業覚書

二面図をトレス

下絵を描いてそれをトレースしてなんとなくの形を作ります。

本では Inkscape で清書した図になっていました。最初はイラレで清書しようと思ったのですが、正直面倒だったので手描きのまま貼り付けて大きさだけ合わせてやって行きました。なんだかんだでグリグリ動かして微調整して元の絵から大分ずれた形になったので、清書する必要ない気もします。

体全体のポリゴンを作る


手順が詳細に説明されていたので、トップダウン(頂点をプロットしてつないでいく方式) / ボトムアップ(立方体などの基本図形からモリモリする方法)でのポリゴンの作成方法を両方を学ぶことが出来ます。グリグリ回転させて頂点ちょっと動かして...の繰り返し作業を行うので、それっぽく見えるように納得行く形ができるまでかなりの時間を要しました。最初は頂点の調整の仕方が分からずに、四角形メッシュの対角線を F で結んで三角形メッシュ2つに分割したつもりだったのに、実は出来ていなくて貼り直し作業をした、みたいなことが起きて大変でした。
しっかりループカットやナイフを使ったり Alt+M で頂点をマージしたりといった面の増やし方/減らし方を覚えてからチャレンジするのが良いと思います。

UV 展開



ポリゴンを 2D に展開してそこに絵を書き込むとポリゴン側に反映されるところです。色がついて「おぉー!」とテンションが上がる瞬間です。
が、ここはそもそも良くわかっていなかったこともあり、本当に失敗しました...。重なった場所もあるし、テクスチャ歪み場所もあるし、色分けたいところで切ってなかったりとか…。あとでやり直せば良かったのですが時間かかりそうなので泣く泣く飛ばしました。
今、ニコニコ動画Blender 講座を見て回ってるのですが、「あー、こうすれば良かったのか...」と反省する点が多々ある感じです。

リギング


自由にモデルを動かせるようにArmature を仕込むところです。こういう仕組みで動いていたのか!というのが分かって面白いです。
身体のリギングは楽しかったのですが、物理演算用に作った髪のリギングはポリゴンを無邪気に増やしていたので、グルーピング設定するところとか辛かったです。
反省点としては、関節部分が元のポリゴンの構造に大きく依存しているので、腕を曲げると関節が薄くなってしまう問題をうまく解決できなかった点が挙げられます。メッシュの構造変えたくてもテクスチャに依存してしまったりしているので、次は UV 展開の前にリギングしようかな、とか考えています。

物理シミュレーション

髪やスカートに重さをつけたり衝突判定をつけて、モデルの姿勢に追従してくれるようにするところです。
よくよく考えれば分かることなのですが、はじめはボーンをいじると自動的に動いてくれるものかと思っていて、アニメーションは Bake するものだと気づくまで、あれ?と悩みました。
後、髪の毛が self collision を ON にしていたのでボサァーッとなる問題でちょっと詰まりました。

表情のモーフィング


0.0 と 1.0 の頂点の配置を作ると間を補ってくれる感じです。思ったより綺麗に動いてくれて驚きましし、色んな表情を組み合わせて試せて面白かったです。
ただ、表情を綺麗に見せるためには、頂点やテクスチャのレベルからしっかり考えておかないといけないな、と思いました。

銃の作成


Python の写真からトレスして割りとサクッと作れるようになってたことに驚きました。
そういえば、BlenderPython でいじれるから「PythonPython 作ってみた」とかネタ的に受けないかなとかくだらない事考えてました。

レンダリング


最後に、適当にポーズをつけたり背景をおいたりしてレンダリングをします。完成画ができると感無量ですね!

おわりに

人間としてのバランスが取れていなかったり、UV 展開ミスっていたり、関節部分のポリゴンや重み付けが甘かったりしてうまく曲がらなかったりと反省部分はたくさんあります。
が、次の機会にこういった反省を活かして頑張るとして、次はもうちょっと簡単なキャラクターをベースに作成して、実際に Unity 上で動かすことをやって行きたいと思います!
後は余力があれば MMD のモデルの作成の仕方とかも勉強してみたい。