スクリプトで擬似立体を作る(四角形限定)

立体的なロゴがほしいけどCSの3D機能はちょっとちがうそんな時。
みんなの大好きなあの方でちょっと実験。

モノクロの明暗で凸凹の差ができるようにしてみました。

/*
#includepath 'path of lib'
*/
#include 'hvg.js';
mov = 10; //移動幅(てきとうに変える)
L = 20; //影の濃さ(%)(これもてきとうに)
hvg(app.activeDocument.selection,0).each(function(a){
//上蓋
b = a.duplicate();

//明るい方が出っぱる
b.left = a.left-((100+(100-a.fillColor.black))/100*mov);
b.top = a.top+((100+(100-a.fillColor.black))/100*mov);
//暗い方が出っぱる
//b.left = a.left-((100-(100-a.fillColor.black))/100*mov);
//b.top = a.top+((100-(100-a.fillColor.black))/100*mov);

if(b.fillColor.black > L){
b.fillColor.black = b.fillColor.black-L;
}
//下側面
c = app.activeDocument.pathItems.add();
c.setEntirePath([[a.left,a.top-a.height],[a.left+a.width,a.top-a.height],[b.left+b.width,b.top-b.height],[b.left,b.top-b.height]]);
if(a.fillColor.black < 100-L){
c.fillColor.black = a.fillColor.black+L;
}
//右側面
d = app.activeDocument.pathItems.add();
d.setEntirePath([[a.left+a.width,a.top-a.height],[a.left+a.width,a.top],[b.left+b.width,b.top],[b.left+b.width,b.top-b.height]]);
d.fillColor.black = a.fillColor.black;
//上蓋を全面に
b.moveBefore(d);
});

いろいろ未完成ですが

こんなロゴや

インスタントな地図にもいかがでしょうか?