ON-BLOG

CGのこと、あれこれ書いてます。

【覚書】maya python入門 其の十一

かなり番外編ですが、11…





とある理由でデータが壊れる事があったので、MAYAで自動バックを作成する
ツールを作りました。



このスクリプトはセーブ実行時にそのデータを指定フォルダに
コピーし、日時で細かく管理、バックアップするツールです。
誤ってセーブしてしまい、一個前に戻りたい…
とかいう時に使用して下さい。
個人的に、あまりナンバリングをシーンにつけるのが
好きじゃないので作成しています。
私はナンバリング派だから。
という人はスルーして下さい。


下記に記載している、コマンドを「AutoBackUP.py」として保存し

C:\Users\ユーザー名\Documents\maya\バージョン\ja_JP\prefs\scripts
英語の場合は
C:\Users\ユーザー名\Documents\maya\バージョン\prefs\scripts
に配置して下さい。

んでMAYA起動。
その後このスクリプトをセーブのショートカットに割り当てます。
手順は以下の通り。
まずはホットキーに新規マッピングします。
マッピングは以下の所から変更できます。
f:id:tommy_on:20150807170317j:plain

続けて
ホットキーエディタで、コマンドを作成します。
「カテゴリー」から今回は「File」を選択します。
f:id:tommy_on:20150807170448j:plain

さらに右下の「新規」を押して
下部にあるコマンドに以下のコマンドを入力してください。

import AutoBackUP
AutoBackUP.Auto()

f:id:tommy_on:20150807170257j:plain

入力が完了したら、ホットキーを割り当てます。
右上にある、「新しいホットキーの割り当て」
にて、ご自身の好きなコマンドを割り当ててください。
私はショートカットのセーブ時に必ず行いたいので
「Ctrl+S」にしてます。
なので、既存のセーブシーンの上書きです。
※普通のセーブシーンがホットキーから外れます。
後は下にある、「割り当て」を実行して下さい。
以上で完了です。

実行してみると、こんな感じになります。
これが実行前。
f:id:tommy_on:20150807170357j:plain

んで実行すると
f:id:tommy_on:20150807170352j:plain

こんな感じでプロジェクトフォルダのシーンフォルダ内に「Ver」と命名されたフォルダができます。
この中にバックアップデータができていきます。
f:id:tommy_on:20150807170339j:plain

画像にも書いてますが、セーブ事にできるので容量には気をつけて下さい。

あと、これは改善予定ではあるんですが、バージョン違いでシーンを開いた時は
このスクリプトがうまく適用できない事があるかと思います。
その時は、一度メニューのセーブを行なってから実行してみてください。
これで大概いけるはずです。

以上です。



以下コード

import maya.cmds as cmds
import os.path
import shutil
import datetime
 
def BackUPP():
    day = datetime.datetime.now()
    Time = day.strftime("%m-%d_%Hh%Mm%Ss")
 
    ScenePath = cmds.file( query=True, lastTempFile=True).rpartition( "/" )[0] 
    Scene_Name = cmds.file( query=True, sn=True)
    Scene_Name_Only = cmds.file( query=True, sn=True , shn=True)
 
    Path = ScenePath + "/ver/"
    if not os.path.exists(Path): 
        os.makedirs(Path)
 
    Rename = str(Path)+str(Scene_Name_Only)+"_"+str(Time)+".ma"
    shutil.copyfile(Scene_Name, Rename)
 
 
def Auto():
    cmds.file( save=True)
    BackUPP()