2025/4/21エンジニア

    【Unreal Engine】CppとBPの連携する方法

    執筆: T.T

    はじめに

    今回紹介するのはUnreal EngineでBPとCppの連携について記載しようと思います。

    よくWBPにcppで計算したパラメータを送る場合や

    WBPをユーザーが操作した場合にcppに結果を送りたい場合など多々あるとおもいますが、

    あまり記事がないのでここに記載します。

    用意するもの

    Unreal Engine

    Visual studio

    cppファイルを継承したBPファイル

    準備

    levelBPに該当実験用のBPをインスタンス化して表示状態にしておきます。

    headerの内容

    二つの関数ButtonFuncとUpdateBPを追加

    cppファイルの内容

    BPからCPPの関数を呼び出す方法

    BPからCPPの関数を呼び出す方法については簡単で、

    下記のようにheaderに宣言すればBPで呼び出し可能です。

    (.h)

    (.cpp)

    コンパイルが通れば下記のようにBP内でcppの関数を使うことができます。

    CPPからBPの関数を呼び出す方法

    cppからBPを呼び出す方法は、下記のように記載を行う必要があります。

    (.h)

    cpp側ではImplementation関数も記載します。

    (.cpp)

    また使用する場合は非同期処理を行う必要があります。

    コンパイルを行うことで、BP側で利用することができます。

    注意点として、BP側だけみてもブレイクポイントを貼らない限り

    いつのタイミングで呼ばれるかわからないので明示的に情報を記載するほうが安全です。

    処理の流れ

    こちらが今回疎通処理で使用した箇所のイベントグラフです。

    単純に画面のボタンが押された際、「BP→CPP」を経由し、「CPP→BP」という形でコールしています。

    処理の内容に関しては単純で入力された点数をcpp側で受け取り100倍にして返す処理を記載しています。

    まとめ

    今回の記事作成にあたって、よくcppだけわかるけどBPについてはわからない。

    BPはネットに情報があるけどCPPの情報がない。

    そしてcppとBPの連携がうまくいかないので処理を変えるということが

    でてくるのはもったいないと思い作成しました。

    自分的にはBPに全体の処理を記載して細かな処理をCPP側で記載するということが

    プランナーやプログラマーと仕事を分けることができるのでいいのかなと思います。

    https://www.unrealengine.com/ja