//# //#

2015/12/06

【AE】別名保存の初期ディレクトリを開いているAepのディレクトリにする。

AEを使っているとき別名保存時にレンダーキュで設定したディレクトリとかが出てきたりして、ちょっと面倒なので自作しました。

saveProjectAs_fromAepPath.jsx
https://www.dropbox.com/s/c80nx0vv4fy7c0d/saveProjectAs_fromAepPath.jsx?dl=0
※AECS5.5,CS6のみ確認。
ご使用は自己責任でお願いします。また、バグ、要望等ありましたらご連絡くださいー。

また、このスクリプトをショートカットに設定すれば利便性が上がるかと。
ショートカットを変更するにはKeyEd Upを使うか、
ショートカットのテキストファイルを書き換える必要があります。
やり方については以下のサイトを参考にしてみてください。
http://cubelic3.jp/aftereffects_shortcut01/
https://helpx.adobe.com/jp/after-effects/using/modify-keyboard-shortcuts.html

ダウンロードした先ほどのファイルをAEがインストールされているディレクトリのScriptsフォルダの中にぶっこみます。
C:\Program Files\Adobe\(AEのバージョン)\Support Files\Scripts

中に入れたらそのファイルが名前順番で何番目にあるか覚えておきます。
その後先ほどの番号のRun Script(ExecuteScriptMenuItem)に設定すれば完了です。
自分の場合、静止画で書き出しと被ってましたがそんなに使わないので、Ctrl+Alt+sに上書きしました。
また、恥ずかしながら最近知ったのですが、
単純にバージョンアップ等番号を上げたい場合はデフォでCtrl+Alt+Shift+sで出来ます。(当たり前?^^;)

直接スクリプトのパスを指定して実行みたいなの出来ないものでしょうかね……?
何かありそうな気もするのですが……。

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト

AfterEffectsの使い方|ショートカットキーのカスタマイズ
http://cubelic3.jp/aftereffects_shortcut01/

After Effects script Reference
http://aejsx.hiroshisaito.net/

After Effects CS6 Scripting Guide
http://blogs.adobe.com/aftereffects/files/2012/06/After-Effects-CS6-Scripting-Guide.pdf?file=2012/06/After-Effects-CS6-Scripting-Guide.pdf


2015/09/20

【Max】coolPickerにカラーセレクタを変更する

Maxの標準のカラーセレクタだと256段階ものしかなく、いまいち使いづらかったのでフリーのなんかないかと思ったらありました。


通常だと↑の画像みたいやつなのですが、
プラグインを入れると↓みたいな高機能なものに。


ただ、数値変換をしているだけなのでレンダーサーバーや、別のマシンにこのプラグインをいれてなくてもなんの問題もないのですが、
0-100で入力してもあくまで256段階の数値変換になるので、変換時小数点以下は切り捨てで表示されます。
例えば18と入力しても、17.6と変換され開きなおすと表示が17となってしまいます。
18といれたければ0-255で46と打てばOKです。
ちなみにレンダリングではバッチリ小数点も考慮されるのでレンダリングの画像には17.6が入ります。

浮動小数点型(0-1.0)はMax標準同様対応しているもののみ使えます。


インストールの仕方は以下の通り。

  ↓すでに開発は止まっていますが、有志の方が最新のMaxに対応しているものを公開しているのでダウンロード。 http://www.maxplugins.de/max2016.php?search=Coolpicker&sort=Author

ダウンロードしたものをプラグインのパスが通っている箇所に配置。
 例) C:\Program Files\Autodesk\3ds Max 20xx\plugins


Maxの基本設定のカラーセレクタを【CoolPicker】に変更すれば完了です。

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト

CoolPicker Color Selector
http://area.autodesk.com/blogs/shane/coolpicker_color_selector

2015/07/20

【Max】MaxScriptメモ(その1)ファイル、パス周り

色々な言語が混じってよく分からなくなってきたのでメモ代わりに
ファイル、パスに関するコマンドをいくつか。


fileDir = maxFilePath --シーンファイルのディレクトリ取得
fileName = maxFileName --拡張子付きのファイル名取得
fileFullpath = fileDir + fileName --シーンファイルのフルパス取得
dirArray = filterString fileFullPath @"\" --パスを¥区切りで配列に変換


testFullPath = @"Z:\hoge\fuga.ext" --sample

getFilenamePath testFullPath --stringのディレクトリのみ取得
--//"Z:\hoge\"//
filenameFromPath testFullPath --stringのファイル名と拡張子を取得
--//"fuga.ext"//
getFilenameFile testFullPath --stringのファイル名のみ取得
--//"fuga"//
getFilenameType testFullPath --stringの拡張子のみ取得
--//".ext"//
doesFileExist testFullPath --ファイルの有無の確認


oRootPath = @"Z:\hoge\"
getDirectories (oRootPath + "*") --変数ディレクトリ以下のディレクトリ全てを配列で返す。
getFiles (oRootPath + "*") --変数ディレクトリ以下のファイル全てを配列で返す。


tempDir = oRootPath + @"_old"
makeDir tempDir --ディレクトリの作成
tempFile = filenameFromPath testFullPath
renameFile testFullPath (tempDir + @"\" +  tempFile) --ファイルの移動(パスのリネーム)


str = "move  " + oRootPath+ "aaa" +  " _old\\aaa" --Dosコマンド(ディレクトリをサブディレクトリ、ファイルごと移動)
hiddendoscommand str startpath:oRootPath exitCode:&exitcode --Dosを実行、実行場所をstartpathで指定、exitcodeでエラーを確認
exitcode --成功した場合0を返す。


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2015/05/30

【Max】シーンファイルがかなり重い

Maxのシーンファイルがファイルの構造の割に異様に重く、グラフエディタなども開くとフリーズする。
さらにObjをすべて消してみても重い、新規シーンに一部だけ合成しても重いなどの場合、
シーンファイルにリタイムというリタイムツール用のアニメーショントラックが異様にたまっている可能性があります。


本来キーフレームを細かくスケーリングしたりするものに使われているものですが、
使用しているObjを消してもリタイムは残り、合成で読み込むときも読み込んだものだけでなく、
リタイムももれなくすべてついてきます……orz
この機能を使っていない時でも何故かたまるときもあるそうです。

で、肝心の消し方ですが、以下のscriptを打ち込めばOKです。

RetimerMan.numRetimers  --リタイムトラックの数の取得

RetimerMan.BakeAndDeleteLocalRetimers() --リタイムをベイクして削除
--使用していないリタイムトラックの削除

nrt=RetimerMan.numRetimers
for i = 1 to nrt do
(
 j=nrt-i+1
 n=RetimerMan.GetNthRetimer j
 
 if n!=undefined then
 (
  if n.nummarkers==0 then
  (
   RetimerMan.DeleteRetimer j
  )
 )
)


scriptも配布されていますが、バージョンのせいか上手く動作してないものもあるみたいです。
↓以下のものはMax2014で動作確認しています。他にも色々機能がついていますが……。
Cleaner
http://www.scriptspot.com/3ds-max/scripts/cleaner


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト
Autodesk -Technical Q&A- 意図しないリタイムのトラック増加により、ファイルサイズが肥大化してしまう
http://tech.autodesk.jp/faq/faq/adsk_result_dd.asp?QA_ID=8404

MaxScriptヘルプ
http://docs.autodesk.com/3DSMAX/16/JPN/MAXScript-Help/index.html?url=files/GUID-199BB00E-5449-4BCB-A971-4F52553517ED.htm,topicNumber=d30e240940
http://help.autodesk.com/view/3DSMAX/2015/JPN/?guid=__files_GUID_CE344EBA_D3A9_4DC2_8196_BD933941FD0B_htm

Area Removing lots of Retimers in one go with MAXScript
http://area.autodesk.com/blogs/maxstation/n170-filebloat-removing-lots-of-empty-retimers

2015/04/26

【Max】パーティクルペイントの不具合

Maxのパーティクルペイントが思ったようにいかず苦戦したので、対処法をメモ。

①ブラシの表示が崩れて、うまくパーティクルがペイント出来ない時


 

上記の画像ようにブラシでペイントしようとするとビューポートがバグる。
見た目だけでなく、ペイントも思うように出来ない。
ちなみにパーティクルペイントは正投影でないとペイントできません。

そんなときはビューポートをクリッピングして、表示範囲を狭めてやればおk。
手順は下記の画像の通り。



 ビューポート設定>ビジュアルスタイル外観>ビューポートのクリッピングにチェック



すると上記の画像上手にある三角形のものが出てきます。
これを掴んでビューポートの表示範囲を必要な箇所のみに設定します。



ブラシが先ほどのような変なガビガビのものではなく、キチンとした円になりました。
パーティクルもキチンと塗れます。


②パーティクルペイントがオブジェクトから外れてしまう時。



キチンと正投影でペイントできていると思って、ふとカメラを動かすとパーティクルがとんでもない場所に……。

そんなときは以下の方法で対処!



パーティクルペイントのレイアウトのリストしたオブジェクトをペイントにチェック
そしてパーティクルをペイントしたいオブジェクトをピックすればおk

他にも何か対処法があるとはありますが、自分は上記のように対処しました。
何か他にいい方法があれば教えていただけると助かります!

この辺のビューポート周りのバグ?はMaxではご愛嬌なんですかね……。


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
使い方等は以下の記事をご参考に

■Zで行こう!  パーティクルシステムのお勉強 その20 3ds max 2010

■Autodesk オンラインヘルプ パーティクル ペイント


2015/03/07

【Maya】自作ツールrendLayerManager

案件によりますが、大量のレンダーレイヤがあるシーンに遭遇した時、
一々一つずつrenderableを切り替えるのが面倒だったので自作しました。

※ご使用は自己責任でお願い致します。


任意のscriptパスにいれて、【rendLayerManager】とMelで打ち込めば起動します。
簡単に使い方をご説明すると、

relode
レンダーレイヤの情報をリストに反映させます。新規でレンダーレイヤを追加、削除した際に実行してください。
sort select
ここに打ち込んだものをリストで選択します。正規表現も可能です。
list of renderLayer
シーンのレンダーレイヤのリストです。ダブルクリックするとカレントレイヤーが切り替わります。
on/off
上記のリストで選択したもののrenderableを切り替えます。リスト上で右クリックからもアクセス可能です。
all on/all off
すべてのレンダーレイヤのrenderableを切り替えます。masterLayerには影響しません。


※ご使用は自由ですが、著作権は放棄していないので二次配布等はご遠慮願います。
また何らかの損害等が発生しても責任はとれませんので、自己責任でお願いします。
バグ、要望等ありましたら、ご連絡よろしくお願いします。m(_ _)m

rendLayerManager.mel
https://www.dropbox.com/s/7aywcz80pociz7y/rendLayerManager.mel?dl=0


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト
チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第37回:ポリゴン数をリストアップしよう!
http://area.autodesk.jp/column/tutorial/maya_atoz/listup_number_polygon_1/

2015/01/24

【Maya】Melメモ書き

最近知った便利な文字列周りのMel(コマンドじゃないです)をメモ代わりに。


stringArrayContains
文字配列に項目が含まれる場合は true を返します。 この配列には、複数の項目が含まれる場合もあります。 このプロシージャは、最初の項目が見つかった時点で true を返します。
string $arraySample[] = {"a","b","c"};   

if(stringArrayContains ("a",$arraySample) == 1){      //もし”a”が含まれるなら実行
print "ok";
}

stringArrayRemove
第 1 文字配列に属する文字列項目を、第 2 文字配列から除去します。戻り値は、除去した項目の新しい文字配列です。第 2 引数は変更されずに返されます。
文字配列から除去されるのは、指定された文字列項目の最初の出現だけではなく、全出現であることに注意してください。文字配列に文字列項目がない場合、返される文字配列は、引数文字配列と同じになります。
string $list[]  = { "a", "b", "c", "d", "b", "e", "f", "a", "g" };
string $items[] = { "a", "c", "e", "g" };

string $diff[] = stringArrayRemove($items, $list);          //$list - $items

// Result : { b, d, b, f } //

stringArrayCatenate
指定した 2 つの文字配列を連結する結果となる、新しい文字配列を返します。
string $string1[] = {"light1", "light2"};
string $string2[] = {"light3","light4","light5"};

stringArrayCatenate($string1, $string2);       //$string1 + $string2

 // Result: light1 light2 light3 light4 light5 //

stringArrayToString
substituteAllString
stituteAllString
上から順に文字配列を文字列に指定の文字列(,)をいれて文字列へ変換。
いわゆるメモ帳の検索&置換。
文字列を指定の文字列(,)を区切りで文字配列へ変換。
For文とかでやってもいい気もするし、もっとスマートな方法がある気がする……。
string $old_Array[] = {"old_red","old_blue","old_green"};
string $searchStr = "old_";                                       //検索する文字列
string $replaceStr = "new_";                                    //置き換える文字列

string $toStr = stringArrayToString($old_Array , "," );          //文字配列から文字列へ
string $new_Str = substituteAllString($toStr,$searchStr,$replaceStr);   //文字列の置換
string $new_Array[] = stringToStringArray($new_Str , "," );          //文字列から配列へ

print $new_Array;

コマンドリファレンス(Helpメニュからも行けます)
■Mel
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/index.html
■python
http://download.autodesk.com/global/docs/maya2014/ja_jp/CommandsPython/index.html


-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/stringArrayContains.html
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/stringArrayRemove.html
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/stringArrayCatenate.html
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/stringArrayToString.html
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/substituteAllString.html
http://download.autodesk.com/global/docs/maya2014/ja_jp/Commands/stringToStringArray.html