- 2022.03.28 Monday
- スポンサーサイト
-
一定期間更新がないため広告を表示しています
- | スポンサードリンク | - | | - | - | pookmark |
- 2016.09.30 Friday
- Unity OutSideControlProgressBar.cs 外部からインクリメント可能なプログレスバー エディター拡張 EditorUtility.DisplayProgressBar //OK EditorUtility.DisplayCancelableProgressBar //NG
-
Unity OutSideControlProgressBar.cs 外部からインクリメント可能なプログレスバー エディター拡張
EditorUtility.DisplayProgressBar //OK EditorUtility.DisplayCancelableProgressBar //NG
try catch できないエラーとして 以下が出た
コントロールウィンドウから プログレスウィンドウを開き プログレスバーウィンドウ内プロセスで閉じたらエラー
GUI Window tries to begin rendering while something else has not finished rendering! Either you have a recursive OnGUI rendering, or previous OnGUI did not clean up properly.GUIウィンドウは、他の何かがレンダリング終了していないのに レンダリングを開始しようとしています!
どちらかが再帰的なOnGUI()レンダリングを持っている、または以前のOnGUIが正しくクリーンアップしませんでした。
ということで コントロールウィンドウから 開き閉じを行うようにすると出なくなった。 自分で閉じるの禁止っす。みたいな感じでした。 - | whaison | Unity3d | 11:34 | comments(0) | - | pookmark |
- 2016.09.29 Thursday
- Anim_File_Export_class.py GoodOutPut!!
-
Anim_File_Export_class.py GoodOutPut!!
- | whaison | MayaPython | 16:03 | comments(0) | - | pookmark |
- 2016.09.29 Thursday
- proc rig_to_joint_bakemotion_fbx_v1103_proc081_notJoint_keyframeDelete.mel 存在しないジョイントのキーフレームを選択して削除
-
proc rig_to_joint_bakemotion_fbx_v1103_proc081_notJoint_keyframeDelete.mel 存在しないジョイントのキーフレームを選択して削除
- | whaison | MEL(Maya Embedded Language) | 13:52 | comments(0) | - | pookmark |
- 2016.09.27 Tuesday
- pythonMethodNeedArgClass.py selfとインスタンスとその名前がとれればクラス内で使えてどのクラスインスタンスがどの処理を実行してるかわかる。
-
pythonMethodNeedArgClass.py selfとインスタンスとその名前がとれればクラス内で使えてどのクラスインスタンスがどの処理を実行してるかわかる。
関連
がくぞーのメモ さんの 「Pythonのメソッド引数に self を書くメリット」
- | whaison | Python | 16:10 | comments(0) | - | pookmark |
- 2016.09.27 Tuesday
- Ueta CG Tech (blog)さんのNotepad++をMayaのスクリプトエディタにするプラグイン NppMayaのちょっとしたメモ
-
Ueta CG Tech (blog)さんのNotepad++をMayaのスクリプトエディタにするプラグイン NppMayaのちょっとしたメモ
C:¥Program Files (x86)¥Notepad++¥plugins
直下に
NppMaya.dll 入れて
Mayaでこのpy実行して
適当にNotePad++でpyスクリプト開いて
プラグイン>NppMaya> SendToScript (スクリプトを送信) Ctrl + Enter
でCtrl + Enter は どことかぶってるかってゆううのは
マクロ>ショートカットの変更から
Main menu
単語補完Ctrl + Enter になっちゃってるから
てきとうにCtrl + ALT +Spacebar でいいかなと。
- | whaison | MayaPython | 13:45 | comments(0) | - | pookmark |
- 2016.09.27 Tuesday
- AUTODESK APP STORE
- | whaison | Maya | 11:39 | comments(0) | - | pookmark |
- 2016.09.23 Friday
- Maya get lightList select light python test code
-
Maya get lightList python
New File
http://stackoverflow.com/questions/31961996/maya-python-get-light-type
Nodes type Light 29 hit
http://download.autodesk.com/global/docs/maya2014/en_us/Nodes/index.html
MEL と Python の重要な違い
MEL コマンドは Python でも使用できます。例:
runTimeCommand -command "sphere -name myName" mySphere;
- Python は、eval、evalDeferred、scriptJob の各 Maya コマンドをサポートしていません。ただし、以下に注意してください。
- Python には、Python エクスプレッションを評価するビルトインの eval 関数があります。
- Python には、MEL エクスプレッションを評価する maya.mel.eval があります。
- evalDeferred は、Python では maya.utils.executeDeferred() に置き換えられます。
詳細については、 Python から MEL を呼び出すを参照してください。
- MEL には、Maya メッセージ レポートに統合された独自の警告およびエラー メッセージ レポート機能があります。この中には、コマンド ラインでのカラー フィードバックが含まれます。Python には、警告およびエラー レポート機能があるシステム モジュールが装備されています。ただし、これらのモジュールは Maya に統合されておらず、コマンド ラインでのカラー フィードバックは行われません。
- Python での単位は文字列を引用符で囲んで指定する必要があります。たとえば次のようになります。
maya.cmds.scale(3, 3, 3, r=True, p=('0cm', '0.5cm', '0cm'))
- Python でのコマンド フラグ引数は、Python スクリプトを含む文字列(MEL の同等物と同様)か、関数などの Python が呼び出し可能なオブジェクトを取ります。
例:
import maya.cmds as cmds def defaultButtonPush(*args): print 'Default was pushed.' cmds.window( width=150 ) cmds.columnLayout( adjustableColumn=True ) cmds.button( label='Default', command=defaultButtonPush ) cmds.button( label='Left', align='left' ) cmds.button( label='Center', align='center' ) cmds.button( label='Right', align='right' ) cmds.showWindow()
- MEL は、値の範囲の指定に Python とは異なる構文を使用します。MEL では、* を使用して値の範囲を指定する場合、「*」を使用して実行します。たとえば、次のようになります。
select -r surface1.cv["*"][0];
Python では、値の範囲を指定する場合、クォーテーションなしの * を使用します。上の例は、Python では次のようになります。
cmds.select( 'surface1.cv[*][0]' , r=True)
結果を返すことと表示(エコー)することの違い
結果を返すことと表示(エコー)することに関して、MEL と Python では 2 つの点で異なります。1 番目の違いは正しいスクリプト実行に関することで、2 番目の違いは表面的な問題です。このセクションでは、互いを混同しがちな、結果を返すことと表示することの両方について説明します。
この説明は、主に、MEL には慣れているが Python に触れるのは初めてという場合に役立ちます。
結果を返す
MEL は、スクリプトを実行すると、最後に実行したステートメントの結果があればそれを返します。値を変数に割り当てるステートメント、結果を返すプロシージャ呼び出しは、結果を返すタイプのステートメントです。たとえば、次のコード ブロックには結果があります。MEL はこれをスクリプト エディタやコマンド ラインのメッセージ領域に表示します。
if ( $foo == 1 ) $bar = 42; else $bar = 7; 出力:// 結果: 42 //
これとは対照的に、Python は割り当てられた値を実行はしますが Python では値を割り当てるステートメントは値を返しません。
Python の構文では、単に変数を参照するだけで変数の値を返すことができます。MEL の構文では、完全なステートメントとして単に変数の名前を書くことはできません。
上記の MEL コード フラグメントは、Python では次のように書けます。最後のライン(bar)が結果を返します。
if foo == 1: bar = 42 else bar = 7 bar
foo = 1 if foo == 1: bar = 42 else: bar = 7 スクリプトエディタで実行してから 実行Boxに以下を入れると出た。 bar 出力:# 結果: 42 #
いずれかの言語で計算した値を別の言語のコンテキストで使用する場合には、この違いを理解しておくことが重要です。たとえば、Python 値を MEL で使用するには以下のようにするだけ済みます。
$myMELvariable = python ("myPythonVariable");
逆に、MEL 変数を Python で使用するには、以下のように書く必要があります。
import maya.mel myPythonVariable = maya.mel.eval ('global $myMELvariable; $temp=$myMELvariable;' )
これは、eval コマンドに渡されるスクリプトの最後にある割り当てステートメント($temp=$myMELvariable;)が値を返すため、機能します。
Python では、関数外で作成した MEL 変数(グローバル スコープ)にのみアクセスすることができます。
結果を表示(エコー)する
MEL は、スクリプトの最後のステートメントで返された結果があれば何行でも表示します。
Python では、単一のステートメントの結果だけを表示します。
- Python は、eval、evalDeferred、scriptJob の各 Maya コマンドをサポートしていません。ただし、以下に注意してください。
- | whaison | Python | 18:03 | comments(0) | - | pookmark |
- 2016.09.16 Friday
- FBXExportMelEval.py MayaのFBXExportコマンドをpythonから簡単に使う
-
FBXExportMelEval.py MayaのFBXExportコマンドをpythonから簡単に使う 関連 (http://qiita.com/it_ks/items/8d8f18f6fc359efcd726)
ダブルコーテーションがどうとか書式がまあまあ苦労したのでおいておく。
mel
FBXExportApplyConstantKeyReducer -v false;
FBXExportInAscii -v true;
FBXExportEmbeddedTextures -v false;
FBXExportShowUI -v false;
FBXExport -f ($savePath) -s;pymel
import pymel.core as pm #pymel line 70 only use
pm.FBXExport("-f",FullFilePath+"_pymel_mel_FBXExport","-s")python
cmds.FBXExportApplyConstantKeyReducer('-v',True) #FBXのreductionオプション切り替えがうまくいってない。
cmd.FBXExportApplyConstantKeyReducer が機能してないので、
maya.mel.eval("FBXExportApplyConstantKeyReducer -v false")でつまりmelでやるしかないようだ。
cmds.FBXExport("-f",FullFilePath+"_UnKeyReduction","-s") #OK-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
参考サイト
MayaのFBXExportコマンド
http://qiita.com/it_ks/items/8d8f18f6fc359efcd726) - | whaison | MayaPython | 22:41 | comments(0) | - | pookmark |
- 2016.09.15 Thursday
- Maya Windows bat cmd バッチファイルから mayabatch.exe -command "melStart()"
-
:: ====================================
:: Maya用Windowsバッチファイルです
:: 0030 mayabatchの変数宣言 C:¥Program Files¥Autodesk¥Maya2016¥bin¥mayabatch.exe cmd
:: 0050 作業ディレクトリ変数宣言 %AutoWorkSpace% cmd
:: 0100 作業ディレクトリへ移動 cmd
:: 0200 直下の複数のフォルダパスを保存 cmd
:: 0310、mayabatch.exeのディレクトリ C:¥Program Files¥Autodesk¥Maya2016¥bin へ移動 cmd
:: 0311 Maya Bin mayabatch.exeの入っている ディレクトリチェック dir /b cmd
:: 0320 Mayaに送るコマンドを変数 CommandSendTxt にいれる cmd
:: 0340 エスケープするパスの¥を/に検索置換する cmd
:: 0341 formtPathStr の表記テスト cmd
:: 0345 実行するコマンドを定義 cmd
:: 0350、Mayaを起動する新規ファイルで cmd
:: 0400、ワークスペース設定にフォルダパス渡して mel
:: ====================================AutoMayaBatch_CharaDir_v003.bat
で呼ばれるmelがこれ
mayabatch.mel
コマンドからだとなぜか 「deleteEmptyAnimLayers.mel見つかりません」とかいわれるから C:¥Users¥UserName¥Documents¥maya¥2016¥ja_JP¥scripts に deleteEmptyAnimLayers.mel 追加 - | whaison | MEL(Maya Embedded Language) | 16:53 | comments(0) | - | pookmark |
- 2016.09.14 Wednesday
- mel エラー : 読み取り専用のノードの名前は変更できません。
-
mel エラー : 読み取り専用のノードの名前は変更できません。
リファレンスインポート後
リファレンスのリグからジョイントをベイクしたあと
名前を変更しようとしたがこの" mel エラー : 読み取り専用のノードの名前は変更できません。 "
変更負荷を無視しようと
if ( catchQuiet ($resultName=`rename $renameObj $newname`) )
{
print("416出ちゃったよーー 読み取り専用のノードの名前は変更できません。$procName="+$procName+"¥n");
if($procName == "rig_to_joint_bakemotion_fbx_v1103_proc062_DeleteNameSpace")
{
print("もう次いくわよ rig_to_joint_bakemotion_fbx_v1103_proc071_ExportSetting()");
rig_to_joint_bakemotion_fbx_v1103_proc071_ExportSetting();
}
print("もう一回やれてる?");
}rig_to_joint_bakemotion_fbx_v1103_proc068_renameReadWriteCheck.mel
したがそもそも実行されないとダメなので
もう一度 再度リファレンスをインポートするといい感じに renameができるようになった が。。 選択があやしく select -allDagObjects; select -hi; 全選択へ修正して
そのあとの処理をしたらうまくいった。
//010 開始フレームを0フレームにする。 rig_to_joint_bakemotion_fbx_v1103_proc010_init_offset();
//020 参照してるリファレンス達をループしてファイルにインポートする。1 rig_to_joint_bakemotion_fbx_v1103_proc020_referenceImport()
//031 OriginalJointの取得と選択 rig_to_joint_bakemotion_fbx_v1103_proc030_selectOriginalJoint()
//040 ジョイントに移動XYZ回転XYZをベイク rig_to_joint_bakemotion_fbx_v1103_proc040_selectedJointBakeTranslateXYZRotateXYZ()
//040
//041 拡大縮小のジョイントがあった場合ベイク rig_to_joint_bakemotion_fbx_v1103_proc041_selectedJointBakeScaleXYZ()
//050 ベイクした骨がジンバル回転ロックしないようオイラーフィルタ rig_to_joint_bakemotion_fbx_v1103_proc050_RotateUnLockEulerFilter()
//060 不要なノードの削除、delete 空のレイヤも削除 rig_to_joint_bakemotion_fbx_v1103_proc060_DeleteDustNode() string $reference[] = `file -q -reference -shortName`;
//061 シーンサイズの最適化 rig_to_joint_bakemotion_fbx_v1103_proc061_cleanUpScene(); cleanUpScene (3);
//063 リファレンスファイルにインポートする。これをしないとリファレンス参照が邪魔して読み取り専用のノードの名前は変更できません。 rig_to_joint_bakemotion_fbx_v1103_proc063_referenceImport2()
//065 ネームスペースの削除 rig_to_joint_bakemotion_fbx_v1103_proc065_DeleteNameSpace2()
//068 rename拡張のチェックと新ネーム設定 rig_to_joint_bakemotion_fbx_v1103_proc068_renameReadWriteCheck(string $renameObj ,string $newname ,string $procName)
//071 エクスポーター設定 rig_to_joint_bakemotion_fbx_v1103_proc071_ExportSetting()
//074 OriginalJointの取得と選択 rig_to_joint_bakemotion_fbx_v1103_proc074_selectOriginalJoint()
//077 先頭文字プレフィックスを削除 rig_to_joint_bakemotion_fbx_v1103_proc077_DeletePrefix()//080 RootノードのZ出力 rig_to_joint_bakemotion_fbx_v1103_proc080_RootTranslateXZoutput()
//081 RootXZの移動キー削除 rig_to_joint_bakemotion_fbx_v1103_proc081_RootTranslateXZdeleteKeyframe()
//082 FBX保存 rig_to_joint_bakemotion_fbx_v1103_proc082_FbxExport()こんな流れにした。
- | whaison | MEL(Maya Embedded Language) | 21:10 | comments(0) | - | pookmark |