Admittedly something small.
2016年11月24日

モナドのまほう 第6話『makehumanとBlenderで涼風青葉ちゃんごっこの巻』

Blender Babylon.js makehuman


テキトーに楽しくゲームを作る日記の続きです。今回はコードが1ビットも出てきませんが許してください。

キャラクターモデリングがんばるぞい

それじゃあ今から涼風青葉ちゃんごっこします! 自分でイチからモデリングするのは大変なので、makehumanという3D人物モデルを作れるオープンソースソフトウェアを使います。「負け不満」なんていうネガティブな名前なのに、性別、年齢、体格なんかをスライダで設定すると自動でそれっぽい人体モデルを作成してくれる凄いやつです。ゲームにあるキャラクタークリエイト機能みたいなものです。

性別や年齢、身長や筋肉量、人種などのいろんなパラメータがあるので、これを適当にいじります。今回はゲーム用ということで、アニメ的なディフォルメのキャラクターを作るつもりなので年齢を低めにして頭身を下げます。開放感が溢れすぎていて公然わいせつ罪的な意味で危険が危ない感じがしたので、適当に服も着せました。

あとはこれを.dae(Collada)形式でエクスポート。それをオープンソースの3DCGオーサリングツールBlenderにインポートすれば、この通りです。

眼球のテクスチャがうまくキマっていないのか白目を剥いていますが、どうせ顔なんかは大幅に作り変えるので問題ありません(っていうかこの画像はQiitaでの説明用で、髪の毛とか邪魔なので実際には全裸でインポートしました)。

下絵を描きましょう

Blenderにインポートしたら、まずはモデルの右半身の頂点をバッサリ削除し、代わりにMirrorモディファイアで左右対称にミラーリングします。それからDecimateモディファイアで頂点数を削減したり、それからあとは足を伸ばしたり腕を細くしたりとアニメ体型にひたすら魔改造します。顔はテクスチャで表現することにして、眼球や口の中の頂点はばっさり削って塞ぎました。リアルな口パクとかしたいなら目や口もちゃんと残したほうがいいんですが、アニメ的な表現でそれをやると不気味になりがちですし、陰影のつき方が不自然になりがちなので避けました。雰囲気の確認のためにマテリアルやテクスチャも簡単に割り当てます。それでこんな感じになります。

うん。ぜんぜん可愛くない。ゲームではキャラクターの見た目は重要なので、なんとかしなくては。どこか全体のバランスがおかしい感じがしますし、髪型がヘルメット状態なのもあってどこかのっぺりとした表情ですね。髪型も何の目安もなく頂点をいじってもうまく形にならなくて難しいです。うまい人はいきなりモデリングでうまくいくんでしょうが、筆者にそこまでの技術はないので、いったん2次元のデザイン画を起こして、それをトレースすることにします。普通はデザインを決めてからモデリング始めるのでしょうが、このシリーズのコンセプトはとにかく「行き当たりばったり」なので手戻りが多いです。

二次元のお絵かきはこのあいだまでCLIP STUDIO PAINTを使っていたんですが、このあいだ試用期限が切れてしまったので、その代わりにMediBang Paintを試しています。なんか左右対称ツールがツールを切り替えるたびに軸を設定しなおさなくてはならなくてちょっと使いづらい……。ClipStudio買おうかな……。

なんか物足りなく感じたので、あざといデカリボンとか生やしたら、なんか島風っぽくなってしまいました。島風ではないです。天江衣とかでもないです。一応このキャラクターデザインにも意味はあるのですが、あまりに行き当たりばったりに作っているので、この設定が実際に活かされるのかは謎です。それでBlenderに下絵として読み込み、大きさと位置をなんかいい感じに合わせます。

イラストと合わせるとわかるんですが、makehumanからインポートしてなんとなくいじった顔って全体的に顔のパーツが上に寄っていますね。というかアニメ顔が基本的にパーツが全部下寄りなので、makehumanのリアルな頭身をアニメ的にするには、かなり全体を下に下げないといけないみたいです。それでひたすらいじること数時間。髪の毛ももう少しちゃんと生やして、テクスチャもなんかそれっぽい感じで仮置きして、こんな感じです。

なんか思っていたよりも少し頭身が高い感じがしますが、まあこんなものかもしれません。あんまり頭身が高いとカメラが引いた時に見づらいですが、ディフォルメし過ぎると今度はカメラが寄ったときに見栄えがイマイチになる気がします。キャラクターデザインもなんか物足りない気がするので、何か小物が欲しいですね。さらに、ゲーム内で実際に表示すると、Blenderで編集しているときとはまた違った感じで見えるので、今後も調整が延々と続きます。

それで、出来たキャラクターモデルをゲーム内に表示してみるとこんな感じになります。BabylonjsにBlenderからのエクスポートとインポートの機能があるので、ボーンアニメーションも含めてコーディング自体は簡単です。

シーン全体に平行光源がひとつだけなので、顔に影が落ちてすごく見苦しいですね。初代プレイステーションのグラフィックみたいなチープ感があります。発光か環境光を設定して影の部分を明るくするか、キャラクター専用の光源が必要かもしれません。シェーディングもセルシェーディングにしたいですね。それかいっそのことシェーディングを切ってしまったほうがまだ見栄えがいいかもしれません。この辺りもノウハウが全然ないので研究が必要です。

「ひふみん」で検索するとひふみんの画像と加藤一二三九段の画像が交互に表示される件

キャラクターのモデリングは大変なので、人間型キャラクターはこのプレイヤーキャラクターひとりだけにする予定です。でも、マルチプレイヤーオンラインゲームなら他のプレイヤーも表示しなくてはならないので、そのあたりどうするか考えなくてはいけません。なんかシルエット的なものを表示するだけでもいいと思います。

プログラムも書かないといけないのに、キャラクターモデリングまで始めるともう時間と体力がいくらあっても足りないです。筆者はこれで更にBGM制作までやろうとしてますからね……。先は長いです。このシリーズ始めたときにはゾンビサバイバルアクション作るとか言ってたのに(GAIJINはみんなゾンビ好きなので)、いつの間にかマインクラフトになっていて、メルヘンで萌えっぽい感じになってきたよ! いったいこのゲームはどこに向かっているんだ!

そういえばQiitaの仕様変わりましたね。ちなみに私はひふみんが一番好きです。ひふみんが好きな人はこの記事に「いいね」をしといてください。

次のお話


このエントリーをはてなブックマークに追加