pythonを使って、レンダリング手法を設定する。
shadeには、GUIでボタンなどを、マウス(ペンタブなど)で押して、操作する方法以外にも、CUI的に、pythonインタプリタ経由で操作する方法がある。
この方法で、レンダリング手法等を、変更してみる。
ちなみに、通常は、下の画像の様に、クリックするだけで変更できる。毎回同じ設定をちまちまやっていると、忘れてしまう事もあるので、全自動にしたい。
レンダラーの指定は、uuidの指定とか書いてあるけど、文字列。
#レイトレ
xshade.scene().rendering.method_uuid="00000002-0000-0000-0000-000000000000"
#パストレ
xshade.scene().rendering.method_uuid="00000001-0000-0000-0000-000000000000"
#トゥーンレンダラ
xshade.scene().rendering.method_uuid="18473b78-6e0b-4beb-b514-3cc9bc31d80f"
こんな感じで書いたら、エラーが返ってこなかった。
pythonには、uuid取得のための、標準モジュールが付いているけど、使わない。
uuidって勉強するとっかかりにはなる。
rendering.image.saveで保存できない場合。
レンダリングしたはずの画像がない!
カレントディレクトリは、
import os
print os.getcwd()
で、C:\Program Files\e frontier\Shade 13 (64-bit)\binと出るんだが、ない。
Cドライブ全部検索したけど、出てこなかった。
相対参照じゃだめなの?と思ったが、多分、パーミッションの問題だと思います。
アドミニストレータ―(スーパーユーザー)じゃないから、使わせない系。
保存は、ホームディレクトリ以下へ。
import os
path = os.environ["HOMEPATH"]
で、カレントディレクトリ出る。
外部は?(外付けUSBとか)
…余裕でできた。カレントディレクトリの設定が面倒だったら、”F:\”とか、書いておけばいいかもしれない。
その他のパスに関する注意
shadeというか、pythonというか、パスを文字列表現する時全般に言えるけど、円マーク(バックスラッシュ)は、エスケープ文字だから、”C:\”としたかったら、
name = "C:\\"
か
ロー文字列にするとか工夫しないとダメ。
ちなみに、ロー文字列も、
r"C:\"
みたいに、\のすぐ後ろで終わる書き方は、できない。
xshade.scene().rendering.style_nameは、レンダリング手法の名前ではない。
‘’’
print xshade.scene().rendering.style_name
‘’’
で得られる文字列は、画像でいうと、この部分。
やりたかったのは、こっち
print xshade.scene().rendering.method_name
実際、使ってみた
ざっと、一通りのレンダラー(レンダリング手法)を試して、ホームディレクトリ直下に、「レンダラの名前.png」で保存するやつ。
『背景』や、『大域照明』を設定しなければ、パストレ、レイトレの画質は、一緒。
import os
path = os.environ["HOMEPATH"]
#path="F:"#外部に保存したい場合は、Fを、自分のUSBのドライブ文字に変えて、先頭の#をとって。
#レイトレ(ドラフト)
xshade.scene().rendering.method_uuid="00000000-0000-0000-0000-000000000000"
name = path + "\\" + xshade.scene().rendering.method_name + ".png"
xshade.scene().rendering.render()
xshade.scene().rendering.image.save(name)
#レイトレ
xshade.scene().rendering.method_uuid="00000002-0000-0000-0000-000000000000"
name = path + "\\" + xshade.scene().rendering.method_name + ".png"
xshade.scene().rendering.render()
xshade.scene().rendering.image.save(name)
#パストレ
xshade.scene().rendering.method_uuid="00000001-0000-0000-0000-000000000000"
name = path + "\\" + xshade.scene().rendering.method_name + ".png"
xshade.scene().rendering.render()
xshade.scene().rendering.image.save(name)
#トゥーンレンダラ
xshade.scene().rendering.method_uuid="18473b78-6e0b-4beb-b514-3cc9bc31d80f"
name = path + "\\" + xshade.scene().rendering.method_name + ".png"
xshade.scene().rendering.render()
xshade.scene().rendering.image.save(name)
"""
#CALLISTO 何か動かない。エラー。
xshade.scene().rendering.method_uuid="20301201-53b8-11d9-bcff-000a95baceb2"
name = path + "\\" + xshade.scene().rendering.method_name + ".png"
xshade.scene().rendering.render()
xshade.scene().rendering.image.save(name)
"""
#ワイヤフレーム
xshade.scene().rendering.method_uuid="31300000-53b8-11d9-bcff-000a95baceb2"
name = path + "\\" + xshade.scene().rendering.method_name + ".png"
xshade.scene().rendering.render()
xshade.scene().rendering.image.save(name)
一覧表
レイトレーシング(ドラフト) | 10.0.3 | 2 0 0 0 |
10.5 | 00000002-0000-0000-0000-000000000000 | |
レイトレーシング | 10.0.3 | 0 0 0 0 |
10.5 | 00000000-0000-0000-0000-000000000000 | |
パストレーシング | 10.0.3 | 1 0 0 0 |
10.5 | 00000001-0000-0000-0000-000000000000 | |
トゥーンレンダラ | 10.0.3 | 18473b78 6e0b4beb b5143cc9 bc31d80f |
10.5 | 18473b78-6e0b-4beb-b514-3cc9bc31d80f | |
CALLISTO | 10.0.3 | 20301201 53b811d9 bcff000a 95baceb2 |
10.5 | 20301201-53b8-11d9-bcff-000a95baceb2 | |
ワイヤフレーム | 10.0.3 | 31300000 53b811d9 bcff000a 95baceb2 |
10.5 | 31300000-53b8-11d9-bcff-000a95baceb2 |
他の3Dソフトは馬鹿みたいに高い。
開発にお金がかかったのでしょうか。倒産したとたんフリーになったBlenderみたいな例もあるので、イーフロが無くなったから、shadeもフリーになるのかなぁとか、ちらと思ったけど、そうはならなかった。
自分が、pythonを勉強し始めた理由が、shadeだし、shade信者と言ったら大袈裟ですが、まぁ、「その一歩手前」といったところでしょうか。
maya, 3dsmaxは、ハイスペックPCが、3台位買えちゃうお値段。
ソフトで60万とか100万とかってどういうことだよ。
とはいえshadeもグレードによっては、それなりのお値段ですが。
自分の中では、shade=奥浩也先生。といった印象。
shadeとほぼ同じ価格帯の、Lightwaveは、グローバルスタンダードな、エントリーモデル。
(ただし、座標系が左手系。)
ガンダムサンダーボルトの太田垣康男先生も使っているので、ちょっと欲しい。