"Shade検索"Wiki

Shade8.5について


「Shadeプラグイン・スクリプト検索 分室」といいながら、Shade関係のネタがほとんどなかったので、最近(といってももう3か月たったけど)バージョンアップしたShade8.5について思いつくままに書き留めておこうかな。

まず、バージョンアップした理由だが、実は新バージョンの新機能に期待して、という前向きなものではない。
Shadeは継続的に仕事に使っているが、仕事に使う分にはあまり凝ったことをやるわけではないので、Shade6の機能で十分だった。ただ長いことノートPCばかり使っていたので、もう少しサクサクShadeを動かしたいと思い、今年になってデスクトップに更新した。これがいけなかった。
新しいPCではShade6を起動するとCPU(ペンティアムD)の使用率が100%になってしまってPCが極端に重くなってしまうのだ。
特にスレッド数2でレンダリングですると、ほぼ100%の確率でPCがフリーズしてしまう。
ペンDは疑似デュアルCPUということで、複数の作業を並行して快適に行えるというのが売りなのに、Shade起動してしまったら、その恩恵が全くなくなるだけでなく、Shadeそのものもまともに動かなくなってしまうのだ。
ペンティアムD側の問題という可能性もあるが、他のアプリでは同じような現象は起きていないので、どうなんだろう?

いまさら前のPCに戻すわけにもいかないので、Shadeのバージョンアップでなんとかならんかと思って、まず体験版を試してみた。
そしてPenDでもとりあえず動くこと(それでもスレッド数2でレンダリングするとかなりやばいが・・・)、以前のPCで発生したShade7以降のバージョンがOpenGL関係の問題でまともに動かないという問題もなさそうなことを確認したので、バージョンアップを申し込むことにした。ところが問題発生(^^;;

起動しない!


8.5をインストールしていざ起動しようとすると、一瞬Shadeのウインドウが表示されるが、すぐに消えてしまうのだ。体験版ではちゃんと起動できたのになんでと思って調べてみると、体験版は8だった・・・
へたすると、8へのバージョンダウンを交渉しなければならないかなと思いつつイーフロに問い合わせると

「ビデオカードのドライバを最新のものにしてください」

とのこと。
Windowsアップデートで推奨されている最新のドライバにはしているはずだが、ビデオカードメーカーのサイトを調べると、さらに新しいバージョンのものも公開されている。だが、それだと動作保証されてないアプリもあるとのことなので、あまり積極的に入れたいものではない(ベータ版みたいなものか)。幸い動作保証されてないというアプリは使っていなかったので、最新ドライバに更新してみる。祈るような気持ちで8.5を起動してみると、何とか無事に起動・・・

しかし、ビデオカードによって起動すらできないなんてよくあることなのだろうか。ビデオカードがらみのバグでShadeのバージョンアップを見送った経緯もあるので、いい加減この種のトラブルは勘弁してほしいというのが正直なところだ。

>管理人様
下記のスクリプト云々の話はわかりかねますので、上記のPenD及び起動時の話についてだけ説明させて頂きます。
Shadeに手を出したのが最近(他の3DCGソフトをメインに使っています)のため、Shade6起動時の重さは良くわかりませんが、お使いのパソコンのスペックはどのようなものだったのでしょうか?
ある程度の処理能力を持つ昨今のCPUにおいて、ソフトウェア単体を起動するだけで使用率が100%に達してしまうという状況は通常では考えられません。

>特にスレッド数2でレンダリングですると、ほぼ100%の確率でPCがフリーズしてしまう
との記述が見られますが、PentiumDに限らず現在販売されているCPUのコア数は1(シングルコア)〜最大4(クアッドコア)、うちデュアルコアであるPenDのコア数は2ですので、スレッド数2でレンダリングを行えばレンダリング以外の処理能力は大幅に落ちます。
レンダリング以外の作業を行うのであればスレッド数1にしてCPUに余力を持たせる、レンダリングを急ぎたいのであればスレッド数を2に設定しレンダリング以外の作業は行わない、というのが必要になります。
CPUがレンダリングで手一杯のところへ何らかの操作を加えるとフリーズするのは当然かと思われます。
スレッド数を2に設定した上で放置しているにもかかわらずフリーズしたように見えるのは描写処理が間に合っていないからであり、レンダリング自体は進行しているものです。
万が一それでもフリーズを起こすようであれば、外部要因かソフトウェア自体のエラーも考えられますが。

>ペンDは疑似デュアルCPUということで
擬似デュアルCPUと呼ばれているのは、HTテクノロジ(ハイパースレッディング・テクノロジー/Hyper-Threading Technology)を搭載したPen4のことです。
物理的に1コア搭載のCPUをOS側から見て2コアに見せる技術ですね。
2コアのふりをするHT搭載CPUに対し、PedDは2コアを搭載、つまり物理的なデュアルコアです。

>「ビデオカードのドライバ」について
Windowsアップデートで配布されているドライバは、OSの製造元であるマイクロソフトが発行しているものになります。
OSのエラーやセキュリティの改善が主な目的であり、ビデオカードのドライバ等とは関係がありません。
Windowsから配布されていないドライバに関しては個人で部品やパソコン本体を製造した会社のサポートを受ける必要があります。
今回のようなビデオカードのドライバですと、NvidiaやATIが主流でしょうか。
ある程度の頻度で新しいドライバを発表していますので、それらは自分で更新する必要があるわけです。(Windowsからの配布ドライバだけでは快適に使用できないんですね^^;)
ベータ版のドライバは問題を抱えていることがあるものの、基本的にソフトウェアのエラーが発生した場合にはまず「ドライバが古い」というのが疑われるものです。
ドライバが古いと、ビデオカードに搭載された機能が活用しきれない=ソフトウェアによっては不具合が生じる場合がある
ということです。特にShadeのように描写をビデオカードに頼る(OpenGLが使用されています)ソフトウェアでは重要なことです。

長くなりましたが、気になる記述がいくつかあったので・・・
参考になれば。



こんな片隅での繰り言にコメントいただき、ありがとうございます。

>ある程度の処理能力を持つ昨今のCPUにおいて、ソフトウェア単体を起動するだけで使用率が100%に達してしまうという状況は通常では考えられません。
やはり、異常ということでしょうか。Shade6開発時はPentiumDはなかったと思うので、スレッド2はXeonやAthlon MP、分散レンダリングのようなケースだけを想定していたのかもしれませんね。

>スレッド数を2に設定した上で放置しているにもかかわらずフリーズしたように見えるのは描写処理が間に合っていないからであり、レンダリング自体は進行しているものです。
8.5にバージョンアップすると、Shadeを起動しただけでCPU使用率が100%になったり、スレッド2でレンダリングしてもレンダリング画面が更新されない。レンダリング停止も効かない。ということはなくなったので、何らかの対策がなされたのかもしれません。

>擬似デュアルCPU
本物のデュアルCPUというと、XeonやAtlon MPというイメージがあるので、疑似と書いてしまいましたが、
確かにコアは2個あるので、本物といえば本物なんでしょうね。
しかし本物にしても、当座しのぎのというイメージが強く、疑似デュアルコアなどと陰口をたたかれることもあるようですね。

>Windowsアップデートで配布されているドライバは、OSの製造元であるマイクロソフトが発行しているものになります。
>OSのエラーやセキュリティの改善が主な目的であり、ビデオカードのドライバ等とは関係がありません。

Windowsアップデートの「カスタム」で、ハードウェアのドライバを追加選択することができますが、
ここでデバイスメーカーの提供しているドライバをインストールすることもできるようです。
nVidiaのQuadroのドライバはいったん、このWindowsアップデートでインストールしました。
しかし、ここでインストールできるのは、最新のバージョンではないようです。
Microsoftでなんらかの検証済みのものということなんでしょうか。

このバージョンのドライバではShade6が起動できないという問題があったので、
nVidiaのHPで、さらに新しいバージョンをインストールせざるを得なくなりましたが、
最新版は、アプリケーションによって動作保証していないケースもあるので、
できるなら安定版で済ませたいところではあります。
幸いウチの場合は動作保証されていないソフトは使っていなかったので、最新版入れても問題ありませんでしたが、
いまでも時々、Shadeの画面表示が危なくなります。元々Shadeとの相性がよくないボードだったのかもしれません。

こういったCGソフトはドライバのバージョンだけでなく、ビデオカードそのものとの相性というのも
ありそうなので、できるならアプリケーションで動作確認取れているビデオカードにしておいた方がいいのでしょうね。(2007/2/27 管理人)

スクリプト


せっかく、バージョンアップしたので、公開しているスクリプトの動作チェックをしてみた。しかし、またまたいきなりつまずいた。

スクリプト実行コマンドの廃止


Shadeのスクリプトメニューが使いにくいので、スクリプトの実行は以前からExe_Script.tclという自作のスクリプト実行スクリプトを長いこと使ってきたのだが、これが使えなくなっているのだ。
ファイルの読み込みができなくなったのかなと思ったが、最新版の8.5.2で確認してみると、どうやらdo_tcl_script という文字列をスクリプトとして実行するコマンドが使えなくなっているようだ。

8.5ではやっとスクリプトメニューが階層構造で表示されるようになったので(これは7からだっけ)、以前に比べるとスクリプトの実行はやりやすくなっているが、深い階層に入れてしまったスクリプトを頻繁に実行するのはめんどい。
Exe_Script.tclでは、前回使用したスクリプトがデフォルトになるので、ショートカットキー+Enterキーだけで実行することができるという優れもの,boldで、すっかりそれに慣れてしまっていたようだ。

それとスクリプトウインドウからVBScriptとJScriptがなくなっていた。完全に使えなくなったようだ。TclとPythonという新しいスクリプトも増えているので、サポートを考えるとこれはやむを得ないのかもしれない。

結局do_tcl_scriptの代わりにevalコマンドを使って実行するよう書き換えて使うことにした。以前evalコマンドを使うと日本語が文字化けするという問題があったのだが、8.5.2でテストしてみると、まともに表示できているようだ。

機能半分削除?


結局、自作のTclスクリプトで8.5でも動いたのは半分ぐらい。これは通常だと多いほうだが、
6からまったく機能アップがないのに、なんで半分も使えなくなっているんだ!!
機能が半分削られたということになるだろう。Tclが今後どうなるのかわからないが、Tclのスクリプト記録機能もなくなっていることから推測すると、「将来的にはなくしますが、8.5ではとりあえず残しました。」ということだろうか。

しかし、わからないのは今後メインのスクリプトになるはずのPythonについても、
いまだに最新のリファレンスが6用しかないということだ。
6以降たいした更新はしてませんということなのだろうが、仕様はかなり変更されているはずだ。
Shade6に付属していたサンプルスクリプトが8.5ではエラーが出て使えない。しかし、
どのように変更になったという情報はどこを探しても見つからない。
8.5でも使えるスクリプトを書こうと思ったら、8.5に付属のサンプルスクリプトを見て、いろいろ推理しながら(笑)書くしかない。

Pythonのばあい、開発の補助的な役割もあるようだが、どちらかというとそれがメインで、ユーザーやデベロッパーが書いたりカスタマイズしたりして使うのは想定外なのか。

自作のスクリプトを公開し、Shade用スクリプト、プラグインの検索サイトも運営している身としては、スクリプトに対するこうした扱いはなんとも寂しい。

あと、気になったのは
スクリプトでダイアログを出す際、ダイアログIDを指定しておけば、前回入力した値がデフォルトになるという機能があるが、8.5ではこれがまともに効かなくなっていた。
初回起動時にはスクリプトで指定した初期値になるが、一度スクリプトを実行したあと再度実行しても前回入力した値が初期値にならない。スクリプトで指定した初期値にもならず、0になってしまう。これは非常に具合が悪いなと思っていたら、さすがに8.5.2では直っているようだ。(しかし、アップデータでの変更点には記載されていないようだ)

このほか、6の頃からあった、日本語の入ったパスが読めないというバグも8.5.2では修正されているようだ。



>いまだに最新のリファレンスが6用しかないということだ。
shade7限定ですが、BNN社からこちらの検索サイトでもお馴染のでったさんが共著でスクリプトの本(python script)を出されています。
まあ、どの道ソフトウェア会社自身がリファレンスを出していないことには変わりはないのですが... (追記:iun)

iunさん、情報どうも。こういう書き込みがあると、wikiっぽいですね(^^)
実はでった☆さんの「Shadeスクリプト大全」は買いました。
ところが、8.5では(8からかも)Pythonの書き方が大きく変わっているようで、スクリプト大全のサンプルも8.5では動かなかったりします。  (管理人)

実は自分も買わせて頂いて昔のshadeにあった「重なった点を削除」と言うスクリプトを
作ろうとしたんですが、見事に挫折しました。これは情報ではないですね。すいません。
それと自分のサイトにもshadeのまとめwiki(pukiwiki)を設置しようかと思っているのですが、
まだいまいち使い方が分かってません。(iun)←項目と関係ない話題ですいません。

「重なった点を削除」というのは、一筆書きスクリプトにそういう処理を入れたことがあります。

http://www2u.biglobe.ne.jp/~k_hiray/ps_db/search/search.cgi?KEY=Hitofude

この中の proc integrate というプロシージャが重複ポイント削除だったような・・・

iunさんのところはpukiwiki設置できるんですか。私も本当はpukiwikiにしたかったんですが、このサーバーはPHP使えないんですよね。
他のサイトに設置したことがあるんですが、パーミッションの設定が結構シビアですよね。644と666、755と777どっちでもいいんじゃないというようなところも指定通り設定しないと動かなかったり・・・(管理人)

ShadeExplorer


これまで使っていたショートカットキーと同じように登録しようとしたが、ShadeExplorerが登録できない。
けっこう頻繁に使うので、ShadeExplorerはショートカットに登録できるようにしてほしい。
それとサムネールがちっこくて見にくい。一応「大」と「小」があるようだが、「大」がかなり小さい。
サムネイルを右クリックしてレンダリングイメージを出す機能もなくなっている。イメージを見るには情報ボタンを押さなければならないが、これもデフォルトでイメージは隠れているので、さらに三角ボタンを押して表示させなければならない。表示されるイメージもちっこい。
イメージを表示させても、次に起動したときには忘れているので、また三角ボタンを押さなければならない。

形状ファイルだけでなく、表面材質も登録できるようになったのは便利。
これまで、「表面材質の森」などの表面材質を使いたいときは、ShadeExplorerから形状をインポートしてマスターサーフェスに登録、インポートした形状を削除して適用したい形状にマスターサーフェス使用・・・などという面倒なことをしていたが、表面材質のサムネールダブルクリックだけで適用できるようになった。

さっそく「表面材質の森」の表面材質をShadeExplorerに登録しようと思ったのだが、これが結構面倒。こんな時のためにと書いたスクリプトがあったのを思い出し、

http://www2u.biglobe.ne.jp/~k_hiray/scr_db/search.cgi?KEY'equal'Output_sfc
(指定したフォルダ内にある複数のshdファイル中で設定されている表面材質を表面材質ファイルに書き出すというスクリプト)

表面材質ファイルを抜き出してみたが、表面材質ウインドウのイメージに画像を読み込んでおかないと、ShadeExplorerのサムネールに何も表示されないということが判明。サムネールがでないとShadeExplorerに登録する意味がないので、表面材質1個ずつイメージウインドウのイメージやマッピングイメージをコピー、表面材質のイメージタブにペースト、shdファイル上書きという手間をかける。スクリプトで自動化できないかと思ったのだが、イメージタブを扱うコマンドはなさそうだ。

もっと手軽に表面材質を抜き出す方法はないものか。

あと細かい点だが、Surfaceフォルダに新たな表面材質ファイルを追加しただけではShadeExplorerに反映されない。更新ボタンを押すと更新されるが、Surfaceフォルダ内のサブフォルダを選んでいてもSurfaceフォルダ全体が更新される。時間がかかるのでサブフォルダを見ているときは、サブフォルダ内だけの更新でいいのでは。それとサブフォルダを見ていても、更新されると「すべて」表示に変わる。勝手に変えるなという感じがする。
他の「形状」「背景」タブもそうだが、デフォルトが「すべて」表示になる。前回表示したフォルダを覚えておいたほうが使い勝手がいいと思う。「情報」ボタンで表示されるファイル情報もデフォルトがイメージ非表示だが、いつも表示させて使うユーザーの場合、ワンクリックして表示させるのも手間。

インターフェース



Plugin not found.


>>2010/02/25 01:26:00更新>>