サウンドフローの解説 その1「用があるまで待機する」

SmileSoundデコーダのサウンドデータを作るときに、重要になるのがサウンドフローです。サウンドフローの中身を、どのように書いて行けば良いか、説明していきます。まずは、0-4行目までに絞って解説します。

まず、サウンドフローの中身に注目していきましょう。ここでは、ブロアーの動きを示します。サウンドをONすると、このブロアーのサウンドフローが動作するように、作られているとします。

最初に、labelというコマンドがあります。これは、「この位置に、目印を置くよ!」という意味になります。目印を置くだけなので、特に音や車両の動きに変化はありません。

次に、ifというコマンドが出てきます。ちょっと難しくなってしまいましたね。これは、「もし、〇〇の条件が成立したら××の目印(label)に移動してください。成立しなかったら、△△の目印(label)に移動してください。」というコマンドです。細かく説明していきます。

○○には、パラメータ1に書いてある「ref>0」があります。プログラマではない方は、とっつきにくいのかもしれませんが、「refが0より大きい数だったら」という意味になります。refというのは、SmileSoundデコーダでは、「速度の指令値」になります。ユーザーが指定した速度っということです。つまり、「ref>0」は「デコーダに走ってくれとユーザーが指示した」という意味になります。

××には、パラメータ2、△△にはパラメータ3を使います。つまり、「もし、〇〇の条件が成立したら××の目印(label)に移動してください。成立しなかったら、△△の目印(label)に移動してください。」と説明しましたが、読み替えると、「もし、デコーダに走ってくれとユーザーが指示したの条件が成立したらパラメータ2の目印(label)に移動してください。成立しなかったら、パラメータ3の目印(label)に移動してください。」ということになります。ちなみに、パラメータ3は省略する事ができて、何も書かない場合は、移動しない(=次に進む)となります。

もう一つifがあり、「share==1」などと書いてあります。これは、後々説明していきます。

そのあと、gotoというコマンドがあります。これは、labelで設定した目印に、移動してくれ、という意味です。ここではSTARTとパラメータ1に書いてあるので、STARTに飛んでいきます。つまり、最初に戻るのです。

ブロアーのサウンドフローでは、最初は何らかしらの指示が来るまでは、待機しているという処理を、0~3行目を使って表現していたのであります。

コメント

  1. とし より:

    とても助かります。

タイトルとURLをコピーしました