« 努力できる才能。 | トップページ | フィギュアのススメ »

2009年4月28日 (火)蛇使い

おはようございます。本日の当番、モーションデザイナーのR.Iです。

会社にも新たに後輩が入り、お手本として意識しないといけない立場になりました。
新人ではなくなったとはいえ、技術的にもまだまだヒヨっ子なので、安心はできませんが・・・

さて今回は蛇の話ではなく、Python(パイソン)についてのお話です。
Pythonを翻訳するとニシキヘビになるそうですが、スクリプト言語の一つに
Pythonというものがあります。

会社では主にXSIを使ってますが、面倒な作業に直面した時にはXSIが扱える
スクリプト言語を使って、作業効率をあげるようにしていました。
以前はVBScriptを使ってスクリプトを組むことが多かったですが、
最近はPythonに乗り換えるため、勉強中です。

乗り換えようと思った理由は

「自分が扱えるソフトのスクリプト言語がPythonだったから」です。

今使っているXSIの他に、学生時代使っていたMayaなどPythonが使われていました。一つ覚えて二度おいしいなら嬉しいことですね。

まだ、大した事はできませんが、Pythonの特徴とかを書きたいと思います。

app = Application
for px in range(-1,3,2):
 for pz in range(-1,3,2):
  oCube = app.CreatePrim("Cube","MeshSurface")
  app.SetValue(oCube.name+".Cube.length",2,"")
  oCube.posx = px
  oCube.posy = 1
  oCube.posz = pz
oCube = app.CreatePrim("Cube","MeshSurface")
app.SetValue(oCube.name+".Cube.length",2,"")
oCube.posy = 3

このスクリプトをPython環境のあるXSIで実行すると
簡単なピラミッドができます。

文中にはPythonの命令文とXSIの命令文があります。
「for」「in」「range」はPythonの命令文
「Application」「ActiveSceneRoot」「AddNull」「posx」はXSIの命令文
今回はPythonの命令文をレッド
XSIの命令文をブルーにして色分けをしておきます。

1行目のapp = ApplicationはappにApplicationという文字列を代入してます。
これ以降、Applicationという文字列はappという文字列で代用できるようになり
1行の文字数を短くすることができます。

2行目のforは繰り返し処理をするための命令文です。
for以下の行を繰り返し処理してくれます。

ここでPython特有の書式として
for文で処理してほしい行はインデントしてあげないとエラーがでます。
for文以降は必ずインデントしてあげましょう。

range(-1,3,2)は回数の制御をしています。

rangeは数字の羅列を生成する命令文です。
括弧内の一番目の数字が初期値、二番目が文字の生成数(-1~2を生成)、三番目の数が処理が一回終わるたびに
pxの変化量を表します。
考え方としてはpxが3未満の間、処理を繰り返すになります。
inはpxに代入するための命令文です。

4行目のoCube = app.CreatePrim("Cube","MeshSurface")で立方体を作成してます。

5行目のapp.SetValue(oCube.name+".Cube.length",2,"")
oCube.nameで今、作成された立方体の名前を取得します。
その立方体のサイズを2にしています。

6、7、8行目で座標の指定をします

oCube.posx = px
oCube.posy = 1
oCube.posz = pz

X軸の座標がpx、Z軸の座標がpzによって制御されています。
Y軸は変化しないため、定数として1を代入しています。

ここまでの処理でピラミッドの1段目が完成します。

あとは残りの処理で

oCube = app.CreatePrim("Cube","MeshSurface")
app.SetValue(oCube.name+".Cube.length",2,"")
oCube.posy = 3

原点にもう一つ立方体を作成し、座標をY軸の値を2にしてやれば
ピラミッドの完成です。

スクリプトとして機能させるには、まだまだ先は遠そうですが、
「オブジェクトの名前が取得できた」→「名前が取得できたということは指定した
ものだけに処理を適用するスクリプトができるな~」など始めは簡単なものから
スタートしてどんどん発展させていけばいいと思います。

使いこなせれば確実にレベルアップできる知識だと思うので、
モーションの事が疎かにならない程度に学んでいこうと思います。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2009/04/post-6d60.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« 努力できる才能。 | トップページ | フィギュアのススメ »

モーションデザイナー」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 蛇使い:

« 努力できる才能。 | トップページ | フィギュアのススメ »