シミュレーションの実行と再生

シミュレーションプロジェクトが用意出来ましたら、以下の手順でシミュレーションの実行や結果の再生を行うことが出来ます。

シミュレーションの開始

シミュレーションを進める主体となるのは、シミュレータアイテムになります。 そこで、シミュレーションを実行する際にはまず対応するシミュレータアイテムをアイテムビュー上で選択状態にします。 シミュレータが複数ある場合でも、この選択状態によって対象シミュレータを特定する仕組みとなっています。

次に、シミュレーションツールバーの「シミュレーション開始ボタン」を押します。 これで、プロジェクトの設定が正しければ、シミュレーションが始まり、シミュレーションの進行に沿ってモデルの状態が変化していくアニメーションが表示されます。

シミュレーション実行中のアニメーションは、通常実時間以下の速度になります。 つまり、シミュレーションの進行が実時間より遅い場合は、その進行速度でのアニメーションとなり、一方シミュレーションの進行が実時間より速い場合でも、計算済みの結果を実時間にあわせて再生することになります。

しかし場合によっては、シミュレーションの進行速度をそのままアニメーションに再現したい場合もあるかと思います。そのような場合は、タイムバーの設定(バー右端の設定ボタンを押すと出るダイアログ)にて、「再生スピード倍率」を適当に挙げておきます。例えば最大の9.9にしておけば、実時間の9.9倍速まではシミュレーションの進行を追うことになりますので、多くの場合でほぼシミュレーションの進行速度によるアニメーションになります。(これについては今後「無限倍速」の設定もできるようにしたいと思います。)なおこの設定はあくまでアニメーション再生に関する設定であり、シミュレーションとは独立して設定・反映される設定項目となっています。

また、もし計算中のシミュレーションのその時々の状態をモデルに反映させていければよいというのであれば、シミュレータアイテムの「記録モード」プロパティを「直接」にしておきます。この場合シミュレーション結果の時系列データの記録はされません。

他の設定としては、シミュレータアイテムの「実時間同期」プロパティを true にしておくと、シミュレーションの内部計算の進行についても、実時間以下の速度に制限されるようになります。この設定は、ユーザの操作によってロボットを動かす場合など、ロボットの制御が実時間で進行する外部入力に依存する場合に有効です。

シミュレーション結果の再生

シミュレーション結果は、上記の「記録モード」が「直接」でなければ、シミュレーション開始時からの時系列軌道データとして記録されます。このデータはBodyMotionItem型のアイテムとして、各モデルの小アイテムとして(モデルがコントローラによって制御される場合はコントローラの小アイテムとして)追加・格納されます。

このように記録された軌道データは、シミュレーションを行ったシミュレータアイテムを選択状態にして再生操作(タイムバーの再生ボタンやタイムスライダのドラッグなど)を行うことで、シミュレーション終了後も再生を行うことが可能です。

BodyMotionItemはシミュレータとは独立して利用可能なアイテムとなっており、グラフに軌道を表示させたり、データを保存・エクスポートしたりといった、様々な操作が可能です。