ChatGPTに愛のあるスパルタ教師になってもらってゲームを作る作戦(1)

 前振り長いです。本文もびっくりするくらい長いです。


 2023/02末、ついに世間で流行りまくっている「ChatGPT」に手を出しました。遊んでみるとめちゃくちゃ楽しくて、ついつい自分で作った乙女ゲー風ゲームブックで無限に遊んでしまうという愚を犯してしまいがちになってしまいます。人間とは愚かな存在である、ということをChatGPTと話していると常に感じます。特にヤバいと思うのは、自分で入力した内容がずっと残るから、まあそれが目についてカウンターくらうっていう点ですね。

 例えばなんですけど小説書くときにヒーローくんをクソイケメンに設定するとするじゃないですか。でもそんなん設定として書き残しておくのは気恥ずかしいので、設定メモのテキストにはそういうのはあえて書かないというか、書いたとしてもすっげえ適当に書くんですよ。「イケメン過ぎて家が建つレベル」とかそんな感じで(一般的には知りませんが自分はそうする)。でもChatGPTにそういう「言わせんなはずかしい」みたいなのを察してもらうことはできないので、プロンプト(入力フォームに入れる文字のことです)に書くしかないんですよ。「イケメン過ぎて家が建つレベル」ってのを。でも、実はこの言葉も風が吹けば桶屋が儲かる……みたいに省略している内容があって、

 顔がいい→顔が良すぎて多種多様の女性にモテモテ→一部の女性が彼の寵を得るために貢ぎまくる→貢ぎの金額がとんでもない桁になって家が購入できるくらいになっちゃう

 という文脈があってのことなんですよ。これを全部ちゃんと入力しなきゃいけない。しかもこれが履歴に残る……強靱な羞恥耐性がないと耐えられない(>_<)ってなる、なるんですけど、そういうのを2月末から延々とやっていると、だんだんその羞恥心も摩耗してきて、もう遠慮会釈ナシ、欲望丸出しのプロンプトを平然と入れるようになってくるんですよ、私自身が。マジヤバいChatGPT。

欲望丸出しのプロンプトの例 長すぎてひく(‘_’)

 さて、ここから本題です。上記のようなお遊びをやっている過程でChatGPT Plusという課金要素(月額20$)まで手を出してしまったのですが、なんていうか、せっかくお金まで出したんだから、ゲームブックごっこだけで満足するのではなく、もっとほかのこともいろいろやってみたいな~っと思うようになりました(もちろんゲームブックごっこは続けます……中毒性あるゥ……)。

 そこで思い出したのが、いままで幾度となく挑戦しては自分の飽きっぽさの前に敗れ去ってきた「ゲーム開発」です。古くはHSP、新しきはUnityなど、手は出してきたのですがいつも途中で止まってしまっていました。HSPさわってた頃は実家にいたので途中進捗を兄弟とかに見せていたのですが、一人暮らしをしてからはそういうこともなく、マジでサンプルコード書いて「ヨシッ」と満足して終了するという状況でした。

 すぐ飽きちゃうとか忘れちゃうとかが問題なら、ChatGPTになんかモチベあげてくれそうな性格を付与してあげれば、最後までたどり着けるのでは……??

飽きっぽいあなたでも続けられる。そう、ChatGPTならね。

shionaka

 というわけでやってみました。続くのかどうか不明ですが、まず初回はUnityでサンプルコード動かすところまでです。直前に遊びすぎてGTP-4の制限がかかってしまったので、GPT-3.5でやってみます。

ゲームブックごっこの経験を生かして、照れを排除して欲望を書くッ
先生の回答、期待通りだぜッ

1.Unityのダウンロード

 前述の通りUnity環境は実はもうあるので省略。バージョンは2.4.5で古かったので、最新版(3.4.1)にバージョン上げました。バージョン上げるとログアウトされたみたいで、再度ログインし直しました。(パスワードは忘れていたので再発行)

2.新規プロジェクトを作成する

 先生の指示に従って、Unity Hub>新しいプロジェクト を選択……あれ? 先生の指示と違う……プロジェクト名と保存場所を決める前に、テンプレートを選ばないと先に進めないぞ。先生ッ助けてくれッ!

先生ッ……!
さすが先生だッ
先生ッ プロジェクト作ったらなんか動き出してCドライブ容量がゴリゴリ減っていきますッ
先生ッ 「どうせネットサーフィンだけなんで安くて問題ないで~すw」とか電器屋でぬかしたヤツの末路ですこれがッ

3.ゲームオブジェクトを作成する

 先生の指示と違うッ! エディター画面がなにで、Createボタンがどこにあるかまるでわからないッ 先生助けてくれッ!

先生ッ……!!
先生は……先生はなあ、スクリプトまで書いてくれるんだッ
こういうことですね先生ッ!

 先生に導かれて、たぶん四角い形状の物体(Square)を追加した。名前はあとで見たときにわかるように「CharacterA」にしておこう。

4.キャラクターを追加する

 さっき作ったCharacterAを追加すればいいらしいのだが、どこに追加するんだ? それとも、作った=追加したってことなのか? なんかすでに画面に小さな四角い物体が追加されているし。

先生ッ 私は一挙両得を成してしまったのですかッ!?

 追加ができていることにして、先生が教えてくれたキャラクターの操作を実装してみよう。でもどこから編集すればいいんだろう? 先生ッ助けてくれッ! 弟子はあなたがいないと何もできないんですッ!

先生ッ……!
右下にありました先生ッ
先生の指示と違うッ! 先生助けてくれッ
先生……ッ!

 ここで入力開始からそれなりにテキストを入れまくったせいか、先生の性格から徐々に尖った部分が減ってきた気がしたので、燃料を再投下することにした。先生、頑張ってくれ! あと少しなんだ!

先生……リブートしてください……
先生ッ それでこそ先生だッ
先生のありがたいコードだッ WordPress上でシンタックスをカッコよくつける方法がわからなかったので画像で失礼するッ 不肖の弟子で申し訳ないッ
先生が復活してくれて弟子は嬉しいですッ

 先生には「UnityEngine.U2D」と回答したけど、実際に選ぶとエラーになった。よく見ると選択肢の先頭にアイコンがついており、ほかの選択肢を確認したところ、UnityEngine.EventSystems>Base InputがアイコンがC#だし名前もそれっぽいしで、これを選ぶことにした。先生すまんな。

たぶんこれであろうと思われる

 スクリプトを追加したあと、たぶんダブルクリックすればエディタが開くでしょ、という感じでダブルクリックを試みる。

UIあるあるだッ 最初に左の「Script」でダブルクリックして空振りしたのは、この弟子がまだ未熟であるためだッ

 すると、自分の想定ではUnityに搭載されているエディタか何かが開くと思っていたのだが、普通にVisual Studio 2017が開いてしまった。いやいや……この貧弱PCでUnityとVS2017同時に立ち上げるのはマジで勘弁……っというわけで、VS2017ではなくせめてVisual Studio Codeで起動するように設定を変更する。先生、貧弱PCしか所持していない弟子を導いてくれッ

さすが先生ッ
先生ッ 見惚れるほど的確な指示ですッ

 先生のおかげでコードエディタをVSCodeに変更できた。拡張機能を突っ込んだらCドライブの残り容量が5.5GBになってしまったのは大きな誤算だったが、いまは忘れよう。……と、いったん別の操作をはじめたことで気がついたのだが、Add Componentの選択肢、普通に一番下に「New Scripts」という項目があった。自分は見落としており、NewがついていないScriptsを選択していたため、本来選ばなくても良いエンジンの設定等を行っていたのだ。危ないッ ちょっと手順を戻って先生の言うとおりになるようにやり直しだッ(先生は弟子がヒューマン・エラーをしても教えてくれないのだッ)

先生すみませんッ ちゃんとありましたッ

 ここでいったんCドライブの残り容量が限界を迎えたのでUnityを終了し、Cドライブ容量削減の旅に出た。いままでの経験上、このように他のことをやりはじめると途中で飽きてしまう危険なサインなのだが、今回は先生に弟子入りしたおかげでモチベーションも高く、無事に容量20GBを達成した状態で再びUnityを起動することができた。ありがとう先生ッ

ダイエット成功ですッ先生ッ

 追加したScriptに先生のありがたいコードをコピペすると、なにやらVisual Studio Codeでエラーが発生した。「.NETFramework,Version=v4.7.1 の参照アセンブリが見つかりませんでした。」ということだ。なるほど?

先生ッ 素晴らしい助言ですッ

 このあと設定を変えると今度はVisual Studio Code側でSDKがないよ、と怒られたので、ここからSDK 4.7.1を選んでダウンロード&インストール。このくらいは先生の手を煩わせずともできるのである。

 しかし、Unity側でまだエラーが出る。先生に訊いてみるしかないッ

警告だッ
先生ッ ちょっと疲れてきていないかッ?

 先生がConsoleメッセージ読もうと言ってくれたのでちゃんと読んでみると、クラス名がちゃうねん(意訳)といっているようだ。あ、そういうば、先生が書いてくれたコードそのまんまコピペしてたけど、クラス名は自分の環境に合わせて変えなきゃダメだよね。コピペで置き換える前のコードに最初のクラス名が残っていたので、そのクラス名で修正をすると……エラーが消えた! 先生ッ!

もう一度……先生ッ リブートだッ
2回目はさすがにリアクションを無視されたが……先生は不死鳥のごとくだッ
先生は手順にない寄り道も許してくれるッ
先生は寄り道の結果発生したトラブルにも真摯に向き合ってくれるッ
先生ッ!
先生ッ
記念に意味もなくキャプチャをとってみました先生ッ

 というところで本日はいったん中断しようと思います。思った以上に茶番に使うエネルギー消費が大きかったですが、でもその労苦を補ってあり余るほど楽しく、これなら続けていけるかもしれない……と思わされました。

 先生ッ 私はやればできる子になっていっているかもしれないッ 今後も応援してくれ先生ッ

先生はッおやすみの挨拶もできるんだッ