
1. Mindmaping & Sketch
某一天突然来了灵感,于是用Mindmap工具记录下来。后来还是改用纸笔画,因为可以随意画些东西,比较顺手。最初的概念是配合文字设置几个场景,最后因为时间的关系只简化为一个。
2. Making Markers and Tee
用这里提供的工具制作自己的标记,如果不太会用,可以看看这篇文章或者gotoAndLearn()上的这篇教程。
标记不仅可以印在纸上,用手机、PSP等显示设备效果也不错。除此此外,我还在网上印了一套情侣衣。

3. Modeling
用Cinema 4D建几个简单的模型,面不要太多,用自带的Collada导出就可以在Papervision3D里面用。材质不用调,用的是Papervision3D自己的Phong Shader。
4. Drawing assets in Flash
写文字可能比我写程序要难,这些年钻研英文资料造成我的中文水平急剧下降。不过再花哨也都是形式,真的打动人心的东西都是些朴素平凡的东西。打好稿以后,用数位板在Flash中写一遍,还原自然的感觉。
5. Test Drive in Papervision3D
FLARToolkit只是负责检测标记并计算坐标。在此之前先用Papervision3D把场景和动画元素做出来。散落的花瓣用Flint来做,粒子渲染可以和Papervision3D很好的整合。
6. Wrap it up
最后再做整合,只要把坐标关联到一起就可以了(看看BaseNode的代码)。为了尝试用多个Marker,我用了FlarManager这套类库。虽然提供了Add和Remove事件,但是检测机制有点复杂,花了相当的时间来搞明白。由于在移动Marker的情况下,事件会不断的被触发,所以开发一套自己的冲突解决方法是必须的。
此外还有抖动的问题,用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剪辑,终于在五一前最后一天搞定。
Related posts
« Diesel – Only The Brave GreenSock Tweening Platform v11 Beta »













Kevin,我想来想去,有个问题还是想请教一下你:
我用FLARManager做好了一个AR程序,在本地测试没有问题,但上传到服务器上就出现了这个错误提示了(我已经把bin-release里的文件全部传上去):
Error: Error #2032: 流错误。 URL: http://campus.gdufs.edu.cn/bin-release-p/FLARCame...
at com.transmote.flar::FLARManager/onCameraParamsLoadError()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
我想会不会是服务器不支持.dat这类特殊文件呢?我真的很困惑,眼看快完成作品了,却在最后关头被卡住……
post太长了,所以要分开来发:
关于这个问题的讨论,点下面这个网址,google排出的前3个链接就包含了:
http://www.google.cn/search?hl=zh-CN&newwindo...
谢谢你抽空来看这个长长的post …
有可能是服务器不支持,直接点击你那个地址显示无法找到页面。如果服务器支持的话,应该会弹出下载来才是。
Kevin你好,我已经重新设置了MIME类型了,现在点击链接能弹出下载框,但还是会提示同样的错误:
Error: Error #2032: 流错误。 URL: http://sunnymai.21376.ftpdo.com/bin-release-m/FLA...
at com.transmote.flar::FLARManager/onCameraParamsLoadError()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Kevin,你以前遇到过这种情况吗?
Kevin,我试着将特殊文件的后缀改为.xml,结果成功了,服务器能识别
恭喜了:)
超级有创意,学习!
恩,那个smooth功能可以解决三维模型的抖动问题,但还是解决不了marker侦测的稳定性问题,我本来想插入首3分钟的音乐,onMarkerAdded时播放,onMarkerRemoved时停止,但marker的侦测很不稳定,音乐往往播到10多秒便产生MarkerRemoved事件了…
解决侦测稳定性没有固定的做法。
你可以看一下markerRemovalDelay参数,设置延时触发onMarkerRemoved事件的时间。同时调高markerUpdateThreshold的数值,使得FLARManager系统更倾向于认为是一个marker更新(update),而不是新增的marker(add),这样就不会触发onMarkerRemoved事件。
恩恩,我也是这么做的,markerUpdateThreshold=700,markerRemovalDelay=105,但调了后没什么变化,这两个参数我是在flarConfig.xml里填的,是填的位置错了吗?我填在其中的flarManagerSettings里…
多谢你!
终于明白了,原来我把那两个参数填在了错误的地方,现在OK了!
Kevin谢谢你哦!
Kevin,我被抖动的问题困扰了很久了,弄得不能插入较长的音乐……
看到你的方法我真的是眼前一亮
不过我是AS新手,写的AR都是参照FLARManager的,我可能把你解决抖动问题的代码安置在了错误的地方,然后Flex就提示出错了。我想问问你,你能不能把你解决抖动问题的完整代码部分截一个图发给我?如果可以的话,真的很多谢你!
my email : sunnymg@126.com
新版的FLARManager自带smooth功能,只要在设置一下参数就可以了,不用自己写代码了,很方便的,你可以看看。
恭喜
久仰久仰、恭喜恭喜、加油加油。