UEFN Verse言語 メタバース

【UEFN】VerseでTickモドキっぽいものを作る方法【初心者OK】

【UEFN】VerseでTickモドキっぽいものを作る方法【初心者OK】
みなみ

Tickモドキっぽいものの作り方を教えてください!

りゅう

初心者向けにわかりやすく解説してほしいですね!

こんなお悩みを解決します。

 本記事の内容
 本記事の信頼性

この記事を書いている僕は、クリエイター兼ブロガーです。実際にUEFNを使っており、現在進行形で学んでいます。

今回は、RPGゲームのような俯瞰視点の作り方についてスクショ画像を使って解説します。

なお、alwei様のブログを参考にさせていただきました。

私の解釈に誤りがありましたらその際はご了承ください。(o_ _)o))

さっそく、やっていきましょう。

あすか

VerseでTickモドキっぽいものを作る方法

※音量にご注意ください。

▼ まず、UEFNを開き、コンテンツドロワーをクリックします。

「prop chair」と入力し、椅子を選びましょう。

(propならなんでもOK)

UEFN propを回転させるVerseコード 1
※クリックすると拡大表示されます。

▼ propを追加したら、画面上にある「Verse」をクリックし、「Verse Explorer」を選択します。

UEFN propを回転させるVerseコード 2

▼ 画面右に「Verse Explorer」が表示されるので、Content下の「プロジェクト名」を右クリックし、「Add new Verse file to project」を選択します。

UEFN propを回転させるVerseコード 3

▼ 『rotate_device』と入力し、「作成」をクリック。

UEFN propを回転させるVerseコード 4

▼ 青枠部分の「Verse」をクリック。

UEFN propを回転させるVerseコード 5

▼ 以下のようにコードを入力します。

UEFN propを回転させるVerseコード 6
 完全なスクリプト
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/SpatialMath }

rotate_device := class(creative_device):
    @editable Prop:creative_prop = creative_prop{}
    @editable Speed:float = 0.5
    var Count:int = 0

    Tick()<suspends>:void=
        loop:
            Print("Tick Execute Count : {Count}")
            set Count = Count + 1
            var t:transform = Prop.GetTransform()

            if:
                Prop.TeleportTo[t.Translation, t.Rotation.ApplyLocalRotationZ(Speed)]

            Sleep(0.0)
    
    OnBegin<override>()<suspends>:void=
        spawn{Tick()}

引用:Let's Enjoy Unreal Engine

▼ コードを入力したらUEFNに戻り、コンテンツドロワー→コンテンツ→「Creatives Devices」をクリック。

UEFN propを回転させるVerseコード 7

▼ デバイスをシーン上に設置します。

UEFN propを回転させるVerseコード 8

▼ 設置したら、「Verse」→「Verseコードをビルド」をクリックします。

UEFN propを回転させるVerseコード 9

▼ ビルドしたら、デバイスを選択し「prop」に設定しましょう。

UEFN propを回転させるVerseコード 10

▼ 設定が完了したら、「セッションを開始」を押して実行できるか試してみましょう。

UEFN propを回転させるVerseコード 11

▼ 椅子が回転してればOKです。

UEFN propを回転させるVerseコード 12

以上です、本日もお疲れさまでした🍵

あすか
みなみ

お疲れさまでした!

りゅう

お疲れです😎

 alweiさんのTwitter account ⚡
 My Twitter account 🍀

Verseコードの解説

UEFN Tick Verseコードの解説
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/SpatialMath }

rotate_device := class(creative_device):
    @editable Prop:creative_prop = creative_prop{}
    @editable Speed:float = 0.5
    var Count:int = 0

    Tick()<suspends>:void=
        loop:
            Print("Tick Execute Count : {Count}")
            set Count = Count + 1
            var t:transform = Prop.GetTransform()

            if:
                Prop.TeleportTo[t.Translation, t.Rotation.ApplyLocalRotationZ(Speed)]

            Sleep(0.0)
    
    OnBegin<override>()<suspends>:void=
        spawn{Tick()}

注意:以下のコードの解説文はプログラミング初心者の主が解説したものです。

誤りがありましたら大変恐縮です。

あすか

参考程度にどうぞ。

▼ この行では、Propという名前のプロパティ(属性)を宣言しています。

    @editable Prop:creative_prop = creative_prop{}
    @editable Speed:float = 0.5
    var Count:int = 0
 Countについて

▼ この部分のコードは、Tickというメソッドの定義です。

    Tick()<suspends>:void=
        loop:
            Print("Tick Execute Count : {Count}")
            set Count = Count + 1
            var t:transform = Prop.GetTransform()

            if:
                Prop.TeleportTo[t.Translation, t.Rotation.ApplyLocalRotationZ(Speed)]

            Sleep(0.0)
 var t:transform = Prop.GetTransform()
 Translationについて
 Rotationについて
 breakに関して
 Transform型とVector3型の違いについて

OnBegin<override>()<suspends>:void=は、デバイスが開始されたときに実行されるメソッドを定義しています。

    OnBegin<override>()<suspends>:void=
        spawn{Tick()}
 spawnが使われている理由
 MoveToとTeleportToの違い

以上、このコードは、Fortniteのデバイスを制御するためのスクリプトであり、Tick()メソッドをループ内で実行してデバイスの動作を定期的に更新し、OnBegin()メソッドでTick()メソッドを非同期に実行しています。

まとめ

UEFN Tick Verseコードの解説 まとめ

今回は、VerseでTickモドキっぽいものを作る方法について解説しました。

 完全なスクリプト
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/SpatialMath }

rotate_device := class(creative_device):
    @editable Prop:creative_prop = creative_prop{}
    @editable Speed:float = 0.5
    var Count:int = 0

    Tick()<suspends>:void=
        loop:
            Print("Tick Execute Count : {Count}")
            set Count = Count + 1
            var t:transform = Prop.GetTransform()

            if:
                Prop.TeleportTo[t.Translation, t.Rotation.ApplyLocalRotationZ(Speed)]

            Sleep(0.0)
    
    OnBegin<override>()<suspends>:void=
        spawn{Tick()}

今回もお疲れさまでした。

コツコツとがんばっていきましょう🔥

  • この記事を書いた人
  • 最新記事

あすか(Asuka)

自己紹介:UEFNクリエイター
Verse言語独学中 | UE・プログラミング・3Dモデリング 6月開始 | 備忘録として学習記録をブログに残しています。
■好きな言葉
徳は弧ならず必ず隣あり.
■ひとこと
まだまだ未熟者ですが、
よろしくお願いします。

-UEFN, Verse言語, メタバース
-, ,