Luaスクリプトが導入され、ゲーム本体からキャラクターまですべてをAIで作らせることができるようになりました。
以前からAIに生成させた画像を外部ツールで変換して実装する手法はもはや主流として存在していましたが、本格的にAIを簡単に導入できる時代に突入した今や、自分でゲームを作る人が少なくなりつつあります。
とはいえ、自分でキャラクターを作ったり、ゼロからゲームを考えて、自分の手で物語を作ってみたいという方もおられるでしょう。
私は今のところ全部手動で製作していますが、人によっては「AIにゲームを作らせたけど、キャラクターは自分の考えたキャラクターを配置したい」ということもあるでしょう。
そんな方のために、キャラクターを作るためのちょっとしたコツや、その実装方法について解説しようと思います。
1、骨格を意識しよう
骨格といっても、何も解剖学をやろうというんじゃありません。体の基本的な線を意識してみましょう、ということです。
つまるところ、最初に問題になるのは「手はどこにつければいいの?」「体は?」「足は体のどこから生やせばいいの?」という疑問です。
こういう「パーツをつける基本的な場所がよくわからない」という悩みには、なんとなくでいいので、生物の骨格、そして各パーツの役割を意識すると思い通りの結果が想像しやすくなります。
例をみてみましょう。

間違った例
これはほとんど魚のようにみえます。腕が体の真ん中から生えていますね。耳も真横を向いている。これではいけません。
中に棒の人を入れてみましょう。つまり、ふわふわの毛の中に隠れた骨格(フレーム)を意識するということです。

場所と角度が一致しない
やや、腕の位置と、足の角度に問題があることがわかります。

やや正しい例
ここで注目して欲しいのは、肩の位置です。自分の体で確認してみてください。
まず、顔は首と繋がりそのすぐ下に肩があります。肩は腕と繋がっており、そのために多角的な関節の可動域を確保することができるのです。
肩のすぐ横に腕がある、と意識さえできれば、腕の位置は自然と高い位置に修正されるはずです。
また足もそうであり、これはふわふわした毛のある動物の場合特に重要となってくるのですが、毛の外からちょこんと足が生えているようにみえるため、毛の外周に適当に手足を付けたデザインにしてしまいがちです。
ですが実際はふわふわした毛に隠れて、奥側に骨格があります。足は毛の中の見えない場所からすでに伸びているのです。
足の骨がどこから伸びているのかを意識することで、足の角度や正しい長さが想像しやすくなります。
また、動物の耳の位置、特に四足歩行が基本の小さな動物は、草むらなどの障害物を避け、または体の大部分を獲物や天敵から隠したまま耳だけを出し、より遠くの音を聴き分けるために、耳は高い位置についていることが多いです。
左右で立体的に音を捉えつつも高い位置から音を聴こうとする、そういった生物の特性を調べたり意識することで、体のパーツを適切な配置にしやすくなるでしょう。
さて、次の問題は、これが二足歩行の猫である場合はこれでもよいのですが、四足歩行の猫らしくはないという点です。
では、毛皮の中に隠れた骨格を意識しつつ、猫の外周を作ってみましょう。


猫の例
するとこのような形になります。
意外と失敗しやすいのが手足の位置です。
手足は体の前後につければいい、と考えると、下の猫のようになりがちです。

前のめりになっている猫

少しバランスが悪いですね。前のめりになっている印象を受けます。このキャラクターが壁に隠れて事件現場を伺う家政婦猫とかならこれでもよいのですが、単に立っているだけならばちょっと違和感がある。
その理由は簡単で、四足歩行の場合、手足は体全体の重さを支えるためにあるわけですから、頭部まで含めた重心を意識して、それを自然なバランスで支えられる手足の場所を考える必要があるからなのです。
生物の頭部は意外と重く、実際の猫の頭部の重さも体重の10%ほどあります。デフォルメされた猫ならばなおさらです。
頭部を前足で支えることを意識すると、自然な手足の位置を決定しやすいでしょう。
もちろん、前のめりになって獲物を追いかける恐竜のキャラクターなどにおいてはこの限りではありません。前に進む場合は前傾姿勢をとりますから、手足が重心のやや後ろにある方が迫力がでることでしょう。
2、デフォルメをしてみよう
さて、さきほどデフォルメという言葉を出しました。これは要するに漫画・アニメ的に「強調」したキャラクターを作る時に重要な概念です。
といいましても話は簡単で、強調したい部分の大きさや色を工夫することで強調する(あるいは簡略化して必要なものだけを抽出することで、相対的に目立たせる)ことが基本になります。
例えば顔。
ゲーム内キャラクターはそれぞれのキャラクターの判別をしやすいよう、顔の違いを利用することが多々あります。
人々が何十人、何百人も入り乱れて大乱闘するゲームでなら些細なことですが、キャラクターと何度も会話してクエストを進めていくようなゲームでは、一人一人のキャラクターを覚えておく重要度が増すでしょう。
例えばこれらの猫の場合、顔の大きさを実際の猫よりも大きくすることで、顔の視認性が向上し、さらに注目しやすくなっています。これにより、プレイヤーがキャラクターの見分けをつけやすくなり、混乱せずスムーズにゲームを進行させられるというメリットがあります。
また、目や口や眉毛を強調すれば、キャラクターの悲しみや怒りなどの感情をよりわかりやすく伝えることができます。RPGゲームなどでは一目でキャラクターの心境を伝えることができ、プレイヤーの感情移入を助けるでしょう。
ゲームジャンルによっては、猫に眉毛、人に尻尾、魚に手足を付けても構いません。重要なポイントは、プレイヤーがゲームを理解しやすくなり、そして楽しみやすくなるという点です。魚が鰓呼吸であるためにゲームがわかりにくく、楽しみにくくなるのであれば、二足歩行で肺呼吸をする魚にしてしまってもよいのです。ゲームの目的は、魚がより現実の魚らしくあることではなく、プレイヤーが楽しむことですから。
骨格、フレームの意識も、あくまでそのほうが違和感なくゲームに没入できるという、ゲームを楽しむための一つの手段です。いろいろと試してみて、骨格を無視した方が可愛いなとか、かっこいいな、わかりやすいな、と感じた場合は直感を信じて自由に配置してみましょう。ピカソだって表現のために自由に配置してますからね。
色も重要です。
例えばアンバーの赤、ガイアの青、ジンの緑、と色に特色を出すことで、プレイヤーがそれぞれのキャラクターを区別しやすく、覚えやすくなる効果があるのです。
さらに「氷元素を白と水色を基調とした衣装にする」などの工夫により、キャラクターの特徴を覚えやすく、また一目で把握しやすくなります。
例えば、ゲーム内に炎元素を扱う猫のキャラクターを実装するのであれば、炎のように赤色にし、または炎のように情熱的な顔つきにすることで、不慣れな初心者であっても、キャラクター選択の場面で一目みただけで「あ、火のギミックを解くためには、この赤いアンバーというキャラクターを出せばいいんだろうな」と判断しやすくなり、ゲームプレイがスムーズに進みます。

さっきの猫と比較してみよう。より炎元素のようにみえる。プレイヤーは長い説明を読まなくても思い通りの特性をもったユニットを選択しやすい。

氷元素の猫ならばこのような形もよいだろう。水色、青、白、と寒色系を複数組み合わせることで、氷のような冷たい印象を与えられ、単一職よりも個性が出てキャラクターを覚えやすい。
あるいは、いっそこのような形もよいでしょう。

顔と耳だけ

影もデザインに取り入れられるが、クライアントの設定によっては消えるのでプレイヤーを選ぶことになる。
これでも「猫だ」とわかるのは、猫の特徴である耳、そして瞳、さらにやや丸っこい顔の輪郭があるからです。(狐だとか鼠だとか言われてもおかしくはありませんが、このキャラクターの場合は猫の可愛さを引き出せれば問題ありません。もしも動物当てクイズなどで使う場合は、もっと猫の特徴を配置しましょう。例えば肉食動物らしい牙とか、対物センサーとしての長いヒゲとか、猫が好きそうだと一般的に思われていそうな食べ物を配置するとか)
特徴的な部分を強調する。
このデフォルメされたキャラクターが配置されていれば、単なる記号の連動であったゲームであっても、没入感や愛着、彩りが生まれることでしょう。
これは非常に大切なことです。ゲームはプログラムがゲームのそれらしく動けばそれで良いというものではありません。楽しむことが目的なのです。楽しむためには、ボス敵の迫力、怖さ、可愛さ、美しさ、そのようなデザインの要素がとても大切になってきます。
また、ちょっとした顔のパーツなどでも印象は変わってきます。
例えば目と鼻や口、特に目と鼻は離れていると大人びた印象を与えます。

離れた目と鼻。やや大人。

目と鼻と口のパーツが近い。先ほどより子供っぽい。

縦の位置で、顔の中央に目を持って行くと、バランスの取れた印象に。顔のパーツが近いので、やや幼い印象を受ける。

目の間の距離を離す。全てを離すと、より大人に見える
顔の各パーツを話すと、より年齢を重ねているような印象を与えることができます。
また、可愛さよりも綺麗さなどが引き立つようになります。
大人の綺麗な印象をキャラクターに付けたければ顔のパーツをやや遠くに離し、逆に子猫のような可愛い印象(または、例えばおもちゃを振り回して暴れる子供のようなキャラクター)をキャラクターに付けたければ、顔のパーツを近くしてみる。
顔のどこに目や鼻のパーツを置くかでキャラクターがプレイヤーに与える印象も変わってきますから、「キャラクターを作ったけど、なんだか受ける印象が作りたいイメージと合わないな」と思った場合は、顔のパーツの位置を見直してみると良いかもしれません。
3、キャラクターのゲーム内への導入
さて、このようなキャラクターを制作したならば、やはりゲーム内で使ってみたいことでしょう。
単にゲーム内に設置するだけでも十分可愛いとは思いますが、やはり動かしてみるのもよいでしょう。
まずは基礎モーションデバイス。

エンティティを選択すると画面右側に表示されるメニュー項目、そのタブの3番目

まずまモーションタイプ、そしてループタイプを選択しよう。タイプをループにすると、同じ場所をぐるぐる回らせることもできる。
オブジェクトをタップすると選べる基礎モーションデバイスから様々な動きを設定できます。
その場で回転、直線、色々ありますが、複雑な動きを実装したい場合は「パス移動」を選択することで、かなり自由度の高い設定ができます。速度を変えて走っているようにみせたり、高さを変えてジャンプさせてみせたり。
回転の数字を変化させれば、ジャンプ中に宙返りをさせることも可能でしょう。
基礎モーションデバイスはノードグラフで条件を指定して発動させることができるので、プレイヤーが話しかけた(オプションタブを押した)瞬間、または衝突トリガーに接触した瞬間に逃げる動作をさせることも可能です。

基礎モーションデバイスを起動 ノードを使う
次に重要なのが、追従モーションデバイスです。


これは文字通り、指定したターゲットにエンティティが追従(ついていく)ようにするためのもので、例えば猫をペットのように連れて歩くことができます。
また、プレイヤーを透明化し、

モデル表示をオン/オフ ノードを使う。ターゲットをプレイヤーのキャラクターエンティティに繋げ、有効化を「いいえ」にすることで透明化できる。
さらに、例えば、プレイヤーの近くに作成したプレハブに、プレイヤーキャラクターの中心を追従目標とした追従モーションデバイスを設定すれば、

これはアイテムを使用した時のノードだが、キャラクターエンティティを追従目標にするのは同じ。「GI_RootNode」はキャラクターの中心の点である。
作成したエンティティをプレイヤー自身として扱い、ゲームの世界を楽しむことも可能です。
アップロードした動画から、プレイヤーが、作成した猫のエンティティを疑似的な自身のエンティティとして扱えていることがわかりますね。
また、プレイヤーキャラクターを透明化せず、単に「プレイヤーの特定の動作をトリガーとして、プレイヤーを基準にした相対的な位置に追従エンティティを出現させる」という手法を用いればこのようなことも可能です。

プレイヤーが座った時、猫をひざに乗せる
あなたの作ったキャラクターを、色んな場所に出現させ、動かしていく。
使い道によってはゲーム体験にかなりの違いが出てくると思われます。
例えばスネージナヤが真っ白なブロックで、実装されたキャラクターが棒人間であれば、原神はあまり興味を持たれなかったかもしれません。
ゲームを楽しいと感じる上で、風景やキャラクターのデザインはかなりの力をもっています。
自分が可愛いと思うキャラクターを実装することでプレイする人も癒されたり、かっこいいと思うキャラクターを実装することで白熱する。この猫のエンティティも見た目は単純です。造形が達者でなくとも、あなたが工夫して作ったキャラクターが登場すれば、そこには独自性、そして新鮮味が生まれます。それはまさしくゲームの面白さに繋がります。
自分の思い描いた景色、作ってみたキャラクター、それらと一緒に幻境での冒険を楽しんでみるのはいかがでしょうか。

