2015年8月17日月曜日

祝!Unity5でスクリプト記述方法が一変しちゃって泣ける!

JavaScript使うのあきらめようかな・・・
するってーとC+使うことになるんだが、現在使用している言語をまとめてみる。

Softimage JScript/VBA/Python
MayaLT Mel
3dsMax maxscript
Motion Builder Python
After Effects JavaScript

MayaLTがPythonにできないんがつらいなあ・・・
3dsMaxもPythonにできたら、PythonとJavaScriptにまとめられるんだけども・・・

かなり使用ソフトと言語が混乱しててヤバイ

2015年8月14日金曜日

GitHubに投稿したスクリプトを貼り付けるテスト

GitHubってなんかステキな響き。
ちょっと使ってみようかしら・・・。

よくわかんねーけどね。

できればBloggerに貼り付けられたらいいなあと。
参考:GitHubにあげたコードをブログに貼り付ける方法

やってみる。

<script src="//gist-it.appspot.com/GitHubのURLをhttps:から記入する"></script> って書くだけでいいみたい。できたー!
何か見栄えもいいみたいー。
Posted on 21:43 | Categories:

2015年7月13日月曜日

MayaLT2015:Mel:フラットライトをショートカットに

モデリングしてる時に特にライトを配置していないと、ビューポートのライト表示が「デフォルトライト」か「全てのライト」のどちらかしか選べない!「デフォルトライト」だと妙にハイライト入ってしまうし、「全てのライト」だとそもそもライト置いてないんだし真っ暗。で、フラットライトにしたいんだけど、メニューから選ばなきゃいけない。ワイヤーフレームとテクスチャ表示を行ったり来たりしたいのにこれは非常に面倒くさい。つーか、テクスチャ表示にすると必ず「デフォルトライト」になるのどうにかしてくれ。 かといって、ホットキーの設定をしようとするも、フラットライトの項目が見つからないじゃないか。なんだこれは。 幸い、コマンド履歴がスクリプトエディタで見ることができる。最近MotionBuilderを使っていてコマンド履歴が見えないので、見えるだけでスクリプトを書くテンションが上がるではないか。導入までのアレコレをこれから書いてゆくが、面倒な人のためにとりあえず作ったスクリプトを貼っておく。
string $panel = eval("getPanel -withFocus");
modelEditor -e -dl flat $panel;

■コマンドを探す

さて、まずどうやったかっていうと、スクリプトエディタの履歴をチェックした。
updateLightingMenu MayaWindow|formLayout1|viewPanes|modelPanel4|menu21 modelPanel4;
modelEditor -e -dl flat modelPanel4;
// 結果: modelPanel4 // 
updateModelPanelBar MayaWindow|formLayout1|viewPanes|modelPanel4|modelPanel4|modelPanel4;
dR_setModelEditorTypes;
Mayaのコマンド履歴はどうもゴミが多くて見にくいが、「flat」っていう文字が見つかるので、
modelEditor -e -dl flat modelPanel4;
をコピペして実行してみると、ビューポートが確かに「フラットライト」になる・・・。けど、フラットになるパネルとならないパネルがある。あー、「modelPanel4」というやつは特定のパネルのことを言っているわけね。つーわけで、これをアクティブパネルに変更すればいいわけか。調べると、Graberry | Orthographic を切り替える MELというページを見つけたのでそこから拝借。
string $panel = `getPanel -withFocus`;
この部分は例によってそのままじゃ動かないので、以下のように変更。
string $panel = eval("getPanel -withFocus");
で、「modelPanel4」の部分を「$panel」に変更すれば完成。

■ホットキーに登録

登録するキーはどうせライトを使わないんだし(ゲームの素材を作ってるだけだから)7にしようと思ったんだけど、思いとどまってホットキーがアサインされていない8を使うことにした。自作のスクリプトをどうやって登録するのか・・・しばらくいじって「ホットキーを編集:」というところのドロップダウンメニューに「カスタムスクリプト」という項目を見つけた。んだけどなーんも表示されない。しばらくいじってて右の「ランタイムコマンドエディタ」というところに記入して保存したら出てきたので、それを登録。動いた。「カスタムスクリプト」と書いておきながら「ランタイムコマンド」ってどういうことよ・・・?と少々苦笑いしつつ完成。
 
うむ。快適。

2015年7月12日日曜日

MayaLT: Mel:オブジェクトのローカル座標をゼロにする

Mayaいいんだけど、ローカル座標とワールド座標があって、ワールドの位置がわからなくなるので困る。
ピボットをセンターにした時なんかに起こるんだけど、その後ローカル座標をゼロにする方法がわからなくて、調べた。


ここを参照した。
けど、そのまま実行してもうまく動かない。

string $sel[] = 'ls -sl';
の部分がうまく実行できないみたいなので、調べつつ少し手直し。

string $sel[] = eval('ls -sl');
に変更。
どうやら、Maya LTのせいなのかバージョンの違いなのかはわからないけど、コマンドの戻り値を直接引き取ることができないらしくて、evalを使用しなきゃいけないらしい。

あとは、ピボットをセンターにしている部分をコメントアウトするのと、複数選択に対応して作りなおした。
string $sel[] = eval("ls -sl");
for ($s in $sel){
     //CenterPivot;
     float $selRPQuery[] = eval("xform -q -ws -rp $s");
     string $locator[] = eval("spaceLocator");
     move -ws $selRPQuery[0] $selRPQuery[1] $selRPQuery[2];
     select -r $s;
     select -tgl $locator[0];
     parent;
     makeIdentity -apply true -t 1 -r 0 -s 0 -n 0;
     select -r $s;
     parent -w;
     select -r $locator[0];
     doDelete;
}
生まれて始めてのMelでした。

2015年6月18日木曜日

MotionBuilder:コンストレイントの選択を取得

よくやる選択オブジェクトの取得は、
lMdlList = FBModelList()
FBGetSelectedModels( lMdlList ,None, True, True)
なんだけど、これだとコンストレイントの選択が取得できない。
言っておくが、何で取得できないかは知らん。
以下のようにすると取れる。
for obj in FBSystem().Scene.Components:
    if obj.Selected == True:
       lMdlList.append(obj)
いやまあ、これをやるといらないFBAnimationLayerとかも取得されちゃうんだけど、
取得できないよりマシでしょ!

2015年6月17日水曜日

FBVideoCodecUseDefault何てねーじゃねーか!

レンダリングでイチイチフォーマットを聞かれるのが嫌でしらべてたんだけど。 FBVideoCodecManager().GetDefaultCodec()
というのはある。

んで、その説明に。
SetDefaultCodec. Set the default codec id for a given file format. This is the codec that will be used if codec mode is FBVideoCodecUseDefault.
ってある。

じゃあ、その対応するオプションはどこかって探すけど。
FBVideoCodecManager().VideoCodecMode
には3つのオプションがある。すなわち。
object FBVideoCodecAsk
object FBVideoCodecUncompressed
object FBVideoCodecStored

おいおい。
FBVideoCodecUseDefault
どこにあんだよ!

2015年6月9日火曜日

2015年6月3日水曜日

2015年6月1日月曜日

2015年5月17日日曜日

Softimageでメッセージボックスを出すー


Softimageでメッセージボックスを出すー
Pythonでね

何で未だにSoftimageやってんだか

#XSIUIToolkit.MsgBox(“Message”, 0, “caption”) #二番目はエラーフラグ(整数)
XSIUIToolkit.MsgBox(“test”, 0, “caption”)

SoftImage 基本ショートカット

8 エクスプローラー
9 スケマティック
0 Fカーブ
alt_0 ミキサー
alt_8 Object view

x/c/v トランスレーション

ctrl_shift_m create marking set
shift_m key marking set

home/end start/end

←→ 時間の移動
ctrl_shift_a 選択解除

center_button ブランチ選択
center_button コマンド再実行

/ 親子付
1//2//3//4 メニュー切り替え

t タグ選択

クリップをカレントフレームから開始するように移動

#アニメーションクリップを選択して実行
#選択したクリップの開始位置を現在のフレームに移動します

selList = Application.Selection
exeList = [] #クリップ以外も選択されていたら除外してクリップのみここに入れる

theTime = Application.GetValue(“PlayControl.Current”)

#選択オブジェクトの中にclipが含まれているか
def IsClipSelected():
 global exeList
 clipCheck = False
 for obj in selList:
  if obj.type == “mixeranimclip” :
   exeList.append(obj)
 if len(exeList) == 0 :
  Application.LogMessage(“There is no Clip in Slections”)
  return False
 return True

def SetClipsToCurrent() :
 for obj in exeList:
  Application.LogMessage(obj)
  Application.SetValue (obj.Name+“.actionclip.timectrl.startoffset”, theTime)

#実行するかどうか調査
if len(selList) != 0:
 if IsClipSelected() :
  SetClipsToCurrent()
else :
 Application.LogMessage(“Select At Least One Clip”)