1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

viewPortのレンダラーを切り替えたい 特に pencil4+

1
Last updated at Posted at 2025-12-09

ビューポートのレンダラーをスクリプトから変えたいなぁーと思いまして。

貰ったシーンのレンダラーが重い奴になってたりとか
プレイブラスト時に一時的に別のレンダラーに切り替えたいとか

そんな場面が何度かありまして。

ものすごくピンポイントで言うと、 pencil4+レンダラーになってるシーンを開くとラインの描画処理がいきなり始まってしまうので ファイル開くときには viewport2.0に強制的にしたいんですね。

逆にプレイブラストを掛ける場合にはラインを乗せたいので、pencil4+ レンダラ0になっていてほしいんですよね。

viewport絡みなので、modelEditorコマンドの中に何かないかなぁ と見てみると、

  • rendererList
  • rendererName
  • rendererOverrideList
  • rendererOverrideName

この辺が使えそうですね。

renderer と rendererOverride はどう違うんだろか・・・・
とりあえず それぞれ ~~~List オプションで使えるものを聞き出してみます。

cmds.modelEditor("modelPanel4",q=True,rendererList=True)
# Result: ['vp2Renderer', 'base_OpenGL_Renderer', 'hwRender_OpenGL_Renderer', 'stub_Renderer'] # 
cmds.modelEditor("modelPanel4",q=True,rendererOverrideList=True)
# Result: ['Pencil4Line', 'mtohRenderOverride_HdStormRendererPlugin', 'mtohRenderOverride_HdArnoldRendererPlugin', 'arnoldViewOverride', 'stereoOverrideVP2'] # 

rendererOverrideList の方に Pencil4Line の表記がありますね。

では試しに切り替わるかどうか・・・・

cmds.modelEditor("modelPanel4",e=True,rendererOverrideName="Pencil4Line")

これがー
image.png

こう
image.png

切り替わりましたね。

さて、元に戻すには・・・・・?

空の文字列を設定すると、現在アクティブなオーバーライドの設定が解除されます。
ちゃんと書いてありました。

cmds.modelEditor("modelPanel4",e=True,rendererOverrideName="")

戻ったー
image.png

注意

プレイブラストを掛ける際に、

  • 新規でmodelEditorを作成
  • rendererOverrideName を Pencil4Line に設定
  • プレイブラストを掛ける

という処理を作成したのですが、どうにも表示がデフォルトのままでした。
色々試した結果、
rendererOverrideを切り替えた直後に

  • cmds.refresh()で強制再描画

を行わないとダメだということが判りました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?