Rendering学習日記

日々、3DCGの世界は進歩しています。勉強して理解したことをまとめていきます。RenderMan互換レンダラーやグローバル・イルミネーション。いろんなことに好奇心を持って、面白くなる。目指せShader書き!!
ありがとうございます。

Metasequoia Python Interface

三次元日誌
http://d.hatena.ne.jp/ousttrue/20091201
スクリプトのデバッグを試してみた。

Failed to execute a script in line 46.
Import can't find module, or can't find name in module.

import tracebackでエラー
Python 2.2.3 日本語環境用インストーラ(Win32)をダウンロードして
インストールしていなかったから。
ためしに2.3のpython234jp-20040927.exeをインストールしてみたが、モジュールは呼び出せない。
素直に、Python 2.2.3 日本語環境用インストーラ(Win32)、python223jp-20030608.exeをインストールしました。

http://www.python.jp/Zopeから、
ダウンロード→Python 日本語環境用インストーラ(Win32)

【旧バージョン】
Python 2.2.3 日本語環境用インストーラ(Win32)
をクリックしてください。

ありがとうございます。
  • -
  • -

MQOSystem Python パスを調べる

Metasequoia(メタセコイア)のPythonAPIを勉強する。中々、難しいところです。
まずは、いろいろなPythonモジュールを利用できるように、Python 2.2.3 日本語環境用インストーラ(Win32)、python223jp-20030608.exeをインストールしておく。
以下のようなスクリプトをメタセコイアで起動して、パスが通っているところを調べる。
メタセコイアマスターガイドを参考にした。リストで出力されるので、リスト長さを調べて真ん中で二つに分けてprintln出力している。
#path01.py
MQSystem.clearLog() #ログ消去
import sys
l=sys.path
a=len(l)/2
MQSystem.println(str(l[:a]))
MQSystem.println(str(l[a:]))

出力結果
['C:\\Program Files (x86)\\Python', 'C:\\Python22jp', 'c:\\Python22jp\\Lib', 'c:\\Python22jp\\DLLs']
['c:\\Python22jp\\Lib\\lib-tk', 'C:\\Program Files (x86)\\Metaseq24\\Script', 'C:\\Program Files (x86)\\Metaseq24', 'c:\\Python22jp\\lib\\site-packages']

たぶん、C:\\Program Files (x86)\\Python', 'C:\\Python22jp'の部分は、PYTHONPATHとして環境設定に書き込んでた部分。他は、Python 2.2.3 日本語環境用インストーラ(Win32)をインストールしたことでパスが追加されている。

ありがとうございます。
  • -
  • -

カメラ位置を求める

メタセコイアのPython scriptサンプルをちょっと変更してみる。
右クリックでカメラ位置をぐりぐり変更してから、スクリプトを実行すると位置が表示される。カメラ情報を取得し、カメラ設定をどのようにするかいろいろと考えることができます。
#camera_pos.py
doc = MQSystem.getDocument()
scene = doc.getScene(0)

pos = scene.getCameraPos()
angle = scene.getCameraAngle()
lookat = scene.getLookAtPos()
upvec = scene.getLookAtUpVec()
center = scene.getRotationCenter()
fov = scene.fov

MQSystem.println("pos: " + str(pos))
MQSystem.println("angle: " + str(angle))
MQSystem.println("lookat: " + str(lookat))
MQSystem.println("upvec: " + str(upvec))
MQSystem.println("center: " + str(center))
MQSystem.println("fov: %(#).3f" % {"#":fov})
MQSystem.println("----------------------------------")


Pythonでメタセコイアの使い方の幅が広がります。いろいろと勉強ですね。ありがとうございます。
  • -
  • -
1/25 >>