fc2ブログ

AzPainterの選択範囲から座標値xywhを取得するスクリプト

※140607 スクリプトと本文をちょっと修正

.REDのスキン画像製作は90%がAzPainterで8%がAzPainter2、2%がGimpという状態です。
それぞれにそれぞれでしか出来ない処理があり、適切に使い回さないとパーツが完成しないところは
どこまでもフリーソフトだなぁと思いますが、画像編集用途では特にこれと言って不満もありません。

でまぁ、メインで使っているのはAzPainterなんですが、これ本来画像編集ソフトに要求する機能じゃないですが
LR2スキンのcsv製作用に座標値xywhを一括で取得出来たらなーと常々思ってたわけです。

スキン作家さんにはおなじみですが、
LR2で画像パーツを取り扱うには元画像内の切り出したい画像パーツのxywhを控えてcsvに記述し、
次にLR2の画面内での貼り付け座標xywhをcsvに記述する、という作業が必須。
規模にもよりますが一般的なスキンでおよそ500~1000パーツくらい、延々とこの作業を繰り返す形になります。
スキン作家が増えない訳ですねぇ。
.REDは特に三桁の数字の暗記は一度に2個程度が限界ってくらいの鳥頭なので、
入力ミス→再入力を結構な回数繰り返してより一層時間を無駄に使ったりしてました。

で、フルセット製作中からずっと自動化しようとあれこれ弄ってたんですが、
今年に入ってようやくそれっぽくなってきたのでバックアップ的な意味も込めて一度まとめておきます。
下書き記事書き溜めてたらこんな時期になっちゃいましたが。


座標の出力フォーマットは表計算ソフト用とテキストエディタ用どっちも選択可能ですが、
画像編集ソフトはAzPainterかAzPainter2限定です。
無印は2と違って選択範囲をドラッグしながらでもホイールスクロールによる拡大や、
ホイールドラッグによるキャンバスの移動が可能なので少なくとも範囲選択に関しては2より使いやすいと思います。
また、表計算ソフトはExcel、Calc(OpenOffice LibreOfficeどちらでも)に対応してます。


以下、手順
必要なソフト
AzPainter(かAzPainter2)
UWSC(フリー版)
Azpt2csv_rev2.txt(拡張子uwsで保存して下さい)

注意
何が起きても知りませんので自己責任でどうぞ。
普段の「自己責任で~」も軽い気持ちで書いてるわけではありませんが、
UWSCのスクリプトは悪用するとホントに洒落にならないので、スクリプトには必ず目を通してください。

また、スクリプト動作中はマウス・キーボードの入力が無効化されます。(要管理者権限)
緊急停止コマンドはCtrl+Alt+Deleteなのでおかしな動きを見せたら迷わず押して下さい。

スクリプトの編集
AzPainter2を使う人はAzpt2csv.uws内の「AzPainter」を「AzPainter2」に置換して下さい。
書き換えなくても普通に動くんですが無印と同時起動した時にちょっと厄介なので。

デフォルトでは表計算ソフト用(タブ区切り)フォーマットで座標を取得しますが、
csv編集にテキストエディタを使う場合はカンマ区切りにする必要があるので
SENDSTR(0,SELX+"<#TAB>"+SELY+"<#TAB>"+SELW+"<#TAB>"+SELH)
をコメントアウトして
//SENDSTR(0,SELX+","+SELY+","+SELW+","+SELH)
のコメントアウトを外して使って下さい。

また、こちらは必須ではありませんが
//変数「EXID」にウィンドウIDを取得
の行の近くに羅列されている中からcsv編集に使用するソフトをピックアップしておくと
スクリプトの動作終了後にそのソフトのウィンドウをアクティブにしてくれるので
一連の作業のテンポがちょっと良くなります。(デフォルトではExcel)

処理内容
ざっくり説明すると、AzPainterの座標指定選択画面からxywh値を取得し、
タブ区切り(あるいはカンマ区切り)で整形してからクリップボードに送り、
所定のソフトのウィンドウをアクティブにして終了です。
あらかじめ貼り付け箇所にフォーカス合わせておくのが面倒だったので貼り付け自体は手動です。

手順
※各ソフトの起動順に注意して下さい。
※上書きするような機能は積んでませんが、念のため最初は上書き保存されても問題無いデータで試して下さい。

1.任意のソフトでスキンcsvを開きます。
2.AzPainterでスキン画像を開きます。
3.UWSCを起動して左のボタンからAzpt2csv.uwsを開きます。
4.AzPainterの範囲選択で座標を取得したいパーツを選択します。
5.UWSCの真ん中のボタンでスクリプトを実行します。
6.問題無く動けばcsvの画面に切り替わった所でスクリプトが終了します。
7.Ctrl+Vを押せば選択パーツのxywhが貼り付け出来ます。

csv編集はExcelで行うという前提でスクリプト組んでますが、値の取得と整形はスクリプト内で行われるため、
csv編集ソフトが起動していなくても値の取得は可能です。
が、一応AzPainter(かAzPainter2)が起動してないとエラー吐いて止まるようにしてます。
なお、AzPainterとcsv編集ソフトの起動順はこの通りじゃないとスクリプト終了時のフォーカスがちょっと変になります。
(動作自体は特に問題ありませんが再びAzPainterに戻る時にちょっと面倒です)
また、AzPainterやcsv編集ソフトが多重起動している場合は前面のウィンドウ優先になります。

UWSC.exeにuwsファイルを放り込んだら即実行してくれるので、
うちではAzpt2csv.uwsをショートカット化してショートカットキーから呼び出せるようにしてます。
(キーボードからの入力を無効化してるのはこのためです。スクリプトの入力と相まって何回か誤作動したので)



スキン製作に手を出してからのこの5年間は何だったんだ?ってくらいに革新的な一品になりました。
そしてたかだか3日程度で組めちゃったところもまた釈然としねぇ。
もうほんと、フルセット作る前にこっち先に作っときゃ良かった。


UWSCとAzPainterシリーズはどちらもインストール不要なので、
ちょっと使ってみて微妙だったら丸ごとゴミ箱行きで片付くので試しに使ってみてはいかがでしょうか。

GimpやPhotoShopなんかはかなり強力なスクリプトを内蔵してるので、
外部ソフトを使わずに似たようなことが出来るらしいですが、
とりあえずGimpのスクリプトはクソ難しかったので速攻で諦めました。
PhotoShopは持ってないっつーかそもそも触った事ないので難しいかどうかすら知りません。
関連記事

この記事へのコメント

トラックバック

URL :

プロフィール

.RED

Author:.RED
アナコンでbeatmaniaシリーズを極めんと頑張り続けて14年。
CSDD、CSGOLD、CSDJT、CSEMPいずれもギリギリ皆伝

つか、右スティック。

動画
アナコン動画
LR2スキン動画

アクセスカウンター
最新記事
最新コメント
最新トラックバック
mail to .RED

名前:
メール:
件名:
本文:

検索フォーム
RSSリンクの表示
カテゴリ
月別アーカイブ
QRコード
QRコード