クリスタでキャンバスをすばやくチェックするために新規ウィンドウを開いて、任意の位置に移動させたい


クリスタで新規ウィンドウを開いて、描画中に素早くキャンバス全体をチェックすることのつづきです。前回、「ウィンドウの移動まで、自動化したい。結局同じ場所に開くのに。」と思った方は、絵を描くのが早くなるタイプです。それを実装します。

AutoHotKey が初めての方へ

以前の記事「AutoHotKey で、マウスカーソルの座標を調べる」に、利用までの簡単な説明を描きました。こちらをご覧ください。
https://qiita.com/mojajamaru/items/aec65f093b042b8280be

スクリプト

cli_open_windowx2.ahk

; クリスタで開いたイラストを新規ウィンドウで開き、サブモニターに配置する
; 生面と、左右反転の2つ
SetTitleMatchMode, 2
;;;;;;;;;;;;;;;;;;;;;;;;;;
; 初期設定
;;;;;;;;;;;;;;;;;;;;;;;;;;
CoordinateArray := Object()
;ドラッグ元のタブの座標
; X座標
CoordinateArray[0] := 2313 
; Y座標
CoordinateArray[1] := 66
;ドラッグ先のタブの座標
; X座標
CoordinateArray[2] := 841
; Y座標
CoordinateArray[3] := 458
;再設置先のタブの座標 正面
; X座標
CoordinateArray[4] := 1273
; Y座標
CoordinateArray[5] := 52
;再設置先のタブの座標 左右反転
; X座標
CoordinateArray[6] := 1273
; Y座標
CoordinateArray[7] := 510
;再設置先のウインドウサイズ
; X軸
CoordinateArray[8] := 650
; Y軸
CoordinateArray[9] := 450
; メインのスクリプト
WinActivate, CLIP STUDIO PAINT ;クリスタ をアクティブにする
sleep,1000
; 新規ウィンドウを開く
OpenWindowx2()
return
ExitApp ; アプリを終了
Exit ; AHK を終了
; 新規ウインドウを開く
OpenWindowx2()
{
; 新規ウインドウを開く
    send,{alt}
    sleep,200
    send,w
    sleep,200
    send,v
    sleep,200
    send,n
    sleep,2000

; 新規ウインドウを開く
    send,{alt}
    sleep,200
    send,w
    sleep,200
    send,v
    sleep,200
    send,n
; 表示を左右反転
    send,{alt}
    sleep,200
    send,v
    sleep,200
    send,v
    sleep,200
    send,h
    global CoordinateArray
    ; ウィンドウを移動してリサイズ
    CoordMode,Mouse,Screen ; マウスカーソルでスクリーン上での絶対座標をとる
    ; MouseClickDrag, LEFT,X1,Y1,X2,Y2,SPEED
    MouseClickDrag, LEFT,% CoordinateArray[0],CoordinateArray[1],CoordinateArray[2],CoordinateArray[3],10 ; マウス左クリックで、X1,Y1 から、X2,Y2 にスピード10(範囲2~100)でドラッグする
    sleep,2000

    ; WinMove,WinTitle,, X, Y,Width,Height ;
    ; WinTitle に"A" を指定すると、アクティブなウィンドウを指定できる
    WinMove,A,, % CoordinateArray[4], CoordinateArray[5],CoordinateArray[8],CoordinateArray[9]  ; X,Y に移動して、Width,Height にウィンドウをリサイズする

    Send, ^0 ; キャンバス全表示ショートカット
    sleep,200

    ; ウィンドウを移動してリサイズ
    CoordMode,Mouse,Screen ; マウスカーソルでスクリーン上での絶対座標をとる
    ; MouseClickDrag, LEFT,X1,Y1,X2,Y2,SPEED
    MouseClickDrag, LEFT,CoordinateArray[0],CoordinateArray[1],CoordinateArray[2],CoordinateArray[3],10 ; マウス左クリックで、X1,Y1 から、X2,Y2 にスピード10(範囲2~100)でドラッグする
    sleep,2000

    ; WinMove,WinTitle,, X, Y,Width,Height ;
    ; WinTitle に"A" を指定すると、アクティブなウィンドウを指定できる
    WinMove,A,, CoordinateArray[6], CoordinateArray[7],CoordinateArray[8],CoordinateArray[9]    ; X,Y に移動して、Width,Height にウィンドウをリサイズする

    Send, ^0 ; キャンバス全表示ショートカット
    sleep,200
}

初期設定

今回は、液タブと別モニタのデュアルディスプレイを想定して、キャンバスは液タブ、新規ウィンドウはサブディスプレイに表示させるようにしています。そのため、クリスタ利用者の環境で座標が異なるので、4つの座標とウィンドウサイズを測って調整する必要があります。

測定する座標とウィンドウサイズ

  • ;ドラッグ元のタブの座標
  • ;ドラッグ先のタブの座標
  • ;再設置先のタブの座標 正面
  • ;再設置先のタブの座標 左右反転
  • ;再設置先のウインドウサイズ

参考画像

動作の概要

WinActive でクリスタをアクティブにします。
あとは、ウィンドウ操作、[Alt] で上部メニューを開き、目的の操作を行います。

使い方

  • クリスタをお使いの環境で、「AutoHotKey で、マウスカーソルの座標を調べる」を使って、初期設定する座標を図って、メモします。
  • メモ帳などのエディタを使って、cli_open_windowx2.ahk を作成します。
    • メモした内容を元に、初期設定の値を入力して上書き保存します。
  • あらかじめ、クリスタで編集するファイルを開きます。
  • cli_open_windowx2.ahk を実行します -すると、新規ウィンドウが2枚、正面と、左右反転の二つが開き、指定した場所とウィンドウサイズに変更されます。