strato Blog
趣味でやってる3DCGを主に記していきたいと思います。 主使用ソフト LightWave 8.5 &XSI Fnd
プロフィール

fstrato

Author:fstrato
stratoのブログへようこそ!

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ユーザータグ

3D-Coat Render Rig Toon Deform voxeling Texture Shader Script Hair ICE UV Animate Ritopology ModTool VertexColor Modeling 

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TOP
Script[Frame Render Time] v1.3
あ~、なんかインフルエンザで寝込んでから、創作意欲が一気に↓!
なので、スクリプトをチマチマやってみた。

[Strato] Frame Render Time v1.3
めでたく? 1フレームだけじゃなくなったり
XSI_Scr30
表示オプション付けてみたり、色々やってみました。
XSI_Scr31
と言っても、まだまだ小規模ですし、手探りでやっているから仕様がワケ分からん。
もっとスマートな実装方法があるかもしれないけど、プログラムはほぼ素人なので、こんなもんだと思っておこう。

前のは削除して、改めてこいつをコピー・再起動で多分イケます。

では最後に、(・∀・)つここに置いておきます。
スポンサーサイト

テーマ:3DCG - ジャンル:コンピュータ

TOP
この記事に対するコメント

v1.3使ってみました。スヴァらしいです。コードに丁寧なコメントが付いているので解析もしやすかったです。

構造というか仕組みというか、そういうのをすごくちゃんと勉強して作っている感じですよね。私は SDKマニュアルのサンプルをコピペするのがほとんどなので、あんまりよくわかってないです・・。1つのファイルの中で、プロパティとかイベントとかが共存できるのも知りませんでしたw。

スクリプト内のコメントに書いてあったレンダーリジョン(領域)のサイズですが、僕も昔から気になっていたので XSI のサポートに問い合わせてみました。結果は、ピクセルで値を取得することはできないそうです。ビューのサイズに対するパーセンテージは取得可能です。じゃあビューのサイズを取得できれば計算できることになりますが、残念ながらビューのサイズも取得不可能だそうです。この辺は SDK がバージョンアップされて新しいオブジェクトやプロパティを実装してもらうのを待つしかないということですね。リクエストはしておきました。

それと質問なのですが、同じくコメントに書いてある「シーケンスじゃないのに、シーケンスが表示される」というのはどういう状態でしょうか? 使ってみてもその状態がよくわかりませんでした。それと「パネルとプラグインマネージャの相違」というのもわかりませんでした。そもそも「パネル」とは? すいません、よろしければ教えてください。

それと、ちょっと思ったのですが、ミリセカンドの表示が1ケタずれてませんか? 以下は、Strato さんのコードからコピペした実験用スクリプトです。ちょっと実行してみてください。


//計測開始
oTime = new Date();
oStartSeqTime = oTime.getTime();

//OK押すまで時間かせぎ
XSIUIToolkit.MsgBox('時間稼ぎ');

//計測終了
oTime = new Date();
oEndSeqTime = oTime.getTime();
T = oEndSeqTime - oStartSeqTime;

// T を表示
logmessage ('T の値 = 時間差(ミリセカンド) = ' + T);

H = Math.floor(T / 3600000);
M = Math.floor( T / 60000);
S = Math.floor(( T % 60000) / 1000);
Ms = Math.floor((( T % 60000) % 1000) / 10);

Logmessage("[Strato]Sequence Render Time => " + H + "h : " + M + "m : " + S + "s : " + Ms + "ms", siInfo );


計測開始から終了までの時間稼ぎと、T の値を表示させている以外はもとのコードのままです。これを何回か実行すると、

// INFO : T の値 = 時間差(ミリセカンド) = 1141
// INFO : [Strato]Sequence Render Time => 0h : 0m : 1s : 14ms
// INFO : T の値 = 時間差(ミリセカンド) = 2313
// INFO : [Strato]Sequence Render Time => 0h : 0m : 2s : 31ms

このように出ます。T = oEndSeqTime - oStartSeqTime の結果はミリセカンドですよね? だとすると、1回目は 1141ミリセカンドなので、1秒+141 ミリセカンドだと思うのです。しかし Stratoさんの表示は 1秒+14ミリセカンドになっています。ひとケタ少ないように見えます。2回目も 2秒313ミリセカンドだと思うのですが、 2秒31ミリセカンドなので、同じくひとケタ少ない。

なので、最後の行の /10 を取っ払うと正しい表示になると思うのですがいかがでしょうか?

また、レンダリングにかかった時間をミリセカンド(1/1000秒)で表示してもいまひとつピンと来ない気もするので、例えば 2秒500msの時は 2.5秒と表示される方がわかりやすいかな、とも思いました。

それと、同じコードが2回とか出てくるので、なるべくサブルーチン化してしまった方が楽かもしれませんね。時間計測~表示ルーチンなどはフレームの場合とシークエンスの場合で全く同じですもんね。

と、またまた勝手なことばかり言っていますがよろしく御査収くださいませ。
【2008/01/09 19:15】 URL | junki #- [ 編集]


>junki様
こちらこそ~。 設定にプロパティを作るのは、junki様の「撲滅アンビエンス」を参考にさせてもらいました。
XSIのJavaScripter少ないですからねぇ。

中身に関しては、とにかく未熟なので一つ一つコードを積み重ねていってます。
なので、二重コードの山ほど出来る。 気が向いたときに、まとめてみる。 の繰り返しです。

>レンダーリジョン(領域)のサイズですが、
最新SDKの「xsiparams.chm」の中に、「RenderRegion parameter list」ってのがあって、その中に「ImageWidth」とか、それらしいのがあるんですよねぇ。
色々試してみましたが、自分は結局分かりませんでした。

>「シーケンスじゃないのに、シーケンスが表示される」
「プレビュー」か「領域」でレンダリングすると、一枚だけのレンダリングと確定されています。
しかし、XSIはシーケンス用の関数も呼び出してしまうのです。
しかも、「プレビュー」と「パスのレンダ」は同列に扱われているらしく、どっちで呼び出されたのか分かりませんでした。
なので、「プレビュー」で一枚だけのレンダでも、「フレーム1枚分の時間」と「シーケンス1枚分の時間」が表示されてしまうのです。
これはログ側で確認できます。

>「パネルとプラグインマネージャの相違」
カスタムイベントって、「プラグインマネージャー」→「カスタムイベント」から、任意で関数をミュート出来るみたいなんです。
なので、そっちを弄ってしまうと、「設定→Custom」に作ったプロパティと値が、違うということになってしまうのです。
しかも、このプラグインは、「フレーム開始時」と「フレーム終了時」の二つの関数で成り立っているので、片方だけ切られた時には……
とまぁ、そういうことです。

>ミリセカンドの表示が1ケタずれてませんか?
え~~~、なんか、言われてみれば変なような~ Σ(゚Д゚;)
直します。

「xPOP」インストールしたまま放置してましたが、そちらで紹介されているようで、嬉しいです。
がんばってください~
【2008/01/11 10:13】 URL | strato #SFo5/nok [ 編集]


>その中に「ImageWidth」とか、それらしいのが

うーむ、確かにそうですね。しかし、

var oRegion = Dictionary.GetObject('Views.ViewB.RenderRegion');
for (i=0; i<oRegion.Parameters.count; i++)
{
logmessage (oRegion.Parameters(i).name + ' ---> ' + oRegion.Parameters(i).value)
}

これを実行してみてください。ビューポートBの RenderRegion プロパティが持っている全パラメータとその現在の値を表示しているわけですが、その中には出てきませんね。なんでだろ。SDKマニュアルの不備か、あるいは未実装なのかもしれません。XSI の SDK はこの未実装ってのがたまにありますね。マニュアルには書いてあるけど実際には実装されていなく、たぶん将来実装予定なのだろう、みたいな感じです。

最後の RegionOffsetX/Y ってのが、ビューに対する領域の開始点ですね。0から1 のパーセンテージです。RegionWidth/Height がビューに対する大きさですね、これも 0から1のパーセンテージですね。これがピクセルで出ればいいわけですが、将来に期待するしかないですね。

それと余談ですが、JavaScript と JScript は別のものだそうです。ほぼ互換性あるけど。Java は Sun、JScript は Microsoft のものですね。XSI は JavaScript ではなく JScript を実装しています。それと、XSI の JScripter はいっぱいいると思いますよ。最近 Python も増えてきたけど、全体的に JS を使っている人が一番多いように私には見えます。SDKマニュアルも昔と比べてサンプルコードが JS で書かれていることがすんごく増えましたし。逆に VBScript は減って来てますね。
【2008/01/11 14:21】 URL | junki #- [ 編集]


>junki様
7.0も近いでしょうし、領域は待つしかなさそうですね。

>JavaScript と JScript は別のものだそうです。
知らなかった。(´・∀・`)ヘー
今度検索するときは、気をつけねば。

>SDKマニュアルも昔と比べてサンプルコードが JS で書かれていることがすんごく増えました
これは個人的によかったよかった。
でも、もっとJScriptのサンプル欲しい…
【2008/01/13 23:55】 URL | strato #SFo5/nok [ 編集]

TOP

この記事に対するコメントの投稿















TOP

この記事に対するトラックバック
トラックバックURL
→http://fstrato.blog78.fc2.com/tb.php/61-e88f99ca
この記事にトラックバックする(FC2ブログユーザー)
TOP
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。