ue/book/default/03_tips.md
2025-02-09 03:28:27 +09:00

5.1 KiB

tips

この章は読み飛ばしてください。まとめやすいように重要項目を上にしています。

最初はわからないかもしれませんが、最後まで読んでまた来ると、わかるようになっているかもしれません。

variable(var)

まずは変数の紹介です。変数はローカル変数(local)、グローバル変数(global)があります。最初はprojectで読み込むところに作ります。

  1. フォルダの/Content/Blueprints/で右クリックして、ブループリントクラス、GameInstanceを作ります。例えば、GM_xxxにします。(名前はなんでもいいです)
  2. 設定 -> プロジェクト設定 -> マップ&モードGame Instance:GameInstance ClassGM_xxxを読み込みます。

なお、名前にDefault, Test, Configなどを使う場合は予約されていることがあります。注意してください。

これを開いて、変数のところでUserTestという名前でstring型の変数を作ります。コンパイル(compile)してください。デフォルト値はWorldとでも入れておきましょう。

次に、/Content/Blueprints/CBP_SandboxCharacterを開いて、EventGraphで右クリックし、Cast To GM_xxxを選択します。

インプット(input)のpin(ピン)にあるObjectにはGet Game Instanceをつなぎます。そして、アウトプット(output)の青線はGet UserTestと検索し、それをPrint Stringにつなぎます。

さて、ここにkeyを設定して再生するとWorldと表示されるはずです。

特に重要なのが変数の型です。種類もそうですが、変数の型の右側にある色アイコンをクリックしてみると、たくさんの形式があることがわかります。

  • 単一
  • 配列
  • 設定
  • マップ

配列を使ってみましょう。UserTestListという名前でstringの配列を作成します。

ここで、デフォルト値に追加できることに気づくはずです。

例えば、単語を3つ追加してみます。

  • [0]ai
  • [1]burst
  • [2]can

Cast To GM_xxxからGet UserTestListを引っ張り出し、Lengthにつなげます。それをprintしてみると、2と表示されるはずです。

length(len)はその配列に追加された数を知ることができます。

では、全部の値を取り出すためforを書きましょう。UserTestListからFor Each Loopを伸ばしてLoop Bodyからprintにつなぎます。値はArray Elementから取ります。

もし文字列をつなぎたいならAppendが使えます。

変数にはObjectをいれることもできます。たくさんのObjectを入れておき、Findで検索して取り出すこともできます。

では、characterを全部まとめて検索できる変数を作ってみます。

名前はUserCharacterObjでstringを選択し、マップを選択します。右側のマップはオブジェクト(object)と検索し、object参照を選択します。

str obj
--- ---

cbp characterと検索し、characterのcbpを入れていきます。名前はわかりやすいものにしてください。例えば、manny, quinnなど。

では繋いでいきます。

[Get Game Instance] --> [Cast To GM_Defaultconfig] --> [UserCharacterObj]

--> [Find(manny)] --> [Get Object Name] --> [Print String]

基本的にこれを利用して、他のBPと値をやり取りすることになります。例えば、ABP_SandboxCharacterで条件を満たしたとき実行してほしいアニメーション(anim)があったとします。

この場合、まずGM_xxxの変数でUserCharacterAnimをboolean型で作り、実行してほしいタイミングでCBP_SandboxCharacterに書いたCast To GM_DefaultconfigからUserCharacterAnimtrueに変更します。Set UserCharacterAnimで検索してください。そして、ABPにはUserCharacterAnimがtrueならanimを再生する処理を書きます。

function(func)

次は関数です。関数は簡単で、何度も繰り返す部分を再利用可能な形で残します。それが関数です。

新しい関数を作ってみましょう。左バーの関数(+)を押せば作成されます。名前はFuncTestにします。

関数を表す紫色のボックス(box)を選択した状態でinputとoutputの見てもらって、inputにboolという名前でboolean型を作ります。outputにはstrという名前でstring型を作ります。

処理の内容はboolがtrueなら[yes]というstringを出力し、falseなら[no]にします。

確認してみましょう。[9]を押すと[yes][no]が表示されます。