カカリアスタジオの機械学習AIに対する取り組み
はじめに
Happy Elements株式会社 カカリアスタジオでゲームエンジニアとして開発をおこなっているM.R.です。
この会社に入社してから10年が経ちました。
ゲームづくりではエンジニアもプロデューサーも経験し、ゲームづくり以外でも社内ツールの開発や言語・ライブラリ選定といった研究的な業務も経験しています。
現在はゲームの新しい体験をユーザー様に提供すべく、Unity ECSを使ったゲーム開発を数人のチームで行っています。
カカリアスタジオでのコンテンツ制作と機械学習AI
カカリアスタジオでは、ゲームづくりに関わる殆どの専門職のスタッフがチームにいて、同じ部屋で他職種とも相談しながらゲームのあらゆるコンテンツ(クエストステージはもちろん、イラストやアニメーションやストーリーや音楽など)制作をしています。
今年はStable DiffusionやNovelAIなどのリリースがあり、機械学習によるコンテンツ生成は多くの人の手に触れるという点でブレイクスルーを果たしたと言えるのではないでしょうか。
コンテンツを日々制作している私達にとって、機械学習AIと今後どのように付き合っていくか?は重要なテーマです。
弊社では、今後のゲーム業界においてどのように使われていく技術なのか注視しながら研究を重ねています。
社内での体制
カカリアスタジオには機械学習AIを専門に取り扱う部署があり専任のエンジニアがいます。
その部署を中心に、一部のアプリ開発エンジニア(機械学習に興味を持っているエンジニア)も巻き込みながら研究を行っています。
また、機械学習AIに関する情報を交換したり、学習したモデルを社内サーバーで公開するための専門のSlackチャンネルが社内にあり、エンジニア・イラストレーターのみならず法務・シナリオライター・プランナーなど様々な職種のクリエイターが情報交換をしています。
弊社ではブレイクスルーする前からこの体制で研究していたのですが、今年は画像生成の方面で一気に注目度が急上昇した印象です。
今年の取り組みから一例
本記事では、取り組みの中でも私が協力した事例を一つを紹介させていただきます。
キャラらしさ判定モデル
こちらは過去のストーリーテキストからセリフを抽出してモデルの学習に利用することで、「投入したセリフがそのキャラらしいのか?もしくは、同じゲームの中の誰っぽいセリフなのか?」を判定するモデルとなっています。
キャラクターのセリフを数百ほど用意すればかなりの高精度で判定できるようになり、かなりの精度で数十キャラの中からライターが意図したキャラのセリフっぽいセリフだと判定します。
作業しているライターさんが修正の必要性を感じた場合は、言い回しを少し調整することで判定結果もガラッとかわります。
また、シナリオライターのメインツールはMicrosoft Wordなので、一括で判定をかけられるようなWordアドインも併せて開発しています。
こちらについては、機械学習モデルを取り扱う必要性からPython + FastAPIでサーバーサイドを構築しています。
※ カカリアスタジオではサーバーサイド言語としてRubyが最も使われていますが、様々な経験を持つエンジニアが活躍しています。
WordアドインはReactで作れるためサーバー側のAPIさえ作ってしまえば割と簡単にアドイン化が可能です。
この中で私はサーバーサイド・クライアントサイドを担当しました。
実際の運用について
機械学習AIについての技術研究は必要だと考えているものの、一方でこういった研究が実業務の中で有用なパターンというのはまだまだ少ないためこの試みについても試験的かつ限定的な用途での試みと考えています。
というのも、各ゲームごとのチームに所属するライターさんは経験豊富な方が多く彼らが執筆したものに対しては(初稿でキャラらしさが保たれるため)こういったチェックの必要性がほとんどありません。
したがって本ツールは「新しくチームに加入したばかりの方がセリフを考える際に最低限のキャラクターらしさを客観的に確認するためのツール」として使うような用途に限られます。
また、もちろん使う場合もこのチェックだけでokというわけではなく、社内監修者のチェックバックは別途必要であり、あくまでも初稿の完成度を向上させて社内監修者の手間を減らすための限定的用途での利用となります。
以上のようにまだまだ実業務の中でクリエイターにとって有用なケースというのは少ないですし、人が作るコンテンツこそが弊社が目標として掲げている「熱狂的に愛されるコンテンツをつくる」ということに繋がると感じていますが、同時にこうした技術についても引き続き研究を重ねていく必要があるとも感じています。
Discussion