2026/2/9エンジニア

    JsonをUE4のBPで使ってみよう

    執筆:  “F.S”

    はじめに

    初めまして。プログラマーのF.Sです。

    今回の内容はUnrealEngine(以降UE)のブループリントでjsonを読み込んでパラメータを反映させるということをやっていきます。

    UE5では「Json Blueprint Utilities」というプラグインを使ってブループリントでjsonを読み込めるのですが、UE4だと無いんですよね。

    一応UE4でもC++で使うことができるのですが、C++だけで作ると参照するパラメータが増えたり減ったりするだけで書き換えるコストが発生します。すごく面倒くさいです。

    なので、C++で書いたものをブループリントで手軽に使えるようにしてパラメータ追加・削除に耐えられる作りにしていきましょう。

    この記事の内容

    1. 準備

    2. 実装手順

    ・ C++で書いてみる

    ・ ブループリントで使ってみる

    3. まとめ

    4. 関連記事

    準備

    今回用意するのはこちらです。

    1. UE4.27
    2. vsCode(visual studio)

    実装手順

    ・C++で書いてみる

    まずはC++側から作成します。

    左上の「ファイル」から「新規C++クラス」を選びます。親クラスは「Actor」にしてください。名前は「JsonLoad」にしてください。「public」か「private」を選ぶところがあるので「public」を選択してください。

    C++ファイルができたのを確認したら、現在開いているプロジェクトの「Source/<プロジェクト名>/<プロジェクト名>.Build.cs」を開き、「Core」や「Engine」などが書かれているところに「Json」と「JsonUtilities」を追加し保存してください。

    その後、UEに戻り「コンパイル」と書かれているところをクリックしてください。コンパイルが成功したら、念のためプロジェクトを再起動しましょう。

    再起動したら、作成したC++ファイル(.hと.cpp)を以下のように編集します。

    .hファイル

    .cppファイル

    編集したら保存し、またUEで「コンパイル」しましょう。

    コンパイルが成功したらC++はこれで終わりです。

    ・ブループリントで使ってみる

    まずは読み込むためのjsonファイルを作成しましょう。

    プロジェクトが入っているフォルダの「content」フォルダにテキストファイルを作成します。名前は「param.txt」にしておきます。その後そのテキストファイルを開き「ファイル」から「名前を付けて保存」を選び、フォルダ名の下にあるファイルの種類を「すべてのファイル」にし、名前を「param.json」にします。

    保存できたらテキストファイルは削除し、jsonファイルをvsCodeなどで開き、以下のように編集してください。

    次はブループリントで作成します。

    「コンテンツブラウザ」に「BluePrint」のフォルダを作成します。

    「コンテンツブラウザ」の「C++クラス」というフォルダを開き、「<プロジェクト名>/public」の中にある先ほど作成した「JsonLoad」を右クリックします。

    そうしたら、「JsonLoadに基づくブループリントクラスを作成」を選択します。

    名前は「BP_JsonLoader」にしてください。場所は先ほど作成した「BluePrint」にしてください。

    作成したら、「BP_JsonLoader」のブループリントを開き、「イベントグラフ」で右クリックし、「Load Json」と入力し「Load Json」を選択します。

    そうするとブループリント上に「Load Json」が出てきます。

    こちらは本来UEには存在しない関数ですが、「JsonLoad」をもとに作成したアクターなので、そのC++で作成した関数を一部使用することができます。

    「Load Json」を「BeginPlay」に繋ぎ、「File Path」に以下のものと繋げてください。

    その後、イベントグラフの空いてるところで右クリックし、「Get Value」と入力してください。そうしたら「Get Value」関数が出てくるので選択します。

    「Get Value」を「Load Json」の右に繋ぎ、「Pram Name」を「name」にしてください。

    そうしたら今度はまたイベントグラフで右クリックし、「Print String」と入力し選択します。

    「Get Value」の右に「Print String」を繋ぎ、「Return Value」を「In String」に繋ぎます。

    最後に「保存」を押してください。

    これらが終わったら、このアクターをレベルに配置します。

    「コンテンツブラウザ」の「BP_JsonLoader」を「ビューポート」にドラッグアンドドロップしましょう。

    配置できたら上の「プレイ」を押して実行しましょう。

    ビューポート左上に「mike」と表示されていたら成功です。

    まとめ

    これでUE4でjsonが使えるようになりました。

    jsonでパラメータを設定しておくとエディタを開かずにオブジェクトのスポーン数や敵のHPなどを設定できるようになります。

    また、パッケージ化しても値が変更できるので何か簡単なツールを作る際に役に立ちます。

    ゲーム開発やその他の開発に役立てましょう。

    関連記事