ON-BLOG

CGのこと、あれこれ書いてます。

SOFTIMAGEとMAYAで使用するPythonスクリプト超入門①※改訂版

前ブログで書いていた記事です。
改訂版としてまた「0」から書き直してみます。
また、タイトルにもある通り、MAYAにもチャレンジしてみます。


今回はSIとMAYAで使用する、Pythonスクリプトについて書いていきます。
ただしタイトルにある通り超入門的な事から書いていくので、ご了承下さい。

まずはPythonとは?

という部分から。

WIKIさん曰く
オープンソースオブジェクト指向スクリプト言語の一種」
らしいです。

オープンソースなので、DCCツールにもインテグレートされましたね。

とりあえずPythonとは?が終わったんで、次に今後の予定を
まずは
1.Pythonで始める「ハローワールド」
2.Pythonを使ったSOFTIMAGE、MAYAの超入門スクリプト
3.入門レベルのスクリプトを記述
4.今ある、MEL、VBSやJScriptPython
5.実践レベルのPythonスクリプトを作成
6.QTの勉強
7.PythonQT導入


こんな感じにすごい長いスパンで実行できていけばいいな!って思っています。
1-4まではスムーズにいきたいですが......
往々にして、Jscriptとのコードの比較を行いながら、やっていければと思います。
MAYA版に関しては本当に無知に近いレベルから進めさせていただきます。


では早速まずは
「1.Pythonで始める「ハローワールド」」

【Softimage編】
Softiamgeを起動しスクリプトエディタを開き、エディタ上部、、または
ファイル→設定→Scripting
の言語選択で「Python」が出てるか確認してください。

では早速スクリプティングに入ってみましょう。
そもそもSOFTIMAGEでは内部のコマンドが多数存在します。
それを使用してスクリプトを記述していきます。
ちなみにこの考え方を、オブジェクト指向といいます。
※のはず。

ではスクリプトを習い始めた人が一番初めにやる事といえば、
「ハローワールド」ですね。

では早速やってみましょう。
まずは環境の設定。
SOFTIMAGEを起動してますね?

ではコードを。
SOFTIMAGEでハローワールドを表示させるには下記の手順を踏む必要があります。
ここの理解をきちんとしてないと、初歩的な事でも本当に応用が効かなくなります。

1.SOFTIMAGEに「ハローワールド」という2バイトの文字列を認識させる。
※2バイトはすごく簡単に言うと全角である日本語です。
2.認識させた文字列をエディタログ内に表示させる。

以上の2点は簡単な事ですが、非常に大事なことなので、
是非こういう考え(フロー作り)を習慣しておくといいと思います。

ではコマンド的にみると、このようになります。↓

Hellow = (u"ハローワールド") #変数Hellowに「ハローワールド」を格納する
Application.LogMessage(Hellow) #LogMessageメソッドを使用して変数Hellowをログに表示させる

こんな感じです。
SOFTIMAGEでログにメッセージを出力するには、
「Logmessage」を使用します。
※#はコメントアウトになり、それ以降に記入されたものをコードとしては無視します。
 今後いっぱい使うんで、覚えておいて下さい。

ちなみに実行するとこんな感じ↓
f:id:tommy_on:20111122232235j:plain


ちなみにコメントアウトの「#」の前は全角のスペースを入れないで下さい。エラーが返ってきます。
また、(u"ハローワールド")の部分の
(u)はUNICODEを指定します。
2バイト文字を使う場合は、忘れずに付けて下さい。
UNICODEは文字を2バイト(16ビット)で表現できます。


この様なコマンドの所在基本はSODTIMAGEのSDKガイドを使用します。
GOOGLE先生にも聞いてみて下さい。
使用方法は下記の通り
メニューバー→ヘルプ→SDKガイド
基本ここを参照してコマンドをやサンプルを見つけていきます。
もしくはスクリプトエディタ内でコマンドをテキスト選択して、「F1」キーを押して下さい。
こんな画面になりはずです。
f:id:tommy_on:20111122233643j:plain

最新のSDKはここから落としてインストールしてください。
http://usa.autodesk.com/adsk/servlet/index?id=12544508&siteID=123112&linkID=12544122


ちなみにJscriptでは↓

Hellow = "ハローワールド";
Logmessage(Hellow);

※あれ?こっちの方が短い。。。
まぁとりあえずJScriptは置いといて、



続いて【MAYA編】
えぇととにかく久しぶりに触るので、てんやわんやしてますw
ではSIと同じくハローワールドから…
ワークフローは同じで問題ないですね。

スクリプトエディタを開いて、タブをPythonに合わして頂き、
以下のコードを実行して下さい。
ではコード↓

import maya 
print "ハロー ワールド"

MAYAの場合はスクリプトエディタで必ず
import行わないといけません。
要はこの「import」を使って、MAYAコマンドをPython
渡しているんですね。
pythonがMAYAコマンドを処理するみたい感じかな?
まぁ、こうする事でMAYAでPythonを使えるようになってます。



とりあえず今回はこれで終わりです。
非常にシンプルですよね。
しかもSI側と余り変わりが無いです。


まぁこんな感じで少しずつですが、Pythonスクリプトを学習していきます。
次は
「2.Pythonを使ったSOFTIMAGE,MAYAの超入門スクリプト
簡単な文法を使ってスクリプトを作成していきます。

以上。