Making of AR Proposal

View AR Proposal Page

1. Mindmaping & Sketch

某一天突然来了灵感,于是用Mindmap工具记录下来。后来还是改用纸笔画,因为可以随意画些东西,比较顺手。最初的概念是配合文字设置几个场景,最后因为时间的关系只简化为一个。

sketch

2. Making Markers and Tee

这里提供的工具制作自己的标记,如果不太会用,可以看看这篇文章或者gotoAndLearn()上的这篇教程

标记不仅可以印在纸上,用手机、PSP等显示设备效果也不错。除此此外,我还在网上印了一套情侣衣。

image

3. Modeling

用Cinema 4D建几个简单的模型,面不要太多,用自带的Collada导出就可以在Papervision3D里面用。材质不用调,用的是Papervision3D自己的Phong Shader。

3d heart

marry me

4. Drawing assets in Flash

写文字可能比我写程序要难,这些年钻研英文资料造成我的中文水平急剧下降。不过再花哨也都是形式,真的打动人心的东西都是些朴素平凡的东西。打好稿以后,用数位板在Flash中写一遍,还原自然的感觉。

flash

5. Test Drive in Papervision3D

FLARToolkit只是负责检测标记并计算坐标。在此之前先用Papervision3D把场景和动画元素做出来。散落的花瓣用Flint来做,粒子渲染可以和Papervision3D很好的整合。

test drive

6. Wrap it up

最后再做整合,只要把坐标关联到一起就可以了(看看BaseNode的代码)。为了尝试用多个Marker,我用了FlarManager这套类库。虽然提供了Add和Remove事件,但是检测机制有点复杂,花了相当的时间来搞明白。由于在移动Marker的情况下,事件会不断的被触发,所以开发一套自己的冲突解决方法是必须的。

developing

此外还有抖动的问题,用ease的方法(如下)可以很好的解决。更多关于FLARToolkit的使用经验等以后慢慢post出来。

var m : Matrix3D = container.transform;
var r : Matrix3D = FLARPVGeomUtils.translateFLARMatrixToPVMatrix(marker.transformMatrix);
var speed : Number = .4;
 
m.n11 += (r.n11 - m.n11) * speed;
m.n12 += (r.n12 - m.n12) * speed;
m.n13 += (r.n13 - m.n13) * speed;
m.n14 += (r.n14 - m.n14) * speed;
m.n21 += (r.n21 - m.n21) * speed;
m.n22 += (r.n22 - m.n22) * speed;
m.n23 += (r.n23 - m.n23) * speed;
m.n24 += (r.n24 - m.n24) * speed;
m.n31 += (r.n31 - m.n31) * speed;
m.n32 += (r.n32 - m.n32) * speed;
m.n33 += (r.n33 - m.n33) * speed;
m.n34 += (r.n34 - m.n34) * speed;

7. Shooting & Editing

作为整套计划的最后一部分,也为了给将来留段美好的回忆,一段视频是必须的。D90拍摄,PR剪辑,终于在五一前最后一天搞定。

editing

Bookmark and Share

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Comments :

  • At 2009.05.07 00:21, Kenshin said:

    挺好的设想,

  • At 2009.05.07 02:16, 晓禾依树 said:

    你好 关注你的博客很久了

    一直很欣赏你在业界愿意分享的作风,现在很少你这样的人了

    看到你求婚的日子,不再潜水了,怎么也要说声祝你们幸福

    继续关注你的博客,自我学习

  • At 2009.05.07 03:16, Kevin Cao said:

    谢谢^_^
    keep moving~

  • At 2009.05.07 03:17, magicwind said:

    kevin cao 终于要结婚啦,祝福啊! :)

  • At 2009.05.07 04:30, Kevin Cao said:

    刚开始准备而已,事情太多了。。。呵呵

  • At 2009.05.07 06:07, fashion said:

    恭喜…..

  • At 2009.05.07 06:28, ezshine said:

    哈哈,这创意真不错。
    先恭喜啦,话说我当初也是为了初恋情人才学的FLASH,那是02年。
    虽然最终没有走到一起,但是却成就了我今天的饭碗。
    呵呵,恭喜你,并且祝你们的感情长青,幸福美满。

  • At 2009.05.19 04:04, moyi said:

    谢谢分享!!兄弟。 幸福快乐!!加油!!

  • At 2009.05.22 05:26, tina said:

    哈哈,我也不再潜水了,恭喜恭喜。先留下个痕迹在这里。kevin真的很用心,祝贺你们。

  • At 2009.06.05 06:40, hitiger said:

    很棒的创意。。。。。。
    我想学习!。。。。

  • At 2009.07.27 10:48, 檸檬騎士 said:

    久仰久仰、恭喜恭喜、加油加油。

  • At 2009.11.11 04:40, leef lee said:

    恭喜

  • At 2010.02.08 12:50, Sunny said:

    Kevin,我被抖动的问题困扰了很久了,弄得不能插入较长的音乐……
    看到你的方法我真的是眼前一亮 :-)
    不过我是AS新手,写的AR都是参照FLARManager的,我可能把你解决抖动问题的代码安置在了错误的地方,然后Flex就提示出错了。我想问问你,你能不能把你解决抖动问题的完整代码部分截一个图发给我?如果可以的话,真的很多谢你!
    my email : sunnymg@126.com

  • At 2010.02.09 01:13, kyoji said:

    新版的FLARManager自带smooth功能,只要在设置一下参数就可以了,不用自己写代码了,很方便的,你可以看看。

  • At 2010.02.09 13:19, Sunny said:

    恩,那个smooth功能可以解决三维模型的抖动问题,但还是解决不了marker侦测的稳定性问题,我本来想插入首3分钟的音乐,onMarkerAdded时播放,onMarkerRemoved时停止,但marker的侦测很不稳定,音乐往往播到10多秒便产生MarkerRemoved事件了…

  • At 2010.02.10 01:04, Kevin Cao said:

    解决侦测稳定性没有固定的做法。
    你可以看一下markerRemovalDelay参数,设置延时触发onMarkerRemoved事件的时间。同时调高markerUpdateThreshold的数值,使得FLARManager系统更倾向于认为是一个marker更新(update),而不是新增的marker(add),这样就不会触发onMarkerRemoved事件。

  • At 2010.02.10 02:39, Sunny said:

    恩恩,我也是这么做的,markerUpdateThreshold=700,markerRemovalDelay=105,但调了后没什么变化,这两个参数我是在flarConfig.xml里填的,是填的位置错了吗?我填在其中的flarManagerSettings里…
    多谢你!

  • At 2010.02.10 02:47, Sunny said:

    终于明白了,原来我把那两个参数填在了错误的地方,现在OK了!
    Kevin谢谢你哦!

  • At 2010.02.11 01:46, Kevin Cao said:

    ;) 不客气

  • At 2010.02.21 14:46, CouldHll said:

    超级有创意,学习!