modoのスクリプトをKit化する

modoのKitとは

modoにはKitと呼ばれる仕組みがあります。機能を拡張するためのパッケージング方法です。Kitを使う利点はたくさんありますが、主なものを挙げると以下のようになります。

  • 他への依存が少ない
  • KitをOn/Offする仕組みがある
  • 配布が容易

modoの機能を拡張するためにスクリプトやフォームの編集があることは以前にも書きましたが、これらは色々な場所にスクリプトやコンフィグファイルが散らばってしまいます。もしかしたら同じファイル名のスクリプトがあるかもしれません。このような状態で利用者が間違いなくセットアップするのは大分難しいことです。また、Kitはメッシュなどのアセットも一緒に配ることができます。
このような点から、拡張機能を配布するのにはうってつけなのです。

今回のアプリケーションにもKitは大きな存在です。インストールするときに所定のフォルダに保存するだけなので、仕組みもとてもシンプルになります。アプリケーションを開発し始めたころはKitの存在を知らなかったので、どのようにインストールしたらいいのか悩んでいたのです。

しかしながら、世の中に配布されている拡張機能はKit化されていないものも多いのです。そこで、ある公開されているスクリプトをKit化させていただきました。

窓を配置するスクリプト

以前、modo UserGroup Tokyo勉強会に参加させていただきました。その勉強会の中で、柳村さんが窓のメッシュを効率的に配置するスクリプトを利用されていたのです。非常に便利なスクリプトです。Kit化の承認を柳村さんに快諾いただいたので、早速Kit化してみました。

Kitの仕様

Kit化に当たっては
  • 基本タブにスクリプトを実行するボタンを追加
  • プリセットにアセットを追加
を実現します。また、キット名は「Set Window P」とします。
スクリプトのほかに窓のメッシュファイルもあるので、プリセットブラウザに表示するように設定を行います。

フォルダ構成

次のような配置としました。
SET WINDOW P
    ├─ index.cfg                   … Kit設定
    ├─ ui.cfg                      … ユーザーインターフェイスファイル
    ├─ Set_Window_P.pl             … スクリプトファイル
    └─ Set Window P Presets        … メッシュフォルダ
        ├─ シャッター付窓_1000.lxl
        ├─ ルーバー窓_1000.lxl
        ├─ 上下窓_1000.lxl
        ├─ 単体窓_1000.lxl
        └─ 戸袋付窓-L_1000.lxl

Kitの全体設定

Kitの設定はindex.cfgに書き込んでいきます。modoにはこのファイルを生成してくれる仕組みはありません。コンフィグファイルの仕様はSDKのページで確認することができます。

  kit_SetWindowPKit:
  
    1
   

注意深く見てみると、このKitのバージョンが見てとれると思います。rel=601とあるのは、このKitはmodo601以降のバージョンで利用できることを示します。このほかにWindows/Mac、32bit/64bitなどのプラットフォームの選択なども行うことができます。DirBrowserを設定することによってプリセットブラウザにフォルダをアサインすることができます。アセットだけ配布したいという場合にもKitは利用できそうです。


ユーザーインターフェイス

最後に「ui.cfg」の内容をご紹介します。
  
    
      Set Window P
      vtoolbar
      both
      small
      
        49.50.55
      
      
        Set Window P
        0
        20459696616:control
      
      
        Set Window P louver
        0
        40951696624:control
      
    
  
このファイルはindex.cfgと違って手入力するものではありません。modoの機能のフォーム編集を利用して出力することができます。フォーム編集については以前のエントリでまとめましたので、そちらを参照してください。この設定によって、基本タブの下のほうにスクリプトを実行するボタンが設置されます。

コメント

このブログの人気の投稿

【KotlinとJava】分解宣言

wxPythonでのモーダルダイアログ作成