チュートリアル / 押忍!Softimage マニアクス
第2回:Softimage で始めよう Python Script vol.1

  • ゲーム
  • コラム
  • スクリプト・API
  • チュートリアル
  • 上級者
  • 中級者

6.答え

# ビュー上でピックした座標を変数"pos"に格納
pos = Application.PickPosition( "Pick!", "Pick!", "", "", "", "" )

# Gridオブジェクトを作成して変数"oGrid"に格納
oGrid = Application.CreatePrim("Grid", "MeshSurface", "", "")

# テクスチャプロジェクションXZ平面を生成しoGridオブジェクトに適用
Application.CreateProjection(oGrid, "siTxtPlanarXZ", "siTxtDefaultPlanarXZ", "", "Texture_Projection", "", "", "")

# テクスチャサポートを削除するためにモデリングをフリーズ
Application.FreezeModeling(oGrid, "", "")

# 最初の行でピックした位置にoGirdを移動
Application.Translate(oGrid, pos[1],pos[2],pos[3], "siRelative", "siGlobal", "siObj", "siXYZ", "", "", "", "", "", "", "", "", "", 0, "")

pos[1],pos[2],pos[3]はそれぞれX,Y,Zに相当し、Pythonではリストと言います。この意味、使い方の詳細は次回に。

おまけ

Pythonの記述方法に則った以下の様な書き方もできます。

# ビュー上でピックした座標とクリックされたマウスボタンを変数"mousebutton","posX","posY","posZ"にそれぞれ格納
mousebutton,posX,posY,posZ = Application.PickPosition( "Pick!", "Pick!", "", "", "", "" )

# Gridオブジェクトを作成して変数"oGrid"に格納
oGrid = Application.CreatePrim("Grid", "MeshSurface", "", "")

# テクスチャプロジェクションXZ平面を生成しoGridオブジェクトに適用
Application.CreateProjection(oGrid, "siTxtPlanarXZ", "siTxtDefaultPlanarXZ", "", "Texture_Projection", "", "", "")

# テクスチャサポートを削除するためにモデリングをフリーズ
Application.FreezeModeling(oGrid, "", "")

# 最初の行でピックした位置にoGirdを移動
Application.Translate(oGrid, posX,posY,posZ, "siRelative", "siGlobal", "siObj", "siXYZ", "", "", "", "", "", "", "", "", "", 0, "")

Pythonは関数やコマンドの戻り値が複数だった場合、それぞれをカンマ区切りの個別の変数に格納することができます。
それではみなさん、ごきげんよう。

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。