このセクションでは、カメラ ビューと UI 要素のタイミングとトランジションを管理する Verse の仕掛けの作成方法について説明します。 このセクションの最後にある完全なスクリプトをコピーして貼り付けることができます。
タイトル シーケンスの Verse の仕掛けを作成するには、次の手順を実行します。
title_sequence という名前の新しい Verse の仕掛けを作成して、レベルに追加します。 手順については、「Verse を使用して独自の仕掛けを作成する」を参照してください。
Verse の仕掛けに次のフィールドを追加します。
SplashScreenGameCameraという名前の編集可能なカメラ:定点の仕掛けの定数。タイトル画面を表示するカメラになります。TitleGameCameraという名前の編集可能なカメラ:定点の仕掛け。ゲーム タイトルを表示するカメラになります。StartGameDialogという名前の編集可能なポップアップ ダイアログの仕掛け。プレイヤーがゲームを開始するために選択するダイアログ オプションを表示します。TitleScreenという名前の編集可能な HUD メッセージの仕掛け。ゲーム タイトル UI を表示します。GameMenuDelayという名前の編集可能な浮動小数値。ゲーム メニューが表示されるまでのタイトル画面の表示時間を定義します。SplashScreensという名前の編集可能な HUD メッセージの仕掛けの配列。タイトル画面の前にすべてのスプラッシュ画面を表示します。IntroHUDControllerという名前の編集可能な HUD 制御の仕掛け。イントロの間、すべてのインゲームの UI 要素を非表示にする HUD 制御です。GameHUDControllerという名前の編集可能な HUD 制御の仕掛け。ゲーム開始時に表示されるすべてのインゲームの UI 要素を表示する HUD 制御です。GameStartという名前の編集可能なトリガーの仕掛け。この仕掛けを使用して、ゲームの開始をあらゆる仕掛けに通知できます。Verseusing { /Fortnite.com/Characters } using { /Fortnite.com/Devices } using { /UnrealEngine.com/Temporary/Diagnostics } using { /Verse.org/Simulation } title_sequence:= class(creative_device): # Game camera to show splash screens on top of. @editable SplashScreenGameCamera:gameplay_camera_fixed_point_device = gameplay_camera_fixed_point_device{}
suspends 指定子を含む
ShowTitleAndGameMenu()という名前のメソッドを作成します。 このメソッドは、タイトルのカメラを表示して、タイトル画面を表示し、ゲーム開始ダイアログを表示する前に GameMenuDelay 秒間待機してから、プレイヤーが UI の [Start Game (ゲームをスタート)] ボタンを押すのを待ちます。# タイトル画面および [Start Game] オプションを表示します。 ShowTitleAndGameMenu()<suspends>:void= # 全プレイヤーにタイトル カメラを追加します。 TitleGameCamera.AddToAll() # タイトル画面を表示します。 TitleScreen.Show() # [Start Game] オプションを表示する前に GameMenuDelay 秒間待機します。 Sleep(GameMenuDelay) # [Start Game] メニューを表示します。 StartGameDialog.Show() # 他の処理を実行する前に、プレイヤーが [Start Game] を押すまで待機します。 StartGameDialog.RespondingButtonEvent.Await()HideTitleAndGameMenu()という名前のメソッドを作成します。 このメソッドはタイトル画面を非表示にし、タイトル用に使用されているカメラを削除します。 ~~~(verse) # タイトル画面を非表示にし、すべてのプレイヤーからカメラを削除します。 HideTitleAndGameMenu():void= TitleScreen.Hide() TitleGameCamera.RemoveFromAll() ~~~ShowSplashScreens()という名前のメソッドを作成します。 このメソッドは、スプラッシュ画面を表示するためにSplashScreens配列に追加されたすべての HUD メッセージの仕掛けをイテレートし、スプラッシュ画面がプロパティで表示されるように設定されている期間待機します。 すべてのスプラッシュ画面が表示された後、スプラッシュ画面用のカメラは無効になります。# 一連のスプラッシュ画面を表示します。 ShowSplashScreens()<suspends>:void= # すべてのスプラッシュ画面をイテレートします。 for (SplashScreen : SplashScreens): # 各スプラッシュ画面を表示します。 SplashScreen.Show() # スプラッシュ画面を表示する必要のある間待機します。 Sleep(SplashScreen.GetDisplayTime()) # スプラッシュ画面を表示するのに使用されているゲーム カメラを削除します。 SplashScreenGameCamera.Disable()ToggleStasisForAllPlayers()という名前のメソッドを作成します。 このメソッドは、すべてのプレイヤーをイテレートし、ShouldFreeze引数がtrueの場合は (プレイヤーが動くことができないように) 静止状態にし、ShouldFreeze引数がfalseの場合は (プレイヤーが再び動くことができるように) 静止状態から解放します。# プレイヤーの静止状態を切り替えます。 # ShouldFreeze が true の場合、すべてのプレイヤーが静止状態になります。 # ShouldFreeze が false の場合、すべてのプレイヤーは静止状態から解放されます。 ToggleStasisForAllPlayers(ShouldFreeze:logic):void= for: Player : GetPlayspace().GetPlayers() Character := Player.GetFortCharacter[] do: if (ShouldFreeze?): # プレイヤーを静止状態にして、方向転換したり、感情を表すことができないようにします。 Character.PutInStasis(stasis_args{AllowFalling := true, AllowTurning := false, AllowEmotes := false}) else: # 静止状態からプレイヤーを解放します。 Character.ReleaseFromStasis()OnBegin()を次のように更新します。IntroHUDController.Enable()を使用して、イントロの HUD コントローラーを有効にし、インゲームのすべての UI 要素を非表示にします。ToggleStasisForAllPlayers(true)を使用して、イントロの間プレイヤーが動くことができないように、プレイヤーを静止状態にします。ShowSplashScreens()を使用して、スプラッシュ画面のシーケンスを表示します。この
OnBegin()関数の最後の 1 秒で、defer 式を使用してHideTitleAndGameMenu()を呼び出すことで、タイトルとゲーム メニューを非表示にします。ShowTitleAndGameMenu()を使用して、タイトルとゲーム メニューを表示します。ToggleStasisForAllPlayers(false)を使用して、プレイヤーを静止状態から解放します。HUD コントローラーをイントロの HUD から実際のゲームの HUD に切り替えます。
最後に、
GameStart.Trigger()を呼び出し、リッスンしているすべての仕掛けにゲームが開始されることを通知します。# 実行中のゲームで仕掛けが開始されたときに実行します OnBegin<override>()<suspends>:void= IntroHUDController.Enable() # すべてが初期化されるまで、シミュレーションの更新を 1 回待機します。 Sleep(0.0) # 動くことができないように、プレイヤーを静止状態にします。 ToggleStasisForAllPlayers(true) # 一連のスプラッシュ画面を表示します。 ShowSplashScreens() # 最後の 1 秒でタイトルとゲーム メニューを非表示にします。 # この defer は、現在のコード ブロックが終了したときに実行されます。 # コード ブロックの終了は、この OnBegin 関数の末尾の GameStart.Trigger() の後です。 defer: HideTitleAndGameMenu() # タイトルとゲーム メニューを表示します。 ShowTitleAndGameMenu() # 再び動くことができるように、プレイヤーを静止状態から解放します。 ToggleStasisForAllPlayers(false) #HUD 制御を実際のゲームの HUD に切り替えます。 IntroHUDController.Disable() GameHUDController.Enable() # リッスンしているすべての仕掛けにゲームが開始されることを通知します! GameStart.Trigger()
Verse ファイルを保存して、コードをコンパイルし、レベルの Verse の仕掛けを更新します。
完全なスクリプト
以下は、タイトル シーケンスの Verse の仕掛けの完全なコードです。
using { /Fortnite.com/Characters }
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Simulation }
title_sequence := class(creative_device):
# Game camera to show splash screens on top of.
@editable
SplashScreenGameCamera:gameplay_camera_fixed_point_device = gameplay_camera_fixed_point_device{}