閉じる
RPGツクールMZ × ChatGPT part2(2023/03/05更新)

RPGツクールMZ × ChatGPT part2(2023/03/05更新)

つい先日ChatGPTでRPGツクールMZのプラグインが作れるという話題を出したばかりでしたが、今度はそのChatGPTのAPIが公開されましたね。実は仕事で「あれ(ChatGPT)みたいなのを自社サイトに設置出来ないのか」と聞かれたばかりで「さすがにそれは…」とか思っていた矢先の出来事だったので、びっくりでした。

質問をAPIに投げると、回答がJSON形式でレスポンスされるタイプのよくあるAPIなので、これなら私にも使えるなと思って、さっそく実験してみました。

はっきり言って本当に力業です。スタンドアロンでは無く、ゲームとは別にサーバ上にAPIと通信するスクリプトが必要です。(そして私pythonパイセンのことが全然分からないので、いつものphp先生で書いてます)
PHPスクリプトの内容については、まあ公開しても良いのですが、そっちはあまり出来が良くないのでリクエストがあればアップします、とだけ。でもPOSTされたmessageをcurlで送信して、レスポンスを平文で受け取っているだけです。

こちらに手順をアップしました。

上記のサンプル動画では、いろいろと手間を省くためにデフォルトの名前入力ウィンドウを質問フォームとして代用しています。キャラの名前を変数に代入して、APIに送信。API側からの回答をそのまま表示していますから読みやすい形に調整はしていませんし、「だから何だ」と言われればそれまでですが。ひとまず「出来る」事は分かったので満足です。しりとりするキャラとか、料理のレシピなんかを教えてくれるキャラなんかも作れるのではないでしょうか。

情報にもう少し正確性があればとは思うのですが、AIは進化が早いので、いずれそのゲーム世界と現実世界がリンクしたモブキャラなんかも作れるかも知れませんね。

※ ゲームとしてのサンプルの公開についてはすみません。このAPIが入出力の文字数での従量課金制という事もあって、公開してしまうと凄い費用負担になりそうですので…。

AI+シエスタ

AI+シエスタ

TwitterでAI製イラストをよく投稿していますが、「ラハと理の魔法生 -the 2ndstory-」の主人公・シエスタをAIに描かせるのは実は結構簡単だったりします。

モデルは何でも。

プロンプトで

pink hair, two braids, medium hair, red eyes, witch hat, witch robe, (green hat), (green robe)

たったこれだけ。いい感じに仕上げてくれます。
サリィとリセはもうちょっとだけややこしい(というか安定しない)。

RPGツクールMZ × ChatGPT(2023/3/16更新)

RPGツクールMZ × ChatGPT(2023/3/16更新)

ChatGPTという対話型AIが大流行していますよね。
ユーザの質問に対する回答を瞬時にレスポンスするAIとして知られていますが、pythonやPHP、JAVA、Javascriptなど主要なプログラミング言語でスクリプトを組んでくれるうえ、そのバグフィックスまで行ってくれる優れものでもあります。

そこで昨日試しに、RPGツクールMZのプラグイン(Javascriptですからね)を書かせたところ、たった二回のやりとりで「マップでxキーを押すと操作キャラクターがジャンプする」というプラグインを作ってくれました。

詳細は下記ツイート。

完成したプラグインはこちらに置いておきましょうか。
生成されたコードの上半分無くても動くと思うので、省いておきました。

【xキーを押すと操作キャラクターがジャンプするプラグイン】

この他、何個か注文を投げてみましたが、希望通りのプラグイン「に近い」ソースコードを作ってくれました。「近い」と書いたのは、決して完全無欠というわけではなくて、コードの中にはバグが含まれる事が多く、そのまま実行してもエラーとなる事が割と多いです。ただしエラーの内容をChatGPTに報告することで「申し訳ありません。間違えました。以下が修正版です」といったレスポンスと、修正コードをただちに用意してくれます。そうして何度かのやり取りを重ねることで、プラグインは完成に至ります。
最終的に実現出来なかったプラグインも何点かありました。「組み込んでもその通りの結果にならず、エラーも発生していない」というケース。この場合は何度やりとりしても「設定等を確認してください」としか返ってこないので、

・ソースコードの書き方は無数にあるので、問い方を変えてみる
・質問を丁寧にしてみる(xキーを押す → キーボードの「x」ボタンを押す etc)
・「〜が不具合の原因ではないですか?」など、あたりをつけて質問してみる

これだけ粘っても解決しない場合は、潔く諦めです。

ひとまず、ChatGPTが作ってくれた他のプラグインを置いておきますね。

1. キャラクターの歩行グラフィックサイズを変更するプラグイン【CharaScalePlugin】
ガリバー旅○記みたいなことが出来ます。多分。

2. 現在時刻の時計を配置するプラグイン【ClockWindow】
ゲームは1日1時間、夕方18時まで。これがあれば親御さんも安心してお子さんに自作ゲームを遊んでもらえます。

3. 敵の最大HPをメモ欄で設定するプラグイン【EnemyMaxHP】
ツクールの入力欄が6桁までなので。これがあれば10那由多だって設定出来るかも?
(このプラグインを作成するために行ったやりとりはこちら

4. 画面の縁をぼんやり暗くさせるプラグイン【VignetteEffect.js】
GPT-4で作成!
画面の縁をぼんやり暗くさせます。プラグインコマンドでON・OFFも可能。

※AIの特性上、どこかの著作ソースコードから引用している可能性があるので取り扱い注意。
※競合・不具合発生等の責任は負いかねます。

2023年1月ランキング

2023年1月ランキング

最近、週一で図書館に通っています。特にお目当ての本がある訳では無いのですが、沢山の本に囲まれている空間そのものが好きなんですよね。私の作品でも図書館がよく出てきますし、「魔女塔のシュリィ」の主人公も本に埋もれて暮らすというのが夢ですからね。私の「図書館愛」の様なものは、そうして作品を通じて伝わっていると思います。

というわけで、1月のアクセスランキングです。

1位 ラハと魔法の園 -the graystory-
2位 ジャベリアの魔女禁書
3位 ラハと理の魔法生 -the 2ndstory-
4位 七人勇者とふしぎの塔
5位 ラハと百年魔法石 -the endstory-
6位 魔女塔のシュリィ
7位 紅く追憶の水葬
8位 魔女盤のアルカ
9位 RiSE -囚われ少女の魔法譚-
10位 チョイスクライシス2022

「ラハと魔法の園」から「ジャベリアの魔女禁書」まで、全6部作クリア到達した方はどれぐらいおられるのでしょうね。シリーズ年表をラハシリーズwiki(全シリーズネタバレ有)に作ってみましたが、ラハシリーズ時間軸と魔女Xシリーズ時間軸が結構ごちゃごちゃなので、いずれもうちょっと綺麗にまとめたいですね。

それと、1月に入ってから「七人勇者〜」へのアクセスが凄かったです。質問も数件いただいているのですが、去年2月の最終アップデート以降、実装内容をほぼほぼ忘れており、うまく答えられず申し訳無いです。同時期に出したクイズゲームの答えももう覚えていません(汗)。

プレイ時間が一致しない問題について

プレイ時間が一致しない問題について

kotonoha*のフリーゲームでは、ほぼすべての作品に「プレイ時間」を表示していますが、秒がすごい勢いでカウントされていたり、「戦闘に3分程度しかかかっていないのに6分もかかった事になっている」といった現象がたまに不具合として報告されています。

これは不具合というわけでは無くて、ゲーム内のプレイ時間を「フレームレート」から取得しているために起こる現象です。

プレイ時間

モニターのリフレッシュレートが60Hz、あるいはグラフィックボードの設定フレームレート等が60fpsで設定されている時、プレイ時間は時計通りに表示されます。
一般的なPCであれば殆どがその様に設定されていますが、ゲーミングモニター、ゲーミングパソコンなど高いリフレッシュレートが設定可能な環境でプレイを行った場合、たとえば120fpsの時は2倍、240fpsの時は4倍の速さでプレイ時間がカウントされます。

1秒を正確に計測したい場合は、下記の様な手順でゲーム内フレームレート制限を60fpsにしてみてください。

GeForce製フレームレート設定例 ※Windows10
1) 「NVIDIAコントロールパネル」を開く(デスクトップを右クリック等で表示)
2) 3D設定→3D設定の管理
3) 「プログラム設定」タブを選択
4) カスタマイズするプログラムを選択する→「追加」をクリック
5) プログラムが見つからない場合→「参照」をクリック
6) プレイしているフリーゲームのフォルダ内にある「Game.exe」を選択
7) このプログラムを指定するの下部にある「最大フレームレート」の設定欄をクリック
8) 値を60 FPSに設定
9) 「適用」をクリックしてからNVIDIAコントロールパネルを閉じる
10) Game.exeを開いてゲーム開始

これでゲーム内フレームレートが60fps以上で出力されなくなるため、正しいプレイ時間が刻まれます。