ゲーム内の「村人のセリフ」をChatGPTで大量生成する方法(第1回)。RPG村人が住む世界を作るまで

テクノロジー AI
kogu

ゲームとWebのフリーランス開発者。3DCGからゲーム開発の世界に入り20年。今は生成AIの変化を追いかけて日々実験しています。

特集

生成AIをゲーム開発の現場で活用している筆者が、ゲーム内テキストの作成、中でもいわゆるRPGの村人たちのセリフの生成を一から行う流れを解説します。第1回は、とにかく作ってみて、それに条件を加え、世界を構築していくところまで。



ChatGPTがこれほど広く雑多な目的に適用できるのは未だ驚きです。このままいわゆるAGIに到達する道にあるのか、規制や資源の問題はどうなるのか、未来への関心は尽きませんが目の前の実用も重要です。

私にとっての実用は主にゲーム制作への応用で、ChatGPTやLLMを使えそうなシーンはいろいろ考えられます。たとえばゲームそのものを生成させたり、ゲームという構造をLLMで取り扱う実験などもしていますが、こうした大きな試みはまだ実用的ではありません。

すぐに実用できる用途としては「ゲーム内テキスト作り」が挙げられます。用途はLLMの本筋ですし、制作では地味に負荷の高い作業です。うまく応用できると効果は非常に高いでしょう。

ビジネスや生活にChatGPTを活用するノウハウは絶えず公開されていますが、こうした創作的なテキスト生成はあまり取り上げられません。データ処理や業務の効率化などChatGPTの汎用性を活かした用途に比べ、地味で対象も限定的だからでしょうか。

私個人ではまだ、関わったゲームタイトルでゲーム内テキストの生成を直接採用した例はありません。しかしSteamが生成AIの利用を審査する方針に変更したことなどから、今後急速に増えると考えられます。

そこで、ChatGPTを用いてゲーム内テキスト、中でもいわゆるRPGの村人たちのセリフの生成を例に、一からそうした創作的な生成を行う流れをご紹介します。

なお使用しているのは2024年2月時点のChatGPT-4です。適当な挿絵もChatGPT経由でDALL-Eに生成させたものを利用しています。

とにかく作らせてみよう

まずはとにかくRPG風のセリフを雑に作らせてみましょう。指示は「 RPGの村人のセリフを作って。日本語で。」とだけ入力しました。

最近、森の奥に珍しいモンスターが現れたそうだ。勇者様も気をつけてね。

漠然とRPGっぽいセリフが生成されました。1件では判断できないので「もっとたくさん。」とだけ指示を追加してみます。

  1. 「この辺りでは、古い神殿のことを誰も話さないんだ。でも、あなたには秘密を教えよう。神殿の奥には、古代の宝が隠されているという噂があるよ。」

  2. 「最近、北の洞窟から奇妙な音が聞こえてくるんだ。誰か勇敢な者が調べに行ってくれないかな。」

  3. 「私たちの村は平和だったけれど、最近は盗賊が増えてきてね。夜道は特に危ないから気をつけて。」

  4. 「あなたも魔法の力を求めているの?それならば、東の塔に住む魔法使いに会うといい。でも、彼は簡単には会ってくれないかもしれないよ。」

  5. 「私の家の近くで不思議な花が咲いているの。それを摘むと、少しの間だけでも強くなれるんだって。」
    ...

▲実際の対話がChatGPT上ですべて確認できます

10件出ましたが後半は省きました。いかにもそれらしいですが、当然なんの設定も条件も提示していないので、なんとなくRPGっぽいだけです。しかし短い指示でそれらしい出力が可能なことは確認できました。

創作的な表現を求めると、根本から見当外れな出力になる場合もあります。ChatGPTと日本語であそぶ で確認したような、文字単位の操作が必要な生成は酷いですし、テキスト化されていないサブカルチャーは、大きく外れた結果を返すこともあります。その点RPGらしいセリフについては、今のChatGPTでもそれほど破綻なく扱えそうです。

条件を足そう

指示が「RPGの村人のセリフ」だけでは実際のゲームに使えません。セリフからゲームを組み立てるのはありですが、大抵はゲームに合わせてセリフを用意します。具体的なゲームの条件を足して生成させてみましょう。

とりあえずイメージしやすいよう、世界征服を狙う魔王、さらわれたお姫様、そして王命を受け討伐に向かう勇士、というベッタベタな条件を追加しましょう。また村人たちは勇士が最初に到達する村の住民としましょう。

入力は「RPGの村人のセリフを5つ作って。日本語で。ゲームは『世界征服を狙う魔王がいて、魔王にさらわれたお姫様、そして王命を受け討伐に向かう主人公の勇士』というストーリー。村人は主人公が最初に訪れる村の住民。」とし、新しいチャットで試します。

  1. 「ああ、勇者様!ついにこの村にも足を運んでくださったのですね。魔王にさらわれたお姫様を救い出すため、王様があなたを選ばれたと聞きました。この村には小さな力しかありませんが、何かお手伝いできることがあれば言ってください。」

  2. 「勇者様、この先の森は魔物がうようよしております。以前は平和な場所だったのですが、魔王が現れてからというもの、誰も足を踏み入れることができなくなってしまいました。十分にお気をつけて。」

  3. 「こんにちは、勇者様。あなたがお姫様を救出するために旅をしていること、村中が応援しています。ここにはあまり豊かな物はありませんが、このパンを旅のお供にどうぞ。」

  4. 「勇者様、魔王に立ち向かうなんて、とても勇敢なことです。私たちには考えられない勇気です。しかし、どうか無茶はしないでください。全ての人があなたを必要としています。」

  5. 「あの、勇者様。小さな噂ですが、魔王の城には秘密の入り口があるとか。ただし、その場所を知る者はほとんどおらず、探すのは困難でしょう。でも、もし見つけられたら、お姫様を救う大きな一歩になるかもしれませんね。」

▲ChatGPT上での実際の対話はこちら

やたらと主人公に親切で大仰な村になりました。勇士が勝手に勇者となっているのは、その方がRPGの出力として妥当だと判断されたのでしょうか。くどい表現が多いのは、おそらく「討伐」「王命」「勇士」といった勇ましさと権威的な語がもたらしたのでしょう。そうした語の影響を確認してみましょう。

新規チャットで「RPGの村人のセリフを5つ作って。日本語で。ゲームは『世界征服を狙う魔王がいて、魔王にさらわれたお姫様、そして討伐に向かう主人公』というストーリー。村人は主人公が最初に訪れる村の住民。」と入力します。

  1. 「あなたが噂の勇者様ですか?この先の森は魔物がうようよしております。気をつけてくださいね。」

  2. 「昔は魔王の城が見えるほど平和だったんです。でも今は…。お姫様を助けてくれると信じています。」

  3. 「私たちの村も魔王の手下に襲われる日も近いかもしれません。勇者様、私たちの希望です。」

  4. 「北の洞窟には強力な武器が隠されているという噂を聞いたことがあります。役立つかもしれませんね。」

  5. 「魔王にさらわれたお姫様は、この国の光でした。どうか無事にお連れ帰りください。」

▲ChatGPT上での実際の対話はこちら

大げさな態度は減り、比較的違和感のないセリフが生成されました。このようにChatGPTの出力は与えられた文に大きく左右されます。表現ひとつの変化が大きく影響することも。特に創作的な用途では大きな影響が出やすい傾向を感じています。

さらに条件を追加

さて、適当な村人が適当なセリフを表示する程度なら、もう少し条件を追加すれば対応できそうです。たとえば村人が主人公に提示できる情報を規定してみましょう。新規チャットで次の文を入力します。

RPGの村人のセリフを5つ作って。日本語で。ゲームは『世界征服を狙う魔王がいて、魔王にさらわれたお姫様、そして討伐に向かう主人公』というストーリー。村人は主人公が最初に訪れる村の住民。村人たちは次の3つのいずれかを話す。1. 魔王への不安 2. 冒険のヒント 3.村の紹介や生活の話題

  1. 「ああ、また魔王の手下が村の近くをうろついているそうだ。皆、不安で夜も眠れないよ。」

  2. 「森の奥深くに古い神殿がある。そこには、魔王に立ち向かう勇者に役立つかもしれない秘宝が隠されていると言われている。」

  3. 「この村は昔から魔法の草が豊富に育つ土地だよ。その草で作った薬は、旅の疲れを癒してくれるだろう。」

  4. 「北の洞窟には危険なモンスターが住んでいるが、勇敢な者だけが得られる強力な装備があるとか。ただし、準備をしっかりと整えないと…」

  5. 「ここ数年で魔王の影響を受けて、季節がおかしくなってきた。昔はもっと穏やかだったのに、今では突然の嵐が多くなったよ。」

▲ChatGPT上での実際の対話はこちら

追加した条件に合ったセリフを生成してくれました。もっと条件を増やして、口調を変えたり、役割を分けたりしていけば、やや単調なゲームのセリフぐらいはまかなえるでしょうか。

世界を作ろう

大量にセリフが登場するゲームなら、これだけでも結構な省力化です。しかしもっとゲームに合わせた、世界の住人として相応しいセリフを出したいところです。さらにいえば、従来コストから難しかった物量と内容で、村人ひとりが喋りまくるゲームもできないか試してみましょう。

コンテキスト

ここまで見たようにChatGPTの出力は入力内容で大きく変わります。しかしもうひとつ重要な要素に「コンテキスト」があります。ここまでテストのたびに新規チャットを使ったのも、このコンテキストを新しくしたいからでした。

ChatGPTは対話の流れを保持し、回答にはそれまでの流れも影響した補完を行います。対話に影響する要素はカスタム指示など他にもあり、目的に合わせたそれらの制御が必要です。

基本的な入出力の確認をしたい場合、この仕組みはむしろ邪魔となって再現性が低下します。そのため先に行った確認の影響を次の確認が受けてしまわないよう、新たにチャットを開始しています。情報の整理やコードの生成などの道具としてChatGPTを使う場合は単発入力の影響が大きいですが、長文の創作的な用途の場合、どのようなコンテキストを用意するかも重要です。

今度はこのコンテキストに必要な情報を積み上げることで、村人のより自然で多様なセリフを生成してみましょう。以前「オリジナルのファンタジー世界事典を生成AIで作る」という記事で世界作りの試みを紹介しましたが、基本は同じです。

コンテキストの構成を考える

創作対象によって適したコンテキストは大きく違います。今回はRPGのセリフのみなので、ややコンパクトに構成しました。

  • 必須要件

    • RPGのセリフであること

    • ゲームの雰囲気

    • 文体や長さ

  • 世界の情報

    • 世界観

    • 社会

    • 文化

    • 魔王と姫と勇者

  • 村の情報

    • 規模

    • 政治

    • 生業

必須要件は構築したい世界の外にある情報です。ここを変更すれば、同じ世界の出力をいろいろと調整できます。世界や村単位の情報を重ねて、求めるセリフが出力されそうなコンテキストを作ります。

重要なのは、世界や村の情報に、セリフに登場してはならない要素を含めないことです。たとえば魔王の秘密だとか姫の現状だとか、村人が知り得ない情報を混ぜてしまうと、それはセリフとして表れ得ます。生成したいのは超越した視点から描かれる事典ではなく、村人からのセリフです。村人全員が知っていてもおかしくない世界の姿をコンテキストに詰めていく必要があります。

コンテキストを作らせる

セリフを使うゲームが実在するなら、世界についての基本的な情報はそこから持ち込むでしょう。しかし今回は事前にゲームはありませんし、あったとしても村単位で設定があるとは限りません。

こうした場合、コンテキストに入力するテキストさえもChatGPTに生成させるのが手軽でしょう。それも単に要求を伝えて生成した結果を使うのではなく、何度もいろいろな生成を繰り返し、切り貼りして要求を満たすテキストを作ってしまいます。

たとえば次の入力で、世界の情報を提案させてみましょう。

「私はビデオゲームのRPGを制作しています。登場するある村の、住民のセリフを大量に生成したいです。

必須要件:

・RPGのセリフであること

・ややダークな剣と魔法のファンタジー

・リアリティある口調

これから舞台となる架空の世界を決めていきます。世界の全体像を3つ詳しく提案してください。世界全体の姿や原理、超常的な存在や歴史、人類共通の文化や観念、そして魔王の存在に注意して。」

  1. 影と霧の世界:
    この世界は、厚い霧と影に覆われた不穏な土地です。日中でも太陽の光はほとんど地表に届かず、常に薄暗い。世界各地には、古代の魔法によって作られたとされる謎の遺跡が点在し、これらの遺跡はしばしば強大な魔物や禁断の知識を秘めています。超常的な存在として、"霧の番人"と呼ばれる神秘的な存在がおり、彼らはこの世界のバランスを保つために暗躍しています。人々は霧の中で生きる術を学び、霧を操る魔法や霧を避ける技術が発展しています。魔王はこの世界の奥深くにある「忘れられた城」に住み、霧を操る力を持っており、世界を永遠の闇に閉ざそうと企んでいます。

  2. 滅びの大地:
    かつては繁栄していたこの世界は、数百年前に起きた大災害によって荒廃しました。この災害は、魔王と人類の間で繰り広げられた壮絶な戦争が引き起こしたもので、世界の多くの地域が不毛の大地と化しています。生き残った人々は、砂漠や荒れ地、毒に侵された森林など、過酷な環境に散らばって生活しています。人々は古の魔法や技術を使い、わずかに残された資源を巡って争っています。超常的な存在として、大災害を生き延びた古代の神々がおり、彼らは時に人類に助言を与えたり、災害の影響を和らげるための力を貸したりしています。魔王は災害の原因とされ、現在もその力は衰えず、新たな戦争を引き起こそうとしています。

  3. 古代神話の世界:
    この世界は、古代神話に基づいて形成されています。多神教が広まっており、各地には神々を祀る壮大な神殿が建てられています。人々の生活は、神々の教えや伝説に深く根ざしており、季節の変わり目や重要な出来事は神々への祭りで祝われます。この世界には、人間だけでなく、エルフやドワーフ、巨人などの種族が共存しており、それぞれが特有の魔法や技術を持っています。超常的な存在として、"運命の織り手"と呼ばれる存在がおり、彼らは人々の運命を紡ぐとされています。魔王は神々の一柱としてかつては崇められていましたが、野心によって他の神々と対立し、現在は禁断の力を求めて世界を脅かしています。

なかなか面白そうな世界が提案されました。今回はRPGを想定しているので、人々の暮らしが思い描け、また多様な冒険が描けそうな2番の「滅びの大地」を採用しましょう。

もちろん実際のゲーム制作なら、こうした構築はもっと前の段階に行うでしょう。しかし「生成したいテキストのためのコンテキストに渡すテキストをまず生成する」という方法は重要です。どの段階でもどんなテキストの生成にも使えますし、少人数で広大なテキストを生成するのには不可欠です。

続いて先ほどの入力に含めなかった社会や文化、そして姫と勇者についても提案してもらいましょう。チャットを続けたまま、次を入力します。

2の「滅びの大地」を採用します。この世界に共通する社会や文化を総体的に表した案を、3つ提案してください。

  1. 資源を巡る生存競争:
    「滅びの大地」では、大災害後の世界は資源が極めて限られており、清水や食料、そして魔法のエネルギー源となる古代遺物が非常に貴重です。各地に点在する人々の集落や都市は、これらの資源を巡って常に緊張関係にあります。資源の確保と管理は、各集落の首長や支配階級によって厳しく行われ、資源の豊かな地域では独自の文化や技術が発展しています。しかし、資源をめぐる争いは絶えず、盗賊団や資源を求めて徘徊する遊牧民の襲撃が頻繁に発生しています。

  2. 古の知識と技術の復興:
    大災害前の古代文明は高度な魔法と技術を持っていたとされ、その残された知識やアーティファクトは現代の人々にとって非常に価値があります。砂漠や荒れ地に散らばる古代遺跡の探索は危険を伴いますが、遺跡に眠る魔法のアイテムや古文書を発見できれば、それが集落の繁栄をもたらす鍵となります。このため、遺跡探索者や冒険者は尊敬される存在となっており、彼らの発見によって古の技術や魔法の一部が復興しつつあります。古代遺物を用いた技術や魔法の応用により、資源の有効活用や新たな発明が生み出されています。

  3. 神話と伝説への信仰:
    大災害と魔王の脅威を乗り越えるため、人々は神話や伝説に対する信仰を深めています。古代の神々や英雄の物語は、人々に希望と勇気を与え、困難な時代を生き抜く精神的な支えとなっています。各集落や都市には、保護と繁栄を願って神々に捧げる祭壇や神殿が設けられ、年間を通じて様々な儀式や祭典が行われます。また、古代の英雄や神々の遺産を探求し、その力を現世に呼び戻そうとする秘密結社や魔法使いの集団も存在します。これらの信仰や伝説は、荒廃した世界での生活に希望と絆をもたらし、人々を団結させる力となっています。

古典的な魔王討伐ものからは遠く、ファンタジーポストアポカリプスになってきましたが、好みなので全部採用しましょう。さらに同じコンテキストで姫と勇者も設定させましょう。次の入力を続けます。

この世界で、ある姫を魔王がさらいました。ゲームの主人公は姫を救出します。 姫がさらわれた理由や状況、そして主人公が救出に旅立つ背景をペアにして、3パターン提案してください。

3つ出力させましたが、長いので決めた一つだけを引用します。

命運を定める血統:
姫がさらわれた理由:姫は特殊な血統を引いており、その血には世界を癒やし、大災害の影響を和らげる力があるとされています。魔王は姫の力を利用して自らの力を増幅させ、滅びの大地を自らの支配下に置こうと画策しています。
主人公が救出に旅立つ背景:主人公は姫の個人的な護衛兵であり、姫と共に多くの時間を過ごしてきました。姫がさらわれた際、主人公は自分の失敗と責任を痛感し、何が何でも姫を取り戻す決意を固めます。この旅を通じて、主人公は姫を救うためだけでなく、世界に平和をもたらすための戦いに身を投じることになります。

こうしてセリフ生成の世界の土台を決めました。最後にまとめてもらいましょう。「2の命運を定める血統を選択。 ここまでに確定した世界の設定を、完結な表現で不足なくまとめて。」と入力します。

滅びの大地は、数百年前に魔王と人類の戦争によって引き起こされた大災害によって荒廃した世界です。不毛の大地、毒に侵された森林、そして砂漠が広がり、生き残った人々はわずかに残された資源を巡って生存のために争っています。古代文明の遺跡が点在し、遺された魔法や技術の研究が人々に希望を与える一方で、資源を巡る争いや盗賊団の襲撃が絶えません。人々は古代の神々や英雄の伝説に深い信仰を寄せ、困難な時代を生き抜く精神的な支えとしています。

この世界で、特殊な血統を引く姫が魔王にさらわれました。姫の血には世界を癒やし、大災害の影響を和らげる力があるため、魔王はその力を利用して自らの力を増幅させ、滅びの大地を完全に自分の支配下に置こうと企んでいます。姫の個人的な護衛兵である主人公は、姫との深い絆と共に過ごした日々を背景に、彼女を救出し、魔王の野望を阻止するために旅立ちます。この旅はただの救出任務を超え、世界に平和をもたらすための戦いへと発展していきます。主人公は途中で出会う仲間たちと共に、遺跡を探索し古の技術や魔法を学びながら、魔王の居城を目指します。この壮大な冒険を通じて、主人公は自らの運命を超える力を発見し、滅びの大地に新たな希望をもたらすことになるのです。

▲ChatGPT上での実際の対話はこちら

こうして生成した結果をまとめ、これを新たなチャットのコンテキストに置きます。今回はこのまま使いますが、本来ならここで一旦まとめられたテキストを編集します。自分の好みの反映だけでなく、矛盾や過不足の調整などを行うことで、続く生成の問題を予防できます。

では新しいチャットを開始し、次の入力から生成してもらいましょう。

「私はビデオゲームのRPGを制作しています。登場するある村の、住民のセリフを大量に生成したいです。

必須要件:

・RPGのセリフであること

・ややダークな剣と魔法のファンタジー

・リアリティある口調

舞台となる世界や物語の大筋は次の通りです。

(中略・先ほどのまとめテキスト)

これらの条件を元に、ゲームで主人公が最初に訪れる村の案を、3つ提示してください。ゲームの冒頭にふさわしくやや牧歌的に、しかし世界の影を反映してください。」

実際には3案提示させましたが、採用した1案だけ引用します。

村の案1: ネビルの農村

ネビルの農村は、荒廃した大地の中で奇跡的に緑豊かな一帯に位置しています。この村は、古い井戸から湧き出る清水と、祖先から受け継がれた土地を耕す知識によって、周囲の不毛の大地とは異なる景色を提供します。しかし、この緑豊かな土地は盗賊や他の村からの羨望の目を引き、村人たちは常に警戒しています。彼らは昼夜を問わず、村の周りに築かれた小さな木製の塀を守り、古代の神々への祈りを捧げながら平和を願っています。しかし、最近、近くの森から怪物が現れるようになり、村の安全が新たな脅威にさらされています。

貴重な緑地と清水、警戒と新たな脅威。導入の村にちょうど良いイベントが詰められそうです。引き続き他の設定を「「村の案1: ネビルの農村」を採用。ではこの村の規模、政治、生業をセットで、3案提示してください。数十名規模且つシンプルな構造で。」として生成させます。

規模・政治・生業案1: 小規模農業共同体

規模:ネビルの農村は、約30名の住民が生活する小さな集落です。家族単位で暮らしており、密接な関係性が村全体に広がっています。

政治:村の運営は、経験豊かな長老が中心となって行われています。長老は、村の重要な決定をする際には、成人した村民全員の意見を聞く集会を開きます。このシステムは、直接民主制に近い形で、村人一人ひとりの声が政治に反映される構造を持っています。

生業:主に農業に依存しており、井戸からの清水を利用した灌漑システムで、野菜や穀物を栽培しています。また、小規模ながら家畜を飼育し、乳製品や肉を自給自足しています。不足する資源は、近隣の村や商人との物々交換によって補っています。

こちらも1案だけ抜粋。村が出来てきました。もう少しセリフに反映されそうな仕組みを引き出してもらいましょう。「1を選択。村の経済、主な行事、融和と葛藤を簡潔に表現したセットを、3つ提案して。」とします。

経済システム・主な行事・融和と葛藤案2

経済システム:村の経済活動は、農業のほかに家畜の飼育にも依存しています。羊や鶏の飼育を通じて、肉、毛、卵が生産され、これらも村内での分配や交換に用いられます。

主な行事:冬至の夜、村では古代の英雄を称える火祭りが行われます。この行事では、英雄の勇敢な行いを讃える歌が歌われ、大きな焚火が夜通し燃やされます。この伝統は、暗く寒い時期に暖かさと光を村にもたらし、共同体の絆を強めます。

融和と葛藤:村の若者たちと長老たちの間で、伝統と変化に関する意見の相違が見られます。若者たちは新しい農法や技術の導入を望む一方、長老たちは古い方法の維持を重んじます。この葛藤は、世代間の対話と理解を深めることで解決されています。

もっといろいろな要素を盛り込みたいですが、背景としてはこれぐらいにしておきましょう。コンテキストには大きさの上限があるため詰め込みすぎると破綻します。ここから更に村人の情報を追加していく余地を残し、再度まとめを出力させます。

ネビルの農村は、荒廃した大地の中で緑豊かな地帯に位置する小さな農業共同体です。約50名の住民が家族単位で密接に暮らし、経験豊かな長老によって導かれる直接民主制の下で運営されています。村の経済は農業と家畜の飼育に依存し、余剰の収穫物と製品は近隣の村や商人と交換されます。特に有能な職人による手工芸品も、外部との交易で重要な役割を担っています。

毎年冬至には、古代の英雄を称える火祭りが行われ、村の一体感と伝統の継承が促されます。若者と長老の間の伝統と変化に対する意見の相違がありながらも、世代間の対話を通じて融和が図られています。村の外では、水資源や耕作地の利用を巡って隣村との小さな葛藤が発生することもありますが、年次の祭りや共通の祖先への尊敬を通じて、和解と友好が保たれています。このようにネビルの農村は、厳しい世界の中で希望を持ち続ける小さな共同体の象徴です。

▲ChatGPT上での実際の対話はこちら

これで世界全体の大枠と、村の情報がまとまりました。次はこの舞台に生きる村人を生成します。

住民を作らせる

ネビルの村に生きる人々を、基本的な情報付きで一括して生成しましょう。

(前半は省略)

まずは村人約50名のリストを生成してください。

名前と立場と年齢性別を設定し、血縁関係を適切な階層のネストしたリストで表現してください。

名前は以下の音素を使わずに架空の言語を作り、ラテン語と混ぜ合わせ、マルコフ連鎖を使って生成してください。

・テス

・ファ

・べー

・ポプ

出力はカタカナ表記で。 Advanced Data Analysisは禁止。日本語で応答してください。処理の説明は不要です。すぐ生成を開始してください。コードは実行禁止です。

結果は次の通りです。パートナーの入れ子がずれていたため修正してあります。

  1. エルマリク (長老, 男性, 78歳)

  2. サリア (長老の妻, 女性, 74歳)

    1. カリム (息子, 男性, 45歳)

    2. ナリア (カリムの妻, 女性, 43歳)

      1. ジェノン (孫, 男性, 20歳)

      2. レヴィア (孫, 女性, 18歳)

    3. ディナ (娘, 女性, 42歳)

    4. ミロン (ディナの夫, 男性, 44歳)

      1. ソリア (孫, 女性, 15歳)

  3. ベレク (農夫, 男性, 35歳)

  4. アリアン (農夫の妻, 女性, 32歳)

    1. ティロ (息子, 男性, 12歳)

    2. マリエ (娘, 女性, 9歳)

  5. ガルヴァ (職人, 女性, 48歳)

  6. ペトリク (職人の夫, 男性, 50歳)

    1. エリア (娘, 女性, 22歳)

  7. ラヴィア (家畜の世話人, 女性, 27歳)

  8. オリヴァン (鍛冶屋, 男性, 40歳)

  9. ジェナ (鍛冶屋の妻, 女性, 38歳)

    1. ルカ (息子, 男性, 16歳)

  10. サリク (商人, 男性, 34歳)

  11. ディアナ (商人の妻, 女性, 30歳)

    1. ベリル (娘, 女性, 8歳)

  12. ミラン (教師, 男性, 45歳)

  13. セリア (教師の妻, 女性, 43歳)

    1. カイル (息子, 男性, 21歳)

    2. レナ (娘, 女性, 19歳)

  14. カルディス (野菜農家, 男性, 52歳)

  15. マリカ (野菜農家の妻, 女性, 50歳)

    1. パルヴィ (息子, 男性, 28歳)

    2. サリン (娘, 女性, 25歳)

  16. レオヴィル (村の見張り, 男性, 37歳)

  17. ノリア (村の見張りの妻, 女性, 35歳)

    1. ダリオ (息子, 男性, 14歳)

    2. エリス (娘, 女性, 11歳)

  18. アルデン (医者, 男性, 55歳)

  19. ヴェリア (医者の妻, 女性, 53歳)

    1. ソフィ (娘, 女性, 29歳)

年齢構成や家族制度、血族集団関係など盛り込みたいものはいろいろありますが、大きな矛盾はなさそうですし、ゲーム冒頭のひとつの村としては十分でしょう。これぐらいで準備は終わりにします。

最後にコンテキストの確認。「エルマリクの息子カリムの、ある一日の様子を30分単位の一覧にして」とか「この日のカリムの発言を20リストアップして」とかの入力も試します。以下は10時から13時半までの抜粋です。

  • 10:00 近隣の農民と作業の相談

  • 10:30 草取りと土壌の手入れ

  • 11:00 収穫作業

  • 11:30 昼食の準備を手伝う

  • 12:00 家族と共に昼食

  • 12:30 昼休み、軽い昼寝

  • 13:00 家畜の再確認と餌やり

  • 13:30 村の共同プロジェクトに参加

  • 「ハロ、ジャコブ。お前の畑はどうだい?」(10:00、近隣の農民と話している時)

  • 「草取りは終わりなき戦いだ。」(10:30、草取りをしている時)

  • 「収穫の時期が近づいてきたな。準備を始めないと。」(11:00、収穫作業をしている時)

  • 「サリア、昼食は何か手伝おうか?」(11:30、昼食の準備を手伝っている時)

  • 「家族と一緒に食べる食事ほど美味しいものはない。」(12:00、昼食時)

  • 「少しの休息が、午後の活力を生む。」(12:30、昼休みの時)

  • 「全ての家畜が健康に過ごしているか、再確認だ。」(13:00、家畜の再確認時)

  • 「このプロジェクトは村にとって大きな意味がある。皆の協力が必要だ。」(13:30、共同プロジェクトに参加している時)

▲ChatGPT上での実際の対話はこちら

ちょっと堅苦しいですが、村や人物の設定に沿った行動やセリフは出ています。これでセリフ生成の土台はできました。ここまでの出力を整理し、コンテキストに詰め、具体的なセリフを生成しましょう。

次回は、大量に出力するための方法について解説します。


《kogu》

kogu

ゲームとWebのフリーランス開発者。3DCGからゲーム開発の世界に入り20年。今は生成AIの変化を追いかけて日々実験しています。

特集

BECOME A MEMBER

『テクノエッジ アルファ』会員募集中

最新テック・ガジェット情報コミュニティ『テクノエッジ アルファ』を開設しました。会員専用Discrodサーバ参加権やイベント招待、会員限定コンテンツなど特典多数です。