tips
この章は読み飛ばしてください。まとめやすいように重要項目を上にしています。
最初はわからないかもしれませんが、最後まで読んでまた来ると、わかるようになっているかもしれません。
variable(var)
まずは変数の紹介です。変数はローカル変数(local)、グローバル変数(global)があります。最初はprojectで読み込むところに作ります。
- フォルダの
/Content/Blueprints/で右クリックして、ブループリントクラス、GameInstanceを作ります。例えば、GM_xxxにします。(名前はなんでもいいです) 設定 -> プロジェクト設定 -> マップ&モードのGame Instance:GameInstance ClassにGM_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からUserCharacterAnimをtrueに変更します。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]が表示されます。