SONiVOX JETCreator ユーザー マニュアル

JET Interactive Music Engine 向けコンテンツ オーサリング アプリケーション

1 はじめに

1.1 概要

このドキュメントには、ユーザー ガイドラインが含まれています。 SONiVOX JET Creator 用のオーサリング アプリケーションです。 JET ファイルのオーディションに 使用できますJET は、小型埋め込みアプリ向けのインタラクティブな音楽プレーヤーです。 Android プラットフォームを実行しているデバイスを含む。これにより、アプリケーションは インタラクティブな音楽のサウンドトラックを MIDI に含める という形式で、ゲームプレイ イベントやユーザーの操作にリアルタイムで応答します。

JET は、SONiVOX の エンベデッド オーディオ シンセサイザー(EAS: MIDI) Android の再生デバイスです。また、 JET エンジンと EAS エンジンは、 JetPlayer クラス JET Creator アプリケーションの固有の機能。そのため、JET コンテンツ作成者は JETCreator と JET クリエイターの両方で再生音声がまったく同じになることを確認します。 Android モバイル デバイスで再生される最終的な Android アプリです。

グラフィカル ユーザー、 JET Creator には、主に 2 つの機能があります。「 1 つ目は、すべてのソースデータ(MIDI)の収集です。 DLS ファイルを含む)、JET のリアルタイム属性の追加、JET のビルド (.jet)ファイルを指定します。2 つ目の機能は インタラクティブな再生要素のオーディションを実際に行います 使用します。

JET Creator アプリケーションは、 そのため、現在のバージョンの Python SDK がインストールされている必要があります。 インストールされている Python と WXWidgets です。Mac 版と Windows 版の両方が用意されています。

1.2 略語と共通用語

セキュリティ テレメトリーに 用語を使用します。JET では MIDI を使用するため、 一般的な業界用語では不十分な場合があります。こちらの このページおよび JETCreator で使用されている用語の定義 アプリケーション:

チャンネル: 特定の MIDI に関連付けられた MIDI データ 。スタンダード MIDI では 16 チャンネルの MIDI が可能 それぞれは通常、特定の支払い方法と関連付けられています。

コントローラ: MIDI イベントで コントローラ番号、コントローラ値で構成されます。MIDI 多くのコントローラ番号が多くのコントローラ番号に ボリューム、エクスプレッション、サステイン ペダルなど、さまざまな機能を備えています。JET は、 特別な制御情報を埋め込む手段として、コントローラ イベントを 音声の同期のための MIDI シーケンス。

DAW: デジタル オーディオ ワークステーション。MIDI の一般的な用語 オーディオ シーケンス アプリケーション(Logic、SONAR、Cubase など)にも対応しています。

EAS: Embedded MIDI Synthesizer。「 SONiVOX の MIDI シンセサイザー エンジンの名称です。

JET: Jet Interactive Engine。SONiVOX JET インタラクティブの名称 必要があります。

M/B/T: 小節、拍、ティック

セグメント: コーラスやバースなど、音楽の構成要素であり、 考えてみましょうJET では、セグメントは MIDI ファイル全体または テキストが MIDI ファイルから抽出されます。

SMF-0: スタンダード MIDI ファイルタイプ 0。1 つの MIDI ファイル 複数の MIDI チャンネルで構成される場合があります。 分析できます

SMF-1: Standard MIDI ファイルタイプ 1(1 つ以上の MIDI ファイルを含む) 各トラックが 1 つまたは複数の MIDI チャンネルで構成される場合があります。 分析できます慣例により、各チャンネルは SMF-1 ファイルに記述されています。ただし、複数の MIDI ブロックを 同じ MIDI のデータを含む複数のトラックに 。

トラック: DAW 内の 1 つのトラックを指し、時系列のイベントを含みます。「Track」と「Track」を混同しないよう 。MIDI ファイルには多数のトラックが含まれることがありますが、その場合は 同じ MIDI チャンネルを使用する必要があります。

2 JET インタラクティブ音楽のコンセプト

インタラクティブ音楽は音楽と定義可能 ユーザー、グループ、チャットなどの予測不可能なイベントによって ゲームプレイ イベントを発生させます。つまり インタラクティブな音楽は ゲームの雰囲気やゲームの雰囲気にマッチするので、 決して変更されない事前作成済みのコンポジションよりも近いものになります。一部のアプリケーションでは、 インタラクティブな音楽がゲームプレイの中心となります。ギターヒーローは 非常に人気があります。エンドユーザーが音符のキャプチャを正常に完了したとき フレットボードから降りていくと、音楽は自然に適応しながら、 成功と失敗のスコアです。JET を使用すると 可能です。

Google Cloud で インタラクティブ音楽や JET を制御することは、そうした方法の一つです。このセクション JET の機能と、ゲームやソフトウェアでの使用方法を説明 説明します。また、JET を使用して小規模なメモリを節約する方法についても説明します。 フットプリントデバイス(Android 対応モバイルハンドセットなど)

2.1.1 データ圧縮

JET は柔軟な音楽形式に対応しており、 を使用すると、最小限のデータでより長い音楽シーケンスを作成できます。 楽曲はセグメントに分割され、そのセグメントのシーケンスに 長めのパーツにしますシーケンスは音楽ファイルの作成時に固定できる またはプログラム制御の下で動的に作成することもできます。

2.1.2 線形音楽の例


図 1: 線形音楽の楽曲

この図は、音楽セグメントがどのように あります。各セグメントは個別の MIDI として作成されます。 表示されます。後処理ツールは、これらのファイルを 1 つのコンテナ ファイルに結合します。 各セグメントには、ミュートまたはミュート解除できる別の音楽トラックを含めることができます。 関心を喚起できますたとえばコーラスの真ちゅうのアクセントなどが考えられます 最後のパートのみ再生しますセグメントを上または下に転置することも 下がります。

図の下部は 音楽セグメントを再結合してリニアな曲を作成できますこの たとえば、ブリッジが半ステップの鍵変調で終了し、 それに合わせてセグメントを半分ずつ入れ替えることができます。

2.1.3 非線形音楽の例


図 2: 非線形の楽曲

この図では、非線形の音楽が ありますこのシナリオはファーストパーソン シューティング ゲーム(FPS)で、JET が バックグラウンド ミュージックです。レベルの読み込み中と遷移時にイントロが再生されます 検索セグメントに追加されていますこのセグメントは無限に繰り返されます アクティビティまで少し変化(ミュート/ミュート解除機能を使用)する 変更があることを示します。

プレーヤーがモンスターの隠れ家に近づくと、 危険セグメントへの同期移行を開始し、 テンションレベルを表します。プレーヤーが隠れ家に近づくにつれ、追加の 緊張を和らげるためにトラックのミュートが解除されます。

プレーヤーが 開始したら、プログラムは Combat セグメントへの同期移行を開始します。 戦闘が続く間、このセグメントは無期限に繰り返されます。ボーナスヒット 装飾トラックのミュートを一時的に解除し、 同じく別のトラックのミュートが解除され、 プレーヤーが特殊ダメージを受け取ったタイミングを示します。

戦闘が終わると、音楽が 戦いの結果に応じて勝利または敗北セグメントに割り当てられます。

2.1.4 同期のミュートとミュート解除

JET はミュートとトリガーを 音楽内のイベントのトラックのミュートを解除できます。たとえば、FPS ゲームでは、 ボーナスや賞金に関する音楽イベントを できるだけ実際のイベントに近い場所に できるだけ近い場所に設置しますただし、ミュートを解除するだけで、 ゲームイベントが発生した瞬間のトラックからミュージック クリップが生成される場合があります。 始まります。または、クリップは 他の音楽トラックとは同期されません。

しかし JET 同期エンジンでは、 次の機会に開始して同期を維持できます。この 装飾的な背景に短いミュージック クリップを あります。ストリーム内の MIDI イベントは、 2 つ目のイベントはクリップの最後です。Google アプリケーションが JET クリップ関数を呼び出すと、トラックの次のクリップは 音楽に完全に同期して再生されます。必要に応じて、トラックに 自動的にミュートされます。


図 3: 同期されたミュート/ミュート解除

2.2 オーディオの同期

JET が提供する音声同期 API ゲームプレイを音声内のイベントに同期させることができます。このメカニズム 埋め込まれているデータに依存します。 コンテンツが作成された時刻。イベント中に JET エンジンがイベントを検知すると、 再生するとアプリケーション プログラムへのコールバックが生成されます。コンテナが コールバックを調整して、音声のレイテンシを補正できます。 音声と動画を同期できるようにする必要があります。下の図 は、単純な音楽ゲームの例を示しています。このゲームでは、左ボタンを押して 右矢印で移動します。


図 4: 音楽ゲーム

矢印は音楽シーケンスのイベントを表します。 ゲームイベントの同期が必要な場所です。この場合は青い矢印が プレーヤーが左ボタンを押す予定時刻を表します。 赤い矢印は右ボタンです黄色の矢印はゲームエンジンを示しています シーケンスが完了しました。プレーヤーは一定の時間内に許可される イベントの前後に適切なキーを押してください。

イベントを受信し、プレーヤーが ボタンが押されなかった場合、タイマーはウィンドウの半分の長さに設定されます。もし タイマーが切れる前にプレーヤーがボタンを押すと、ゲームは 成功しなかった場合、ゲームは失敗を記録します。

再生位置の前にユーザーがボタンを押すと、 イベントを受信した場合、タイマーはウィンドウの半分の長さに設定されます。イベントが タイマーの期限が切れる前に受信されると、ゲームは成功を登録します。そうでない場合は、 ゲームが失敗を登録します。ゲームプレイでは獲得ボーナスも含まれる場合があります。 実際のイベントのタイミングに近づけます。

3 JET コンテンツ作成の概要

JET ファイルを作成して再生する インタラクティブに行う場合、コンテンツ作成者は 2 つのアプリケーションで作業します。 スムーズに連携するよう設計されています1 つ目は すぐに使用できる MIDI シーケンス アプリケーションです。 VST(PC)または AU(Mac)のプラグインに対応しています。ここで、著者が プラグインを MIDI 音楽ファイルに 出力します。2 つ目は、JETCreator アプリケーションです。現在地 作成者は MIDI 音楽ファイルをインポートします。 DLS2 サウンドセットも設定できます。また、インタラクティブ モードの 呼び出す必要があります。コンテンツ作成者は必要に応じて DLS 計測器のカスタム セットを作成できます。これには、 DLS レベル 2 形式。そのようなアプリケーションの 1 つに FMJ-Software の Awave Studio があります。

詳細については、JET Content Authoring Guidelines のドキュメントを 詳しく説明します

4 JETCreator のインストールと起動

JET Creator は Python 言語であり、 そのため、Python と wxPython を あります。

JETCreator は、以下を使用して作成およびテストされています。

Python バージョン 2.5.4

wxPython バージョン 2.8.7.1

これらは、次の URL からダウンロードできます。

PC 用:

  • http://www.python.org/download/releases/2.5.4/
  • http://www.wxpython.org/download.php

MAC 用:

  • http://wiki.python.org/moin/MacPython/Leopard
  • http://www.wxpython.org/download.php

Python と wxPython をインストールしたら JET Creator アプリケーション ディレクトリ内のすべてのファイルを解凍またはコピーして、 コピーされます。

JET Creator を起動するには、次のコマンドを入力します。 Python をインストールしたディレクトリを設定します。次に Python を実行する 次のように置き換えます。

python jetcreator.py

5 JETCreator の使用

5.1 ファイル形式

いくつかの異なるファイル形式があります 関連付けることもできます。

.jtc JET 作成者のプロジェクト ファイル。このファイルには、 JET Creator プロジェクト。JETCreator で保存または名前を付けて保存すると、このファイルが 保存されます。

.jet JET 。この出力ファイルは、変更するたびに JET Creator から JET Creator プロジェクトを保存します。すべての JET アセットをバンドルしたファイルです Android アプリで使用する 1 つのファイルにまとめます。贈る ファイルを Android アプリ デベロッパーに提供します。

.mid ファイル。標準の MIDI です JETCreator がセグメントの作成に使用するタイプ 1 のファイルを作成します。

.seg セグメント 。これは、JET セグメントのファイルです。名前は MIDI と同じです。 このファイルには追加のセグメント情報が含まれています。

.zip ZIP ファイルをアーカイブします。JET アーカイブをエクスポートすると、 には、JET Creator に必要なすべてのアセット(ファイル)が含まれています。これを使用して移行 JET Creator プロジェクトを他の人に配布できます。

5.2 ファイルを開くダイアログ

日時 最初に JETCreator を起動すると、GRU の状態など、 できます。

<img <=""枠線 = 0"height="285"p=""src="/static/images/jet/jc_open_dlg.png"width="450"/

[Open] は、既存の .jtc ファイル(JETCreator ファイル)を開く場合に使用します。ブラウザを使用する ] ボタンをクリックして、.jtc ファイルを保存したディレクトリに移動します。

[New] は、新しい .jtc ファイルを作成する場合に使用します。

[Import] は、JET アーカイブ ファイル(.zip)をインポートする場合に使用します。

[Cancel] は、このダイアログをキャンセルしてアプリケーションを終了する場合に使用します。

5 メイン ウィンドウ

JET Creator のメイン ウィンドウ 下図のようになります。Chronicle SOAR プラットフォームの 上から下: セグメント ビュー、イベントビュー、タイムライン。

セグメントビューのセクションには 現在のセグメント、MIDI ファイル、 (省略可)各セグメントの派生元の DLS2 ファイル。また、それぞれの セグメントの開始時間と終了時間、各セグメントが量子化、転置、反復、 ミュートフラグの設定。

セグメントビューのすぐ下には 表示されます。イベントビュー セクションには、指定したイベントに関連付けられたすべてのイベントが表示されます。 セグメントですイベントは、割り当てられているセグメントが ハイライト表示されます。各イベントには、そのタイプ、始点と終点、トラック、MIDI が表示されます。 イベント ID が表示されます。

[イベント] ビューのすぐ下には、 表示されます。タイムラインには、特定のセグメントの小節の数と、 そのセグメントに関連するイベントが表示されますタイムラインが変化して、 セグメントを選択します。このウィンドウでイベントをトリガーできます セグメントの再生中にタイムラインでイベントをクリック 表示されます。


ジェット クリエイターのメイン ウィンドウ

メイン画面の左側にあるボタンは 次の操作を行います。

追加: 新しいセグメントまたはイベントを追加するためのセグメントまたはイベントのウィンドウを表示します

改訂: 既存のセグメントまたはイベントを更新するためのセグメントまたはイベント ウィンドウを表示します

次を削除します。 選択したセグメントまたはイベントを削除します(確認を求められます)

移動: 選択したセグメントまたはイベントを移動できる移動ウィンドウを表示します 時間内

Queue All: Queue の 再生するすべてのセグメントを選択(選択)

すべてから取り除く: キューから取り除く すべてのセグメントを選択(選択解除)します

再生: キュー内のすべてのセグメントの再生を開始します。このボタンが [Stop] に変わります。 セグメントが再生中

オーディション: オーディション ウィンドウを表示する(以下を参照)

5.1 セグメント ウィンドウ

セグメント ウィンドウでは、 図のように、各セグメントの属性が割り当てられ、 ご覧くださいウィンドウの左側には、作成されたセグメントの属性が 格納されていることを示しています。ウィンドウの右側では、作成者が フラグのミュート、繰り返しと転置、セグメントのオーディション JET ゲームで紹介しています

: オーディション属性(ミュートフラグ、リピート、転置)は、JET コンテンツ ファイルに保存されません。 (.jet)ではなく、ゲームやアプリ自体で定義されます。プログラミング これらの設定は、JET 関数への API 呼び出しと 説明します。これらを含めることで、JET コンテンツ作成者は、 ゲームのプレイ中にアプリケーションの API コマンドに応答するようになります。

セグメント パラメータの意味は以下のとおりです。

  • セグメント名 - セット セグメントの名前
  • MIDI ファイル - コピー元の MIDI ファイルの名前と場所 そのセグメントが抽出されますすぐ右のボタンをクリックすると ハードドライブ上の midi ファイルを見つけるためのブラウザ。
  • DLS ファイル - MIDI サーバーの DLS2 ファイルの名前と場所(ある場合) 表示することもできます
  • M/B/T 開始 - セグメントの開始測定、拍、目盛り
  • M/B/T 終了 - セグメントの終了小節、拍、目盛り
  • 量子化 - 再生中に現在のセグメントを量子化するための量子化値

オーディションの項目は次のとおりです。

  • ミュートのトラック - MIDI トラックを表示します(チャンネルではありません) 指定します。トラックをクリックすると そのトラックがミュートされます。
  • チャンネル - 各チャンネルに割り当てられた MIDI チャンネルを表示 トラック
  • 名前 - 各トラックのトラック名のメタイベントを表示します(存在する場合)
  • 繰り返し - 再生中にセグメントを繰り返す回数を示します
  • 行 - セグメントの転位をセミトーンまたはハーフステップで指定します 再生中に転置
  • オーディション ウィンドウの右側には、さらにいくつかのボタンがあります。 機能は以下のとおりです。
  • OK - [OK] を選択すると、すべてのセグメントの設定が確定され、セグメントのウィンドウが閉じます
  • キャンセル - [キャンセル] を選択すると、変更がキャンセルされてセグメント ウィンドウが閉じます
  • 複製 - [Replicate Segment] ウィンドウを表示します。複数のセグメントを一度に入力できます。 下記をご覧ください。
  • セグメントの再生/停止 - 開始 または、割り当てられたセグメント属性を使用して、セグメントの再生を停止します。
  • MIDI ファイルの再生/停止 - MIDI ファイルの再生を開始または停止します。 割り当てられているセグメントを確認できます
  • 一時停止/再開 - 再生を一時停止または再開します。

5.2 イベント ウィンドウ

イベント ウィンドウでは、特定のセグメントの 下図のように、イベント属性が割り当てられ、オーディションに入ります。宛先 セグメントにイベントを追加するには、最初に [追加]をクリックしますクリックすると クリックします。

イベントには主に 2 つのセクションがあります。 クリックします。イベント ウィンドウの左側にあるセグメント セクションは表示用です のみです。ここには、選択したセグメントのセグメント属性が表示されます。イベント 右側の [イベント] セクションで次の 次のパラメータを使用できます。

イベント名 - イベントに名前を割り当てます

イベントタイプ - 割り当てるイベントの種類を選択します。

M/B/T 開始 - イベントの開始小節、拍、目盛りを設定します

M/B/T 終了 - イベントの終了小節、拍、目盛りを設定します(該当する場合)。

トラック - 指定したセグメントのどのトラックにイベントを適用するかを設定します

チャンネル - イベントを適用する MIDI チャンネルを設定します できます。MIDI チャンネルは MIDI と一致する必要があります トラックのチャンネル

イベント ID - イベントのイベント ID を設定します。同じイベントに複数のイベントを イベント ID によって該当のセグメントが特定されます

オーディション ウィンドウの右側には、さらにいくつかのボタンがあります。 機能は以下のとおりです。

OK - [OK] を選択すると、すべての予定の設定が確定され、予定のウィンドウが閉じます

キャンセル - [キャンセル] を選択すると、変更がキャンセルされてイベント ウィンドウが閉じます。

複製 - 複数のイベントを一度に入力するための [Replicate Event] ウィンドウを表示します。詳しくは、 ご覧ください

再生/停止 - 割り当てられたセグメント属性を使用して、セグメントの再生を開始または停止します。 セグメントの再生中に、イベントをトリガーしてオーディションを行えます。

トリガー - 割り当てられたイベントをトリガーします。これにより、JET ゲームで実行された API コマンドが を使用してイベントをトリガーするため、コンテンツ作成者は イベントの動作をオーディションします

ミュート/ミュート解除 - ミュートまたはミュート解除では、イベントが割り当てられているトラックをミュートまたはミュート解除できます

一時停止/再開 - 再生を一時停止または再開します。

イベントの動作をオーディションするには、 [再生] ボタンを選択できます。これにより、再生が開始されます。トリガーボタン 押されるとトリガー イベントが送信されます。これは トリガー イベントが表示されます。

注: トリガー イベントは、ユーザーの セグメントの終わりでそのトラックをミュートし トリガーセグメントを指定しますそのため、ミュートフラグを トリガー イベントを受信したときにトリガー イベントがミュート解除されるトラックをミュートする。

6 仕組み」セクションをお読みください トリガー イベントの仕組みと動作については、以下をご覧ください。

5.3 複製ウィンドウ

多くの場合、JET ファイルを作成するには、 数十、数百のイベントを作成できますイベントを移動する必要が生じる場合もあります。「 [Replicate] ウィンドウと [Move] ウィンドウを使用すると、これが可能になります。[Replicate] ウィンドウには、 複数のセグメントやイベントを作成できますそれぞれを下の図に示します。

[Replicate Segment] ウィンドウ

[Replicate Event] ウィンドウ

両方の複製ウィンドウは同じように機能します。 最初のセグメントまたはイベントを作成したら、[複製] を選択して ] ボタンを離します。パラメータは以下のとおりです。

名前の接頭辞 - 作成された各セグメントまたはイベントの名前の接頭辞を設定します

M/B/T 開始 - 最初のセグメントまたはイベントの開始時間を設定します

M/B/T をインクリメント - 作成されたセグメントまたはイベントの間隔を設定します。

数値 - 作成するセグメントまたはイベントの数を設定します。数値が は MIDI ファイルの長さ( セグメント(イベントの場合)を使用した場合、それらのオブジェクトは作成されません。

プレビュー - [プレビュー] では、[OK] を選択して挿入する前に、作成されたオブジェクトを確認できる できます。

5.4 移動ウィンドウ

移動機能は 複製機能で、同じ画面で複数のセグメントやイベントを 今回は時間的に移動しますReplicate と同じく、ムーブメントには 1 つはセグメント用 もう 1 つはイベント用ですウィンドウは 次のとおりです。

[Move Event] ウィンドウ

移動を使用するには、まずセグメントまたは 移動したいイベントを選択して [移動] ボタンをクリックします。パラメータは次のとおりです。 次のとおりです。

M/B/T 開始 - 最初のセグメントまたはイベントの開始時間を設定します

M/B/T をインクリメント - オブジェクトの移動時間を M/B/T 単位で設定します。

プレビュー - [プレビュー] では、移動を指示する前に作成されたオブジェクトを確認できます できます。

5.5 オーディション ウィンドウ

メインのディスプレイ ブロックの JET Creator アプリケーションのウィンドウを開くと、オーディション ウィンドウが開きます。これは、 コンテンツ作成者またはアプリケーション プログラマーが アプリ内で発生することがあります。

JET オーディション ウィンドウ

このセクションには オーディション ウィンドウに入ります。左端のセクションには利用可能なセグメントと 長さを秒単位で指定します。中央のセクションには 各セグメントが再生のキューに追加され、その再生ステータスが示されます。遠い 右側のセクションには、現在再生中のセグメントのミュートフラグが表示されます。「 下部にある [タイムライン] セクションは、メイン ウィンドウと同じです。表示される 現在再生中のセグメントと、イベント トリガーが視覚的に表示されます。 そのセグメントに関連するアセットが 表示されます

オーディション画面では 任意の順序で表示されます。それにはまず [キューに追加]をクリックしますそのセグメントがキュー ウィンドウに表示され、 再生を開始します(最初のセグメントの場合)。後で任意のアラートを キューに入れて再生することもできますセグメントは 再生を完了すると、キューの次のセグメントの再生が開始されます。 ミュート、ミュート解除、イベント クリップのトリガーなどができます。 各セグメントが再生されると データがリアルタイムで表示されます

ボタンの具体的な機能は以下のとおりです。

Queue - 選択したセグメントをキューに読み込んで再生を開始します。

キャンセルしてキューへ - 選択したセグメントをキューに追加する前に、現在再生中のセグメントをキャンセルします。 再生

現在のキャンセル - キューで現在再生中のセグメントをキャンセルし、 次のセグメント

停止 - キュー内のすべてのセグメントの再生を停止する

全員をミュート - 現在のセグメントのすべてのトラックをミュートします

ミュートなし - 現在のセグメント内のすべてのトラックのミュートを解除します

元のミュート - 現在のセグメントに元のミュートフラグを設定します

これらの再生オプションの組み合わせ 作成者やアプリケーション プログラマーは、API 呼び出しで インタラクティブな音楽アプリで問題が発生する可能性があります。

5.6 JETCreator のメニュー

JET Creator のメニューから 多くのパラメータに加えて、いくつかの追加パラメータも表示できます。

5.6.1 File メニュー

[ファイル] メニューには次のものが含まれます。 要素:

新規 - 新しい JETCreator ファイル(.jtc)を作成する

オープン - 既存の JET Creator ファイルを開きます。

保存 - 現在開いている JET Creator ファイルを保存します。

名前を付けて保存 - 現在開いている JET Creator ファイルを新しいファイルに保存します

[Import Project] - JETCreator アーカイブ(.zip)をインポートします。

[Export Project] - JETCreator アーカイブ(.zip)をエクスポートします。

終了 - アプリを終了します

5.6.2 Edit メニュー

[編集] メニューには次のものが含まれます 要素:

元に戻す - 元に戻すと、最後に行われた編集が元に戻されます

やり直し - [やり直す] は、直前の元に戻した操作をやり直します。

切り抜き - 選択したパラメータをクリップボードにコピーして選択項目を削除

コピー - 選択したパラメータをクリップボードにコピーして選択を維持

貼り付け - 選択したパラメータを貼り付け

5.6.3 Jet メニュー

[編集] メニューには次のものが含まれます 要素:

プロパティ - JET Creator の優先事項ウィンドウが表示されます。このウィンドウでは 次の条件が満たされます。

[Copyright] - JET ファイルに含める著作権情報。

[Chase Controllers] - コントローラを追跡するオプション(オンまたはオフ)。通常これは オンにします。

[Delete Empty Tracks] - 空の MIDI トラックをすべて削除します。

5.6.4 Segments メニュー

[セグメント] メニューには次のものが含まれます。 要素:

セグメントを追加 - セグメント ウィンドウを表示

[Revise Segment] - セグメント属性を更新します。

Delete Segment - 現在のセグメントをリストから削除します。 セグメント リスト

5.6.5 Help メニュー

[ヘルプ] メニューには少なくとも 次の要素が含まれます。

[JET Creator Help] - PDF のヘルプ ドキュメント、またはオンライン ヘルプを表示します。

概要 - JET Creator のバージョン番号、SONiVOX の情報

6 トリガー イベントの説明

MIDI の破損 個々の(非線形)セグメントに分割し、それらのセグメントをキューに入れておき、 JET 音楽ファイルの処理方法の 1 つに、ゲーム内のイベントに基づいて インタラクティブです。トリガー イベントは、インタラクティブ再生の追加メソッドです。 両方とも、インタラクティブなゲームやアプリで一緒に使用されます。

トリガー イベントを使用すると、次のことが可能です。

  1. MIDI セグメント内のトラックは、ゲームに応じてオンまたはオフにできる できます。たとえば、作曲者は 2 つのドラムトラックを、 もう 1 つは低速ですゲームのアクションが速いと、速いドラムトラックが できます。アクションが遅いときには遅いドラムトラックを再生できます。
  2. ユーザー アクションはトリガー イベントと比較でき、 音楽ファイル内の音楽的に適切な場所にあらかじめ挿入されています。基づいて、 結果、スコアリング、その他のゲーム アクションが行われる可能性があります。で確認できます。
  3. レベルやアクション シーケンス間の音楽の遷移は、 シームレスに同期します

内部では、JET は標準の MIDI CC を使用します これらのアクションを実行したり、音声を同期したりできます。コントローラ JET が使用するものは、この仕様で特定の用途が定義されていないものもあります。特定のコントローラの定義 次のとおりです。

コントローラ 80-83 使用のために予約済み アプリケーション

コントローラ 102 JET イベント マーカー

コントローラ 103 JET クリップ マーカー

コントローラ 104 ~ 119 将来の使用のために予約

6.1 JET クリップ マーカー(CC103)

コントローラ 103 はマーキング用に予約されています。 トリガー可能な MIDI トラックのクリップ 呼び出すことができます。クリップ ID は、クリップの下位 6 ビットでエンコード 指定します。ビット 6 は、クリップの開始を示す 1 に設定され、 クリップの終わりを示します。

たとえば、クリップでクリップを識別したい場合は、 ID が 1 の場合、作成者は MIDI コントローラを挿入します クリップの開始時に、controller=103、value=65 であるイベントと、 クリップの最後には、controller=103、value=1 のイベントがGoogle JET_TriggerClip() 関数は、クリップ ID 1 で呼び出された場合、トラックは コントローラ値 65 に達するとミュートが解除され、 コントローラ値 1 が検出されます。

図 5: 同期されたクリップ

上の図で、 最初のコントローラ イベントである Track の前に JET_TriggerClip() 関数が呼び出される 最初のコントローラ イベントが発生するとミュートが解除され、最初のクリップが 再生され、2 番目のコントローラ イベントが発生すると、トラックがミュートされます。条件 JET_TriggerClip() 関数は、最初のコントローラ イベントが 3 番目のコントローラ イベントが発生すると、トラック 3 のミュートが解除されます。 2 番目のクリップが再生されます。4 番目のクリップが再生されると、トラックは再びミュートされます。 イベントが発生します。

注: 通常、クリップを含むトラックはアプリによってミュートされます。 JET_QueueSegment() の呼び出しによってセグメントが最初にキューに追加されたとき。もし ミュートされていない場合、Jet_TriggerClip() が呼び出されるまでクリップが常に再生されます。 クリップ ID に置き換えます。

6.2 JET イベント マーカー(CC102)

コントローラ 102 はマーキング用に予約されています。 MIDI ストリーム内の特定のイベントに JET 機能に使用できます。現在定義されている値は 0 のみです。 時間間隔を短くして終了できます

通常、JET は次のタスクの再生を開始します。 現在のセグメントを繰り返し再生する(または、現在のセグメントを end-of-track メタイベントが発生したときに発生します。一部の MIDI オーサリング ツールでは、トラック終了マーカーを正確に配置するのが難しく、 その結果、セグメントが結合されたときに同期の問題が発生します。

この問題を回避するために、作成者は JET のセグメント終了マーカー(コントローラ=102、値=0)が、 ループさせることになります。セグメント終了マーカーが見つかると、 次のセグメントがトリガーされるか、現在のセグメントがループしている場合は、 セグメントの先頭から再開されます

セグメント終了マーカーも使用可能 楽器の音が小さめの終わりを超えて 次のセグメントの開始点になります。たとえば、コンテンツの作成者は 5 番目のビート 1 で終わるドラムフィルがある 4 小節のセグメントを作成します セグメントの自然な終わりを越えたバーです。セグメントの終わりに配置する 棒の終点にマーカーを置くと、次のセグメントが ドラムフィルは次のセグメントと並行して続行されます 音楽の連続性をもたらします

図 6: end-of-segment マーカー

6.3 アプリ コントローラ(CC80~83)

アプリケーションでは、この環境では 使用できます。この範囲内にあるコントローラが検出されると、 イベントは、アプリケーションからクエリ可能なイベント キューに入れられます。 使用例として、動画イベントを音声と同期したり、 ポイントを次の MIDI セグメントの セグメントですアプリケーションで監視するコントローラの範囲は変更可能 初期化時にアプリケーションによって 呼び出されることがあります

7 JETCreator ガイドライン

7.1 タスクの順序

すべてのプロジェクトに言えることとして、コンテンツ作成を始める前に、ゲーム デザイナーやプログラマーとインタラクティブ音楽のスキームについて打ち合わせと設計を行うことが最善です。大枠や仕様を固めておくことは、ゲーム完成後のやり直しを避けるのに大変役立ちます。

一般的には、まず普段の作曲で使い慣れた DAW で音楽を作成してから、完成した MIDI ファイルを必要に応じてアプリ用に分割します。次に、JETCreator ですべての音楽セグメントを、順番に再生した場合にプレビューが最も容易になる順序で作成します。最後に、Android ゲームからセグメントを制御するための JET イベントを追加し、必要に応じて JETCreator でオーディションを行います。完成したプロジェクトを JETCreator で保存し、ゲームに組み込むため .jet ファイルをプログラマーに渡します。プレビューの後、MIDI ファイルや JETCreator 属性を変更する場合もあります。

7.2 メモリの節約

メモリを節約する場合は、できるだけ少ない数の MIDI ファイルを作成し、その MIDI ファイルから複数のセグメントを作成するようにします。たとえば、4 小節のセクション 3 つ(A、B、C)を含む 12 小節の MIDI ファイルからは、さらに長い曲を作成できます。この 1 つの MIDI ファイルを参照する複数のセグメントを作成して、好きなように並べ替えればよいのです。A、A、B、A、C、A、B、A、A なら、36 小節の曲になります。JET を使ってリピートを追加したり、セグメントを移調したり、トラックをインタラクティブにミュートまたはミュート解除したりすることで、さらに趣向を凝らすことができます。

7.3 複製

セグメントやイベントをすばやく追加するには、複製コマンドを使用します。複製を使用すると、複数のセグメントまたはイベントを一度に追加でき、さらにオフセット パラメータや可読性のためのプレフィックス命名規則を使用できます。また、移動コマンドは、小節、拍、ティックの間隔を指定して複数のイベントを移動する場合に便利です。

7.4 インタラクティブ オプション

JET を使用して実現可能なインタラクティブ オーディオのコンセプトがいくつかあります。デベロッパーの方がこれ以外の、まったく新しいアイデアを生み出されることを期待しつつ、以下にその一端を紹介します。

7.4.1 マルチ セグメント トリガー

この方法では、ゲーム中のイベントに基づいてアプリから特定のセグメントをトリガーします。たとえば、戦闘の多い通路ではセグメント 1 をトリガーし、戦闘のない通路ではセグメント 2 をトリガーします。JET TriggerClips と組み合わせて使用することで、さらにバリエーションが広がります。

7.4.2 ミュートアレイ

この方法では、アプリから単一の MIDI シーケンス内の特定のトラックに対してミュート イベントとミュート解除イベントをトリガーします。たとえば、戦闘の多い通路では MIDI トラック 1~16 を再生し、戦闘のない通路では、再生する MIDI ファイルは同じですが、トラック 9~16 をミュートします。JET TriggerClips と組み合わせて使用することで、さらにバリエーションが広がります。

7.4.3 音楽駆動型ゲームプレイ

音楽駆動型ゲームは、音楽コンテンツによってグラフィック イベントの表示方法が決まるという点で、ギターヒーローや JETBOY と同様です。アプリでは、グラフィック イベントに対するユーザーのレスポンスを照会し、それに応じて音楽をインタラクティブに変更します。この方法では、JET アプリ イベントと、MIDI ファイルに埋め込まれた MIDI コントローラを利用します。MIDI コントローラは、ゲームによりリアルタイムに読み取られます。ユーザーのレスポンスに基づいて、マルチ セグメント トリガーやミュートアレイも設定できます。