2011年2月13日日曜日

modo 501: Telnetサーバー

今週はもう一つ記事を書きました。modo 501には、簡易Telnetサーバーが実装されています。Telnetはネットワークの機能で外部のアプリケーションがTCP接続を介して、modoを遠隔操作することを可能にします。この機能はヘッドレスモードでもGUI付きでmodoを起動しているときにも使用することが可能です。modoに接続できるのは1つのリモートホストだけです。TelnetはTCPベースですのでLAN経由でもインターネット経由でも接続することが可能です。リモートホストはOSに付属するTelnetクライアントはもちろんスクリプトやサードアプリケーションからTelnetで接続する事も可能です。

modo の telnet サーバーでは、二つのモードをサポートしています。デフォルトで は RFC854 で記述された基本的な telnet プロトコルをサポートしています。Raw モードは、アプリケーションやスクリプトを通して、modo をコントロールする 際に有用です。ヘッドレスおよび GUI どちらの modo であっても、telnet を通してコントロールが 可能です。

ヘッドレスモードでTelnetを起動するには、下記のようなコマンドをターミナルもしくはDOSプロンプトで実行します。-telnet:12357の末尾の数字はソケット通信のポート番号です。

Windowsの場合
modo_cl.exe -telnet:12357
Mac OS Xの場合
modo.app/Contents/MacOS/modo_cl -telnet:12357

GUI付きのmodoからTelnet接続を開始するには、telnet.listenコマンドを実行します。下記のようにコマンド履歴からtelnet.listenコマンドを実行します。

telnet.listen 12357

telnet.listコマンドは、下記のようなシンタックスを持っています。

telnet.listen <port:integer> <raw:boolean> ?<open:boolean>

それでは実際にTelnetを使ってmodoにコマンドを送ってみましょう。

  1. まず、modoを起動し、ティーポットなどのオブジェクトを作るか、適当なシーンを読み込んで見てください。次にコマンド履歴にtelnet.listen 12357と打ち込んでください。
  2. 次にOSに付属するTelnetクライアントを接続ポート12357で開きます。Mac OS Xの場合はターミナルコマンド、Windowsの場合はDOSプロンプトを起動し、telnet localhost 12357と入力して実行します。今回は同じコンピュータ上で実行しますのでホスト名称をlocalhostにします。接続するとプロンプト">"が表示されます。
  3. プロンプトが表示されたらmodoのコマンドであるrenderを入力し実行します。modo上のシーンがレンダリングされ、レンダーウィンドウが表示されたら成功です。
  4. telnet.closeコマンドを実行すると接続が解除されます。



このTelnetの機能の用途は、レンダリングノードして起動しているmodoのコントロールやmodoを外部アプリケーションに組み込んでコントロールするなどいろいろな可能性がありそうです。Telnetに関する詳細は、Scripting and CommandsというPDFドキュメントに解説されています。

イギリスにいるGwynne氏は、modonizeというサイトでたくさんのmodoのPhythonスクリプトを公開しています。また、OEM製品であるPhotoViewのシステムもスクリプトでGwynne氏が作成しています。Gwynne氏がオープンフォーラムでPhytonスクリプトからTelnetの機能を使ってmodoをコントロールしているビデオを公開しています。

http://www.modonize.co.uk/Modo/miscbeta/501/PythonTelnetShell.mov
http://www.modonize.co.uk/Modo/miscbeta/501/TelnetPythonUtil2.mov

modo 501には、この他にもmodoの機能を外部のアプリケーションに接続する機能が用意されています。この機能に関しましては、また次の機会に紹介したいと思います。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。