曲同期(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ファイル | 自分のUEFNプロジェクト内にあるMIDIアセットの中から、この仕掛けで再生するものを選択します。 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 で示されます。 現在はメジャーとマイナーモードのみに対応しています。 テキストイベントの例:
キー F# マイナーキー Bbメジャー
ディレクト イベント バインディング システム
ディレクト イベント バインディングでは仕掛けが直接通信するようになり、作業の流れがより直感的になるとともに、より自由にデザインのアイディアに集中することが可能になります。
この仕掛けの機能とイベントは以下の通りです:
機能
| オプション | 仕掛けを選択する | イベントを選択 | 説明 |
|---|---|---|---|
再生 | 矢印をクリックすると、利用可能な仕掛けのリストが表示されます。 | 矢印をクリックして対応するイベントのリストを表示します。 | イベントが発生すると、仕掛けが再生されます。 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 }
# A Verse-authored creative device that can be placed in a level
song_sync_example := class(creative_device):
@editable
このコードを自分のUEFNの作品で使うには、以下の手順に従いましょう。
ドラムシーケンサーの仕掛けを自分の島までドラッグします。
song_sync_exampleという名前の新しいVerseの仕掛けを作成します。 Verseで新しい仕掛けを作る方法については、「Verseを使用して独自の仕掛けを作成する」を参照してください。
Verse Explorerを開き、「song_sync_example.verse」をダブルクリックしてVisual Studio Codeでスクリプトを開きます。
上記のコードをペーストしてコンパイルし、Verseで作成した仕掛けを自分の島までドラッグします。
アウトライナーで自分が作ったVerseの仕掛けを選択します。
仕掛けの詳細パネルでドラムシーケンサーのオブジェクト参照を、島にあるドラムシーケンサーの仕掛けに割り当てます。 ピッカーを使用してビューポート内の仕掛けを選択するか、ドロップダウンを使用して仕掛けを検索することが可能です。
プロジェクトを保存し、「セッションを開始」をクリックします。
曲シーケンサーAPI
Verseでのドラムシーケンサーの仕掛けの使い方については、song_sync_deviceのAPIの資料を参照してください。