3DCG屋さんの活動記録

PROFILE ★★こんな人です

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

ラベル コマンドプロンプト の投稿を表示しています。 すべての投稿を表示
ラベル コマンドプロンプト の投稿を表示しています。 すべての投稿を表示

2022年2月17日木曜日

資料画像集め Google画像検索を一括ダウンロード (Python)


Googleで検索ヒットした画像を一括ダウンロードしたい!!



手順

・インストール

pip install google_images_download


以上!


コマンドラインから実行(windowsボタン押して コマンドプロンプト)

googleimagesdownload --keywords "リンゴ"


※注意 カレントディレクトリに保存される



ここでエラー

フォルダは作成されるが、ファイルがDLされない。

Unfortunately all 10 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!


以下参考にして解決。

https://qiita.com/GeekMasahiro/items/8c5b6df476ce91adc698


改めてコマンド実行 →ダウンロードできた!!!


デフォルトだと100個までしかダウンロードできない。

ので、chromedriver.exeつかってリミット外す。

(参考サイト参照)


できた♥




Sample

googleimagesdownload  --keywords "検索文字列" -l 1000 -o "保存フォルダパス" --chromedriver "C:\Program Files (x86)\Google\Chrome\chromedriver.exe"



参考サイト

https://qiita.com/tomokin966/items/fdf14f4bfaa8bf97eed6

(オプションについて情報あり↑

https://pystyle.info/download-images-from-google-with-google-images-download/

https://qiita.com/Ikko_Kojima/items/4d943c60ff5e886a0544


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

さらにさらに

batバッチファイルにすれば、複数の検索処理をワンクリックでできるので便利!

ただし、キーワードに日本語を使うときは、エンコードをANSIにしないと文字バケする。







一緒にやったこと

・VisualStudioCode install

https://code.visualstudio.com/docs/?dv=win



・Git for windows install

https://qiita.com/taiponrock/items/632c117220e57d555099



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


ちなみにChromedriver.exe は以下に入れました。


C:\Program Files (x86)\Google\Chrome

2020年6月14日日曜日

ドラッグアンドドロップしたファイルをリストにして、任意のBatchファイルを作成するPythonツール その1


以前の記事の更新版です。

より、直感的に操作できるように改良。

最終的なゴールは、
こちらのサイトでやってる「シーンファイルをフォルダに入れて」の部分を
「GUIにドラッグしてリスト」にしたら便利じゃないかな、
と思って開発始めました!


<改良点1>
以下の①②の両立ができるようになった!!!
①GUIにファイルをドラッグアンドドロップしてリストに追加
②リスト内をドラッグアンドドロップで並び替え

<改良点2>
BatchテキストのPrefixのAssetを追加。



特に、<改良点1>に関しては
Pyside2とQtdesignerでつくったGUIをつかった環境での資料が少なく・・・
結局トライアンドエラーを繰り返して何とかなった。


備忘録
一番のポイントは
<改良点1>はデフォルトでは両立しないということ。
で、このサイトを参考にして改良。(Thanks!!!)
....
が、しかしうまくいかない。
理由は、「外部ファイルも内部リストも、どちらもドラッグしたときにUrlをもっている」ということ!
つまり、DropEventのときに「Urlをもっていないとき」という条件が満たされず
内部リストの並び替えが処理されないということ。
...
で、トライアンドエラーを繰り返して
最終的に、DropEventの冒頭に
super(......
を記述することで、なんとか解決した。(大丈夫なんか?)


ということで完成!!
もっと汎用的になって、需要があればシェアしようと思います。
以上!


2020年6月10日水曜日

Mayaをコマンドプロンプトから起動して、MayaPythonで処理する


こちらを参考にするも。。できない。

PYTHONPATHのせい?
リモートデスクトップのせい?

なぜだー!

・・・試行錯誤の末、以下で解決。


SET MAYA_UI_LANGUAGE=en_US
SET PYTHONPATH=C:\Users\Taro\Documents\python\maya
 
SET MAYA_CMD_FILE_OUTPUT=C:project\autoBat\runFiles\log\cube.log
"C:\Program Files\Autodesk\Maya2018\bin\maya.exe" -command "python(\"import runCmd;runCmd.run('<Mayaシーンファイルのフルパス>')\")"



コマンドプロンプトで ” 自体を引数に使いたいときは 手前に¥をつける。

エスケープ仕様、なるほど勉強になりました。
参考サイトはこちら

-----------------------------------------------------------
おまけ。
runCmd_BASE.py 



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

◆構造のまとめ

①runBat.bat(Mayaシーンファイルのパスを複数入れ、ひとつずつ②の処理するbat)
②runCmd.py(①から送られるシーンファイル情報を受け取り、Mayaで開いて、MayaPythonを実行する。)

で、このあとやろうとしているのは
①に複数Mayaシーンファイルのパスを手書きするの大変なので
①を作成するGUIをPython(QtDesigner)で作成する。→③batWorkGen.exe

...つまり

batWorkGen.exe(GUI操作)→ ①runbat.bat 作成
                          ↓ダブルクリック
                                                    ②runCmd.py が呼び出されて実行





2020年6月9日火曜日

複数のMayaファイルをドラッグアンドドロップするだけで、バッチレンダー用Batを作成するPythonツール


この記事は、より新しい記事で内容が更新されています。(2020.6.13)
-------------------------------------------------------------------------


Pythonツール。
ファイルをドラッグして、リストに追加。

ほぼできた!





<開発メモ>

Qt DesignerでGUI作成。
Python(Pyside2)で内部作成。


・QListWidgetに
Item追加
Item削除
ドラッグアンドドロップで順番入れ替え

・QActionで
ボタン押したらアセットのPrefix追加

・ボタン押したらテキスト(バッチ)ファイル作成
ファイルが既存ならメッセージボックス表示

・用途は
複数のMayaファイルをバッチレンダーしたいとき
batファイルを書くのが億劫だったので作成。


今後は、NukeやUE4のバッチ処理にも応用したい。


実行ファイルにして(exeにして)今後アップ予定。


ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
参考サイト

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


以上です。

2019年5月14日火曜日

2019年4月9日火曜日

batチャレンジ! フォルダ内のファイル名から、文字列変換テキスト作成


ファイルをドラッグ&ドロップしたらリスト取得、のbatはよくあるんですが・・・

「フォルダ(ディレクトリ)」をドラッグ&ドロップして、求める結果が得られなかったので、今回自分が調べた内容を記録に残します。



<目的>
フォルダをドラッグ&ドロップ(以降D&D)して、そのフォルダ内のファイルをリストにしてテキストファイルに書き出す。


調べてすぐ出てくるのは、D&Dしたフォルダ・ファイルのカレントディレクトリのリストが取得されるっていうこと。
中身(下位層)のリストが取得できない!

シンプルなこういうの



・・・


で作ったのがこれ。

使い方は、
以下コマンドをbatにして保存。
フォルダをD&Dすると、batと同じフォルダにtxtファイルが保存されます。


@echo off
rem フォルダをbatにD&Dしてフォルダ内のリスト取得
rem コマンドプロンプトに表示
rem forfiles /p  %~p1 /c "cmd /c echo @fname @ext"
rem テキストファイルに書き出し(batのある場所にtmp.txt一時作成)
forfiles /p  %1 /c "cmd /c echo @fname@ext>> %~p0\tmp0.txt"
setlocal enabledelayedexpansion
for /f "delims=" %%a in (%~p0\tmp0.txt) do (
  set line0=%%a
  set line1=!line0:""=.!
  set line1=!line1:"=!
  echo !line1!>>%~p0\tmp1.txt
)
rem type %~p0\tmp0.txt > %~p0\rawlist_%~n1.txt
type %~p0\tmp1.txt > %~p0\FILELIST01_%~n1.txt
del %~p0\tmp0.txt
del %~p0\tmp1.txt
endlocal


---------------
以上。

D&Dするフォルダと同じドライブにbatを保存して使用してください!




<参考サイト>



--------------------------------------------
ちなみに、かなり特殊だけどカスタマイズしたのがこちら。
【テキスト1】ファイル名(拡張子なし)取得して、前後に文字列挿入&連番
【テキスト1】ファイルのフルパス名取得して、前後に文字列挿入&連番











2019年4月8日月曜日

コマンドプロンプトでテキストファイルの先頭・末尾に文字列挿入


備忘録

簡単かと思ったら時間かかったのでメモ。
Batにして時短に活用。



rem test1.txtの各行の先頭と末尾に文字列挿入してtest1_edit.txtとしてファイル作成




rem ドラッグ&ドロップしたテキストファイルの中身に対して、各行の先頭と末尾に文字列挿入してaddText.txtとしてファイル作成
rem  ドラッグしたファイルは %1、ちなみにこのバッチファイル自体は%0、で取得できる
@echo off
SETLOCAL enabledelayedexpansion

set PRE=pre_
set SUF=_suf
set LINE =

for /f  "delims=" %%a in (%1) do (
set LINE=!PRE!%%a!SUF!
echo !LINE! >> tmp.txt
)
type tmp.txt > test1_edit.txt
del tmp.txt

endlocal


2019年3月5日火曜日

MayaにQtをインストール(コマンドプロンプトから)


備忘録

windowsのコマンドプロンプトから行う

手順

①コマンドプロンプトを「管理者で実行」
 →Cドライブに書き込み可能なcmd使えるようになった
②mayapy.exeのフォルダまで移動(cd /d "C:\Program Files\Autodesk\(Mayaのバージョン)\bin")
 → cmdでmayapyが使えるようになった
③ここで、pipインストーラをDL(https://bootstrap.pypa.io/get-pip.py)
④cmd mayapy で↑を実行
 → mayapyでpipが使えるようになった
⑤cmd mayapy pip でQtをインストール
 →Maya本体でQtが使えるようになった

以上。
Mayaで import Qt してみて。








参考
大部分
https://unpyside.wixsite.com/unpyside/single-post/2017/03/30/PySide-PyQt4%E3%81%A8PySide2-PyQt5%E9%96%8B%E7%99%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97
mayapy部分
https://qiita.com/it_ks/items/5045c99461cb6edef761