--

--

コメント

スポンサーサイト

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

04

14

コメント

FindChildrenの謎

FindChildrenメソッドを使っていて最近気づいた謎。
私はスクリプト書き始めてまだ1年そこらしか立ってないので、私が知らないだけかも知れませんが・・・。
たとえば、適当に2本のボーンを持つスケルトンを書いてから、そのChainRootを選択して以下のスクリプトを実行すると、
app = Application
oSel = app.Selection(0)
oChildren = oSel.FindChildren("","")
for oChild in oChildren:
  app.Logmessage(oChild) 

# INFO : bone
# INFO : bone1
# INFO : eff


とまあこんな感じに選択されたChainRootを含めずにその子を返してくれます

但し、FindChildren("","")の部分をFindChildren("*","")に書き換えると

app = Application
oSel = app.Selection(0)
oChildren = oSel.FindChildren("*","")
for oChild in oChildren:
  app.Logmessage(oChild) 

# INFO : root
# INFO : bone
# INFO : bone1
# INFO : eff


このように選択されたChainRootも帰ってきます。

ただ、この現象はFindChildrenの第二引数を指定しない場合に限られるようです。

元々FindChildrenは引数に指定したもので検索し、その検索に引っかかった親と子をコレクションに入れるものなので、選択した親が入っている方が正解なのですが・・・。(あえて親を含めないFindChildren2があるくらいですし)  

メソッド内部の処理の関係なんだとは思いますが、なんか不思議な仕様にプログラミング素人は感じる今日この頃でした。
スポンサーサイト

04

12

コメント

シーン内にあるカメラの切り替えスクリプト

シーン内に大量のカメラがあってそれを何度も確認しないとならない仕事をしていた際、いちいちビュー左上からカメラを切り替えるのが面倒すぎてブチ切れそうになったので書いたプラグインです。
特にメニュー追加とかは無いので、Pluginフォルダにぶち込んだ後、キーボードショートカット等に登録し、実行してください。

このプラグインは実行毎に選択ビューをシーン内の次のカメラへ切り替えます。(Top、Front、Right、UserなどのSceneRoot以下に無いカメラには切り替わりません。)

カメラの取得をFindChildrenメソッドを使用し、特に並び替などの処理を入れていないので、場合によっては意図しない順番にカメラが切り替わる可能性がありますのでご注意を。
この辺の切り替え順はそのうちまたこの仕様にキレそうになったら修正すると思います。

Change_To_The_Next_Camera

Designed by

Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。