投稿

ラベル(modo)が付いた投稿を表示しています

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 … ユ...

クライアント考察 その2

引き続きクライアントを作っています スクリプトを作成していると、自分の考えをどのように実現したらいいのか悩む時がたくさんあります。幸い、modoのコミュニティには多くの優れた方たちがいらっしゃいます。先人のお力をお借りしながら前に進んでいきます。 前回の投稿でフォームの編集を行うことができることがわかりました。フォームやスクリプトは3Dモデリングとは直接関係がないからか、特に情報を見つけるのに苦労します。 Takumiさんのページ( modo mode ) Luxologyのアセットシェア( luxology.com ) を参考にさせていただいて、フォームの編集やスクリプトの勉強を進めます。とにかく、たくさんのスクリプトに触れて、そのバリエーションを自分の中にため込んでいくしかありません。 スプレッドシート形式のインターフェイス WebからJSON形式で情報を取得して、modo側でそれを表示します。HTMLのテーブルやExcelのスプレッドシートのように表示したいと考えています。当初、modoにはスプレッドシートのようなインターフェイスがあるので、それを使っていけばいいと考えていましたが、フォーム編集の画面からではどうにもあのようなインターフェイスを実現できません。標準で用意されているインターフェイスを載せることはできるのですが、それらはあくまでも標準のインターフェイスであって、それをカスタマイズすることはできそうにないのです。あまりにも煮詰まってしまったので、 modo ディスカッショングループ に投稿してみました。いい返事が来るといいです。 実現できないことも考えて対策を考えておく必要はあります。今考えているのは、PythonのGUIライブラリである wxPython を利用することです。こちらはスプレッドシートのようなインターフェイスを利用できるようです。 現時点では回答が出ないので、他の作業をすることにします。

クライアント考察 その1

イメージ
modoのユーザーインターフェイス modoでは、自由度の高いインターフェイスを作ることができます。色々な方のスクリプトやプラグインをダウンロードしてきては中身を見ているのですが、XMLを記述することで、インターフェイスを実現しているということがわかりました。はじめはテキストエディタでポチポチとフォームを作成していくのだろうか?と思っていたのですが、さすがにそんな状態ではなく、modoにはインターフェイスを WYSIWYG で作成することができる、「フォーム編集(Form Editor)」という機能が付いていました。 modoのメニューバーの[システム] - [フォーム編集]を選択することで、modoに登録されているフォームの一覧が出てくるので、ここに新たにフォームを追加していくのです。 ここまでの説明も含めて、以下のページを参考にしました。ムービーで丁寧に説明くださっているので、とても分かりやすいです。 http://www.toroman.de/modo/tutorials/creating-a-kit-precision-scale/

シンプルに作る

そうだ、Flask使おう コードは書けば書くほど間違いが混入します。アプリケーションを作るときはできるだけシンプルに作るのが望ましいです。そこで、今回はFlaskを利用してみることにしました。JSONで出力するのも非常に簡単です。 クライアントであるmodo側で受け取ったJSONをdictにパースできることも確認。明日からはいよいよクライアントのUIを作成していこうと思います。 ここまでPythonやGoogle App Engineの勉強から始めて、のんびり2か月もかけてしまっているのですが、今回のコーディングは2日もかかっていません。調査をしたり、コードの動作を確認したりする時間が大半を占めています。PythonやGoogle App Engineへの理解が進めばスピードアップもしていくと思いますが、プログラムができていかないため、気持ちは焦れていきます。もう少し要領よく作業していきたいと思います。

modoのこと

About modo modo (モド)は3Dグラフィクスソフトです。Luxology(ルクソロジー)という会社が作っています。 modoはPerl/Python/Luaを利用して機能を拡張できる仕組みを持っています。スクリプトは自分で記述することもできますし、ネットで公開されているものを使うこともできます。 何か作ってみよう 自分はプログラムの経験が少しありますから、このソフト向けに何か作ってみようと思い立ちました。とはいえ、デザインについてはあまり明るくないので、デザインをサポートするようなものはなかなか思いつきません。そこで考えたのは、スクリプトを配布するサービスです。先ほどネットで公開されているものを使えると書きましたが、実際に使い始めるには、まずスクリプトをダウンロードし、それを所定のフォルダに保存しなければなりません。その手間を省きたいと思いました。 ゆくゆくはデザインをサポートするようなものも作っていきたいと思います。 考えたこと どこかにサーバーを用意してそこからダウンロードする仕組みが必要です。modo側にはクライアントとなるコードを書きます。無料で公開するサービスとしたいので、運用するのにできる限りお金がかからないようにしたいです。また、サーバーとクライアントの言語は効率化のためにも一緒にしたかったので、Google App Engineを利用することにしました(ということでPythonを使います)。 今後 思いをはせてみると、色々と実現したいことが浮かんできます。また、自分一人だけで完結するサービスではありません。スクリプトを作って公開されている方へ、登録のお願いもする必要があります。ちょっとドキドキしますが、少しずつ作っていきます。