blog

2013/05/24

記事移植その3『Null位置でDepth』

圧倒的今さら感。 前のブログからアクセス多いやつを移植したり(´・ω・`)

---------------------
 この記事のこと。
http://caffeineabuse.blogspot.jp/2009/01/custom-depth-pass-in-xsi.html
深度をNullの位置で制御しようとしてる感じです。
・ヌルを2つ用意して「Near」と「Far」と、適当に名前付ける。
・Render treeは【Scalar state】--【Change Range】--【Material】
・Change RangeのPPG開いて、
元の範囲の開始にエクスプレッションで
ctr_dist_cam( Far.kine.global.pos )
元の範囲の終了に
ctr_dist_cam( Near.kine.global.pos )
・新規範囲の開始を0終了を1に。(0が真っ黒、1が真っ白)

・終わり。

とまぁこんな感じ。
ただの白黒グラデーションになるだけですがまぁ、ね(´・ω・`)
 ---------------------

2013/04/22

ただのメモ

プラグインマネージャから新規コマンド作成時、
Add to MenuをNoneで作成した後、メニューに追加したくなった時。
in_reg.RegisterCommand("●●●","●●●");
の後に
in_reg.RegisterMenu(siMenu●●●●●ID,"●●●_Menu",false,false);
を追加。ウィザードで特に何もしてなければ16行目。
んで最後に
function ●●●_Menu_Init( in_ctxt )
{
 var oMenu;
 oMenu = in_ctxt.Source;
 oMenu.AddCommandItem("●●●","●●●");
 return true;
}
こいつを追加。

コマンド作り直してコピペったほうが早いかもしれないけど、ひとまずメモる。

2013/04/19

にわかスクリプト~しょ、ショートカットってイイよね(;゚∀゚)=3ハァハァ


以前、junkiさんがブログで書いてたコレ。

同じ名前の子をイッキに選択するの。

SelectObj( "*." + Selection(0).name );

コレをショートカットに登録てやつ。

素敵だったのでまるっと真似してたんですが、他にも
ショートカット登録したら便利かな~っていうのを登録して試して見てたわけですはい。

それで使用頻度が高かったものをいくつかね。

・Fカーブまるっとコピー
CopyAllAnimation2( Selection(0), siFCurveSource, siAnimatedParam, false, null,null );
Expressionとかは除外して、Fカーブだけアニメーションコピーしてるはず。


・まるっとペースト
var oSel = GetValue("SelectionList")
PasteAnimation( oSel, null );
Logmessage(oSel);
なんかペーストはデフォルトでありそうだけども(´・ω・`)


・リファレンスモード(?)の軸をアクティブなビューに合わせる
var oCam = GetViewCamera(-1);
SetTransientReferencePlane(oCam);
あれです、移動モードとかでLocalボタンの下のRefボタンのアレです。
カメラ合わせで弄くり回すときに便利でした。個人的には。


あとまぁモーキャプデータとか扱って尚且つアニメーションレイヤー使う人向けですが こんなのも
・アニメーションレイヤーマージ+α
var oStartF = GetValue("Project.Data.PlayControl.In")
var oLastF = GetValue("Project.Data.PlayControl.Out")

SetValue("PlayControl.In", oStartF -50, null);
SetValue("PlayControl.Out", oLastF +50, null);

CollapseLayers(Selection(0), null);

SetValue("PlayControl.GlobalIn", oStartF, null);
SetValue("PlayControl.GlobalOut", oLastF, null);

SetValue("PlayControl.In", oStartF, null);
SetValue("PlayControl.Out", oLastF, null);
すっごい無理やりだけども。
アニメーションレイヤってタイムライン分しかマージしてくれなくてイラッとするんです。
だから一回前後50フレーム伸ばして、マージして、戻す。などという頭悪い感じの事してます。
なにかいい方法あるかな。
Fカーブの最初と最後のキーがあるフレーム取得できればいけそうなそうでもないような。

ちなみに前後50フレームなのは特に意味無いです。
アニメーションレイヤの切り替えもショートカットにしてもいいかも。
アニメーションレイヤ開くの面倒くさいものね。

アニメーションに関してメインになってますが取り敢えずこんなところ。
他にも色々便利になるようなの探して行きましょ。

ただ、デフォルトのショートカットにはなるべく被らないようにしないとね。
デフォルトと違うとたまに不便なこともあるんでね(´・ω・`)

-------------追記ワッショイ------------

選択しているオブジェクトのvisibilityをサクッと表示してくれる
.visibilityを.kineにしてKinematicsバージョンも作ってこの2つ登録
シーンがゴチャついてる時にエクスプローラ潜るの嫌だったのでね。

var oCollParam = XSIFactory.CreateObject( "XSI.Collection" );
oObj = GetValue( "SelectionList" )
for(i=0; i<Selection.count; i++){
 oText = Selection(i) + ".visibility";
 oCollParam.AddItems(oText);
 }
Selectobj(oCollParam);
Inspectobj(oCollParam);