ENTRIES
CATEGORIES
ARCHIVES
NEWS
ロケコミュの工作が日経 TRENDY (トレンディ) 2014年 03月号 [雑誌]で紹介されました。
特集『コストコ、イケア、100円ショップより面白い!巨大ホームセンター買遊術』
LINKS
PROFILE
OTHERS

ロケットコミュニケーションズ blog

科学イベントやワークショップを行う実演集団が、知的好奇心を刺激するアイデアや活動を発信します。公式ページはこちら
<< 【イベント実施報告】「チャレンジ!針穴写真」 | main | 実験キット付きマンガ・リリースのお知らせ。〜じっけんのマコちゃん〜 >>
256-Dot Love #2, 電動ドリルとスプレーでラブレターを描こう(その2)。
このエントリーをはてなブックマークに追加


 256-Dot Love, 電動ドリルとスプレーでラブレターを描こう。
コアラ忍者あらわる!

70年代80年代のゲームデザイナーみたく、紙の上の16×16マスを塗って絵を描く。
こうしてできた「ドット絵」にドリルで穴を開け、ステンシルを製作してみた前回

ハートマークは簡単に描けたが、今回はドットに濃淡をつけ、もっと複雑なものを描いてみたい。
濃淡は、ドットを開けるドリル径を変えることで表現できるのではないだろうか!?

…とりあえず、やってみよう。

今回もProcessingでツールを自作するところから開始。
前回のツールを改造し、3段階のブラシを選べるようにバージョンアップした。
(ソースコードは、本記事の最後に掲載してある)

このツールを使って、キャラクターを描いてみた。
時間にして10分。コイツを「コアラ忍者」と命名した。

by Rocketcomms
まずは、プリンタから紙に印刷する。

by Rocketcomms
前回はプラ版を用いたが、使用後に塗料を落とすことを考え金属で製作してみることにした。
東急ハンズで購入した 0.3mm[厚さ] × 100mm × 200mm のアルミ板を使用。

by Rocketcomms
元となる絵を糊で貼り付ける。
後で剥がすから、文房具の糊で良い。

by Rocketcomms
ドリルで穴を開ける。穴の径は3種類。
ドットの径が大きい順にドリル径は5.0mm、3.2mm、2.5mmを使用した。
穴を開けると何か怖い。

by Rocketcomms
お、できたかな?
(ちょっと穴がずれてしまった)

by Rocketcomms
セロテープで紙にアルミ板をしっかり固定し、スプレー。
色は蛍光オレンジ。

by Rocketcomms
ちょっとぼやけたけど…こ、これは、まさしく「コアラ忍者」!

ソースコード
processingをPCにインストールし、以下をコピー&ペーストすればすぐに実行できる。

/*
■□■□■□■□■□■□■□■□
 ドット絵エディター2(2013/08)
 by RocketComms.jp
■□■□■□■□■□■□■□■□
*/
int w = 596;  //横幅(ピクセル)
int h = 420;  //縦幅(ピクセル)
//--------------------------------------------

int num_x = 16;       //ドット数(横)
int num_y = 16;       //ドット数(縦)
int size_r = 20;      //ドットの直径
int pos_x = 100;      //余白(横)
int pos_y = 30;       //余白(縦)
int xx = int( (w-pos_x*2) / (num_x-1) );//ドット間隔(横)
int yy = int( (h-pos_y*2) / (num_y-1) );//ドット間隔(縦)
int color_gray = 200;//ドットの円、枠の色(薄いグレー)

int sqr_x0 = pos_x - size_r / 2;//エリア範囲左上X
int sqr_y0 = pos_y - size_r / 2;//エリア範囲左上Y

int sqr_x1 = pos_x + xx * (num_x - 1) + size_r / 2;//エリア範囲右下X
int sqr_y1 = pos_y + yy * (num_y - 1) + size_r / 2;//エリア範囲右下Y

int size_button_x = 30;//ボタンのサイズ(横)
int size_button_y = 30;//ボタンのサイズ(縦)

int selected_brush = 0;//選択されているブラシサイズ:大0<--->2小
int num_brush=3;//選択できるブラシの数

int loop_1, loop_2;    //ループ用

void setup() {
 
  size(w, h);
  background(255); //背景色

  strokeWeight(0);//線の太さ
  stroke(color_gray);

//ドット準備
  fill(255);
  for(loop_2 = pos_y; loop_2<=h-pos_y; loop_2+=yy){
    for(loop_1 = pos_x; loop_1<=w-pos_x; loop_1+=xx){
      ellipse(loop_1, loop_2, size_r, size_r);
    }
  }
//セーブボタン設置
  fill(255, 0, 0);//セーブボタンの色は赤です
  rect(0, 0, size_button_x-1, size_button_y-1);

//ブラシボタン設置
  draw_brush(selected_brush);
}

void draw() {
  int clicked_x=0, clicked_y=0;//クリックされたドットの中心x,y
   
  if (mousePressed == true){
   
    //ドットがクリックされた時
    if(mouseX>=sqr_x0 && mouseX<=sqr_x1 && mouseY>=sqr_y0 && mouseY<=sqr_y1) {
      clicked_x = pos_x + int( (mouseX - sqr_x0) / xx )*xx ;//クリックされたドットの中心xを求める
      clicked_y = pos_y + int( (mouseY - sqr_y0) / yy )*yy ;//クリックされたドットの中心yを求める

      //ドットを消す
      fill(255);
      noStroke();
      rect(clicked_x - size_r/2 ,  clicked_y- size_r/2, size_r+1, size_r+1);
      stroke(color_gray);
      ellipse(clicked_x, clicked_y, size_r, size_r);//枠を描く
     
      if (mouseButton == LEFT){
        fill(0);
        ellipse( clicked_x, clicked_y, size_r / pow(2,selected_brush), size_r / pow(2,selected_brush) );
      }
    }
   
    else if(mouseX>=0 && mouseX <= size_button_x && mouseY >=0 && mouseY <= size_button_y) {
      save( "./hoge.png" );
      println("OK.");
    }
   
    else if( mouseX >= 0 && mouseX<=size_button_x &&
            mouseY>=size_button_y && mouseY<size_button_y * (num_brush+1) ) {
      selected_brush = int((mouseY - size_button_y)/ size_button_y);
      println( selected_brush );
      draw_brush(selected_brush);
    }
  }
}

void draw_brush(int set_brush){
  fill(255);
  for(loop_1=0; loop_1<num_brush; loop_1+=1){
      ellipse( size_button_x / 2, size_button_y / 2 + (loop_1+1) * size_button_y,
              size_r/pow(2,loop_1), size_r/pow(2,loop_1));
  }
  fill(0);
  ellipse( size_button_x/2, size_button_y/2 + (set_brush+1)*size_button_y,
          size_r / pow(2,set_brush), size_r / pow(2,set_brush));
}




このエントリーをはてなブックマークに追加
| 工作 | 22:32 | comments(0) | - |









->