//# //#

2018/04/15

【Maya】versionUP保存

MayaにはAEやNukeのように現在のファイル名の数字をあげて保存という機能が用意されていません。
(test_v01_01→test_v01_02みたいな)
前に作ったはずなのですがどこかに消えてしまい、
良さそうなサンプルもあったのでPythonで作ってみました。

import os,re
from maya import cmds,OpenMaya

def iterativeSave(filename):
 sPN = os.path.split(filename)
 oldnum = re.findall(r'[0-9]+', sPN[1]).pop()
 pad = len(oldnum)
 num = str(int(oldnum)+1).zfill(pad)
 name,ext = os.path.splitext(sPN[1])
 name = name.rsplit('_',1)
 newNum = name[-1].replace(oldnum,num)
 NewFullPath = sPN[0] + '/' + name[0] + '_' +newNum + ext

 return NewFullPath

def main():
 filename = cmds.file(query=True,sceneName=True)
 if not filename:
  OpenMaya.MGlobal.displayError('ファイルが保存されていません')
  return
 newfilename = iterativeSave(filename)
 cmds.file(rename=newfilename)
 cmds.file(f=True, save=True)
 OpenMaya.MGlobal.displayInfo('//Result: '+newfilename)

main()

上記のコードをホットキーエディタにアサインすれば完了です。
ファイル名を _ で区切り、一番最後の数字のみ一つ上がる仕組みです。
その際「v01」など文字が含まれていても数字のみ変更されます。
最後にイニシャル付ける方などはちょっと書き換えが必要です。

ではではバグ、要望等ありましたら、ご連絡よろしくお願いします。m(_ _)m

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト
https://sdm.scad.edu/faculty/mkesson/vsfx705/wip/best/spring12/nestor_prado/scripts_iterativesave.html

2016/12/23

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

この前の記事のMax版です。

以下のScriptをMaxScriptエディタなどにコピペして「Ctrl+E」で実行
macroScript saveAsMax category:"tm_tool" 
tooltip:"saveAsMax"
(
maxfile = maxFilePath + maxFileName
try (
 savename = getMAXSaveFileName filename:maxfile ()
 saveMaxFile savename 
 )
catch()

)

「カスタマイズ」→「ユーザーインターフェースをカスタマイズ」で、
カテゴリを「tm_tool」にして「saveAsMax」のホットキーを設定して完了。


デフォだと何故か「Shift+Ctrl+s」の割り当てないのでそれを割り当てるのが、
丁度いいじゃないでしょうか。
ちなみに同名のファイルがあっても警告なしで上書きします。
正確には現在のシーンと同名のときのみ出るみたいです。

※161230追記
下記のものを使えば現在のシーンと同名でも警告が出ます。
macroScript saveAsMax category:"tm_tool" 
tooltip:"saveAsMax"
(
local saveFilePath 
local maxfile = maxFilePath + maxFileName
do
(
 saveFilePath = getMAXSaveFileName filename:maxfile ()
 if (saveFilePath != undefined) do
 (
   if (not (doesfileexist saveFilePath)) or
   saveFilePath != maxfile or
   querybox ( saveFilePath + "\nは現在のシーンファイルです。\n上書きしますか?") title:"名前をつけて保存" then
   (
    saveMaxFile saveFilePath
    exit 
   )
 )
)
while (saveFilePath != undefined)
)


既に以前のものを登録した方でもmacroの記述を変えてなければ、上記のものを実行すれば更新されます。

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
参考サイト
http://help.autodesk.com/view/3DSMAX/2016/JPN/?guid=__files_GUID_624D3D05_B15D_4A97_9F15_DA35CDB0DDD2_htm

2016/10/10

【Max】PFを別シーンにもっていく




上記の画像のようなMaxのPFを別シーンにもっていきたいとします。









PFを普通に[名前をつけて保存]>[選択を保存]して、別シーンにて合成しても、
上記の画像のようにコネクションがはずれてうまくいきません。(アクション修復って何……?)









そんなときはパーティクルビューで別保存したいPFツリーをすべて選択して、
[選択]>[選択を保存]でMaxFileで保存します。










あとはいつも通り先程保存したMaxファイルを合成で読み込みます。
するとあら不思議、普通にコネクション込み、エミッタのObj、インスタンスのObjもきてくれます。
また追加で読み込んでもまとめて名前変更すれば問題なくきてくれます。









ただ、PFのエミッタやインスタンスのObjが外部参照だったりするとコネクションはきてくれますが、
Objは削除された状態で読み込まれます。



気づきづらい場所にあるせいで、知らなかった方も結構ちらほら。(自分もですが……^^;)
PFを別シーンにもっていくときイライラしていた方は是非お試しを!

2016/07/09

【Max】Vrayのクアッドメニューが消えたとき

①普通にカスタマイズから追加する方法。


「ユーザーインターフェースをカスタマイズ...」から
クアッドメニュータブに



カテゴリをVrayに変更
名前が変わってて微妙にわかりづらいですが、よく使う2つで
V-Ray properties→Displays the Vray objects or light propaties
V-Ray VFB→Displays the last rendered V-ray VFB, if is exists
上の2つを規定値のビューポートクアッドメニューの「コンテキスト変換」の下にドラッグ

インストール時の状態に戻したければ、上の画像の通りすれば元通り。


②設定ファイルに書き込む


Maxをおとしてから、
使用しているMaxのバージョン、言語のUI設定のファイルをメモ帳などのテキストエディタで開く
例えばMax2015の日本語の場合
C:\Users\%USERPROFILE%\AppData\Local\Autodesk\3dsMax\2015 - 64bit\JPN\ja-JP\UI\Workspaces\usersave\
Workspace1__usersave__.mnux
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="LaunchDopeSheetEditor`Track View" customTitle="ドープ シート..." />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="paramWire`Parameter Wire" />
<Item mode="1" modeName="AM_SEPARATOR" />
<Item mode="4" modeName="AM_SUBMENU" subMenuID="12" flat="0" customTitle="変換:" />

//上の文の下に下記の様にいくつか書き込む

<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="LaunchDopeSheetEditor`Track View" customTitle="ドープ シート..." />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="paramWire`Parameter Wire" />
<Item mode="1" modeName="AM_SEPARATOR" />
<Item mode="4" modeName="AM_SUBMENU" subMenuID="12" flat="0" customTitle="変換:" />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="VRayProperties`VRay" />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="VRayShowVFB`VRay" />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="VRaySceneConverter`VRay" />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="VRayBitmap2VRayHDRITexmapConverter`VRay" />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="vrayMeshExport`VRay" />
<Item mode="2" modeName="AM_ITEM" actionTableID="647394" actionID="vrsceneExport`VRay" />


 ファイルを開いたら「ドープ シート」を検索するなどして 上記の部分を見つけて
(人によるとおもいますが自分は180行らへんでした) 
上記のようにいくつか書き込んで、Maxを起動すれば完了。

2016/03/27

【Max】Maya使いの私が愛用しているMaxツール

別のソフト使うと必ずあれがない、これがないといった問題が起こると思うのですが、
私もMaya→Maxを使う上で、え!この機能ないの!?出来ないの!?
となった時何かフリーのツールでないかなーと探して、巡りあったツールをご紹介します。



①Outliner

MayaのOutlinerみたいなツールです。最近のMaxではシーンエクスプローラが強化されて、
別にこっちを使わないでもいい気もしますが、なんだかんだで慣れてしまったのこっちを使っていますw



Outliner scriptspot
http://www.scriptspot.com/3ds-max/scripts/outliner

※16/07/09 追記
Max2015にてシーンエクスプローラとうまく同期してないときがあるので、
使わなくなりました。
シーンエクスプローラにも慣れてきましたし……。

②Prism(旧 LPM2.0)

Mayaのレンダーレイヤーのような機能のツールです。
レンダリングするObjの指定はもちろん、Obj、レイヤープロパティ、Vrayプロパティ、別マテリアルのアサイン、レンダラーの切り替え、エレメントの切り替えなどなど大抵やりたいことが出来ます。
ネットワークレンダリングするときも、Jobを投げた時に変換して投げるのでレンダーサーバーに別途インストールする必要はありません。

ダミーに各Objとかの情報(MayaでいうとここにOverRide情報が入る感じ)を入れて管理するシンプルな感じなので、シーンファイルが壊れることはないです。
ただ、オブジェクトの数が多いともっさりしたり、たまにバグったり、動作が怪しいこともありますが、
それはまぁMayaも一緒ですし……w



使い方をざっくり説明すると、まずPrismを起動したらUIのSettingからデフォの設定をします。
基本的にはいじらなくてもいいですが、
NetworkTypeに使っているディスパッチャーを設定(Backburner, Deadline,enFuzion)します。
ここをMaxFileにするとPrismで設定した各Passを反映したMaxFileを書き出せます。
また、pass default hide modeはHide All Objects/Lightに設定しておくことをおすすめします。
ちなみにここの設定はMaxシーンデータではなく、Maxのプリファレンスに設定が記録されます。

あとはポチポチやって各Passを設定して、ObjSetにObjかレイヤーを設定、
Networkボタンを押すとスクリプトのUIが起動してレンダリングをまとめて書き出せます。

ここでHide Pass modeを何にしてるかで挙動が変わるのですが、Hide Allにしてるとシーン内すべてのObj、Lightをオフってから、Pass内の設定を反映してレンダリングされます。
上記の画像の例だと、
カメラのc001はmasterとshadow,c002はmasterのみ、
master pass…他にObjがあっても、シーンにはふなっしーとくまモンとライトのみでレンダー
shadow pass…上記と違ってObjプロパティとVrayプロパティを設定、地面の影のみアルファ付きで書きだされます。

また、Passの設定を書き出して、別のシーンで流用なんてことも可能です。

Backburnerを使用していて、マネージャーに接続しようするとMaxごと落ちる場合は、サーバーグループが悪さしている可能性があります。
スクリプト内のサーバーグループを呼んでいる箇所をコメントアウトするなりする必要があります
ちなみにこの問題はこのツールではなく、MaxScriptの問題くさいです。

Prism
http://www.grovergol.com/?page_id=338

ちょっとわかりづらい場所にありますがHelpはここです。右の項目で各機能の説明が見れます。
http://www.grovergol.com/?page_id=481




③imageplane

Mayaでいうimageplane。通常だとビューポートに貼っつけることしか出来ないので、シーンのObjの手前に半透明で表示したいときとかに便利です。
ただ、普通に板ポリをカメラの画角に合わせて配置しているだけなので、一々マテリアル作ってアサインしないとダメです。
このツールをインストールしていないマシンでimageplaneを作成したシーンを開くと当然エラーが出ますが、
当方の環境では特にレンダーサーバーには影響出ませんでした。















インストール方法はスクリプトを以下の場所とかに配置
C:\Program Files\Autodesk\<Max version>\scripts\Startup
Maxを再起動すると標準オブジェクトに【MB Objects】→【imageplane】が追加されます。

使い方は簡単で、
imageplaneを貼りたいカメラをピック
テクスチャをはったマテリアルをアサイン
カメラからの距離を調整して完了。
あとは少しだけですがオプションの機能がいくつかあります。

カメラをピックした後にカメラのレンズを変更した時は、DistanceかOffsetなどを適当に少し触ればきちんと変更した画角に合います。

scripts.breidt.net
http://scripts.breidt.net/#imagePlane

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