UEFN Verse言語 メタバース

【UEFN】ゲームの終了まで繰り返し消えるプラットフォーム【Verse】

【UEFN】ゲームの終了まで繰り返し消えるプラットフォーム【Verse】
みなみ

ゲームの終了まで繰り返し消えるプラットフォームのVerseコードについて教えてください!

りゅう

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

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

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

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

今回は、ゲームの終了まで繰り返し消えるプラットフォームのVerseコードについて解説します。

なお、UEFN上でのオブジェクトの配置等は下記の記事を参考にしてください。

>> EpicGames公式ドキュメント

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

あすか

使用するVerse言語

使用するVerse言語
 loop

loop:

ゲームが終了するまでプラットフォームの表示状態と非表示状態が繰り返されます。

この例では、Verse の loop 式を使用してこのような動作を作成する方法を示します。

公式ドキュメント

使用するVerse API

使用するVerse API
 Sleep()

Sleep():

Sleep() API を使用することにより、プラットフォームが非表示状態になる時間と表示状態になる時間を選択できます。

公式ドキュメント
 Editable Properties

Editable Properties:

エディタでカスタマイズできるように、Verse で作成した仕掛けの 2 つのプロパティ (プラットフォームの仕掛けの参照と Sleep() 関数呼び出しの ToggleDelay) が UEFN に公開されます。

公式ドキュメント

ゲームの終了まで繰り返し消えるプラットフォームのVerse部分を解説

※音量にご注意ください。
 コード
using { /Fortnite.com/Devices }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
 
log_on_off_platform := class(log_channel){}
 
on_off_platform := class<concrete>(creative_device):
    Logger : log = log{Channel := log_on_off_platform}

    @editable
    ToggleDelay : float = 2.0 # How long to wait between showing and hiding the platform

    @editable
    Platform : color_changing_tiles_device = color_changing_tiles_device{} 
 
    OnBegin<override>()<suspends> : void =
        loop:
            Sleep(ToggleDelay) # Sleep(ToggleDelay) waits for ToggleDelay seconds before proceeding to the next instruction.
            Platform.Hide()
            Sleep(ToggleDelay)
            Platform.Show() # The loop restarts immediately, calling Sleep(ToggleDelay) again.

なお、以下のコードの解説文はプログラミング初心者の主がなんとか調べて記述したものです。

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

あすか

参考程度にどうぞ。

完全なスクリプト

▼ このコードは、ゲーム内で繰り返し表示されたり非表示にされたりするプラットフォームの挙動を制御するためのコードです。

using { /Fortnite.com/Devices }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
 
log_on_off_platform := class(log_channel){}
 
on_off_platform := class<concrete>(creative_device):
    Logger : log = log{Channel := log_on_off_platform}

    @editable
    ToggleDelay : float = 2.0 # How long to wait between showing and hiding the platform

    @editable
    Platform : color_changing_tiles_device = color_changing_tiles_device{} 
 
    OnBegin<override>()<suspends> : void =
        loop:
            Sleep(ToggleDelay) # Sleep(ToggleDelay) waits for ToggleDelay seconds before proceeding to the next instruction.
            Platform.Hide()
            Sleep(ToggleDelay)
            Platform.Show() # The loop restarts immediately, calling Sleep(ToggleDelay) again.

log_on_off_platform := class(log_channel){}

log_on_off_platform := class(log_channel){}は、ログを出力するためのクラスを定義するためのコードです。

# log_on_off_platformクラスは、log_channelクラスから継承します。

log_on_off_platform := class(log_channel){}
 log_on_off_platform := class(log_channel){}の記載理由
 わざわざ継承する必要ないのでは
 クラスの定義について
 log_channelの機能
 log_on_off_platform := class(log_channel){}と Logger : log = log{Channel := log_on_off_platform}の意味

▼ このコードの部分は、on_off_platform クラスに新しいフィールド ToggleDelay を追加しています。

  @editable
  ToggleDelay : float = 2.0

▼ このコードの部分は、on_off_platform クラスに新しい編集可能なフィールド Platform を追加しています。

  @editable
  Platform : color_changing_tiles_device = color_changing_tiles_device{}

▼ 下記のコードは、プラットフォームの表示と非表示を切り替える機能を追加するためのものです。

OnBegin<override>()<suspends> : void =
    loop:
        Sleep(ToggleDelay) # Sleep(ToggleDelay) waits for ToggleDelay seconds before proceeding to the next instruction.
        Platform.Hide()
        Sleep(ToggleDelay)
        Platform.Show() # The loop restarts immediately, calling Sleep(ToggleDelay) again.

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

繰り返し練習して身につけましょう😌

 My Twitter account 🍀
  • この記事を書いた人
  • 最新記事

あすか(Asuka)

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

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