ChatGPT作成アクターをRPGツクールMZ用に変換

実験メモ

前回、前々回の投稿で、ChatGPTでRPGツクールのアクターやスキルを作成しました。

これで味方キャラ作成に必要な情報は完成しているので、RPGツクールMZにインポートできる形に変換していきます。

前提

members.json

アクターの職業とステータス(いったんレベル1の値とします)を含むファイルです。以下のような形でChatGPTで作成できている前提です。

[
    {
        "name": "ユウスケ",
        "class": "警察官",
        "hp": 123,
        "atk": 92,
        "def": 101,
        "mat": 68,
        "mdf": 56,
        "agi": 77,
        "luk": 63,
        "field_skill": "周囲警戒"
    }, ...
]

詳しい作成方法は以下の投稿をご覧ください。

skills.json

アクターが持っているスキルの詳細を定義したファイルです。以下のような形でChatGPTで作成できている前提です。

[
    {
        "name": "ジャスティスストライク",
        "class": "警察官",
        "description": "敵単体に強力な物理攻撃を行い、「防御ダウン」状態を付与する。",
        "tp": 20,
        "type": "物理",
        "scope": "敵単体",
        "effect_type": "HPダメージ",
        "effect_rate": 3.5,
        "variance": 10,
        "repeats": 1,
        "formula": "user.atk*3.5-target.def",
        "element": "なし",
        "target_add_state": [
            "防御ダウン"
        ],
        "target_add_state_rate": 100,
        "special_effect": "敵の防御力を25%ダウン(5ターン)",
        "icon_index": 76,
        "animation": "SlashPhysical"
    }, ...
]

詳しい作成方法は以下の投稿をご覧ください。

Pythonのインストール

JSONファイルの変換にはPythonスクリプトを使います。お使いのPCにPythonをインストールされていない方は、以下からPythonをインストールしてください。最新のバージョンでOKです。

Download Python
The official home of the Python Programming Language

スクリプトの準備

JSONファイルの変換にはPythonスクリプトを使います。以下にまとめていますので「Source code(zip)」をダウンロードしてください。

Release 003_dungeon_rpg · generative-rpg/RPGMaker-with-ChatGPT
003_dungeon_rpg

アクター画像の用意

変換スクリプト自体にはアクターの顔画像などは不要ですが、便宜上顔グラフィックをgrid1から順番に0,1,2…を振っていくようなスクリプトにしています。

members.jsonの上から順番に以下のようなルールで顔画像が設定されます。(顔画像名, 顔番号)
・1人目⇒grid1, 0
・2人目⇒grid1, 1
・3人目⇒grid1, 2
 …
・8人目⇒grid1, 7
・9人目⇒grid2, 0
・10人目⇒grid2, 1
 …

画像についてもChatGPTの有料版を使うことでいい感じのキャラが出力できるので、試してみてください。(またどこかで画像系をまとめた記事を書く予定です)

フォルダ構成

GitHubからダウンロードしたzipを解凍するとtranslateフォルダに3つのPythonファイル(maker.py, make_actors.py, make_skills.py)が入っています。Pythonと同階層にあるjsonフォルダを作成し、前提条件となっている2つのJSON(members.json, skills.json)を入れてください。

translate/
 ├ json/
 │ ├ members.json
 │ └ skills.json
 ├ maker.py
 ├ make_actors.py
 └ make_skills.py

以降のスクリプトはtranslateフォルダに移動して実行します。

cd translate

RMMZフォルダ名の設定

maker.pyを開き、変換したJSONファイルを適用したいRPGツクールMZのプロジェクト名に変更してください。(ファイルは上書きになるのでプロジェクトフォルダごとバックアップを取るようお願いします)

maker.py

BASE_PATH = "<YOUR RMMZ PATH ex. C:/work/RMMZ>"
GAME_NAME = "<YOUR RPG FOLDER NAME ex. EternalQuest>"

maker.pyのトップにあるBASE_PATHとGAME_NAMEで「game.rmmzproject」がある場所へのパスを設定します。「C:\work\RMMZ\EternalQuest」に「game.rmmzproject」がある場合、以下のようになります。

BASE_PATH = "C:/work/RMMZ"
GAME_NAME = "EternalQuest"

RPGツクールMZ用のファイルに変換

スキル作成

先にスキルを作成します。(先にスキルを作成しないと、職業に紐づくスキルが存在しなくなりこの後のmake_actors.pyでエラーになります)

python make_skills.py

正常実行されたら、RPGツクールMZを開き、スキルが正しく作成されていることを確認します。

ChatGPTで作成した「skills.json」に属性、ステート、アニメーションなどRPGツクール上で定義されていないものが使われている場合は、Pythonスクリプト実行時に「not found …」のエラーが出ます。
この場合、対応する属性・ステート・アニメーションをRPGツクールMZエディターで作成すればで追加するか、json側を既にある属性、ステート、アニメーションに修正することで正常実行されます。

アクター・クラス作成

次にアクターとクラスを作成します。

python make_actors.py

正常実行されたら、RPGツクールMZを開き、アクターとクラスが正しく作成されていることを確認します。

まとめ

三部作で「①アクター作成⇒②スキル作成⇒RPGツクールMZで使えるファイルに変換」とやってきた最終章になります。自動化といっても複数の手順があり、大変だったと思いますがどうだったでしょうか?

毎回この手順をやるのは面倒なので、一連の流れを自動でできるようなツールも今後作成していきたいと思っています。

タイトルとURLをコピーしました