最後の旅を始めよう

-黒の英雄譚・零-

キュウカンバーハーベスト

2024年07月24日 | その他・スクリプト

気が付いたら
胡瓜がすごい大きくなっておりました。




持ってみると、
この大きさが伝わりますかね?
そうでもありませんかね?




この調子なら、
今年の夏は胡瓜食べ放題になりそうですね。


折角なので、
ちょっと尖ったものを作ってみたいと思い
蜂蜜と胡瓜でメロンの味に成るという民間伝承に基づいて
疑似メロンソーダを作ってみました。




摩り下ろした胡瓜に蜂蜜を混ぜたものをサイダーで割ってみました。




味としては、一口目は
「あれ?これちゃんとメロンソーダじゃね?」と思うのですが、
飲んでるうちに「あ、やっぱ胡瓜だ…」となる感じでした。
スプーン一杯くらいなら騙せるかもしれません。



残りの胡瓜は・・・



ポテトサラダと



冷やしきつねうどんにして食べました。


ジャガイモや、紫蘇、オクラなんかも自家製のものなので、
食料自給率30%には成りましたかね。


目指せ100%!!

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

豆苗が帰ってきた

2024年07月20日 | その他・スクリプト


アクアポニックスの豆苗が
凄い勢いで大きくなりました。




家で採れたエンドウ豆を使ったものですが、
もともと豆苗だったものが
再び豆苗になるというのもなんだか感慨深いものですね。


折角なので、ずっと作ってみたかった
ハチミツと四つ葉のクローバーのトーストを作ってみました。




思った通り、同じマメ科だけあって
豆苗の葉は、本物のクローバーと遜色無いですね。

実は・・・ずっと腑に落ちなかったのですよ。

皆で探して見つからなかったものを
たった一人で何枚も用意できるものなのか?
そもそも、四つ葉のクローバーを贈るのであれば
普通は押し花とかでしょうし、
食用でもない雑草を
パンに挟んで食べさせるのは
もう完全に奇行ですよね・・・

ただ、もしあれが豆苗だったとしたら
その辺の謎がいっぺんに解決する訳ですよ。
あの娘なら、そういう事。思いついてやりそうですし・・・
豆苗であれば、むしろお洒落なサンドウィッチという感じで
全く不自然ではないですよね。





そんな感じで、
この機会に試してみたら
ちゃんとそれらしいものが出来上がったので
この考察は、結構妥当なのではないかと思っております。

まあ、整合性は取れたとしても
引き換えに、雰囲気をぶち壊してはしまいますが・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MAYA Python どっ基礎講座‗04 『コマンドリファレンスの使い方』

2024年01月04日 | その他・スクリプト
前項
MELのログをPythonに翻訳し並べる事で
Mayaの操作をスクリプトに置き換える事が出来る様になりました。


しかし、この方法では
ログに表示されない様な、詳細設定を行いたい場合には限界があります。
そんなときに使えるのが「コマンドリファレンス」です。




コマンドリファレンスの使い方




それでは試しに「spaceLocator」コマンドを調べてみたいと思います。

スクリプトエディタの
[ヘルプ]>[Pythonコマンドリファレンス]
からコマンドリファレンスを開きます。

もしくは以下のURLから直接飛ぶ事も出来ます。
https://help.autodesk.com/view/MAYAUL/2024/JPN/index.html?contextId=COMMANDSPYTHON-INDEX




「By substring(s)」に「spaceLocator」と記入すると
「spaceLocator」関連のページがアソートされます。





「spaceLocator」のページを開くと、このコマンドの情報が閲覧できます。
特に「フラグ」の項目に注目です。コマンドで出来る設定がこれになります。





試しに「name」フラグ欄を参照して、名前を設定したロケータ作成をしてみましょう。





引数タイプが「string」となっているので「”」で囲む文字列として記入します。

#---------------------------------------------------------------------------------------------------
import maya.cmds as cmds
cmds.spaceLocator( name ="TestName" )

#---------------------------------------------------------------------------------------------------


これを走らせると「TestName」という名前のロケータを作成出来ます。

この様にコマンドの詳細を調べる事で可能性が広がりますので
コマンドリファレンスは使い慣れておく事をオススメ致します。



それと、少し裏技的な使い方になりますが
MELをPythonの文法に翻訳するのが面倒なときは
リファレンスページの下の方にある「Python 例」に
文法も載っておりますので、これをコピペするとちょっぴり楽出来ます。






次項 → 05_条件分岐
前項 → 03_MELのログをPythonに翻訳
一覧へ

関連-------------------------------------
Python_MAYA機能メモ
Python_MAYA_ちょっとしたツール集
Python_エラーメモ
編集

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「Google Colaboratory」の使い方備忘録

2023年06月10日 | その他・スクリプト
「StableDiffusion」関連で「Google Colaboratory」を触る機会があったのですが、
これが思った以上に良いサービスでしたので、使い方の備忘録も兼ねて記事を書こうと思います。


まずは 使い方 として。
「Googleドライブ」の「マイドライブ」を右クリック、もしくは、「新規」から
「その他」>「Google Colaboratory」から開く事が出来ます。
(初回はインストールされていないので「アプリを追加」からインストールする必要があります)





「Google Colaboratory」は、本来AI開発が目的ですが、
Pythonを使用する為の環境が驚くほど手軽に用意出来るので、簡単なツールとかも作るのにも良さそうですね。
そんな感じで、試しに簡単な資産増加シミュレーションを作ってみました。

# 資産増加シミュレーション
#----------------------------------
# 元本
iPrincipal    = 0
# 年アタリの出資額
iFinancing    = 200
# 利率
iInterestRate = 0.05
# 運用年数
iOperation    = 20
#----------------------------------
iAssets = iPrincipal
for i in range( iOperation ):
  iDividend = ( iAssets + iFinancing ) * iInterestRate
  iAssets   = iAssets + iFinancing + iDividend
  print(str(1+i)+"年目 "+"-"*30+" \n  資産:"+str(round(iAssets))+"  配当:"+str(round(iDividend))) 



・・・社会人一年目から投資を始めていれば
今頃、FIRE出来ていましたね。。。

・・・十年前に任天堂株を買いたかった・・・



関連-------------------------------------
Python_ネイティブ機能メモ

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

html javascriptメモ

2022年06月23日 | その他・スクリプト
html javascriptの備忘録的なものです。
自分用のメモですので、なんだか見難くて申し訳ありません。
gooブログでもシンタックスハイライトとか出来ればいいのに・・・


#現在のファイル名を表示
<script>
document.getElementById('ID_EditArea').textContent = window.location.href;
</script>

#変数の受け渡し(<が全角で書かれております)
<div id="idView"></div>
<script>
var oStr = "これは特に意味も無い文章の羅列です";
document.getElementById("idView").innerHTML = oStr ;
</script>


関連-------------------------------------
編集

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

KawaiiPhysics の使い方

2022年04月04日 | その他・スクリプト
これは、KawaiiPhysics の使い方の備忘録的なものです。


KawaiiPhysics は、
おかずさん作成のUnrealEngine用の揺れもの物理プラグインです。
アニメ風のキャラクターの髪等を簡単かつリアルに成り過ぎない揺れ方をしてくれます。
https://github.com/pafuhana1213/KawaiiPhysics


1.プラグインの適用
以下より、UEの対応したバージョンをダウンロードします。

ダウンロード
https://github.com/pafuhana1213/KawaiiPhysics/releases/

プロジェクトファイル内に[Plugins]フォルダをコピーする


2.ノード作成
アニメーションBPを開き[AnimGraph]から[KawaiiPhysics]ノードを作成し
[出力ポーズ]に繋ぎます。


3.設定
[PhysicsSettings]
Damping(減衰)0.2
WorldDampingLocation 0.8
WorldDampingRotation 0.8
Stiffness(剛性)0.005
Radius(コリジョンの半径)
LimitAngle(限界角度)50

※コリジョンをヴューに反映させる為には一度コンパイルを行う必要がある




関連-------------------------------------
編集
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Python_エラーメモ

2021年12月20日 | その他・スクリプト
MayaPythonの備忘録的なものです。
自分用のメモですので、なんだか見難くて申し訳ありません。


#invalid syntax構文エラー
原因:Pythonの文法が間違っている
やりがちなのが、全角スペースを使っている、インデントが揃っていない等

#RuntimeErrorランタイムエラー
原因:プログラム実行の際に必要な部品や素材が見つからない場合に起こる
例)存在しないアトリビュートを指定してしまう等

#TypeErrorタイプエラー
原因:文字列型に対して演算する等、型に合わない処理を行うと起こる

#ValueErrorバリューエラー
原因:関数が対応できない値を渡した場合に起こる
例)数字以外の文字列を整数型に変更する等

#IndexErrorインデックスエラー
原因:リストの範囲外のインデックスを指定している
lList[5]←ここの数値をチェック

#AttributeErrorアトリビュートエラー
原因:オブジェクトの型を間違えている(文字列にリストを追加しようとする等)
ちなみにMAYAのアトリビュートとは関係無いので混乱注意

#UnicodeDecodeErrorユニコードエラー
原因:指定と読み込みで文字コードの設定が異なる
「ascii」になっていると言われた場合は
「u"文字列”」の様に頭に「u」をつけてユニコードを指定すると回避可能

#UnboundLocalアンバウンドローカルエラー
原因:変数を割り当てる前に参照しようとする
エラーログに該当の変数名が出るので、そこから確認していけば大抵解決できる


関連-------------------------------------
Python_ネイティブ機能メモ
Python_xlrd機能メモ
バッチ作成メモ

Python のよくある基本的なエラーと確認方法まとめ『キカガクの技術ブログ』

編集
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

UEメモ

2021年12月01日 | その他・スクリプト
【アニメーションBP作成方法】
「追加/インポート」(右クリックでも開ける)から[アニメーション]>[アニメーションBP]で作成
そのアイコンをダブルクリックして編集画面を開き「新規ステートマシン」からステートマシンノードを作成
「出力ポーズノード」の「Result」に接続
ステートマシンを開きステートを追加し「Entry」と接続。
ステートの編集画面を開きアニメーションノードを読み込んで「アニメーションポーズを出力」ノードの「Result」と繋ぐ
最低限の構造はこれで動く。

あとはアニメーションクラスにこのBPを指定する事でメッシュの対応が可能となる
(UE4の場合モーションデータは0フレーム開始の方が扱い易い)

【アクションをキーに割り当て】
[編集]>[プロジェクト設定]>[エンジン]>[インプット]から
「アクションマッピング」の「+」から新規のキー割り当てを追加する
キャラ操作のBPクラスを開き
「イベントグラフ」タブ内にキー操作のアルゴリズムを組む
まず、右クリックでノード作成メニューを開き
[インプット]>[アクションイベント]から先程作成した新規のキー割り当ての
インプットアクションノードを作成する
ボタンを押した信号を受け取る為の変数(ブール型)を作成し
その変数ノードを二つ作成しブールのチェックを入れたものと外したものにしておく
インプットアクションノードの
「pressed」とチェックを入れた変数と繋ぎ
「Releasend」とチェックを外した変数と繋ぐ
アニメーションBPから「イベントグラフ」を開き
設定したキャラ操作のBPをキャストノードとして読み込む
ノード作成メニュー[ユーティリティ]>[キャスティング]
(量が多いので検索で探した方が早そう)
「GetPlayerCharacter」ノードを作成しキャストノードの「Object」に接続
更に「As[キャラ操作BP名]」をドラックで何も無い空間を選び
ノード作成メニュー[変数]>[デフォルト]から作成した変数を選択して
出力ノードを作成する
新規でステートマシンにフラグを流す用の変数(ブール型)を作成し
出力ノードと接続
アニメーションBPのステートマシンを開き、新規ステートを作成
ボタンを押した際に再生したいモーションを出力と接続する
アイドルのステートと作成したステートを遷移と戻りで繋ぎ
遷移条件にはステートマシンにフラグを流す用の変数と繋ぎ
戻り条件には「TimeRemaining」終了の「<」の計算で繋ぐ


【モーションリターゲット】(骨名が統一されている場合)
まずスケルタルメッシュをインポートする
読み込んだスケルトンに右クリックメニューから
[作成する]>[リグを作成]からリグを作成する
(このとき必要のない骨は除く事が出来る)
このリグをソースとターゲット両方のスケルトンに適用する
スケルトンエディタを開き[リターゲットマネージャー]タブの
[リグを設定]から[リグを選択]のプルダウンメニューから設定
リターゲットしたいモーション(アニメーションシーケンス)を選択し
右クリックメニューから「Arnimアセットをリターゲットする」を選択
リグの適用されているスケルトンからターゲットモデルのものを選択し
書き出し先のフォルダを指定し[リターゲット]を押す


【ルートモーション】
ルートモーションの移動分をプレイヤーの移動にも反映する
アニメーションアセットから
[アセット詳細]>[ルートモーション]>[EnabelRootMotion]にチェック
アニメーションブループリントから
[クラスのデフォルト]>[ルートモーション]>[Root Motion Mode]>[Root Motion from Everything]


【揺れもの設定】
物理アセットから骨をシミュレーション制御する場合
物理アセットを作成後、任意の骨に[ツール]>[ボディ作成]から
コリジョンを作成する(コンストレインも同時に作成される)
コリジョンのサイズを調整したら右クリックメニューを開き
[コリジョン]>[すべてのコリジョンを有効にする]でコリジョンを有効にする
[シミュレート]から状況を確認出来る
シミュレーションを入れたくないコリジョンは[物理タイプ]を[キネマティック]にする
移動制限を設ける場合は、コンストレインの[Angular Limits]の設定を[Limited]にして
制限値を指定する
また、重力の影響を受けにくい軽いものを設定する場合は[物理]>[Linear Damping]を上げる
[PhysicsType]を[Simulated]にする事でアイテムのシミュレーションが常に入る


【KawaiiPhysics】
ダウンロード
https://github.com/pafuhana1213/KawaiiPhysics/releases/
プラグインを設定し、ノードを作成して出力とモーションの間に繋ぐ
[PhysicsSettings]
Damping(減衰)0.2
WorldDampingLocation 0.8
WorldDampingRotation 0.8
Stiffness(剛性)0.005
Radius(コリジョンの半径)
LimitAngle(限界角度)50

※コリジョンをヴューに反映させる為には一度コンパイルを行う必要がある

【プラグイン設定】
・プロジェクト単位でプラグインを適用する場合は、
プロジェクトフォルダ内に「Plugins」フォルダを作成しそこに入れるだけで適用させる
・エンジンのプラグインでエラーが出てプロジェクトが立ち上がらない場合
プロジェクトフォルダ内にある「.uproject」ファイルをメモ帳で開くと
「 "Plugins": [ 」が追加されているので、その中のエラーの原因のプラグインを消せば
プロジェクトは立ち上がる様になる


【シーケンサーのセットアップ】
1、シーケンスの追加
インターフェース左上にあるカチンコアイコンから
「レベルシーケンスを追加」>シーケンサーの保存先を決め「保存」
2、カメラの追加
シーケンサーのカメラアイコンから「カメラ」を作成
アニメーションをFBXから呼ぶ場合は「CameraComponent」の名前をFBXのカメラと揃え
右クリックメニューから「インポート」で読み込む
(このときZupX正面として読み込まれるので
「Cine Camera Actor」の回転Xに90°を入れオフセットしてやる必要がある)
3アクターの追加
スケルタルメッシュをシーケンサーにドラック&ドロップでアクターとして読み込む
「アニメーション」の「+」アイコンからモーションを適用

【ニアクリッププレーン】
UEのニアクリップ情報は「プロジェクト設定」に持っている
[プロジェクト設定]>[エンジン]>[基本設定]>[設定]>[平面近傍のクリップ]
※設定後は再起動の必要アリ

【カメラの切り替え・シーケンサーの再生】
https://unrealengine.hatenablog.com/entry/2015/09/26/215004
https://lunanelis.hatenablog.com/entry/2021/02/24/022220
切り替えというよりは同期と言った感じか?

【別レベルでシーケンサーを再生】
基本的にはブループリントでレベルとシーケンサーを両方呼ぶ事で出来る
1、別レベルとそれに対応したシーケンサーを用意する
2、「ウィンドウ」>「アクターを配置」>「TriggerBox」から
マップにトリガーボックスを配置する
3、プループリントアイコンから「レベルブループリント」を開き
作成したトリガーボックスを選択した状態で「On Actor Begin Overlap」ノードを作成
4、「OpenLevel」ノードを作成し、開くレベル名を指定して
「Add On Actor Begin Overlap」と接続する
これでトリガを踏むと任意のレベルに飛べる様になる
5、次は呼ぶ側のレベルに移行したらシーケンスを再生するという命令を組む
呼ぶ側のレベルに再生したいシーケンサーを置き「レベルブループリントを開く」
6、まずは「EventBeginPlay」ノードを作成し、イベント開始トリガーとする
アウトライナ等から呼び出したいシーケンサーを選択した状態で
ブループリントエディタの右クリックメニューからシーケンスのリファレンスノードを作成し
参照からドラッグして「Play (SequencePlayer)」ノードを作成する
それを「EventBeginPlay」ノードと接続する
これでトリガを踏むと別レベルに飛んでシーケンサーが再生される

【別レベルから戻ってくる】
別レベルでシーケンサーを再生した後に元のレベルに戻る方法
1、再生するシーケンサーに「イベントトラック」を作成し、動画の最後にキーを打つ
2、キーの右クリックメニューから「プロパティ」>「イベント」のプルダウンメニューから
「新規エンドポイントを作成」を選ぶとブループリントにエンドポイントが作成される
3、エンドポイントの実行からドラッグして「OpenLevel」ノードを作成して
開くレベル名を指定する事で、シーケンサーが終わると該当のレベルに戻れる
https://historia.co.jp/archives/10445/


【プレイヤーキャラの操作】
プレイヤーの方向をカメラに追従させる
[CharacterMovement]>[ポーン]>[Use Controller Rotation Yaw]
プレイヤーの方向をキー入力に合わせる
[CharacterMovement]>[キャラクタ移動(回転設定)]>[Orient Rotation to Movement]


【マテリアル】

【Lumen】
https://www.youtube.com/watch?v=nfGhrZLMY9g
【MatCapマテリアル】
https://www.youtube.com/watch?v=oaPCR3_vzRY
【マンガで使う!初めての Unreal Engine】
https://www.youtube.com/watch?v=aPpcflAxbtg


【GPUビジュアライザー】
[Ctrl] + [Shift] + [,]

【Stat コマンド】
ゲームの情報を表示するコンソール コマンド
ゲーム再生中に「@」を押すとプレビュー下部に開かれるのでそこに任意のコマンドを入れる
https://docs.unrealengine.com/4.26/ja/TestingAndOptimization/PerformanceAndProfiling/StatCommands/


【UE5・Python】
https://docs.unrealengine.com/5.0/ja/control-rig-python-scripting-in-unreal-engine/
コントロールリグのPythonログ
コントロールリグエディタを開いた状態で「ウィンドウ」>「メッセージログ」を開き
「コントロールリグのPythonログ」からログを確認できます。
アウトプットログ
Pythonのスクリプトテストはアウトプットログの入力から行えます。
その際、モードは「Python」にしておく必要があります。


【UE5・コントロールリグ】
モーション編集
任意のレベルにリグをD&Dすると「アニメーションモード」に切り替わる
「セクション」を右クリックして「このセクションにアニメーションシーケンスをインポート」から
任意のアニメーションシーケンスを読み込む事で、そのモーションをリグコントローラに焼き込める。
編集した、モーションをアニメーションシーケンスとして扱う場合、
「スケルタルメッシュコンポーネント」を右クリックで「リンクされたアニメーションシーケンスを作成」で
書き出すフォルダを指定し「アニメーションシーケンスにエクスポート」を押します。


【UE5・コンパーチブルスケルトン】
別スケルトンアセットのモーションを参照出来る様にする
スケルトンアセットエディタから「ウィンドウ」>「アセット詳細」でアセット詳細を開き
「Comoatible Skeletons」欄の「+」で参照スケルトンアセット覧を追加して、
そこに任意のスケルトンアセットを設定する

そのままだと体形(骨の移動値)を直に反映してしまうので、
スケルトンツリーの設定(歯車アイコン)から「リターゲットオプションを表示」で
「トランスレーションのリターゲティング」列を表示し、
「Animaition」を「Skeleton」に変更すると回転値のみを参照する様になります。
ちなみに、右クリックメニューから「移動リターゲティングスケルトンを再帰的に設定」で
子供もまとめて変更する事が出来ます。
ただし、腰の骨をこの設定にしてしまうと、上下移動等が死んでしまいます。



関連-------------------------------------
編集
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excel vba メモ

2021年10月26日 | その他・スクリプト
Excel vba の備忘録的なものです。
自分用のメモですので、なんだか見難くて申し訳ありません。
gooブログでもシンタックスハイライトとか出来ればいいのに・・・


#メッセージボックス
MsgBox "これは" & vbCrLf & "特に意味もない文章の羅列です"

#セルの中身を獲得
Dim oGetCell As String
oGetCell = Cells(2, 1).Value

#セルに情報入力
Cells(2, 1).Value = ”入力情報”

#データテーブルをコピー
Range("A1:C3").Copy
Range("E1").PasteSpecial Paste:=xlPasteValues

#繰り返し処理
For i = 1 To 10
MsgBox Cells(i, 1).Value
Next i

#最終行と列を取得
Cells(Rows.Count, 1).End(xlUp).Row '列
Cells(1, Columns.Count).End(xlToLeft).Column ’行

#該当Excelブックを読み取り専用で開く
Dim oWB As Workbook
Set oWB = Workbooks.Open(Filename:="D:/Book.xlsx", UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

#ブックを閉じる
Call oWB.Close

#文字列操作
'文字列分割
Dim oSplit As Variant
oSplit = Split("BLACK_RX", "_")
MsgBox oSplit(0)
MsgBox oSplit(1)

#指定値(BLACK)セルの隣の値を取得
Dim oTargetCell As Range
With Range("A1:H8")
    Set oTargetCell = .Find("BLACK", LookIn:=xlValues, LookAt:=xlPart)
    If Not oTargetCell Is Nothing Then
        MsgBox Range(oTargetCell.Address).Offset(0, 1).Value
    End If
End With


関連-------------------------------------
Python_ネイティブ機能メモ
バッチ作成メモ
編集
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

バッチ作成メモ

2021年09月29日 | その他・スクリプト
バッチ作成の備忘録的なものです。
自分用のメモですので、見難くて申し訳ありません。
gooブログでもシンタックスハイライトとか出来ればいいのに・・・

バッチは、コマンドプロンプトを使用して
Windowsを直接操作していく事になります。


#基本的なコマンド
rem コメントアウト
@Echo off
@Echo (echo offの状態でもエコーする)
@Set oVariable="変数のセット"
@Pause ボタンが押されるまで処理を止める
@Exit 処理を終了

#投げられたデータを取得
cd /d %~dp0

#遅延環境変数の展開
@SetLocal EnableDelayEdexpansion
rem [!]で囲む事で変数が処理中に使える様になる

#文字列
rem ---文字列置換---
@Set oPath="D:\Rider\Amazon\"
@Echo %oPath:Amazon=STRONGER%

rem ---文字列の分割と取得---
@Set oDataName="Rider_BLACK_RX"
@For /f " tokens=2 delims=_" %%a in (%oDataName%) do @Set oSplit=%%a
@Echo %oSplit%

#ファイルコピー
@Copy D:\__test\test.bat D:\_BackUp

#fフォルダ内のファイルをコピー
@For %%i in (*.asset) do (
copy %%i D:\__test\back > nul
)

#繰り返し処理でバッチに投げたファイル名を表示
cd /d %~dp0
for %%i in (%*) do (
  @Echo %%i
  @Echo "----------------------"
)


#投げたfbxファイルをキャラ番号毎のフォルダにコピーする
@Echo off
@SetLocal EnableDelayEdexpansion
rem @Set oPath="D:\__test\_back\chara_pNo\Motion\"
cd /d %~dp0
for %%i in (%*) do (
  rem "--キャラ番号を抽出--------------------"
  for /f " tokens=2 delims=_" %%a in ("%%~ni") do @Set oSplit=%%a
  rem "--コピー先パスを生成--------------------"
  @Set oDestination=%oPath:pNo=!oSplit!%
  rem "--ファイルをコピー--------------------"
  if %%~xi==.fbx @Copy %%i !oDestination!
)
@Pause

#Mayaバッチ
@echo off
cd /d %~dp0
set oPythonFile="StandaloneAppl.py"
set oMayaExePath="C:\Program Files\Autodesk\Maya2018\bin\mayapy.exe"
for %%i in (%*) do (
    %oMayaExePath% %oPythonFile% "%%i"
)
@Pause


#バッチを投げた際にMaya側で投げたファイルを読み込む(Python)

import argparse
import maya.standalone
import maya.cmds as cmds

maya.standalone.initialize()

oParser = argparse.ArgumentParser()
oParser.add_argument('-s', '--select')
oParser.add_argument('inputFilePath')

oArgs = oParser.parse_args()
oInputFilePath = oArgs.inputFilePath

cmds.file( oInputFilePath, force =True, options ="v=0", ignoreVersion =True, open =True)





関連-------------------------------------
遅延環境変数とは―「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
バッチファイルでファイルパスからファイル名や拡張子を自由に取り出す方法
Python_MAYA機能メモ
編集
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする