二足歩行ロボットコミュニティサイト

【サイトの使い方】  【サイトマップ】  【お問い合わせ】 
ロボット動画  |   ロボット写真  |   BBS  |   ダウンロード  |   イベント予定  |   スタッフ日記  |   リンク  |  
ログイン パスワード    新規登録   パスワード紛失  

 

第4回 操作マップV2について

今回はRobovieMaker2で新しく追加された操作マップV2について説明します。

概要説明

操作マップは従来のRobovieMaker for VS-RC003にも存在しましたが、操作マップV2はこの従来の操作マップを拡張したようなつくりになっています。ちなみに、従来の操作マップをRobovieMaker2では「操作マップV2」といいます。
操作マップV1はコントローラの入力やマップの切替方法、アナログ入力の数などが固定されていましたが、操作マップV2ではそれらの制限がほぼ取り払われ、非常に自由度の高いものとなっています。

操作マップV2では、一つの入力に対して、分岐ブロックのような「入力条件」とその入力がONになった場合に実行される「モーション」を設定します。
入力条件は操作マップV1のアナログ入力とほぼ同等ですが、ゲームパッドの入力も変数に記録されるため、それを元にコントローラのボタン入力の判断も行なわれます。
更に選択できる入力条件には変数のビット単位での合致もあるため、操作マップV1では未対応であったボタンの同時押しやSHIFTボタンの利用も可能になっています。

操作マップV2の仕組みを例えるなら、モーションエリアの分岐ブロックを複数並べたような仕組みになっています。そして、操作マップV2を実行すると、その入力条件の並び順で上から条件の成立状況を確認し、条件の成立が確認できたらその入力に割り当てられたモーションを再生します。

操作マップV2の構造をモーションで再現
操作マップV2の構造をモーションで再現。
複数の条件分岐を順番に確認し、成立していればそれぞれの分岐先のモーションを、どれも成立しなければアイドリングモーションを再生する
実際にはSTART〜ENDの流れが常時繰り返されている。

操作マップV2で操縦する場合、「ボタンを押しっぱなしにする」「センサに反応が検出し続ける」など、同じ条件が成立し続ける場合、発動したモーションを繰り返し再生し続けます。この仕様は操作マップV1と同じですね。

操作マップV2の作成

操作マップV2の作成は、モードスイッチ・音声データのCPUボードへの書き込みダイアログより行ないます。
データ書き込みダイアログでオートデモや操作マップの新規作成を行なったように、操作マップV2もこちらのダイアログから新規作成します。
ちなみに、このオートデモや操作マップを作成する付近の仕様は下記のように若干変更されています。

操作マップV2の新規作成
操作マップ・オートデモの新規作成は、モード切替スイッチのリスト中の項目をクリックし、「新規」ボタンをクリックする
続いて表示されるダイアログより「種類選択」で「操作マップV2」を選択して「OK」をクリックする

モード切替スイッチの設定選択ダイアログで操作マップV2を選択し「OK」をクリックすると以下のダイアログを開きます。

操作マップV2のダイアログ
操作マップV2の設定ダイアログ。
ダイアログの上半分には、操作マップに登録した入力とモーションが列挙される
ダイアログの下半分で、モーションの割り当てなどを行なう

先ほど「操作マップV2は分岐ブロックを一列に並べたような構造」と説明しましたが、ダイアログの上半分には操作マップに登録した入力条件とモーションが列挙されます。ロボット単体で操作マップを実行すると、まさにこのリストの並び順に上から入力条件を調査し、条件が成立する入力が見つかったらそのモーションを再生します。
ダイアログの下半分では、モーションや入力条件の登録・変更、キャンセルなどの設定を行ないます。

モーションと入力条件を登録する

それでは試しにモーションの割り当てを行ないます。
モーションを割り当てる場合は、「登録モーション設定」の項目の「モーションの追加/削除/変更」にある「追加」ボタンをクリックしてください。
クリックすると以下のダイアログを開きます。

モーションと入力条件の割り当て
ダイアログの「モーションの追加/削除/変更」の「追加」ボタンで新しい入力条件とモーションを設定する。

ダイアログでは、リストに追加するモーションファイルとそのモーションを再生する条件について設定します。
まず、ダイアログ上部の「モーションファイル」の項目の「参照」ボタンをクリックして、条件成立時に再生するモーションを選択してください。

モーションを選択したら、次に入力条件を設定します。
入力条件は、大まかに「コントローラのボタン入力」及び「分岐ブロックと同様に任意の変数の値参照」の二通りから選択します。
ダイアログ上部で前者、ダイアログ下部で後者の条件設定を行ないます。

コントローラのボタン入力でモーションを再生する場合は、ダイアログの「コントローラによる入力設定」のラジオボタンをクリックしてください。

コントローラのボタンへのモーション割り当て
コントローラのボタンへのモーション割り当て
モーションを割り当てたいボタンにチェックを入れる。複数のボタンにチェックを入れると同時押しに対応となる
CPUボードと通信して、モーションを割り当てたいボタンを押しながら「パッド入力登録」をクリックすると、押しているボタンすべてにチェックがつく

コントローラのボタン入力の場合は、ダイアログ上にコントローラの各ボタンごとにチェックボックスが備わっており、押すとモーションを再生させるボタンにチェックを入れます。
複数のボタンにチェックを入れると、チェックを入れたすべてのボタンが押されている場合にのみモーションを再生します。
モーションの割り当てに使用できるボタンは操作マップV1と同じですが、新たに「L3」「R3」としてアナログスティックの押し込みに対応しています。
また、CPUボードと通信している状態で、コントローラのモーションを割り当てたいボタンを実際に押しながら「パッド入力登録」ボタンをクリックすると、ダイアログ中の押しているボタンの項目にチェックが付きます。

L3R3ボタン
コントローラのアナログスティックを押し込んだボタンをそれぞれ「L3」「R3」という

なお、詳しくは後述しますが、操作マップV2では操作マップV1のようにSELECTボタンと△○×□ボタンの組み合わせで操作マップを切り替えるという仕様ではありません。そのため、SELECTボタンと△○×□ボタンの組み合わせにモーションを設定しても、それによってマップが切り替えられることはありません(マップ切替などについては、詳しくは後述)。
ただし、サーボモータのON/OFF操作であるSELECTボタン+STARTボタンはそのままの操作で残っているため、この入力にモーションを割り当てるとモーションを呼び出すたびにサーボモータのON/OFFが切り替わります。
これを逆手にとってサーボモータのON/OFF切替の度に音声を再生するモーションを割り当てる、というような使い方もできます(変数251にはサーボOFFで0、サーボONで1の数値が書き込まれるため、モーション中に分岐ブロックでON時とOFF時の再生音声を切り替えることも可能です)。

変数の参照と任意の条件との比較でモーションを再生する場合は、ダイアログの「変数による入力設定」のラジオボタンをクリックしてください。

変数による入力条件の設定
任意の変数による入力条件の設定は、モーションの分岐ブロックの条件設定とまったく同じ仕様

この配置、何処かで見覚えがありますね。そう、第二回で登場した分岐ブロックの詳細設定ダイアログです。
設定の方法は分岐ブロックと同じで、「参照変数」で入力条件の元となる変数、「条件選択」で比較条件の大まかな種別選択、「条件詳細」で比較条件の細かい設定をそれぞれ行ないます。
選択できる条件や条件詳細設定の際に表示されるダイアログも分岐ブロックのものとまったく同じです。
条件の設定や外洋については、「第2回 RobovieMaker2でのモーション作成(後編)」の分岐ブロックの説明を読んでください(手抜き)。

ダイアログ下部の「移行マップ設定」は、現在設定している入力条件・モーションをマップ移行モーションとするかどうかの設定を行ないます。

移行モーションの設定
入力設定の「マップ移行」の設定によって、現在設定している入力条件・モーションをマップ移行モーションに設定できる
この設定で「移行しない」以外に設定すると、操縦時にこのモーションを再生した後に指定したマップへ切り替わる
操作マップV2では、SELECTボタンと△○×□ボタンの組み合わせによるマップ切替が廃止され、このようにユーザがマップ切替の入力を設定する形式となった

操作マップV2には、操作マップV1と同じく4枚のマップが備わっています。ただし、操作マップV1のようにSELECTと△○×□ボタンの組み合わせで切り替えるのではなく、任意のモーションをマップ移行モーションに設定でき、マップ移行モーションとして設定したモーションを再生すると、再生後に別のマップに切り替わるという仕様になっています。
「移行マップ設定」は、現在設定しているモーションをマップ移行モーションとし、操縦中にこのモーションを再生したらマップが切り替わるようにすることができます。
操作マップV2では00〜03の四つのマップ毎に、個別に入力条件やモーションの割り当てを設定でき、編集するマップの選択は、ダイアログ下部の「その他設定」の「マップ選択」より行ないます。
デフォルトの設定では00のマップのみ使用するようになっているので、それ以外のマップを使用する場合は「このマップを使用する」にチェックを入れてください。
また、使用するマップには必ずアイドリングモーションを設定してください。

マップの選択
設定ダイアログの下部でマップを選択できる。
選択したマップを使用する場合、「このマップを使用する」にチェックを入れる
また、操作マップV1と同じく使用するマップには必ずアイドリングモーションを設定する

注意として、一つのマップから別のマップに切り替える移行モーションを作ったら、切替先のマップにも別途元のマップに戻すための移行モーションを設定しなければ、コントローラから相互にマップ切替を行なうことができません。

すべての設定が完了したら「OK」をクリックしてダイアログを閉じてください。
ダイアログを閉じると、設定したモーションと入力条件がダイアログのリストに追加されます。

リストに登録された入力条件・モーション
設定した入力条件・モーションはダイアログのリストに登録される。
参照変数や入力条件は設定に応じて表記される

リストに登録されたモーションには、ファイル名・参照変数・入力条件・キャンセル設定などが表示されます。
参照変数は基本的に入力条件に用いられる変数の番号のみが記述されますが、コントローラなど一部の変数についてはその機能を含めて表示されます。
入力条件については、選択した条件及び閾値の設定が表示されます。

リストの並び順変更

ダイアログにリストアップされた入力条件・モーションの並び順は、コントローラでの操縦時に再生されるモーションの優先度と直結しています。
先ほど簡単に記述しましたが、操作マップV2で操縦する場合、CPUボードはリスト中の最上段の入力条件から順に設定の条件が満たされているか確認し、条件が成立しているものがあればそこでモーション再生を開始します。
また、リストアップされたモーションのどの入力条件も成立しなかった場合、アイドリングのモーションが再生されます。
つまり、複数条件が成立している場合は、リストの上の方にあるモーションが必ず優先して再生されます。
そのため、操縦時に優先して再生させたいモーションはリストの上の方に持ってくる必要があります。

リストアップしたモーションの並び順を変更する場合は、「登録モーションの設定」の項目の「モーションの並び順変更」の二つのボタンを使用します。
まず、リスト中の順番を変更するモーションの項目をクリックして選択状態にしてください。その状態で「上へ」ボタンをクリックすると選択したモーションが一つ上の項目に、「下へ」ボタンをクリックすると選択したモーションが一つ下の項目にそれぞれ移動します。
複数の項目を選択することで、選択した項目をまとめて動かすことができます。

リストの並び順変更
リスト中の項目を選択し、ダイアログの「モーションの並び順変更」の「上へ」「下へ」をクリックするとモーションの並び順が変更できる。

また、「モーションの追加/削除/変更」にある「変更」ボタンを押すと、リストに登録した入力条件・モーションの設定を変更できます。
「削除」ボタンをクリックすると、リストに追加した入力条件・モーションの設定を削除します。

ちなみに、リストアップされたモーションに「条件選択」で「常に成立」を設定するなど、必ず条件が成立するような入力を設定した場合、そのモーションよりリストの下にあるモーションやアイドリングモーションは再生されなくなることになるので注意してください。

リスト中のモーションのいくつかが再生されないケース
この場合、「高速右旋回」の「必ず再生」の条件が常時成立するため、「右横歩き」以下のすべてのモーションが絶対に再生されない。

キャンセルの設定

操作マップV1にはモーション再生中に別の入力のモーションをすぐに再生できるよう「キャンセル」という設定がありました。
これとまったく同じ設定が操作マップV2にも存在します。

操作マップV2のキャンセルには「受け入れキャンセル」「割込みキャンセル」「アイドリング割込みキャンセル」の三種類が存在します。
前二者は操作マップV1でも登場しましたが、最後の「アイドリング割込みキャンセル」は操作マップV2の独自機能となっています。
過去のおさらいですが、「受け入れキャンセル」を有効にしたモーションは、そのモーションを再生中に別のモーション入力があった場合、別のモーションのキャンセル設定がどのようなものであっても必ず現在のモーション再生を中断して次のモーションを再生するというものです。
また、何らかのモーションを再生中の状態で「割込みキャンセル」を有効にしたモーションの入力があると、現在再生中のモーションのキャンセル設定に関係無く現在のモーション再生を中断し、次のモーションを再生します。

また、操作マップV2で追加されたアイドリング割込みキャンセルは、現在アイドリングのモーションが再生中の場合に限り、「アイドリング割り込み」を有効にしているとアイドリングモーションを中断して次のモーションを再生します。
アイドリング割込みキャンセルの使いどころとしては、加速度センサによる自動起き上がりモーションなどのように、アイドリングで直立など静止状態になっている場合だけキャンセルが必要で、激しい動きをしている途中にキャンセルがかかって起き上がりが発動しては困る場合などに使用します。

キャンセル設定の変更は、操作マップV1と同じく設定を変更するモーションをリストからクリックして選択状態にし、「キャンセル設定」の項目の各種キャンセルの「有効」「無効」ボタンをクリックします。
キャンセル設定の有効・無効はダイアログのリストに表示されます。

キャンセルの設定
操作マップV1と同じくモーションごとにキャンセル設定が可能。
「受け入れ」「割り込み」は従来と同じ仕様、「アイドリング割り込み」は、現在再生しているのがアイドリングモーションの場合のみキャンセルをかけて、アイドリングのモーションを中断して新しいモーションを再生する。
加速度センサの起き上がりなど、アイドリング時のみキャンセルをかけて速く発動してほしいモーションに使用する

なお、キャンセル機能によってモーション再生が中断された場合、ポーズの補完が一旦途切れるため、ロボットが一瞬ビクッと動く場合がありますのでご了承ください。

最後に

操作マップV2は新しいモーション形式と同じように、センサなど変数の状態によって再生するモーションを条件分岐することができます。
また、モーション中の条件分岐や変数の設定と組み合わせると更に複雑な分岐が可能となります。
特に、ユーザ変数の値は一度代入するとモーション再生終了後などにクリアされず別途上書きされるまでその値が保存されるので、異なるモーション間で変数の値を受け渡したりするような使い方もできます。
ただし、その分各種設定は操作マップV1より複雑になっているので、慣れないうちは操作マップV1をそのまま使い続ける形でも問題ないと思います。

さて、次回はRobovieMaker2で拡張されたサーボモータの出力式に関する説明を行ないます。
RobovieMaker2では、サーボモータ出力式に使用できる変数の数が増え、ジャイロセンサとアナログスティックなど、複数の変数のサーボモータへのフィードバッグが容易に実現できるようになっています。
また、これだけでは少ないので、モーションエリアなど画面表示の設定に関する内容も掲載したいと思います。


前のページ
第3回 サーボモータの個別脱力機能
コンテンツのトップ 次のページ
第5回 サーボモータ出力式の拡張設定


検索
Loading
メインメニュー