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);

にわかスクリプト~動いてる奴だけ選択

はいさい。引き続き選択系。
選んでるオブジェクトの階層下で、アニメーションついてるヤツだけ選択的なアレ。

すっごい無理矢理な感じが否めないけど一応動いてるから許してください。
このやり方だと一回パラメータ全部かき集めちゃうから、if文使ってアニメーションしてるパラメータがあったら
そのオブジェクトを取得的な感じにした方がいい気がするが。。
もう心が折れてるので修正はあとにしような(´・ω・`)
var oRoot = ActiveSceneroot;
var oCollParam = XSIFactory.CreateObject( "XSI.Collection" );
var oCollObj = XSIFactory.CreateObject( "XSI.Collection" );

for( var i=0; i<Selection.count; i++ )
{
 var oSel = oRoot.FindChildren(Selection(i));
  for( var j=0; j<oSel.count; j++ )
 {
  var oChild = oSel(j).FindChildren();
  var oAnimPram = oSel(j).AnimatedParameters2(siFCurveSource);
  oCollParam.AddItems(oAnimPram);
 }
}

oSelectPram = SelectObj(oCollParam, null, null);

for ( var k=0; k<Selection.count; k++ )
{
 oSel = Selection(k).Parent3DObject
 oCollObj.AddItems(oSel);
}

Selectobj(oCollObj);

Twitterで@FumotoKZさんに助けていただいて何とかでけた。
本当に感謝です。自分だけじゃ何もできません(´;ω;`)ウッ…

2013/04/18

にわかスクリプト~メッシュだけ選択したらいいと思う

選択してるもの(そいつ自身含む)の階層下でメッシュだけ選ぶ的な。
var oRoot = ActiveSceneroot;
var oColl = XSIFactory.CreateObject( "XSI.Collection" );

for(i=0; i<Selection.count; i++)
{
var oSel = oRoot.FindChildren2(Selection(i),"");
 for(j=0; j<oSel.count; j++)
 {
  var oChild = oSel(j).FindChildren("","",siMeshFamily);
  oColl.AddItems(oChild);
 }
}

 
SelectObj(oColl, null, null);


siMeshFamilyを他のに変えれば種類ごとに選択できると思ふ。
てかこれ書き方に無駄ないかな・・いつも不安だぜ。。
アニメーション付いてるのだけ選択とかも付けてアップグレードさせなければ。

いやしかしアニメーションついてるオブジェクト選択は標準でありそうで怖い。
そしてリサーチせず作ったから既に似たような素晴らしい物がありそうで怖い。

今年は、もっとちゃんとした「ツール」っぽい物を作るんだ・・(`・ω・´)キリッ

2013/04/17

たぶ


久々の投稿でペンタブのステマですよ。

家ではIntuos3さんが踏ん張ってくれていますが、会社で使用している借り物Favoちゃんに
限界を感じ始めたので衝動買いしてしまいました。

『PTB-STRP1』


ええ、天下のWacom様ではなくプリンストンとかいうよく知らないメーカーのペンタブを
衝動買いしてしまいましたよ。

商品自体に対してのレビューはココが詳しいです。
http://oekakigakusyuu.blog97.fc2.com/blog-entry-522.html

上記レビューにも書かれてますが、

描く範囲は広めが良い。
BambooのMサイズ13,880円・・・だったらIntuos買うわ。
いやしかしそれだと予算がぁぁあorz

みたいな人に良いんじゃなかろうかと。

現在Amazon価格で6,421円。くっそ安い。
んで思ってたよりかなり薄い&軽い。

満足度はとても高い。
しかし全てにおいて痒い所に手が届かない。
つまり、とても良い製品だが誰にもオススメは出来ない。みたいな。

痒いところに手が届いていない部分をいくつか。

・Photoshopでは、IntuosにはあるON荷重機能(?)がないからか、
 大きめのブラシサイズだとどんなに軽く描いても1pixelまで減衰してくれません。
 2~3pixelくらいで途切れて線の入り抜きが少し気持ち悪い。
 ソフト側で補正できるソフトなら調整すれば大丈夫っぽい。

・ソフトごとにペンのサイドキーの設定ができない。

・ペンが充電式

・芯の取り替えの難易度が高い(らしい)

気になったのはこれくらい。
常にペンタブでオペレーションする人、線画をデジタルで書く人、
大きめのブラシで筆圧で強弱をつけて描く人とかは使いづらいのかな。

んで2つほどWacom様より好きな所が。
・ペンに消しゴムがない。
 ホント使わないんですアレ。ペンひっくり返すとか面倒くさいです。

・ファンクションキーが右側に物理的なボタンじゃない状態で8コ並んでいる。
 コレの一番上に消しゴム割り当てればペンひっくり返すよりスムーズに消しゴムに
 移行できるのでステキ。
 一番下にはタブレットが見るモニタの切り替えを割り当てています。
 挟まれてる残り6コのボタンはどうするか思案中。なくてもいいけど。

 ペン浮かした状態でファンクションキーの上に持って行くとディスプレイに何のマクロが
 割り当てられているか文字で出してくれるので地味に便利かも。

だいたいこんな感じ。
使用する機材は「必要最低限の機能+コストパフォーマンス」が大事だと思うので、
これがあと2年以上元気で動いてくれれば文句なしです。


ブログ放置し過ぎだから更新するようにしないとなぁ(;´∀`)