カスタムの条件に従って動作する条件コマンドのサンプル ~その2~
https://www.youtube.com/watch?v=WEh-i2oaooI
このビデオはModoバージョン16.0から搭載された条件コマンドの機能を活用して、カスタムの条件に従って動作する条件コマンドのサンプル例をご紹介します。条件コマンドに関する基本的な概念・設定方法について詳しくは「特定の条件に従って動作する条件コマンド」をご覧ください。
条件コマンドのサンプルをご紹介した前回のビデオ「カスタムの条件に従って動作する条件コマンドのサンプル ~その1~」では、conditionalCommand コマンドに用意されているクエリーコマンドを使い、その返される値によって実行するコマンドを変えていました。
この条件コマンドで指定するクエリーするコマンドというのは、何も conditionalCommand に用意されているコマンドしか使えないというわけではありません。他にもModoに用意されているあらゆるクエリーコマンドを使用することができますし、それによって実行するコマンドもモデリングに対するコマンドに限られているわけではありません。
例えば、モデリング作業を行う際にビューポート上でアクティブメッシュと非アクティブメッシュの表示方法というのを切り替えることがよくあるかと思います。ビューポート上にあるアイコンをクリックすれば、アクティブメッシュと非アクティブメッシュの表示方法というのを切り替えることができますが、できればこれをキー一つで切り替えることができれば、とても便利に使えそうです。
コマンド履歴で表示を切り替えてみると、view3d.sameAsActive false と view3d.sameAsActive true を繰り返し実行しています。試しに ?view3d.sameAsActive とコマンドを実行してみると、表示方法を切り替えるパネルが出てきました。つまり値をクエリーすることができているということになりますので、これを使って条件コマンドを作ってみていきましょう。
フォーム編集からワークベンチを検索し、(新規コントロール) > コマンドの追加で ?conditionalCommand SameAsActive とします。SameAsActive ボタンをクリックし、設定パネルを開いたら、カスタムコマンドの設定を行っていきましょう。カスタムキーに任意の文字列、ここでは ActiveView と入力し、クエリーするコマンドに先ほどの view3d.sameAsActive を設定します。返される値、つまり条件キーが true の場合には、その逆の設定を行いたいので、条件アクションに view3d.sameAsActive false と入力します。OK ボタンを押したら、もう一度 SameAsActive ボタンをクリックし、今度は返される値、つまり条件キーが false の場合には、その逆の設定を行いたいので、条件アクションに view3d.sameAsActive true と入力します。ここまで設定できたらフォーム編集のコマンド先頭にある ? を削除し、ボタンをクリックしてみます。そうするとボタンをクリックするたびに、表示を切り替えることができるようになります。キーボードショートカットに割り当てれば、わざわざアイコンやボタンを押す必要なく、キーだけで切り替えができますので、マウスを移動させる必要がなくなり、大変楽に操作できるようになります。
従来までは、このように状態に応じて行う動作を変えようとすると、簡単なスクリプトなどで対応する必要があったかと思いますが、この条件コマンドを使えば、スクリプトを作る必要もありません。条件アクションで指定するコマンドは、マクロやスクリプトも指定できますので、一連の動作を起こしたいということであれば、あらかじめマクロを作っておいて、それを指定しておくということも可能です。
条件コマンドを使うと、自分の作業フローに合わせてよりカスタマイズした環境を手に入れることができるようになります。