レイヤーのコピーと貼り付けの不明点(描画・オートアクション) | CLIP STUDIO PAINTの要望・不具合ボード | CLIP STUDIO
よくある質問
教えて!Q&A
要望・不具合


CLIP STUDIO PAINTの要望・不具合ボード

更新日:2019/02/27 14:55:06
反対数:1
賛成数:0
返信数:7
閲覧数:1437
ID:99517
from BigField さん
2019/02/18 07:04:08
 
オートアクション

レイヤーのコピーと貼り付けの不明点(描画・オートアクション)

 

いつもお世話になっています。
コミスタよりクリスタEXへ移行中の Windows 7 ユーザです。

レイヤーのコピーと貼り付けについて、簡単な例ですが描画とオートアクションについて不明点を教えてください。

-------------------------------------------------------------------------------------------------------------
<使用例>
●レイヤーパレット  ●キャンバスの描画
****入力位置****
固定名フォルダ
 レイヤーA         図A
 レイヤーB         図B

目的:レイヤーAの図AをレイヤーBにコピーしたい。(手操作)
・レイヤーAを選択して図Aを選択範囲を取って描画コピーする。
・レイヤーBを選択して、コピーしたものを画面上で貼りつける。

しかし、レイヤーBの上部に新規のレイヤーAが作られます。

****入力位置****
固定名フォルダ
 レイヤーA         図A
 レイヤーA         図A←これ!
 レイヤーB         図B

★直接レイヤーBの画面にコピーする方法はありませんか?
 どこかに新規レイヤーを作成する/しないのチェックがあったような?
★現状では、「下のレイヤーに結合」を使って作成された新レイヤーAをレイヤーBに結合しています。
(同種のレイヤーの場合)

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

目的:パレット上のレイヤーAの名前をレイヤーBにオートアクションでコピーしたい。

●レイヤーパレット ▼オートアクションのコマンド列

****入力位置****  ▼編集レイヤーの編集 レイヤー名:****入力位置****   (複雑な処理で起点の設定用)
固定名フォルダ    ▼編集レイヤーの編集 レイヤー名:固定名フォルダ  / 下のレイヤーを編集対象にする
 レイヤーA         (レイヤー名のコピー) ★*              / 下のレイヤーを編集対象にする
 レイヤーB      ▼レイヤー名の変更  レイヤー名:レイヤーA ★※

結果は下記の通りです。

****入力位置****
固定名フォルダ
 レイヤーA
 レイヤーA    結果は正常です!

作成されたオートアクションを同等のフォルダ構成で実行すると、

             結果:
****入力位置**** ***入力位置****
固定名フォルダ→→固定名フォルダ
 レイヤーC→→→ レイヤーC
 レイヤーD→→→ レイヤーA   ←レイヤーCになることを期待した!

レイヤーDがレイヤーAとなり、レイヤーCとはならない。
これは、★※部でレイヤー名がレイヤーAと固定的な処理になっているからである。
★*部でレイヤー名のコピーをしているがステップの出力が何もないのも問題である。
レイヤーBでレイヤー名が変更されるのは分かるが、ステップ上で一体どこでコピーされたのか分からない、
と言う視認性の問題があります。
ここで、「レイヤーA」を記憶しているのは確かであるが、それをステップとして出力する必要はないと思います。
★*で記憶したもの、または手入力されたものを★※で出力するだけでよいのでは?

このケースが正常に行われる、何か別の代替処理はありませんか?


以上、よろしくお願いします。



------------------------------------------------------------
■バージョン:V1.8.4
■グレード :EX( ○ )
■OS  :Windows 7 ( ○64bit )
------------------------------------------------------------
賛成数:0   反対数:1   
from
スレ主
BigField
さん
2019/02/18 14:55:52

訂正:オートアクション名
編集レイヤーの編集 → 編集レイヤーの変更
from
CLIP
サポート担当
さん
2019/02/20 13:29:41
ご連絡を頂き、ありがとうございます。

>★直接レイヤーBの画面にコピーする方法はありませんか?
>どこかに新規レイヤーを作成する/しないのチェックがあったような?

恐れいりますが、現状ではございません。
今行われている[下のレイヤーに結合]をご使用下さい。

>このケースが正常に行われる、何か別の代替処理はありませんか?

恐れいりますが、現状ではございません。

レイヤー名をコピーする操作はオートアクションには記録されません。
代替処理との事ですが、[環境設定]-[レイヤーコマ]の[複製時のレイヤー名]
の設定を[変更しない]に設定されている状況であれば、以下のコマンドを
記録頂く事で可能かと思いますのでお試しください。

1.[レイヤー]メニュー→[レイヤーを複製]
2.[レイヤー]メニュー→[並べ替え]→[背面へ]
3.[レイヤー]メニュー→[並べ替え]→[背面へ]
4.[編集]メニュー→[消去]
5.[レイヤー]メニュー→[編集対象にする]→[上のレイヤー]
6.[レイヤー]メニュー→[下のレイヤーと結合]

よろしくお願いいたします。
from
スレ主
BigField
さん
2019/02/21 17:46:17
ご回答ありがとうございました。

レイヤーに関して汎用的に流用可能な名前の変更方法の1つが分かりとても有益でした。
どうもありがとうございました。

■最初の例の変更
実質は変わりないのですが、現在作成中のあるフォルダ構成のオートアクションの処理は下記でした。
レイヤーBをレイヤーAに変えるのでなく、その逆のレイヤーAをレイヤーBに変えるものでした。
(実際のレイヤーBは別の場所にあります)

フォルダ構成:
****入力位置****①   │****入力位置****  │****入力位置****   │****入力位置****  │****入力位置****
固定名フォルダ ②+③ │固定名フォルダ       │固定名フォルダ       │固定名フォルダ      │固定名フォルダ 
 レイヤーA  ④      │ レイヤーA           │ レイヤーB  ⑦+⑧   │ レイヤーB  ⑪     │ レイヤーB  
 レイヤーB  ⑤         │ レイヤーB  ⑥      │ レイヤーA  ⑨+⑩    │ レイヤーB         │ レイヤーB  
                       │ レイヤーB           │ レイヤーB            │ レイヤーB          │

オートアクション:
①▼編集レイヤーの変更         │⑥前面へ│⑦(レイヤー名のコピー)  ★*     │⑪レイヤーを削除
  レイヤー名:****入力位置****  │         │⑧下のレイヤーを編集対象にする │        
(複雑な処理で起点の設定用)     │         │⑨▼レイヤー名の変更            │        
②▼編集レイヤーの変更         │         │  レイヤー名:レイヤーB ★※      │        
  レイヤー名:固定名フォルダ      │         │⑩上のレイヤーを編集対象にする  │        
③下のレイヤーを編集対象にする │         │
④下のレイヤーを編集対象にする │         │
⑤レイヤーを複製                 │        │

※ただし、前述したように上記で作成されたオートアクションを下記の固定名フォルダに適用するとNGで汎用的に使えません。
    フォルダ構成:
    ****入力位置****  
    固定名フォルダ   
     レイヤーC    ★レイヤーDとはならず作成時と同じレイヤーBとなる。
     レイヤーD   

■アドバイス例の適用
目的:レイヤーAをレイヤーBに変える。
→Bの複製を作り、内容を消去して、上にAを置いて下のBと結合させる。=Bの殻にAを押し込む。

要点:レイヤーAをBに名前を変えるので、複製の空きレイヤーBを用意してAの内容を結合させる。
・レイヤーBを複製
・複製したレイヤーBをレイヤーAの下へ位置へ=レイヤーA・レイヤーBの順
・複製したレイヤーBの内容を消去してレイヤーAを選択
・レイヤーA・レイヤーBの順で下のレイヤーと結合=結果はB

フォルダ構成:
****入力位置****①   │****入力位置****    │****入力位置****  │****入力位置****
固定名フォルダ ②+③   │固定名フォルダ        │固定名フォルダ       │固定名フォルダ 
 レイヤーA  ④         │ レイヤーA             │ レイヤーA  ⑧       │ レイヤーB  
 レイヤーB  ⑤         │ レイヤーB  ⑥+⑦    │ レイヤーB          │ レイヤーB  
                       │ レイヤーB             │ レイヤーB           │        

オートアクション:
①▼編集レイヤーの変更         │⑥消去                          │⑧下のレイヤーと結合
  レイヤー名:****入力位置****  │(編集の消去:レイヤーの消去     │          
(複雑な処理で起点の設定用)     │ ではない!)                    │          
②▼編集レイヤーの変更         │⑦上のレイヤーを編集対象にする│          
  レイヤー名:固定名フォルダ      │                                │          
③下のレイヤーを編集対象にする │                                │          
④下のレイヤーを編集対象にする │                                │          
⑤レイヤーを複製                │                                │          

(つづく)







from
スレ主
BigField
さん
2019/02/21 18:00:04
文字制限のため二つに分けました。

■具体的処理への適用
現在作成中のあるフォルダ構成のオートアクションの処理ではフォルダ名を与えられたレイヤー名と同じにするものでした。
    フォルダ構成:
    ****入力位置****
    固定名フォルダ 
     フォルダA  ←フォルダBにしたい!
     レイヤーB  ←実際のレイヤーBは別の場所にあります。
フォルダ名の変更はアドバイス例のレイヤー名の変更と違って同様の方法がとれません。
★何か別の代替処理はありませんか?

レイヤーBがフォルダBならば、レイヤー名の変更のアドバイス例の方針を使って
フォルダBを複製してフォルダAの内容をフォルダBに全コピーすればよいと思いますが、
アドバイス例の様に「下のレイヤーと結合」的な処理ができません。
    フォルダ構成:
    ****入力位置****
    固定名フォルダ 
     フォルダA  ←フォルダBにしたい!
     フォルダB  ←実際のフォルダBは別の場所にあります。
フォルダの内容を全コピーするにも、第一要素から順にコピーと貼り付けを実施してもどこで終了するか不明です。
★何か別の代替処理はありませんか?

■プログラミングの3大要素
プログラミングの3大要素は下記です。
 ・順次(上から処理を実行) ・反復(処理を繰り返す) ・分岐(条件によって処理を変える)
★オートアクションは概念上、「順次」に特化したものであり、その他を求めるのは行き過ぎなのでしょうか?

●<反復>処理
通常は下記の判定処理が考えられます。
・処理回数の判定
・ストッパー情報の判定

★本当に上記の反復に関連するテクニックはないのでしょうか?

少し考えると、ポインター制御の一種として下記に気がつきました。(複数の「下のレイヤー」処理を使わない方法)

▼フォルダ構成:    ▼オートアクション:       ▼フォルダ構成:     ▼オートアクション:
                             結果
┌─────────────┐下記の順で操作をする。        →┌─────────────┐ 
│★レイヤーポインター              │←選択して「下のレイヤー」処理   →│対象レイヤー1                  │ 
│対象レイヤー1                    │←処理の実行後「前面へ」処理  →│★レイヤーポインター            │ ←選択して同様の処理
│対象レイヤー2                    │                                →│対象レイヤー2                  │ 
│ ・・・・・                            │                              →│ ・・・・・                             │ 
└─────────────┘                               →└─────────────┘ 
上記の例でも、どこで処理をストップするかが判定できません。
現状では処理回数を有限にして、無効部分はダミー処理するしか手はありません。
★何か別の代替処理はありませんか?

●<分岐>処理:
・2分岐(if相当)
・多数分岐(case相当)

★2分岐(if相当)について、何かの処理でエラーを出して分岐(終了)させる方法はないのでしょうか?
 本当に上記の判定に関連するテクニックはないのでしょうか?
検索してもタイトルで気になるものはヒットするのですが目的のものが見つけられません。
これらの3大要素に関連するテクニック等を説明したお勧めのリンクがあれば教えてください。

以上、よろしくお願いします。


from
スレ主
BigField
さん
2019/02/21 18:26:42

追伸:
下記部分の縦位置の表示がうまくいってなかったので修正しました。

▼フォルダ構成:                         ▼オートアクション:                ▼フォルダ構成:                   ▼オートアクション:
                                                                        結果
┌─────────────┐下記の順で操作をする。        →┌─────────────┐ 
│★レイヤーポインター              │←選択して「下のレイヤー」処理   →│対象レイヤー1                  │ 
│対象レイヤー1                    │←処理の実行後「前面へ」処理  →│★レイヤーポインター            │ ←選択して同様の処理
│対象レイヤー2                    │                                →│対象レイヤー2                  │ 
│ ・・・・・                            │                              →│ ・・・・・                             │ 
└─────────────┘                               →└─────────────┘ 


これ、下記の投稿で要望を出していますが回答をいただいていません。
早く実現できればよいですネ!

ID:98246 from BigField さん 2018/09/27 02:40:56 その他
●ボードへの投稿で等幅フォント通りの表示をする方法はありますか?
https://www.clip-studio.com/clip_site/support/request/detail/svc/3/tid/98246
from
スレ主
BigField
さん
2019/02/26 14:15:21
追伸:

この2週間、オートアクションと格闘中です。

●<分岐>処理:2分岐(if相当)
目的:フォルダ構成の作成中、このフォルダの作成結果をそのまま使用するか削除するかを判断したい。
実現方法:開閉別のフォルダに対して「新規ラスタレイヤー」を実行して作成される位置を利用する。

★処理ポインター
フォルダA
 フォルダを加工するの必要なフォルダ・レイヤー群
 ゴミ箱フォルダ(開閉別)----処理結果指示情報です、内部レイヤなし!

・処理終了後、ゴミ箱フォルダ(開閉別)をフォルダAの前面へ
・フォルダAを切り取ってゴミ箱フォルダ(開閉別)に対して貼り付けをする。
・ゴミ箱フォルダの開閉状態に従ってフォルダAをゴミ箱フォルダ(開閉別)の内部に入れるか上部に配置したい。
・と思ったが、貼り付け結果はゴミ箱フォルダの開閉状態に拘わらず上に配置される。
・そこで、「新規ラスタレイヤー」の追加を使って開閉状態に従って、ゴミ箱フォルダ(開閉別)の内外にフォルダAの配置を行う。
・次に、ゴミ箱フォルダを削除する。
・結果は、ゴミ箱フォルダ(閉)の時はフォルダAを使用、ゴミ箱フォルダ(開)の時はフォルダAは削除となる。

今制作中のオートアクションのTIPSの終了に近づいてきました。
以後残る大きな問題は、上記のフォルダAを任意のフォルダの下に移動させることです。
処理方法がなければ手作業となるのかも・・・

★処理ポインター
フォルダA
 フォルダを加工するの必要なフォルダ・レイヤー群
 <指示情報(そのまま・削除・移動)>
フォルダB
フォルダC
・・・・

<指示情報(そのまま・削除・移動)>による処理を実行するが、<指示情報(そのまま・削除)>は上で実現できたので
後は移動のみです。
例えば、移動(フォルダC)を実現するのに直接「編集レイヤーの変更 レイヤー名:フォルダC」と言う訳にはいかない・・・


しかしながら、最初は思い付かなかった2分岐(if相当)の一例ができて、多数分岐(case相当)は2分岐(if相当)の連続で
実現できるので少し希望がわいてきました。
まだまだあると思われる、反復(処理を繰り返す)と分岐(条件によって処理を変える)のテクニックを知りたいデスネ!


以上、よろしくお願いします。



from
スレ主
BigField
さん
2019/02/27 14:55:06
訂正:結果の変更
>・と思ったが、貼り付け結果はゴミ箱フォルダの開閉状態に拘わらず上に配置される。
貼り付けで可能ですね! フォルダ閉の時は上へ、開の時は内部へ!
「新規ラスタレイヤー」の追加はなくてもよい・・・


2019年11月28日に本サービスの投稿受付は終了いたしました。「CLIP STUDIO SUPPORT」をご利用ください。

よくある質問
教えて!Q&A
要望・不具合