3DCG屋さんの活動記録

PROFILE ★★こんな人です

3DCGを活用した映像や没入体験コンテンツの制作をしています。テクノロジーの社会実装に興味があり。テクニカルディレクター。面白いこと新しいことにワクワクする気持ちに『素直』でいつづける。

2020年4月27日月曜日

Python 備忘録 ドラッグアンドドロップしたパスとパスの処理


■pythonでドラッグアンドドロップ(DD)したファイルのパス取得方法。

import sys
fpathEXE = sys.argv[0] #DD先のexeファイル自体(フルパス)
fpathTGT = sys.argv[1] #DD元のファイル(フルパス)


--------------------------------

■取得したフルパスから、フォルダ名までを取得する方法

import os
os.path.dirname(フルパス) #フルパスからディレクトリまでだけ抽出。末端のファイル部分は削除。


-----------------------------
■\でフルパスを分割

fpath = r"C:\Users\user\Desktop\pycopy\target.txt"
dList = fpath.split("\\") #フォルダを文字列で分ける
print(dList)
#['C:', 'Users', 'user', 'Desktop', 'pycopy', 'target.txt']





2020年4月25日土曜日

ファイルを親の階層ごとコピーするツール(完成への道)


2020.4.26追記
なんとかツールとしてはできました。
記事はこちら

以下は古い記事です。
--------------------------------------------------


あるファイルを1つ指定すると、

その親階層のフォルダごとコピーできるツールがほしい!


ってことで調べると、やけに高性能なツールはある。
特に、子階層のフォルダをコピーするのは多いが
親階層となると、欲しいツールがない。


ってことで自作することにした。


始めてGitHubを使って開発することにしたので
その記録メモ。

コードはこちら

<現状>
・Pythonでつくることにした(ver3.7)
・ドラッグアンドドロップを検知するまでできた(pyをexeに変換して)

<今後>
・コピー先のフォルダをテキストボックスで指定できるようにしたい
・親階層は何層上がるかプルダウンで指定できるようにしたい


完全独学で、作法もオリジナルなので
ご指摘いただけるとありがたいです。
・・・はたしてどれくらいの人が見てくれているかわかりませんが 笑 :)


2020年4月23日木曜日

2020年4月15日水曜日

UnrealEngine4のシーケンサーをコマンドラインでレンダリング


UE4のシーケンサー(Sequencer)をCommandlineからレンダリングする。


シーケンサーが複数ある、
書き出しフォルダ・ファイルの命名規則
がバラバラでヒューマンエラーやコストが高くなってきたので
コマンドラインで自動化!!!


参考サイト
https://docs.unrealengine.com/ja/Engine/Sequencer/Workflow/RenderingCmdLine/index.html



できた★

基本的にMayaのコマンドラインレンダーと同じ。

ちょっとエラーがあったので、備忘録。
以下。

---------------------------------------------
コマンドラインレンダ
エラー


<2020.4.15>
■bat実行しても、コンソール以外何も表示されない
→UE4Editor.exeのパスを正しく入力する
→プロジェクトのパスを正しく入力する
→Mapのパスを正しく入力する(GameがContentフォルダになります)


■UE4が起動されてMapが表示されるが、画像が保存されない
→レベルシーケンスのパスを正しく入力する


■解像度が反映しない
→ -windowed の引数を追加(参考サイト2
→ カメラのアスペクト比固定のチェックオフ

以上。

-------------------------------------------------
おまけで
bat中身



"C:\Program Files\Epic Games\UE_4.24\Engine\Binaries\Win64\UE4Editor.exe"
"<プロジェクトのフルパス ~.uproject>"
/Game/(マップのパス)
-windowed
-game
-MovieSceneCaptureType="/Script/MovieSceneCapture.AutomatedLevelSequenceCapture"
-LevelSequence="/Game/(レベルシーケンスのパス)"
-NoLoadingScreen
-resx=240
-resy=120
-forceres
-MovieFrameRate=30
-NoTextureStreaming
-MovieFolder="<保存先フォルダのフルパス>"
-MovieFormat=BMP
-MovieQuality=100
-MovieName="<ファイル名>"
-MovieCinematicMode=yes
-MovieWarmUpFrames=10
-MovieStartFrame=360
-MovieEndFrame=400
-NoScreenMessages




2020年4月13日月曜日

PythonファイルをEXEに変換(ドラッグアンドドロップしたファイルのパスを取得するため)


ドラッグアンドドロップしたファイルのパスを取得したい


.pyのファイルだとうまくいかない・・・


.pyを.exeに変換するといけるらしい!


Pyinstallerをつかうといいらしい
https://techacademy.jp/magazine/18963


pipからPyinstallerをインストール
https://qiita.com/huushihi/items/c7f578bf51c0017c9076



って、できた!

よしよし。


ちなみに、cmdのコンソールに
PythonでいうPrintは


sys.stderr.write("comment\n")

\nを最後につけないと表示されない



以上

--------------------------------------

<2020.4.24 補足>

■手順まとめ
①Python3.7をインストール (3.8はだめ?)
②pyinstallerを cmd の pip でPCにインストール
③コマンドプロンプトで以下実行

pyinstaller pythonファイル名 --onefile

④新規作成されたdistフォルダ内にexeファイルできている!


ここで注意!
③はpythonファイルがある場所にcdで移動してから!
フルパスだとエラーでexeファイルが作成されない


と思ったんですが、、、そうでもないらしい。
ちょっとよくわからないです。

とりあえず、毎回コマンドプロんプロ開いてっていうのも手間なので
PythonファイルをドラッグアンドドロップしたらEXE変換するbat作りました。
同じ階層にdistフォルダが作成されます。

BAT(バッチファイル)はこちらからダウンロードできます


以上です。

2020年3月17日火曜日

SlackApp自作  Mac⇔Windowsのパス変換App作成



GoogleCloudPlatformのCloudFunctionが月200万回まで無料らしい。
けど、200万回って会社で使ったら、決して多くない。。
ということで安心して無料で使える方法を探す!

社内のすっごい先輩に相談・・・30分後、
GAS使えばいいんじゃね?ってなる。

先輩すごい!!!神!!!!
GASで完全無料なSlackAppを作る


やってみた。

できた!!


ただ、Slackインストール後に実行したら

http_client_error

って出てエラーが出た。使えなかった。


で、以下の設定変更。

したら解決した。

なんで??






ちなみに、全てGASで完結?する方法もあるみたい。
それには、GOogleScriptのライブラリにSlackAPIを追加。
今回はなくても大丈夫だど。
翻訳SlackAPpすごいなー。




あとは、MacとWinのパスを自動認識して変換する、のを
GOogleScriptで実装するだけ。


Javascriptでいろいろやればなるでしょ!


if文とか、正規表現使った置換とか!




2020年2月13日木曜日

Arduino pro Mini にアップロードできないエラーはWindowsで解決!(雑メモ)


Macで色々やってもダメでした。
で、最終的にここのやり方+最新情報に更新してみる


最後にデスクトップにコピーした D2XX の中身を usr/local/lib にコピーするのは
以下のコマンドに修正!

sudo cp Desktop/D2XX/libftd2xx.1.4.16.dylib /usr/local/lib/libftd2xx.1.4.16.dylib@

シンボリックリンクを作る
sudo ln -sf /usr/local/lib/libftd2xx.1.4.16.dylib /usr/local/lib/libftd2xx.dylib@

が、なぜかゆうこうにならない?

kextstat | grep ftdi

しても

sudo kextload ftdi だったかな

しても
ドライバーが有効になりません。
Apple純正ドライバーを戻そう、と思ったがごみ箱は空!がびん


注意
ソース元 binフォルダはないので、ファイル名で検索すると確実。
該当ファイルはダウンロードしたD2XXドライバーのバージョンと同じです。

注意
もとあるAppleFTDIDriverは削除しない!あくまで無効にする。
・・・私は勢い余って削除してしまったので、気づいた時には時すでに遅し。。。
AppleDriverをさがすも見つけられず、とほほであきらめました。




サイト
上記ブログにもリンクあるけど一応
VCPドライバー
D2XXダイレクトドライバー、D2XXHelper



ーーーーーーーーーーーーーーーーーーーーーーーー


結論

私の今の力では、MacbookProでFTDIを使うことはできませんでした。
といことで、WINDOWSでやってみたら・・・できた!!!

あぁ、やっぱりそういうことね。
ハードの開発はWINDOWSがよさそうです。
肝に銘じておきます。

あとArduino pロ ミニニハビルドインLEDはないこと注意


以上!


あ、FTDIとAruinoprominiのピンの接続は大事!
最後の最後でこれを間違えてて3時間ほど費やしてしまった汗

とくに正規品じゃないArduinoはピンが逆になった足りするから注意!