視覚班
齋藤慎吾 西谷秀市 山本聖也 村井大輝
齋藤慎吾 西谷秀市 山本聖也 村井大輝
この班では、「キャラクターの自動生成」「視覚要素のデザイン」を課題としています。
課題を実現するために、実際の漫画作品から顔を集めパーツ毎に分類、それらのパーツを自動的に並べて表示するアルゴリズムを作成しました。プログラムにより出力された顔から適切なものを選択し、ゲームに合うようにリデザインして実装しています。
視覚班では、ゲーム内に登場する多くのモブキャラクターを限られた時間と作業量で作成できるようにするため 、登場するモブキャラクターの顔を自動的に生成できるプログラムの開発を目指しています。
本年度は、モブキャラクターの顔を自動生成することを目標としています。生成するモブキャラクターの属性は性別が「男性・女性」の2属性と、年齢が「子供・成人・老人」の3属性を掛け合わせた計6種類です。
ジャンルや年代を問わずあらゆる漫画作品から正面に近い顔を収集しました。具体的には写真の撮影やスクリーンショットによりキャラクターの顔をPCに取り込み、集めたデータは年齢と性別で6種類に分類(少年・少女・男性・女性・おじいさん・おばあさん)しています。
画像編集ソフト(CLIP STUDIO,MediBang Paint)を使用し、髪・眉・目・鼻・口・輪郭の6パーツにレイヤーが分かれた500px×500pxの2値画像を作成しました。また、Adobe AfterEffectsを用いてモーフィングを行いました。これは少年を例にして説明すると、5枚の目の収集画像から画像同士の中間を作成するものです。これにより5枚の収集画像から合計360枚の画像を作成しました。
図1. 自動生成アルゴリズムの簡易図
モーフィングを用いる方法とランダムに顔パーツを並べる2つの方法を用いて顔画像を生成しました。
モーフィングを用いる方法ではキャラクターの明るさを5段階に分類し、それぞれのモーフィングしたパーツを重ねることで画像を生成しました。顔パーツの画像にはそれぞれ360枚の中間画像があるため、360段階で画像を変化させることができます。最終的には男性、女性、おじいさん、おばあさんのキャラを生成し選別しました。プログラミングや方法の提案などは迎山研究室の白石さんに協力していただきました。
ランダムに顔パーツを並べる方法では、収集したデータを精神年齢と性別で分類し、それぞれのカテゴリ(男性、精神年齢・低など)ごとに顔パーツをランダムに配置し顔画像を生成しました。ランダムに生成した顔画像の中から、こちらで決めた条件をもとに画像を選別しました。画像を選別する際の条件はそれぞれの顔パーツのy座標が髪>眉>目>鼻>口>輪郭となるようにしました。プログラムによって選別された画像の中から、最後に人間の目で作品にあう顔画像を選びました。実際には少年、少女の画像を生成しました。
2つの方法で選ばれた6枚の画像をもとにイラストを作成しゲーム内で使用しています。
図2. 出力画像とリデザインされたアイコン
主人公・ヒロイン・ミニドラゴンのキャラクターデザイン
図3. メインキャラクターのキャラクターデザイン
「ポトナード」「地上」のマップデザイン
図4. コンセプトアートの一部
ゲーム内で実装されるイラストの一部です。
・立ち絵 差分含め6枚
・アイコン 差分含め38枚
図5. キャラクターの立ち絵、アイコンの一部
Blenderを使用しゲーム内に登場するキャラクターや物体のモデリングを行いました。主人公、ヒロイン、ミニドラゴンは既にデザインされていたものを参考に制作し、敵キャラとして登場するモデルは新規に3体制作しました。そのほかチェーンソーや細かい小物もいくつか制作しました。
キャラクターの動きに関しては主にシステム班にアセットから選んでもらうようにしていましたがドラゴンだけはオリジナルの骨格なのでBlender上でアニメーションを付けました。テクスチャも基本的にはBlenderですが一部の小物はSubstance Painterを使用し質感を出しています。
図6. メインキャラクターの3Dモデル
図7. 敵キャラクターの3Dモデル
図8. 武器・小物の3Dモデル
自動生成の精度向上のためにさらなるデータ収集や生成する際の顔パーツの座標や大きさを自然に決定できるアルゴリズムの作成を検討中です。