相信《星球大战》这一系列电影一定承载着许多人的回忆,在电影中,最引入注目的莫过于光剑了。
就连Facebook 的小扎也对它情有独钟,强势的给他的小女儿配了一波:
lightsaber实在是酷,如果它与最近火热的AR技术“杂交”一下,会有什么奇妙的体验了?
预览
第一部分:开发环境
前期的开发准备与我们的那篇“如何实现 AR版 Tilt Brush”大同小异。
首先我们下载最新的Vuforia SDK,新建unity项目,并导入
然后,我们获取Licence Key
之后我们按步骤依次进行,最后copy license key,在unity中我们会用到
接下来,我们准备3D的识别模型,我们点击Target Manager,然后点击按钮Add Database
创建好后,我们点击进去,进行Add target
选择类型为Cuboid
然后,我们对它进行配置,点进去,分别上传你准备好的识别图:
然后,我们下载它的unity包
在案例中,可能还会用到一张识别图(实现 lightsaber 武器的“打斗”特效),我们选择Single Image:
配置好之后,同样下载它的unity包。
第二部分:开发
进入unity中,我们首先已经把Vuforia SDK for unity 和两个识别图(一个2d的平面图,一个立方体的)的unity包一起导入unity中。我们删除原有的Main Camera,把 Vuforia 的camera 拖到面板中,并填好我们之前的license key
接着我们把 MultiTarget 拖到面板中
接着选择识别图:
然后拖入ImageTarget 到面板中,选好之前导入的识别图
效果如图:
然后我们在 Imagetarget 下面新建一个Plane,修改其size,这样容易实现光剑与其的一些交互
然后分别添加Box Collider与Audio Source(音效资源后面会给出)
我们还需要建立一个Material,命名为shadow,修改其模式为shader--DepthMask,挂在Plane上。
第四部分:光剑的准备
首先我们在MultiTarget下面创建一个Cylinder,命名为saber,修改它的一些参数:
、
然后我们为其添加如下组件:
我们还需创建一个Material,来改变光剑的颜色,模式选为unlit--color
然后为了实现更炫的光剑,我们还需要一些粒子效果,我们在Asset Store 下载到我们的项目里(这个是免费的)
我们选择一个效果拖到MultiTarget下面
第五部分:交互
首先当我们的光剑触碰到识别图时,播放一段音效,在Imagetarget 下面的Plane里实现,新建脚本“start_cutting”
publicclassstart_cutting:MonoBehaviour
{
publicAudioSourcecut;
//Usethisforinitialization
//Updateiscalledonceperframe
voidOnTriggerEnter(Collidercollider)
{
if(collider.tag=="saber")
{
cut.Play();
}
}
voidOnTriggerExit(Collidercollider)
{
if(collider.tag=="saber")
{
cut.Stop();
}
}
}
实现烧灼的黑色效果,实现思路类似与上篇的“如何实现 AR版 Tilt Brush”,首先我们新建个预制体,命名为mark
然后新建个Material,模式为unlit--transparent,选择一张我们准备好的图片
同样的我们也可以在Plane 的脚本里实现,当检测到碰撞时,实例化 mark这一预制体。当然你也可以有更多脑洞,比如添加一些粒子特效等等,我在这里仅提供一些思路。
下载
资源链接
https://pan.baidu.com/s/1nvM9KGp
密码: b1pc
AR酱原创
转自微信号AR酱(ARchan_TT)
并附上原文链接
阅读推荐
酱视频 | Meta 要让我们都做Augmented Human?
酱发现 | 成为VR / AR In-Studio摄像机跟踪系统标准的StarTracter
酱发现 | 一听你的AR纹身,就知道你是个有故事的人
“呐,做 AR VR,最重要的就是开心啦”
梦想重要,开心也重要
摘自:AR酱