3DCG屋さんの活動記録

PROFILE ★★こんな人です

映像制作会社でクリエイティブの修行中。日ごろはMaya&AEを中心にいろんなCGソフトを触りながら、TD寄りの作業が好きで、インタラクティブな体験型空間演出をやりたいと模索中。面白いこと新しいこと大好きな『素直』でいつづける

2020年4月30日木曜日

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


PythonファイルからMac用のappを作成するのに

pyinstallerで作成されたappを実行してもGUIが表示されない
色々試しても、ダメでした。。

Mac Python3.7


そしたら、 py2app ならいけるかも、とのことで
試したら・・・

イケた!

実行ファイルのダウンロードはこちら。
Mac用 appファイル → pycp2_v2.2_mac.zip
Windows用の exeファイル → pycp2_v2.2.exe



以下、メモ。
--------------------------------------

ターミナルで以下を実行

(1)pipでpy2appをインストール

 pip3 install py2app


(2)setup.pyを作成

"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['<pythonファイル名.py>']
DATA_FILES = []
OPTIONS = {}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)
<pythonファイル名.py>部分を書き換え



(3)py2appを使って、.pyから.appを作成
ターミナルを起動して、cd で setup.pyファイル がある場所まで移動。

python3 setup.py py2app

pythonファイルのある場所に dist フォルダができるので
その中に.appファイルが作成されているのを確認。

以上



------------------------------------------------
参考サイト
https://code-graffiti.com/create-native-mac-application-on-py2app-in-python/

2020年4月29日水曜日

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


えーと、なんとか形になった前回ですが。。

Macでも必要とのお声をいただき
個人的にも初めてのMacでのPython開発することにしました。


⬛️まずMacでPython開発する準備
https://qiita.com/shaia-66/items/a34605596d9feda160a4

1. Atomインストール

2. 追加パッケージをインストール
    atom-runner と script

3.Atomで実行されるPythonを3.xxにする

※ config修正内容まとめ。
 実行パッケージごとに書き換えファイル違う。
   Atom/Preference/Open config Folder
 で設定フォルダを開き、以下ファイル修正。

 atom-runner(control + r)なら
  .atom/packages/atom-runner/lib/atom-runner.coffee
  python: 'python' ➡︎ python: 'python3'

 script(command + i)なら
  .atom/packages/script/lib/grammars/python.coffee
  command: 'python' ➡︎ command: 'python3'


------------------------------------------------------------
⬛️続けて、Pythonファイルを実行ファイルに変換する

4. Python3インストール
5. PythonをMacの実行ファイルにするために pyinstaller をインストール


「ターミナル」で実行

pip3 install pyinstaller

ここで、pipではうまくいかなかったので pip3 でやりました

あと、pipが古い と出たので以下で更新

pip3 install --upgrade pip

これで ターミナルからイカを実行して、pkgの実行ファイルへ変換できます

pyinstaller <Pythonファイルパス> --onefile

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


ただ、Macで作成されたappファイルを起動しても
何も表示されない・・・・
python3.6までしか対応していない?(環境は3.7)


とりあえず、AtomではGUI起動できているので
また今度WIndowsでEXE化検証してみる。


pycp2_v2.1.py

今日はここまで。

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(バッチファイル)はこちらからダウンロードできます


以上です。