スイッチ を使うには2つの方法があります。
-
プレイヤーがインタラクトできる物理的なスイッチとして使用できます。他の仕掛けと組み合わせ、ドアを開閉したり、照明をつけたり消したりできます。
-
他の仕掛けとのインタラクトをフィルタリングするための手法として使用できます。例えば、スイッチがオンの状態なら、あるチャンネルに送信し、スイッチがオフの状態なら他のチャンネルに送信するという方法です。
スイッチの仕掛けを見つけるには、仕掛けの場所と設置方法を参照してください。
関連性フィルター
一部の仕掛けは、 関連性フィルター と呼ばれる機能の影響を受けます。この機能は、特定の関連するオプションで選択されている値に基づいて、オプションを表示したり非表示にしたりするものです。この機能により、カスタマイズパネルが設定であふれかえることを防ぎ、よりオプションを管理、確認しやすくなります。
ただし、どのオプションや値が関連性フィルターを起動しているのか判断が難しい場合もあります。分かりやすくするために、関連性フィルターを起動する値は全て 斜体 で記載しています。この解説には、関連性フィルターの影響を受けるものを含め、全てのオプションを載せています。特定のオプションの値によって表示もしくは非表示になる場合、そのオプションの説明フィールド内には注意書きを記載しています。
仕掛けのオプション
この仕掛けには、スイッチの表示状態やプレイヤーがスイッチとインタラクトした際に表示される文字の選択などの基本的な機能があります。それに加え、スイッチの状態を保存できるかなどの高度なオプションも利用可能です。
この仕掛けの設定は、下記のオプションで行うことができます。
初期値は 太字 になっています。関連性フィルターを使用する値は斜体になっています。
オプション | 値 | 説明 |
---|---|---|
ゲーム開始時に有効化 | はい、いいえ | ゲーム開始時に仕掛けが有効化されるかの設定です。無効な仕掛けは、有効化されることを除く全てのイベントを無視します。 |
最初の状態 | オフ、オン | 上書きに使用される、プレイヤーに依存する状態が存在しない場合の、スイッチの初期状態です。 |
ゲーム中に表示 | はい、いいえ | ゲーム中にプレイヤーに対して仕掛けが表示されるかを設定します。 |
オンにする際のテキスト | テキストを入力 | スイッチをオンにする時に表示されるインタラクションテキストを設定します。入力欄には150字まで入力可能です。 |
オフにする際のテキスト | テキストを入力 | スイッチをオフにする時に表示されるインタラクションテキストを設定します。入力欄には150字まで入力可能です。 |
仕掛けのモデル | デフォルト、アンティークレバー、スイッチ切り替え、デフォルト(消灯)、アンティークレバー(消灯)、赤ボタン、サーキットブレーカー、古めかしいレバー、チェックボックス | スイッチに使用される見た目を設定します。 |
サウンド | 有効、無効 | スイッチの状態が変更(オフからオン、オンからオフ)された場合に音を出すか設定します。 |
インタラクトの許可 | はい、いいえ | プレイヤーがこの仕掛けにインタラクトできるかどうかを決定します。 |
インタラクト時間 | 即時、秒数を選択または入力 | 仕掛けを起動するために必要なプレイヤーのインタラクトの秒数を設定します。 |
変更回数を制限 | いいえ、はい | 仕掛けが変更できる回数に制限があるかどうかを決定します。はい に設定すると、このオプションの下に追加のオプションが表示されます。 |
変更回数 | 1、回数を選択または入力 | 仕掛けが無効化される前に、何度切り替えられるかを決定します。 |
無限クールダウン | いいえ、はい | 仕掛けとのインタラクト間にクールダウンが発生するかどうかを決定します。いいえ に設定されていると、このオプションの下の クールダウン時間 のオプションは表示されません。 |
クールダウン時間 | 即時、秒数を選択 | このオプションは 無限クールダウン のオプションを いいえ に設定した場合にのみ表示されます。インタラクト間に発生するクールダウンの時間を決定します。 |
許可されるクラス | クラスなし、どれdも、クラスを選択または入力 | どのクラスがこの仕掛けを起動できるかを設定します。 |
許可されるチーム | どれでも、チームを選択または入力 | どのチームが仕掛けを起動できるかを決定します。 |
インタラクト範囲 | 0、範囲を選択または入力 | 設定された範囲内で、プレイヤーが直接ボタンを見る必要なくインタラクトできるようになります。視認性の設定と組み合わせることで、他の小道具に対してインタラクトしているように見せかけることが可能です。 |
状態をリセットする時間 | リセットなし、時間を選択または入力 | 仕掛けがデフォルトの状態にリセットされるまでの時間を決定します。 |
相互排他的 | 排他性なし、数字を選択 | このスイッチを オン にすると、同じ「相互排他的」のインデックス番号を持つ他の全てのスイッチをオフにします。 |
プレイヤーごとに状態を保存 | はい、いいえ | はい に設定すると、プレイヤーそれぞれが個人のスイッチの状態が適用されます。いいえ に設定すると、全てのプレイヤーがスイッチの状態を共有するようになります。いいえ に設定して 持続データを使用 を 使用 に設定すると、状態の読み込みを試みる際に、スイッチが 衝突の解決 のオプションを使用します。 |
持続データを使用 | 使用しない、 使用 | この仕掛けがバックエンドから何らかのデータを保存または読み込みすべきかどうかの設定です。使用 を選択すると、「全てのオプション」のタブに追加のオプションが表示されます。 |
オートセーブ | はい、いいえ | このオプションは、 持続データを使用 のオプションが 使用 に設定されている場合にのみ表示されます。状態に変更があった場合、スイッチの状態が自動的に保存されるかを決定します。 |
自動読み込み | オン、オフ | このオプションは、 持続データを使用 のオプションが 使用 に設定されている場合にのみ表示されます。ゲーム開始時にスイッチの状態が自動で読み込まれるか、イベント バインディングを利用して読み込みを行う必要があるのかを決定します。 |
衝突の解決 | 最初のプレイヤー、多数決、優先 オン、優先 オフ | このオプションは 持続データを使用 を 使用 に設定した場合にのみ表示されます。状態の読み込みが行われ、 プレイヤーごとに状態を保存 が いいえ に設定されている場合の動作を決定します。 この設定で選べる値は以下の通りです。
|
ゲーム開始時に状態を確認 | 有効、無効 | スイッチがゲーム開始時に状態を確認し、 確認時に結果がオン または 確認時に結果がオフ のイベントを起動するのかを決定します。 |
無効時にスイッチの状態を確認する | はい、いいえ | 無効になっていても、ゲームの開始時に仕掛けが自らの状態を確認するのかを決定します。 |
ディレクト イベント バインディング システム
ディレクト イベント バインディング では仕掛けが直接通信するようになり、作業の流れがより直感的になるとともに、より自由にデザインのアイディアに集中することが可能になります。
この仕掛けの機能とイベントは以下の通りです。
機能
機能は仕掛けのイベントを聞き取り、アクションを実行します。
1.どの機能も、 オプション をクリックして 仕掛けを選択 し、 仕掛けのドロップダウンメニュー から選択することでアクセス可能です。 1.仕掛けを選択したら イベントを選択する をクリックして、この仕掛けの機能を起動するイベントに仕掛けを紐づけましょう。 1.2つ以上の仕掛けやイベントを使って機能を起動したい場合、 追加 ボタンを押して行を追加し、上記の手順を繰り返しましょう。
オプション | 説明 |
---|---|
受信していると有効化 | この機能は、イベントが発生すると仕掛けを有効にします。 |
受信していると無効化 | この機能は、イベントが発生すると仕掛けを無効にします。 |
受信しているとオンにする | この機能は、イベントが発生するとスイッチをオンにします。 |
受信しているとオフにする | この機能は、イベントが発生するとスイッチをオフにします。 |
受信していると状態を切り替える | この機能は、イベントが発生するとスイッチの状態を切り替えます。 |
受信していると状態を読み込む | この機能は、イベントが発生するとスイッチの状態を読み込みます。 |
受信していると状態を保存する | この機能は、イベントが発生するとスイッチの状態を保存します。 |
受信していると状態をチェックする | この機能は、イベントが発生するとスイッチの状態を確認します。 |
受信しているとプレイヤーの持続データを削除する | この機能は、イベントが発生すると発信したプレイヤーの持続データを消去します。 |
受信していると現在のプレイヤーの持続データを全て削除する | この機能は、イベントが発生すると現在の全プレイヤーの持続データを全て消去します。 |
受信していると全員の状態を保存する | この機能は、イベントが発生すると全プレイヤーのスイッチの状態を保存します。 |
受信していると全員の状態を読み込む | この機能は、イベントが発生すると全プレイヤーのスイッチの状態を読み込みます。 |
イベント
ディレクト イベント バインディングは、「イベント」を送信機として使用します。イベントは、別の仕掛けに機能を実行するように伝えます。
1.どのイベントのオプションも、 オプション をクリックして 仕掛けを選択 し、 仕掛けのドロップダウンメニュー から選択することでアクセス可能です。 1.仕掛けを選択したら 機能を選択する をクリックして、仕掛けの機能にイベントを紐づけましょう。 1.2つ以上の機能がイベントにより起動される場合、 追加 ボタンを押して行を追加し、上記の手順を繰り返しましょう。
オプション | 説明 |
---|---|
オンに切り替え時 イベント送信先 | スイッチがオンになると、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
オフに切り替え時 イベント送信先 | スイッチがオフになると、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
確認時に結果がオン イベント送信先 | 状態を確認した際にスイッチがオンの場合、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
確認時に結果がオフ イベント送信先 | 状態を確認した際にスイッチがオフの場合、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
状態の保存時 イベント送信先 | スイッチの状態が保存されると、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
状態変更時 イベント送信先 | スイッチの状態が変更されると、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
状態の読み込み時 イベント送信先 | スイッチの状態が読み込まれると、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
削除時 イベント送信先 | スイッチの持続データが削除されると、選択した仕掛けにイベントが送信され、選択した機能が起動されます。 |
Verseでスイッチを使用する
下記のコードを使えば、Verseでスイッチの仕掛けを制御することができます。このコードは、スイッチの仕掛けのAPIでイベントと機能を使用する方法を示しています。自分の作品に合わせて変更しましょう。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# レベル内に配置できる、Verseで作成したクリエイティブの仕掛け
switch_device_verse_example := class(creative_device):
# Reference to the Switch Device in the level.
# このVerseの仕掛けの詳細パネルで、
# このプロパティをスイッチの仕掛けに設定します。
@editable
MySwitchDevice:switch_device = switch_device{}
# プレイヤーに表示されるテキストを設定するために使用できる、ローカライズ可能なメッセージです
TurnOnInteractionText<localizes>:message = "Custom switch turned on text!"
# 実行中のゲームでこの仕掛けが始動した場合に実行
OnBegin<override>()<suspends>:void=
# クリエイティブの仕掛けでイベントにサブスクライブする事例です。
# スイッチの状態が変更されると合図が贈られます。
MySwitchDevice.StateChangesEvent.Subscribe(OnStateChanged)
# スイッチがオフの際に *オンにする際のテキスト* をユーザーに表示するように設定し、スイッチをオンにするためのインタラクションを提供します。150文字以内の制限があります。
MySwitchDevice.SetTurnOnInteractionText(TurnOnInteractionText)
# この機能は、「StateChangesEvent」のイベントハンドラーのため、プレイヤーがスイッチをオン/オフにすると実行されます。
OnStateChanged():void=
Print("Switch Device state changed.")
# この仕掛けが単一のグローバルなオン/オフ状態を持つのか、個別のエージェントごとに個人向けのオン/オフ状態を持つのかのクエリです。
if (MySwitchDevice.IsStatePerAgent[]):
Print("Switch Device state is set to per agent.")
# この例では、このゲーム内の全プレイヤーを反復処理し、仕掛け上のプレイヤーごとに処理を行う方法を示しています。
for (Player :GetPlayspace().GetPlayers()):
# 現在のスイッチの状態、オンまたはオフを返します。この仕掛けで *プレイヤーごとに状態を保存* が *はい* になっている場合は、この`GetCurrentState`のオーバーロードを使用してください。
if (MySwitchDevice.GetCurrentState[Player]):
Print("Current state is on.")
else:
Print("Current state is off.")
else:
Print("Switch Device state is not set to per agent.")
# 現在のスイッチの状態、オンまたはオフを返します。この仕掛けで *プレイヤーごとに状態を保存* が *いいえ* になっている場合は、この`GetCurrentState`のオーバーロードを使用してください。
if (MySwitchDevice.GetCurrentState[]):
Print("Current state is on.")
else:
Print("Current state is off.")
このコードを自分のUEFNの作品で使うには、以下の手順に従いましょう。
1.スイッチの仕掛けを自分の島までドラッグします。 1.switch_device_verse_example という名前の新しいVerseの仕掛けを作成します。手順についてはVerse で新しい仕掛けを作成するを参照してください。 1.Visual Studio Codeで switch_device_verse_example.verse を開き、上記のコードをペーストします。 1.コードをコンパイルし、Verseで作成した仕掛けを自分の島までドラッグします。手順についてはVerse で新しい仕掛けで作成するを参照してください。 1.スイッチの仕掛けの参照を島のVerseの仕掛けに追加します。手順については仕掛けのプロパティをカスタマイズするを参照してください。 1.プロジェクトを保存し、 Launch Session (セッションを開始) をクリックしてプレイテストしてみましょう。
スイッチの仕掛けのVerse API
Verseでスイッチの仕掛けを使用する方法の追加情報については、switch_device
APIの参照をご確認ください。