UG Job Pluginを作成してみた雑感


年内に無事、拙作UG Job Pluginを公開していただいたこともあり、安心して若干ふぬけ気味です(笑)。ほんとは年末の掃除や冬コミ参加も控えているんですけどね(ちなみに一般参加)。なお、公開した3つのプラグインこちらで紹介・解説してます。
今回実際にUG Job Pluginが公開されたことで、新しく「自分でも作ってみよう!」という方もいると思います。ということで、もしかしたら参考になるかもしれない?実際に作った際の雑感です。


まずLuaという言語、自分は触ったことがありませんでした。今まで触ったのは、JavaHSP、それにあっという間に挫折したC言語(笑)。あとマニアックなところで、Photoshopの自作プラグイン開発用の言語なんてのもありますが、これは簡単な数式や条件式が書けて、文字数も極端に制限されていたものでした。今回のJob Pluginについても、それに近い簡易的な実行環境なのかな・・と思ったら、これが大間違い。実際にはC言語と組み合わせたり外部ファイルの書き出し・読み込みができたりと、本格的なプログラムが書ける環境でした。
・・話がそれました。そんな自由度の高いUG Job Pluginですが、言語面から見ると、個人的にはかなり開発がしやすいと感じました。少なくとも、他のプログラムやファイルと連携しない、V3環境に閉じた世界であれば。メモリ管理はGCで勝手に面倒見てくれるし、変数の型はよしなに変換してくれるし。第一、扱うデータは基本的にパラメータの数値やノートイベントそのものだったりがほとんどなので、生データをこわごわいじくる場面もない(笑)。唯一、配列の添え字については、多くの言語が0から始まるのに対してLuaでは1から始まるので、違和感というか最初に「あれ?」と思ったのはそれくらいでした。Job Plugin特有のノートイベントなどが格納されるテーブル型の概念も分かりやすかったですね。今まで別の言語で少しでもプログラムを書いたことがある方(もちろん学校とかで習わされる範囲も含めて)なら、多分すんなりと開発に取り組めると思います。
今回、特に以下のサイトで勉強させていただきながらコーディングしました。作成者の方々に、この場をお借りしてお礼申し上げます。

さて、実際に開発する際の環境ですが、こちらはちょっと不自由を感じる場面もあります。まず、更新したプログラムを実行するまでの手間。Job Pluginでは、第三者の悪意ある改変を防ぐため、更新されたJob PluginはそのままではV3上から実行できず、いったん「Job Pluginの管理」から該当のものを削除し、ファイルを選んで追加、そして実行が可能になります。通常のアップデートならこれでいいのですが、開発中は何度も更新しながら動作を確認するので、そのたびに削除→追加→実行をしなければならず、少し大変でした。
また、実行環境で若干動作が怪しいと感じられる場面が何回かありました。これは自分のコーディングミスが原因である可能性が高いので(笑)、あまり気にしないでもらえればと思いますが、もとのデータとは明らかに違うパラメータの数値が取得されてしまうケースがあったので、怪しいと感じたらときどきダイアログに数値を表示させるなどして確認してみてください。
以上2点書いてしまいましたが、どちらも少し意識していれば問題はないレベルなので、まず実際に触って感触を確かめてもらえればな、と思います。


最後に、実際にプログラムを書くときにどんなツールを使うか?もしすでに手馴れた開発環境がある方は、Luaに対応しているかチェックしてみてください。自分はいくつか試した結果、新たに「Notepad++」を導入しました。

条件分岐の範囲の色づけやコメントアウト範囲の開閉など、(今は当たり前なのかもしれませんが)気が利いた機能が満載でかなり使いやすいです。


というわけで、雑感をつらつらと書いてみましたが、いかがだったでしょうか?作ってみた感想としては、ハードルはかなり低いので、十分アイディアをかたちにしやすい、ということです。自分も今回実際に3つ一気に作ってみましたが、現在の仕様で作れるものと、将来APIが拡張されたら作れるもの、アイディアはまだいくつかあったりします。皆さんもぜひ、UG Job Plugin開発にチャレンジしてみてくださいね。使う人と作る人、大勢になることでどんどん活発化すれば楽しいし、わずかながらですが自分もそれに貢献できればと思います。