【UEFN】Verse言語の関数について徹底解説【初心者向け】

目次

関数とは

関数は公式のドキュメントではこのように説明されています。

関数とは、アクションを実行し、指定した入力に基づいて異なる出力を生み出す、再利用可能なコードです。 

https://dev.epicgames.com/documentation/ja-jp/uefn/functions-in-verse?application_version=1.0 

関数の名前を呼ぶことで、関数の中身を実行してくれるショートカット的なものです。 
これがあることで、関数を呼ぶだけで関数の中身のアクションを実行できるため、何回も同じアクションを行いたい時などに楽になります。 

関数の種類と使い方

関数は公式が定義しているものを使う場合もあれば、自分で関数を定義して使う場合もあります。 

公式が定義しているものを使う場合

公式がすでに定義してくれているため関数を呼び出すことで使うことができます。 
しかし、公式が定義している関数の中にはメソッドという呼び出し方が異なる関数があります。 
それぞれ具体例を出すと 

  • 通常の関数 
    • Print()⇒括弧内の文字をログに表示 
    • Sleep()⇒括弧内の秒数分待機 
  • メソッド 
    • Damage()⇒括弧内の数字分ダメージを与える 
    • Heal()⇒括弧内の数字分回復する 
    • GetPlayers()プレイヤーの情報を取得する 

通常の関数の呼び出し方

通常の関数の呼び出し方は 
Print(“Hello World!!”) のように関数名を書くだけです。 

メソッドの呼び出し方

一方、メソッドの呼び出し方は 以下のようになります。

関数の対象.関数名() 


Damage()関数の場合、 FortnightCharacter.Damage(30.0) 
となります。 

関数を自分で定義する場合

自ら式を組み合わせて書く必要があり、これを関数を定義する宣言すると言います。
関数の構文はこちらです 。

関数名(パラメータ) : 型 =
    コードブロック 

  • 関数名⇒自分で好きに決められます。 
  • パラメータ⇒コードブロック内でのみ使える変数・定数を宣言する場所です。別の記事で解説予定。 
  • 型⇒コードブロックに合わせて決めます。 
  • コードブロック⇒関数を呼び出した時に行うアクションを書く場所です。 

実際に3秒のカウントダウンをする関数を宣言してみます。 

Countdown()<suspends>: void = 
    Print(3) 
    Sleep(1.0)
    Print(2) 
    Sleep(1.0) 
    Print(1)   
    Sleep(1.0)
    Print(0) 

指定子<suspends>はSleep()を使うために必要なため書いていますが、指定子については別の記事で解説する予定ですので今は理解しなくて大丈夫です。 

  • 関数名⇒Countdownとしました。他の名前にしても動作します。 
  • パラメータ⇒今回はなし 
  • 型⇒この関数を呼び出すことで値は何も返さないためvoidを使う 
  • コードブロック⇒Print()関数とSleep()関数を交互に行っています。 

関数を宣言するだけでは実際に実行されないため、関数を呼び出す必要があります。 

OnBegin<override>()<suspends> : void =という式が初めから書かれていますが、=以降書かれた式がゲーム開始後に実行されることになります。 
そのため、次のように書く必要があります。 

OnBegin<override>()<suspends> : void = 
    Countdown() 

このように関数名を書くことで、関数を呼び出すことができ、関数の中身のアクションが、実行されます。

全体のコードはこのようになります。  

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

hello_world_device := class(creative_device) 

    OnBegin<override>()<suspends> : void =
        Countdown() 

    Countdown()<suspends>: void = 
        Print(3) 
        Sleep(1.0) 
        Print(2) 
        Sleep(1.0)
        Print(1)    
        Sleep(1.0)
        Print(0) 


以下のように書いても同様の結果が得られますが、何度もカウントダウンしたい場合は関数を宣言して呼び出した方が、コーティングが楽になりますし、見栄えも良くなります。 

OnBegin<override>()<suspends> : void = 
    Print(3)   
    Sleep(1.0)    
    Print(2)    
    Sleep(1.0)    
    Print(1)    
    Sleep(1.0)    
    Print(0) 

まとめ

  • 関数とはショートカット
  • 関数は作られているものと自分で作るものに分かれる 
  • 作られている関数の中には呼び出し方が異なるメソッドというものがある 
  • 関数の宣言方法は関数名():型=コードブロック 
よかったらシェアしてね!

この記事を書いた人

メタバースに興味を持ち、UEFN、Verseを学びながらFortniteでゲーム制作しています。
初心者でも理解できるような記事を書くことを心がけております。
間違いがありましたら指摘よろしくお願いいたします。

コメント

コメントする

目次