• 検索結果がありません。

作成中 最終出力

プレーヤー

デザイン

ADX2LE OSC Player

を起動

ブロックを解除する

起動する

プレーヤー

ファイルをコピーする

ファイルコピー

バッチを実行する

C:\ADX2LE_Workshop\AtomCraftData\copy.bat

• ACF,ACB

ファイルをコ ピーしました。

ファイルコピー

C:

ドライブに

ADX2LE_Workshop

展開していないと正しく動作しないので 注意

ADX2LEOSCBasicPlayer_Data

を開く

StreamingAssets

を開く

ACBACF

を差し替える

先ほど

ツールで出力したフォルダから

inGamePreview

を開く

【参考】もしも手動でやる場合は以下のよう な手順になります。

ファイルコピー

デザイン

ADX2LE OSC Player

の「

Panic!

」ボタンを押す

0:tri

(キュー名)に変化していたら

OK

プレーヤー

「♪」を押すと音が鳴る、「

」で停止

真ん中のスライダーでピッチが変わる

左のスライダーで音量が変わる

プレーヤー

いちいちバッチを実行するのは面倒なので、

ビルド時に呼び出すようにします。

2 1

3 4

ファイルコピー

もっと直感的に

プレーヤーでも2つコントロールができましたが、

同時にコントロールしたいので、

マウスの位置(たて、よこ座標)が反応するような、

簡単なプログラムを用意しました。

サウンドデザインする上で簡単なプロトタイプを作 ると捗ります。

プログラムからどんな風にコントロールされるか理 解を深めると、データ作成に有利な点が見つかるか もしれません。

動作確認用のシンプルなもの

音以外のインタラクションを作る

processing

インタラクティブ サウンドを

コントロールします。

サウンドデザイン インタラクションデザイン

サウンド再生

ADX2LE_OSCBasicPlayer アプリケーション /adx2/0/playcueid

OSC (udp) localhost通信

/StremingAssets/

NewProject.acf

CueSheet_0.acb

CRI Atom Craft

ビルド 出力ファイル

差し替え Processing

ProcessingのoscP5

インゲーム プレビュー

作成中 最終出力

プログラム

proessing

が起動します

sketch_AISACXY.pde

を開く

 を押して実行

 を押して停止

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

ellipse(mouseX,mouseY,60,60);

}

描画処理

ウィンドウを

480x240

で表示

背景を

204

色(グレー)で

楕円

60x60

をマウスの位置に表示

2

3

プログラム

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

プログラムの流れ

起動直後一度呼ばれる

描画は毎度呼ばれる

2

プログラム

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

ellipse(mouseX,mouseY,60,60);

}

通信処理

OSC

インポート

OSC

アドレスをセット

再生メッセージ

停止メッセージ

AISAC0

メッセージ

AISAC1

メッセージ

1 3

2

4

プログラム

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

void setup() {

size(480,240);

oscP5 = new OscP5(this,9000);

myRemoteLocation = new NetAddress("127.0.0.1",8000);

}

int playerState = 0;

int mouseState = 0;

void draw() {

background(204);

if(mousePressed) {

if(mouseState == 0){

if(playerState == 0){

OscMessage myMessage = new OscMessage("/adx2/0/playcueid 0");

oscP5.send(myMessage, myRemoteLocation);

playerState = 1;

} else if(playerState == 1){

OscMessage myMessage = new OscMessage("/adx2/0/stop");

oscP5.send(myMessage, myRemoteLocation);

playerState = 0;

}

mouseState = 1;

} } else {

mouseState = 0;

}

if(playerState == 0){

} else {

OscMessage myMessage

   = new OscMessage("/adx2/0/aisac 0 "+mouseX/480f);

oscP5.send(myMessage, myRemoteLocation);

myMessage = new OscMessage("/adx2/0/aisac 1 "+(1f-mouseY/240f));

oscP5.send(myMessage, myRemoteLocation);

判定の処理

マウス押されたら

再生中なら 再生中かどうか

マウス状態

2

3

プログラム

チャレンジ(課題)

内容: 絵にあった変化を音に加えてみる。

どちらか好きなものを選んで音をデザインしてみる。

分からない事があれば、質問も受け付けます。

内容:どんな音の変化があるか動かしながら考えてみる。

ヒント:残響を増やすにはバスセンドを使う

ヒント

2

:バスセンドは閉じるのみのコントロール

• C:\ADX2LE_Workshop\processingSample

どんな音の変化があるか動かしながら考えてみる。

ヒント:

2つの音をクロスフェードするにはボリュームを使う

• C:\ADX2LE_Workshop\processingSample

\sketch_test2\sketch_test2.pde

インゲームプレビュー

【インゲームプレビュー】とは、

ツール側で音を加工、編集した結果を

【実行中のゲーム】に送信し、

音を即時に差し替える技術です。

ゲームを中断させる事なく音の加工を反映させる事ができ るため、非常に細かい微調整が可能です。

インゲーム接続

デザイン

インゲームプレビューの開始

F10

キー】を押す

または、【プレビューメニュー】から【インゲームプレビューの開始】を選択

発音数や

CPU%

が変化していれば 接続

OK

デザイン

これからのサウンドデザインに 求められるもの

楽器や身の周りの音のなるも のも

デザインの参考になります。

なぜ、その音が鳴っているの か?

どう変化するのか?

意識してみます。

シンプルである事

なるべく少ない操作 で、最大の効果を求め ます。

演奏しやすいインタラ クティブサウンドを デザインする事が良い です。

難しいと練習(ルール 設定)が必要になる

音はこだわるべき

めっちゃ【凝って】良い。

こだわりを捨てずに

気持ちよい音を探求する。

それが面白さや、楽しさに繋がる。

サウンドデザインで リッチに!

シンプル

プログラマを困らせな い

分かりやすさ

効果的か、理論的か 客観的に判断

サウンドデザイン

ADX2

を使うと楽にデ ザインできます。

関連したドキュメント