verseのお作法 ~演算子を知ろう~

①はじめに

変数のつかい方を前提知識としてお話をします。変数が苦手な方はこちらを確認してみてください。

クリエナビ - UEFNにはじめてふれ...

ゲームをつくるときは変数をどんどん変化させていきます。

例えば、プレイヤーが持つアイテムの個数を変数として扱い、1秒ごとにアイテムの個数が増えていくなんていうコードを書くときには変数を変化させることが必要です。

変数を変化させるには、たし算、ひき算、かけ算、わり算のような演算子を使用します。

②たし算

verseファイルをひらきます。以下のスクリプトをコピー&ペーストしてください。#メモ部分に補足コメントを書いています。ご確認ください。

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

hello_world_device := class(creative_device):

    #変数を定義します。
    #@editableとつけるとUEFNで変数の数値を変更できます。
    @editable
    var Add : int = 0

    var Add2 : int = 5

    @editable
    var Add3 : float = 0.0

    var Add4 : float = 6.0

    OnBegin<override>()<suspends>:void=
        #int型のたし算が可能
        set Add = Add + Add2 
        #上記を省略して書くと以下のようになる。
        #set Add += Add2
        Print("{Add}")

        #float型のたし算が可能
        set Add3 = Add3 + Add4
        #上記を省略して書くと以下のようになる。
        #set Add3 += Add4
        Print("{Add3}")

変数の定義で、@editableとつけると、UEFNで編集できるようになります。下画像の黄色枠部分のように、@editableとつけた変数はUEFNで編集できますが、つけていないものは編集できません。

例えば、Addを5に、Add3を5.0にします。セッションを開始すると、以下のような結果になります。

set Add = Add + Add2 を解説します。Add + Add2では、AddをUEFNで5にしているため、5 + 5で10になります。その10を、改めてAddという変数にいれて上書きしています。それをPrintで表示しています。

set Add3 = Add3 + Add4を解説します。Add3 + Add4では、Add3をUEFNで5.0にしているため、5.0 + 6.0で11.0になります。その11.0を、改めてAdd3という変数に上書きしています。それをPrintで表示しています。

注意点ですが、たし算のような演算子は同じデータ型でないと処理できないです。つまり、int型とfloat型が混ざった演算は不可となります。これはひき算なども同様です。

③ひき算

以下のスクリプトをコピー&ペーストしてください。どのような結果となるでしょうか。セッションを開始して確かめてみてください。

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

hello_world_device := class(creative_device):

    #変数を定義します。
    #@editableとつけるとUEFNで変数の数値を変更できます。
    @editable
    var Add : int = 0

    var Add2 : int = 5

    @editable
    var Add3 : float = 0.0

    var Add4 : float = 6.0

    OnBegin<override>()<suspends>:void=
        #int型のひき算が可能
        set Add = Add - Add2 
        #上記を省略して書くと以下のようになる。
        #set Add -= Add2
        Print("{Add}")

        #float型のひき算が可能
        set Add3 = Add3 - Add4
        #上記を省略して書くと以下のようになる。
        #set Add3 -= Add4
        Print("{Add3}")
④かけ算

以下のスクリプトをコピー&ペーストしてみてください。どのような結果となるか、セッションを開始して確かめてみてください。いろいろ数値を変更してみたりして、違う結果が導かれることを見つけてみてください。

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

hello_world_device := class(creative_device):

    #変数を定義します。
    #@editableとつけるとUEFNで変数の数値を変更できます。
    @editable
    var Add : int = 0

    var Add2 : int = 5

    @editable
    var Add3 : float = 0.0

    var Add4 : float = 6.0

    OnBegin<override>()<suspends>:void=
        #int型のかけ算が可能
        set Add = Add * Add2 
        #上記を省略して書くと以下のようになる。
        #set Add *= Add2
        Print("{Add}")

        #float型のかけ算が可能
        set Add3 = Add3 * Add4
        #上記を省略して書くと以下のようになる。
        #set Add3 *= Add4
        Print("{Add3}")
⑤わり算

以下のスクリプトをコピー&ペーストしてみてください。どのような結果となるか、セッションを開始して確かめてみてください。1点注意ですが、int型のわり算を、int型変数にいれることができません。

using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

hello_world_device := class(creative_device):

    #変数を定義します。
    #@editableとつけるとUEFNで変数の数値を変更できます。
    @editable
    var Add : int = 0

    var Add2 : int = 5

    @editable
    var Add3 : float = 0.0

    var Add4 : float = 6.0

    OnBegin<override>()<suspends>:void=
        #int型のわり算をした結果をint型の変数にいれることができない!
        #わり算すること自体は可能
        #set Add = Add / Add2 
        #Print("{Add}")

        #float型のわり算が可能
        set Add3 = Add3 / Add4
        #上記を省略して書くと以下のようになる。
        #set Add3 /= Add4
        Print("{Add3}")
⑥まとめ

いかがでしたでしょうか。

追加でアドバイスですが、セッションを開始して効果を確かめてセッションを終了したときのお話です。その後、verseスクリプトのみ修正した場合は、verseコードをビルド後、ツールバーの一番右部分に「verse変更内容をプッシュ」とあるのでこちらをクリックします。そうするとセッション開始がとても速いです。ですが、verse以外の修正が同時にあった場合は、変更をプッシュを押す必要があり、いつも通りセッション開始までに時間がかかります。

ぜひいろいろな計算を試してみてください。

それでは、また。

お疲れさまでした。

ご質問やご感想はお気軽にコメント欄まで!

コメントする