■オブジェクトの距離によってブレンド数を変化させます   
(クリックで動きます)
タイトルなし

おつかれさまです。@gorolibです。

ふと思い立って、2つのオブジェクトの塗り色をブレンドして色玉をつくるスクリプトをつくってみました。


え?

ただのブレンドでしょ?


…はい、おっしゃるとおりです。実は過去にアクションとしてご提供(無料)しております…。


ただブレンドで中間色って、
(1)ステップ数の指定
(2)ブレンドの拡張
(3)グループ解除
と、意外にお手間をとられるんです。文字どおり何ステップもある(うまくない!)。

なので、それらをいっぺんにやるアクションのご提供だったわけですが、2017年春、もう一歩先に進もうかと。

オブジェクト同士の距離(近い、遠い)によって、ステップ数を自動で決めて複製し、さらに中間色もブレンドしちゃえば?という結論になりました。

つまりステップ数を多くしたい場合は、距離を遠くすればよいのです。かなり便利なスクリプトになりました(自分で^ ^)


■ものすごく深いIllustratorでの色の決め方


機能はシンプル、やることも単純。これは使い勝手いいぞーと喜び勇んで作り始めましたが、なんだこれ?Illustratorの「色の闇」に入り込んでしまいました…(大げさ、いつも大げさね)。

もちろん最初からCMYKターゲットなのですが、軽いボスキャラがいました。

スポットカラー\(^o^)/

グローバルスウォッチですな。スポットカラーでもそうじゃなくてもCMYKならば当然対象にしたいです。しかしスポットカラーのときにCがいくつで、Mがいくつで…という数値がなっかなか取り出せませんでした。結論としてこんなんなってます。

if(Sz.fillColor.typename == 'CMYKColor'){
A2.push(Sz)
COL.push(Sz.fillColor)
} else if((Sz.fillColor.typename == 'SpotColor')&&(Sz.fillColor.spot.color == '[CMYKColor]')){
A2.push(Sz)
COL.push(Sz.fillColor.spot.color)
}

COLっていう配列に溜め込んでいるわけですが、fillColor.typenameとしては、
CMYKColor
SpotColor
であって、SpotColorのときはfillColor.spot.colorが'[CMYKColor]'であるものは、対象にしています。

とくにこれ。== '[CMYKColor]'

この [ ] のあるなしだけで、まさかの3時間コースになっちゃいました。30分で作る予定だったのに…(笑)


■今回のスクリプト情報
タイトルなし


【スクリプト概要】
2つのオブジェクト間に入るだけ等間隔にブレンド色玉をつくります。

【スクリプトファイル名】
G283_ColorBlend.jsx


【使い方】
(1)2つの塗り色がある横並びのパスアイテムを選択します
(2)このスクリプトを起動します

【仕様】
(1)CMYKカラーのみ対象です。スポット(グローバルスウォッチ)のCMYKカラーも対象です。
(2)オブジェクト選択数は2つです(CMYKカラーの塗り色があるパスアイテムのみ)。それ以外では反応しません
(3)2つの間に入るだけ、左端のオブジェクトを等間隔に複製します
(カタチとY座標が違う場合はこんな感じ)
タイトルなし2


■ダウンロードはこちらから

https://note.mu/gorolib/n/nbf6ef92bdf20 


お役に立てれば幸いです!ではでは出羽の海。


(追記170221)
ブレンド中間色はCMYKの値に端数が出ますので、四捨五入しています。