記事一覧

MODO 11 Python Script 開発環境の構築

MODOには、さまざまな開発者向けの機能が提供されています。
用途によって何を使うか変わってきますが、Pythonを使った機能拡張は比較的ハードルも低く、多くの事ができます。

MODO標準でもスクリプト開発用にScriptingタブが用意されていますが、正直なところ、この画面でのスクリプト開発は作業効率が悪かったりします。(開発用のソフトではないので仕方ないのですが)
Pythonの開発には、PyCharmというPython開発に特化した開発環境が存在しているため、今回はPyCharmを使ったMODOのPython Script開発環境の構築方法を紹介します。
※他にもPythonに対応した開発環境は色々存在するのですが、個人的にはPyCharmがおすすめです。

MODO 11 Python Script開発環境(概要)

今回は、以下のような構成で開発環境を構築します。(Windowsの開発環境)
PyCharmのプロジェクトファイルなど、MODOには直接関係の無いファイルをMODOのScriptsフォルダに入れたく無かったので、MODOのScriptsフォルダとPyCharmのプロジェクトフォルダを完全に分離しています。

「%AppData%」は「C:\Users\ユーザー名\AppData\Roaming」を指しています。
「%Dev%」という部分は任意のPyCharm開発に利用するフォルダを指します。私の場合は「D:\Users\Kurozumi\Development\PyCharm」になります。
概要図


MODO 11 Python Script開発環境の構築


Python開発環境の準備

まずはPythonとPyCharmのインストールを行います。

Pythonにはさまざまなディストリビューションが存在しますが、私はAnacondaを利用しています。AnacondaのダウンロードページからセットアップファイルをダウンロードしてAnacondaをインストールします。
MODOはPython 2.7をベースにしているため、Python 3.x系のバージョンは利用できません。MODOの開発向けに利用するのであれば、Python 2.7 versionをダウンロードした方が良いでしょう。
※私の場合は他の用途でPythonを利用していることもあり、Python 3.6 versionのAnacondaを利用しています。ただし、Python 3.6 versionをインストールしても、Python 2.7 versionの環境を簡単に作成できるため何の問題もありません。
Download Anaconda

Pythonの開発環境であるPyCharmをダウンロードページからダウンロードしてインストールします。有料のProfessionalと、無料のCommunityがありますが、Community版で問題ありません。
Download PyCharm


PyCharmのプロジェクト作成

Python(Anaconda)とPyCharmのセットアップが完了したら、PyCharmを起動してプロジェクトを作成します。
PyCharmの画面で「Create New Project」をクリックします。
Create PyCharm Project

私の場合はPython 3.6 versionを利用しているため、ここでPython 2.7 versionの環境を作成します。もともとInterpreterが2.7系になっている場合は、そのままでも問題ありません。(MODOはPython 2.7系しか対応していないため)
Interpreterの右側にある歯車アイコンをクリックし、Create Conda Envをクリックします。(詳細は省略しますが、Anacondaを利用している場合はCondaを利用して環境を切り替える方法が一般的です)
Python Environment Settings

作成する環境の設定ダイアログが表示されるので、Nameにmodoの開発用環境であることが分かるように「modo(任意の名前でOK)」と入力し、Python versionで2.7を選択しOKボタンをクリックします。
必ずPython version 2.7を選択してください。
※MODOのバージョンと利用しているPythonのバージョンは開発者向けのページに記載されています。
Create Conda Environment

New Project画面に戻ってくるため、Locationに開発に使用するフォルダ(最初の図の①)を指定し、InterpreterがPython 2.7系になっていることを確認し、Createボタンをクリックします。
これで、LocationフォルダにPyCharmのプロジェクトが作成されます。
Create PyCharm Project


MODOのAPIダンプの作成

PyCharmなどで開発環境のインテリセンス機能(コードを自動で補完したり、APIの内容を表示したりする機能)を使うために、APIのダンプを作成します。

SDKのCode Completion for IDEsのページから、Cmd_dumpAPI.zipファイルをダウンロードします。
Download Cmd_dumpAPI

ダウンロードしたzipファイルに含まれているcmd_dumpapi.pyを展開し、%AppData%\Luxology\Scriptsにlxservフォルダを作成してコピーします。
※ヒント:エクスプローラーのアドレスバーに、直接「%AppData%~」という形で入力可能です。%AppData%という部分は定義済みの環境変数なので、自動で「C:\Users\~AppData\Roaming」に置き換えられます。
Copy dumpAPI

cmd_dumpapi.pyの配置が完了したらMODOを起動します。そうすると、自動でcmd_dumpapi.pyがコンパイルされ、同じフォルダにcmd_dumpapi.pycが作成されます。
MODOのコマンドウィンドウ(初期レイアウトだと画面右下に表示されています)に「python.dumpAPI」と入力しEnterキーを押します。
Execute dumpAPI

ダンプしたAPIの保存先を指定するダイアログが表示されるので、上記で作成したPyCharmプロジェクトフォルダにlxModulesフォルダを新規に作成し、このlxModulesフォルダを出力先に指定します。(フォルダ名は任意なので、lxModules以外の名前でもOKです)
※注意:出力先のフォルダを指定するとき「フォルダー」にフォルダ名が入っているとスクリプト実行に失敗するようです。そのため、「フォルダー」の内容を空にした状態で「フォルダーの選択」ボタンをクリックしてください。
Execute dumpAPI

フォルダが存在する…という警告が表示されますが、そのままYesボタンをクリックします。
Execute dumpAPI

これで、指定したlxModulesフォルダ内に、APIのダンプが作成されます。
このダンプをPyCharmで読み込むことで、APIの仕様をPyCharmから認識可能になります。
Execute dumpAPI

自分で作成したスクリプトを格納するmyScriptsフォルダ(名称は任意)を、PyCharmのプロジェクトフォルダに作成します。(エクスプローラーで、普通にmyScriptsフォルダを新規作成)
Create myScripts Folder

MODOのScriptsフォルダとPyCharmの開発フォルダを関連づけるために、シンボリックリンク(ショートカットのようなもの)を作成します。
シンボリックリンクを作成するには管理者権限が必要になるため、コマンドプロンプトを管理者モードで起動します。起動後、以下のコマンドを入力してPyCharmのmyScriptsフォルダへのシンボリックリンクを作成します。(パス名は適宜利用している環境に合わせて読み替えてください)
cd /d %AppData%\Luxology\Scripts
mklink /d myScripts "PyCharmプロジェクトのmyScriptsフォルダのパス"
Create Symbolic Link

シンボリックリンクが正しく作成できていれば、%AppData%\Luxology\Scriptsフォルダ内にmyScriptsというシンボリックリンク(見た目はショートカットアイコン)が作成されます。
myScripts symbolic link


PyCharmのプロジェクト設定

最後にMODOのモジュールや、作成したAPIダンプが正しく利用されるように、PyCharmのプロジェクト設定を行います。
PyCharmのFileメニューからSettings...(Alt+F7)をクリックして、Setting画面を表示します。
PyCharm Settings

Setting画面の左ペインからProject Structureを選択し、画面右のAdd Content Rootをクリックします。
PyCharm Settings

Content root directoryの選択ダイアログで、MODOのextraフォルダに含まれているPythonフォルダを選択しOKボタンをクリックします。
※MODOのバージョンによってパスが異なります。下記はMODO 11.0v3の例です。
PyCharm Settings

選択したフォルダが、画面右側に追加されたことを確認してOKボタンをクリックします。
PyCharm Settings

PyCharmのツリー(画面左側)を展開し、APIのダンプで作成したlxModulesフォルダを右クリックし、Mark Directory as→Sources Rootを選択します。(これで対象フォルダがソースディレクトリとして認識され、フォルダアイコンが水色表示になります)
PyCharm Settings

同様にmyScriptsフォルダ、modulesフォルダもSources Rootに指定します。
これで、PyCharmのプロジェクト設定は完了です。あとは、myScripts配下に独自のスクリプトを作成していくことになります。
PyCharm Settings


サンプルスクリプトの作成

実際にスクリプトファイルの作成からMODOで実行するまでの簡単な流れを説明します。
新規スクリプトを作成するには、myScriptsフォルダを右クリックし、New→Python Fileを選択します。(他にもファイルを作成する方法は色々あります)
Create modo script

ファイル名の指定ダイアログで作成するスクリプトファイル名を入力してOKボタンをクリックします。今回は、HelloModoScriptとしました。(自動で拡張子.pyが付与されます)
Create modo script

下図のソースコードを入力し、ファイルを保存します。
今回の例は、MODOのログ画面に"Hello, Modo Script!"と表示するだけの簡単なスクリプトです。
Create modo script

このスクリプトをMODOで実行するには、MODOのSystemメニューからRun Script... Shift+F5を選択します。(スクリプト実行のためにMODOを再起動させる必要はありません)
Execute modo script

スクリプトファイルの選択ダイアログが表示されるので、作成したスクリプトファイルを選択して開きます。
※補足:下のキャプチャでは直接PyCharmプロジェクトの場所を指定していますが、通常は%AppData%\Luxology\Scripts\myScripts~のファイルを指定します。
Execute modo script

作成したスクリプトが実行され、MODOのEvent Logに"Hello, Modo Script!"と表示されました。
今回は何の役にも立たない簡単なスクリプトですが、各アイテムの制御からシーンの作成に至るまで、Pythonスクリプトでさまざまな操作が可能になります。
Execute modo script

スポンサーリンク

  

コメント

コメントの投稿

非公開コメント