AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

ランダム属性でキャラ生成

f:id:yasu9780:20170205122731p:plain

髪型のランダム設定と、髪色のランダム設定と、瞳色のランダム設定できた!
もうmaterial作りまくり(´・ω・`)
既存のやつを複製できるようにしてほしい。


今のところ、髪型は、前髪が二種類。後ろ髪は1種。ポニテールは、ロング、ミドル、ミニで、それぞれ後1本、右1本、左1本、左右2本の4種別がある。
全体で、2x3x4=24種類

髪色が8色(黒・ピンク・緑・青・黄色・紫・灰・茶)。
瞳が青・黄・赤・灰の4色。さらにたれ目・ふつう目・つり目の3種

全体で、24x8x4x3=2304バリエーション


アリシアちゃんの前髪・後ろ髪を準備中なんで、それができるとまた増える。
あと、普通のセミロングが欲しい。あとショートのボブカットとか。
PMCAのモブ子さんの髪型を持ってくるとさすがにローポリすぎて合わない。ポニテールみたいな部品利用ならいけるけど。

あと、髪のリボンとかヘアピンとか、セーラーのリボンなんかでバリエーション出すのもいいと思う。
あと背の高さを変えたい。

髪型はあらかじめ頭ボーンの子供として存在してるけど、髪型に応じてON・OFFしてる。
ランダム設定なんで、ヤンデレちゃんと被ったらNGにしてる(黒髪・ミドルポニー・瞳黒)

瞳は、faceマテリアルを色別に用意している。テクスチャ書き換えでもいいのかもしれないけど、4種類だし。

問題は髪の色。これが一番やっかい。

初めはシェーダーに与えるColorを変えれば楽と思ってたけど、それだと、キャラ別にマテリアルがコピーされるらしい。もし生徒が30人いたらマテリアル30
ドローコールが増える?(ただ、テクスチャ画像自体は全部同じなんで、シェーダーパラメータが違うだけなら大丈夫かも?)
とりあえず髪色のマテリアルをあらかじめ作ってるけど
髪は複数のパーツでできているから、例えば、前髪・後髪・右ポニテ・左ポニテだと、4つの別のオブジェクトのマテリアルを書き換えないといけない。

さらにやっかいなのが、違う髪パーツごとに8色のマテリアルを用意する必要がある。これが面倒くさい。

あと、前上左右反転を準備中(Blenderから持ってきてると軸がおかしくなってて個別対応がいる)


メッシュの切り替えも作ったので、お着替えもできる。

参考

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp

マテリアルを動的に作って保存して参照する技があるのか。これならあらかじめ作っておかなくてもいいかも。
colorをつっこんだ時点でコピー生成されるから、それを配列に保存しておいて、
次に同じ色が必要な時は、保存されたマテリアルに切り替えるみたいな? ちょっと実験してみよう。