曲同期(S-SYNC) の仕掛けは、他のソースから曲を再生してPatchworkの仕掛けと同期させることを可能とします。Unreal Editor for Fortniteで使用すれば、レベルシーケンスをインポートしたサウンドのデータと同期させることができます。仕掛けにMIDIファイルをインポートすると、Patchworkのノートデータ出力を生成し、他のオーディオやイベントを制御できます!
使用例:
-
事前に収録したオーディオでバーチャルコンサートを設定し、Patchworkを使用してそのオーディオとオーディオビジュアル効果のタイミングが同期するように制御する。
-
「Fortnite Festival」のようなリズムアクション、ハザードや敵が音楽に合わせて動くプラットフォーマー、選択した曲によってトラックが変化するレーシングゲームなど、音楽が重要な要素となるゲームプレイの体験を制作する。
-
事前に収録されたボーカルトラックを再生し、ライブのPatchworkのオーディオをミックスする。
以下の動画では、曲同期の仕掛けの使用例のプレビューがご覧いただけます:
仕掛けのオプション

オプション | 値 | 説明 |
---|---|---|
1. 有効化スイッチ | オン 、オフ | 無効時、この仕掛けはコンテンツの再生やオーディオのデータの出力を行いません。 |
2. ボタン拡張 | 閉 、開 | 仕掛けを展開し、より多くのカスタマイズオプションを表示します。 |
3. 音符出力ケーブル | 該当なし | 音符出力ケーブルは、黄色の音符入力ポートに接続します。 |
4. 再生時間カウンター | 該当なし | 現在の再生時間と、表示されているMIDIアセット、レベルシーケンス、または同期されている仕掛けの合計時間を表示します。 |
5. リンクされた曲同期のアイコン | 該当なし | 他の曲同期の仕掛けがこれにリンクされているかどうかを示します。示される状態には2種類あります:
|
6. 制御テンポのアイコン | 該当なし | 「テンポ再生の挙動を制御」が選択されているかどうかを示します。示される状態には4種類あります:
*アクティブな状態: 緑のテンポのアイコンが表示されている。この仕掛けは現在再生中であり、テンポも制御しています。 ![]() *ブロック状態: 赤いテンポのアイコンが表示されている。この仕掛けは現在再生中で、テンポを制御するように設定されていますが、他の仕掛けに制御権があるためテンポの制御はできていません。 ![]() |
7. 同期ターゲットの表示 | 該当なし | この仕掛けにMIDIアセットを選択した場合、その名前がここに表示されます。MIDIアセットでない場合、最長のレベルシーケンスまたは同期された仕掛けの名前が表示されます。 |
8. 停止ボタン | 該当なし | 選択したトラックの出力を停止します。再生が開始するまでは無効になっています。 |
**9. 再生ボタン | 該当なし | 任意のMIDIファイルや同期のターゲットの再生を開始します。MIDIや同期のターゲットが指定されていないと無効になります。 |
UEFNのエディタのオプション
これらのオプションはUEFNのエディタでのみ使用でき、この仕掛けが再生をしている際にどのアセットが再生されるべきかを選択できます。
オプション | 説明 |
---|---|
MIDIファイル | 仕掛けが再生するMIDIアセットを自分のUEFNプロジェクト内から選択します。MIDIデータの準備や使用については、以下のMIDIファイルを参照してください。 |
レベルシーケンス | 仕掛けが再生するレベルシーケンスを自分のUEFNプロジェクト内から選択します。 |
同期する仕掛け | 仕掛けが再生する他の曲同期の仕掛けの任意の数を選択します。Patchworkツールまたはイベントシステムで 再生 または 停止 を起動すると、リスト内の全ての仕掛けも再生または停止されます。 |
その他の仕掛けのオプション
以下のオプションはUEFNのエディタで変更することができますが、クリエイトモードで仕掛けの側へ行き、 E キーを押して仕掛けのオプションを表示することで変更することも可能です。
オプション | 値 | 説明 |
---|---|---|
再生動作 | テンポを制御、最初から再生、現在の時間から再生 |
|
再生遅延 | なし、次のビート、次の小節 | この仕掛けが再生される際に、即座に開始されるのか、選択したクオンタイズの間隔で再生されるのかをこのオプションで決定します。 |
ループ | なし、MIDIの長さ、シーケンスの長さ | 再生をループするかの設定です。ループの長さはMIDIファイルかレベルシーケンスに基づいたものである必要があります。「再生動作」のオプションで「テンポを制御」を選択した場合は、この仕掛けで再生がループするたびにグローバルタイムラインがリセットされます。 |
MIDIトラック | 該当なし | 選択したMIDIファイル内のトラックを選択します。 |
MIDIビートのオフセット | デフォルト: 0 | 音楽上の時間よりノートを早く/遅く配信することにより、演奏のタイミングの前にノートのレーン上にターゲットが表示される「Fortnite Festival」と同様のゲームプレイが可能になります。オフセットは仕掛けからのノート出力にのみ影響します。 |
MIDI ミリ秒オフセット | デフォルト: 0 | ビートのオフセットと同様ですが、音楽上の時間よりもリアルタイムが重要な場合に役立つオプションです。 |
MIDI開始時間 | デフォルト: 0 | MIDI再生の開始点を秒単位で設定します。全ての同期対象の開始点がこれに合わせて調整されます。 |
ケーブルでのアクセスを許可 | オン 、オフ | Patchworkツールがこの仕掛けのケーブル入力ポートまたは出力ポートにアクセスできるかどうかを決定します。 |
有効なゲームフェーズ | なし、常時、ゲーム前のみ、ゲームプレイのみ | どのゲームフェーズでこの仕掛けが有効になるのかを決定します。 |
以下の動画では、曲同期の仕掛けを使用してカスタムのオーディオを再生するための手順を説明しています。
再生遅延
再生遅延とは、基本的に音楽における クオンタイズ の概念です。ノートをビートにスナッピングするイメージです。ノートが少し早くまたは遅く再生されると、クオンタイズはそれを一番近いビートまたはリズムの地点に移動させ、タイミングをより正確にします。これにより、音楽はよりタイミングの合った、整頓されたもののように聞こえます。
再生遅延 が なし に、 再生動作 が 最初から再生 に設定されている場合、曲同期の仕掛けで「再生」を押すと、グローバルタイムラインでの小節のカウントにかかわらず、サンプルはボタンが押されたタイミングに開始されます。

再生ディレイ が 次のビート に、 再生動作 が テンポを制御 に設定されている場合、「再生」を押すとサンプルは次のビートの開始時に開始されます。 テンポを制御 の設定は小節のカウントを再開させます。

ループ
「ループ」は、曲同期の仕掛けに読み込まれたサンプルおよび/またはMDIファイルが、再生の終了後に最初から再開するかを決定します。
ループ を MIDIの長さ に、 再生動作 を テンポを制御 に設定されている場合、仕掛けに読み込まれているMIDIファイルの長さが、仕掛けがループする位置を決定します。 テンポを制御 の設定は小節のカウントを再開させます。

ループ を シーケンスの長さ に、 再生動作 を テンポを制御 に設定されている場合、仕掛けに同期されているレベルシーケンスの長さが、仕掛けがループする位置を決定します。

以下の動画では、実際の音楽サンプルのコンテキストにおけるクオンタイズとループの仕組みを説明しています。
MIDIファイル
曲同期の仕掛けでは、まるでPatchwork 音符シーケンサーを使用しているかのように、MIDIファイルをインポートして再生することができます。音符出力ケーブルを使用すると、曲同期を楽器プレーヤーまたはオメガシンセサイザーと接続し、Patchworkを使用してMIDIの音符を再生できます! また、曲同期の出力を音符トリガーと接続し、MIDIデータのタイミングに合わせてイベントを起動することも可能です。
一部のデジタル・オーディオ・ワークステーション(DAW)はMIDIファイルのエクスポート時にテンポマップを追加しない点にご注意ください。テンポマップのないMIDIファイルはPatchworkの仕掛けのテンポを制御することはできません。
以下の動画では、曲同期の仕掛けをMIDIファイルと使用する際の、より深い解説を行っています。
曲同期の仕掛けの 再生動作 を テンポを制御 に設定すると、MIDIファイルのテンポマップを使用してPatchworkのテンポを決定することができます。Patchworkの最小テンポは60BPM、最大テンポは180BPMです。その範囲外のテンポの値は固定されます。
MIDIファイルはPatchworkのキーとモードを変更することもできます。これを行うには、MIDIファイルのエディタを開き、変更を行いたいMIDIの時間に次の形式でテキストイベントを追加します。
key KEY_NAME MODE_NAME
シャープは #、フラットは b で示されます。現在はメジャーとマイナーモードのみに対応しています。テキストイベントの例:
-
key F# minor
-
key Bb major
ディレクト イベント バインディング システム
ディレクト イベント バインディング では仕掛けが直接通信するようになり、作業の流れがより直感的になるとともに、より自由にデザインのアイディアに集中することが可能になります。
この仕掛けの機能とイベントは以下の通りです:
機能
オプション | 仕掛けの選択 | イベントの選択 | 説明 |
---|---|---|---|
再生 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応するイベントのリストを表示します。 | イベントが発生すると仕掛けが再生されます。2つ以上のイベントがこの仕掛けを有効化できる場合は、 追加 をクリックすると新たな行を追加できます。 |
停止 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応するイベントのリストを表示します。 | イベントが発生すると仕掛けが停止されます。2つ以上のイベントがこの仕掛けを有効化できる場合は、 追加 をクリックすると新たな行を追加できます。 |
有効化 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応するイベントのリストを表示します。 | イベントが発生すると仕掛けが有効になります。2つ以上のイベントがこの仕掛けを有効化できる場合は、 追加 をクリックすると新たな行を追加できます。 |
無効化 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応するイベントのリストを表示します。 | イベントが発生すると仕掛けが無効になります。2つ以上のイベントがこの仕掛けを無効化できる場合は、 追加 をクリックすると新たな行を追加できます。 |
イベント
オプション | 仕掛けの選択 | 機能の選択 | 説明 |
---|---|---|---|
再生時 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応する機能のリストを表示します。 | この仕掛けが再生されると、リンクされた仕掛けに信号が送信されます。このイベントは、「再生遅延」のオプションで設定された遅延の 後に 発生します。 |
停止時 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応する機能のリストを表示します。 | この仕掛けが停止されると、リンクされた仕掛けに信号が送信されます。 |
再生開始時 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応する機能のリストを表示します。 | 再生が開始されると、リンクされた仕掛けに信号が送信されます。これは、ユーザーによる直接のインタラクトか、この仕掛けが「再生」のイベントを受信することによりトリガーすることができます。このイベントは、「再生遅延」のオプションで設定された遅延の 前に 発生します。 |
有効になった時 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応する機能のリストを表示します。 | この仕掛けが有効になると、リンクされた仕掛けに信号が送信されます。 |
無効になった時 | 矢印をクリックして、対応する仕掛けのリストを表示します。 | 矢印をクリックして対応する機能のリストを表示します。 | この仕掛けが無効になると、リンクされた仕掛けに信号が送信されます。 |
Verseで曲同期の仕掛けを使用する
下記のコードを使えば、Verseで曲同期の仕掛けを制御することができます。このコードは曲同期の仕掛けのAPIにある全機能を使用しています。自分の作品に合わせて変更しましょう。
using { /Fortnite.com/Devices }
using { /Fortnite.com/Devices/Patchwork }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# レベル内に配置できる、Verseで作成したクリエイティブの仕掛け
song_sync_example := class(creative_device):
@editable
SongSync:song_sync_device = song_sync_device{}
# 実行中のゲームでこの仕掛けが始動した場合に実行
OnBegin<override>()<suspends>:void=
Sleep(5.0)
SongSync.Disable()
Print("Device Disabled")
Sleep(5.0)
SongSync.Enable()
Print("Device Enabled")
このコードを自分のUEFNの作品で使うには、以下の手順に従いましょう。
-
曲同期の仕掛けを自分の島までドラッグします。
-
song_sync_example という名前の新しいVerseの仕掛けを作成します。Verseで新しい仕掛けを作る方法については、Verse を使用して独自の仕掛けを作成するを参照してください。
-
Verse Explorerを開き、 song_sync_example.verse をダブルクリックしてVisual Studio Codeでスクリプトを開きます。
-
上記のコードをペーストしてコンパイルし、Verseで作成した仕掛けを自分の島までドラッグします。
-
アウトライナー で自分が作ったVerseの仕掛けを選択します。
-
仕掛けの Details(詳細) パネルでドラムシーケンサーのオブジェクト参照を、島にあるドラムシーケンサーの仕掛けに割り当てます。 ピッカーを使用してビューポート内の仕掛けを選択するか、ドロップダウンを使用して仕掛けを検索することが可能です。
-
プロジェクトを保存し、 Launch Session (セッションを開始) をクリックします。
曲同期のAPI
Verseでの曲同期の仕掛けの使い方については、「song_sync_device」のAPIの資料を参照してください。