クリエイター手抜きプロジェクト[593]Illustrator CS6〜CC 2019編 カケアミを生成する
── 古籏一浩 ──

投稿:  著者:


今回は、久々のIllustratorのネタです。漫画などでみかけるカケアミというのがあります。2018年のNHKの連続テレビ小説(連ドラ)で、主役が漫画家に弟子入りする時にも練習していていました。

・半分、青い
https://www6.nhk.or.jp/drama/pastprog/detail.html?i=4343


なお、カケアミについては検索して出てきた以下のページを参考にしました。

・カケアミってどうやって描くの?
https://www.hamano-manga-club.com/skill-box/skill-application/kakeami/


今回のスクリプトは、1カケと2カケをIllustrator上で自動生成します。プログラムで描くため、実際にはかなり応用範囲が広く、らせん状やグラデーションっぽくすることもできます。今回はシンプルに、タイル状にカケアミを敷き詰めるだけです。




1カケのカケアミを描くスクリプトは、以下のようになります。新規ドキュメントを作成し、CMYKモードにしてから実行してください。カケアミ自体は白黒ですので、RGBカラーでも構いません。

// カケアミ生成スクリプト(1カケ)
(function(){
var width=300; // カケアミを描く横幅
var height=200; // カケアミを描く縦幅
var rndX=8; // 横のずれ具合
var rndY=10; // 縦のずれ具合
var stepX=15; // カケアミ1ブロックの横の移動量
var stepY=15; // カケアミ1ブロックの縦の移動量
var degree=135; // 最大の回転角度
var strokeWidth=0.5; // 線幅 
// ブロック単位で指定した範囲にカケアミを描画
for(var y=0; y<height; y+=stepY){
for(var x=0; x<width; x+=stepX){
var dx=Math.random()*rndX-rndX/2;
var dy=Math.random()*rndY-rndY/2;
ami(x+dx,y+dy-height-stepY);
}
}
function ami(x,y){
var grObj = activeDocument.groupItems.add();
var rectObj = grObj.pathItems.rectangle(y+20, x, 16, 20);
rectObj.fillColor = setCMYKColor(0, 0, 0, 0);
rectObj.stroked = false;
rectObj.strokeWidth = 0;
for(var i=0; i<5; i++){
var lineObj = grObj.pathItems.add();
lineObj.setEntirePath([[x+i*4, y],[x+i*4,y+20]]);
lineObj.stroked = true;
lineObj.strokeWidth = strokeWidth;
lineObj.strokeColor = setCMYKColor(0, 0, 0, 100);
}
grObj.rotate(Math.random()*degree);
}
function setCMYKColor(c,m,y,k){
var CMYK = new CMYKColor();
CMYK.cyan = c;
CMYK.magenta = m;
CMYK.yellow = y;
CMYK.black = k;
return CMYK;
}
})();

2カケ(カケアミ)の場合は、以下のようになります。これもタイル状に敷き詰めるだけです。

// カケアミ生成スクリプト(2カケ)
(function(){
var width=300; // カケアミを描く横幅
var height=200; // カケアミを描く縦幅
var rndX=8; // 横のずれ具合
var rndY=10; // 縦のずれ具合
var stepX=15; // カケアミ1ブロックの横の移動量
var stepY=15; // カケアミ1ブロックの縦の移動量
var degree=135; // 最大の回転角度
var strokeWidth=0.5; // 線幅 
// ブロック単位で指定した範囲にカケアミを描画
for(var y=0; y<height; y+=stepY){
for(var x=0; x<width; x+=stepX){
var dx=Math.random()*rndX-rndX/2;
var dy=Math.random()*rndY-rndY/2;
ami(x+dx,y+dy-height-stepY);
}
}
ami(100,-150);
function ami(x,y){
var grObj = activeDocument.groupItems.add();
var rectObj = grObj.pathItems.rectangle(y+20, x, 20, 20);
rectObj.fillColor = setCMYKColor(0, 0, 0, 0);
rectObj.stroked = false;
rectObj.strokeWidth = 0;
for(var i=0; i<5; i++){
var lineObj = grObj.pathItems.add();
lineObj.setEntirePath([[x+i*4+2, y],[x+i*4+2,y+20]]);
lineObj.stroked = true;
lineObj.strokeWidth = strokeWidth;
lineObj.strokeColor = setCMYKColor(0, 0, 0, 100);
}
for(var i=0; i<5; i++){
lineObj = grObj.pathItems.add();
lineObj.setEntirePath([[x, y+i*4+2],[x+20,y+i*4+2]]);
lineObj.stroked = true;
lineObj.strokeWidth = strokeWidth;
lineObj.strokeColor = setCMYKColor(0, 0, 0, 100);
}
grObj.rotate(Math.random()*degree);
}
function setCMYKColor(c,m,y,k){
var CMYK = new CMYKColor();
CMYK.cyan = c;
CMYK.magenta = m;
CMYK.yellow = y;
CMYK.black = k;
return CMYK;
}
})();

1カケ、2カケとも、スクリプトの先頭にある以下の数値を変更することで、さまざまなカケアミを描くことができます。

var width=300; // カケアミを描く横幅
var height=200; // カケアミを描く縦幅
var rndX=8; // 横のずれ具合
var rndY=10; // 縦のずれ具合
var stepX=15; // カケアミ1ブロックの横の移動量
var stepY=15; // カケアミ1ブロックの縦の移動量
var degree=135; // 最大の回転角度
var strokeWidth=0.5; // 線幅 

今回のスクリプトでは、カケアミの1ブロックはグループ化してあるので、生成後にひとつずつ動かして編集することができます。手書きではこういう後修正が難しいのですが、Illustratorで作っておけば簡単です。また、単純線でなくペンタッチを変えることもできます。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


漫画家入門(?)などのページや本などで、カケアミを描いたりするのがあるのですが、プログラマからすると「プログラムを作って生成すればいいのに、どうしてそんな手間のかかることをするのか」という感じになってしまいます。

もっとも、スクリーントーンや素材のカケアミも多く配布されているので、自分で描くことは少ないのかもしれません。また、自分で数種類だけ描いて使い回したりするようです。

ただ、こういう異常に手間のかかるものを、トーン素材ではなく自分で描いたりすると、その絵からは何か違うものやことを感じ取ってしまう人が、それなりにいるのではないかなと思ったりします。状況に応じて使い分けるのが、一番いいんじゃないかなと思います。

・InDesign自動化サンプルプログラム逆引きリファレンス上/下
https://www.amazon.co.jp/dp/4844396846/

https://www.amazon.co.jp/dp/4844396854/


・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram


・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936

[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/


・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591

https://www.amazon.co.jp/dp/4844397605


・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP

http://digiconcart.com/dccartstore/cart/info/2561/218591


・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/


・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/


・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/


・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/