import processing.video.*; import jp.nyatla.nyar4psg.*; Capture cam; MultiMarker nya; Movie movie; void setup() { size(640,480,P3D); colorMode(RGB, 100); println(MultiMarker.VERSION); cam=new Capture(this,640,480); nya=new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG); nya.addARMarker(loadImage("ar marker 5.png"),16,10,80); movie = new Movie(this, "IMG_2953.mp4"); movie.loop(); cam.start(); } void movieEvent(Movie movie) { movie.read(); } void draw() { if (cam.available() !=true) { return; } cam.read(); nya.detect(cam); background(0); nya.drawBackground(cam); if((!nya.isExist(0))){ return; } nya.beginTransform(0); fill(0,0,255); translate(25,35,0); //box(40); rotate(PI); image(movie, 0, 0, 50, 70); nya.endTransform(); }
I started with the idea of using AR markers by placing them on the side of the page and having the drawing projected onto each page but then I decided that I really want to focus on creating the feeling of each of the drawings coming to life, so I was determined to find a way to use my drawing itself as the marker. Through research and trial and error, I finally got it working properly. I tried out different things and learnt that AR markers actually don’t need to be in square form, only the edge needs to be a square. So I inserted the final drawing marker into the data folder and changed the code, edge percentage, and positioning, and size. I used example AR code that displayed a cube on top of the marker, and changed the code so as to have a video file play on top of the marker.
However I need to now test this out with a webcam and projector to see if it works to have a full drawing animation projected on top of the drawing or if I need to create a different video file with only the moving elements to be projected. I plan to include around 5 drawings and have them on different pages of a hard paper book to avoid bending of the paper, which would affect the marker detection and projection.