Multiple Target是一个矩形的盒子,有六个面,尺寸需要设置3个,分别是长宽高。这个功能和之前说的Cylinder Target类似,只要可以用在包装盒中,同样具有虚实遮挡的功能。但是,相对于Cylinder Target来说,她有一个特性:从不同的面看出去,看到的场景是不同的。而Cylinder是一个整体的场景,也就是说他是一个面。
1、 更换模型
和ImageTarget一致,
2、 更换标志
首先来看看官方demo中的dataset文件:
<? xml version= "1.0" ?>
< QCARConfig xsi:noNamespaceSchemaLocation= "qcar_config.xsd" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" >
< Tracking >
< ImageTarget name= "FlakesBox.Front" size= "90 120" />
< ImageTarget name= "FlakesBox.Top" size= "90 60" />
< ImageTarget name= "FlakesBox.Bottom" size= "90 60" />
< ImageTarget name= "FlakesBox.Left" size= "60 120" />
< ImageTarget name= "FlakesBox.Right" size= "60 120" />
< ImageTarget name= "FlakesBox.Back" size= "90 120" />
< MultiTarget name= "FlakesBox" >
< Part name= "FlakesBox.Front" translation= "0 0 30" rotation= "AD: 1 0 0 0" />
< Part name= "FlakesBox.Back" translation= "0 0 -30" rotation= "AD: 0 1 0 180" />
< Part name= "FlakesBox.Left" translation= "-45 0 0" rotation= "AD: 0 1 0 -90" />
< Part name= "FlakesBox.Right" translation= "45 0 0" rotation= "AD: 0 1 0 90" />
< Part name= "FlakesBox.Top" translation= "0 60 0" rotation= "AD: 1 0 0 -90" />
< Part name= "FlakesBox.Bottom" translation= "0 -60 0" rotation= "AD: 1 0 0 90" />
</ MultiTarget >
</ Tracking >
</ QCARConfig >
好吧,来对比一下ImageTarget的dataset:
<? xml version= "1.0" ?>
< QCARConfig xsi:noNamespaceSchemaLocation= "qcar_config.xsd" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" >
< Tracking >
< ImageTarget name= "stones" size= "247 172.899994" />
< ImageTarget name= "chips" size= "247 172.899994" />
</ Tracking >
</ QCARConfig >
可以看出,基本上就是包含与被包含的关系,
Tracking-> ImageTarget / MultiTarget ->Part
再来看TargetManager怎么操作的:
没错,需要设置的参数:长宽高和名称。
之后进入:
这里显示出设置的长宽高以及右边待设置 Target的 六个面。(这也能叫做可视化开发了吧,哈哈。)
在上传图片的时候,要注意图片的比例,因为长宽高已经设定好:
OK,上传成功一个,依次类推,根据上面图片计算你设置的Target的图片的比例:(如果没有设置完成所有六个面,是不能够下载dataset的)
新建的时候全部都是空的,
导入设定的 dataset后,自动生成:
修改标志之后的场景,如下:
总结:
乍一看,和普通的没有什么不同,除了Target形状以及Hierarchy不同之外。
当然最主要的脚本文件的源码是看不着的:
MultiTargetBehaviour
1、 更换模型
和ImageTarget一致,
2、 更换标志
首先来看看官方demo中的dataset文件:
<? xml version= "1.0" ?>
< QCARConfig xsi:noNamespaceSchemaLocation= "qcar_config.xsd" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" >
< Tracking >
< ImageTarget name= "FlakesBox.Front" size= "90 120" />
< ImageTarget name= "FlakesBox.Top" size= "90 60" />
< ImageTarget name= "FlakesBox.Bottom" size= "90 60" />
< ImageTarget name= "FlakesBox.Left" size= "60 120" />
< ImageTarget name= "FlakesBox.Right" size= "60 120" />
< ImageTarget name= "FlakesBox.Back" size= "90 120" />
< MultiTarget name= "FlakesBox" >
< Part name= "FlakesBox.Front" translation= "0 0 30" rotation= "AD: 1 0 0 0" />
< Part name= "FlakesBox.Back" translation= "0 0 -30" rotation= "AD: 0 1 0 180" />
< Part name= "FlakesBox.Left" translation= "-45 0 0" rotation= "AD: 0 1 0 -90" />
< Part name= "FlakesBox.Right" translation= "45 0 0" rotation= "AD: 0 1 0 90" />
< Part name= "FlakesBox.Top" translation= "0 60 0" rotation= "AD: 1 0 0 -90" />
< Part name= "FlakesBox.Bottom" translation= "0 -60 0" rotation= "AD: 1 0 0 90" />
</ MultiTarget >
</ Tracking >
</ QCARConfig >
好吧,来对比一下ImageTarget的dataset:
<? xml version= "1.0" ?>
< QCARConfig xsi:noNamespaceSchemaLocation= "qcar_config.xsd" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" >
< Tracking >
< ImageTarget name= "stones" size= "247 172.899994" />
< ImageTarget name= "chips" size= "247 172.899994" />
</ Tracking >
</ QCARConfig >
可以看出,基本上就是包含与被包含的关系,
Tracking-> ImageTarget / MultiTarget ->Part
再来看TargetManager怎么操作的:
没错,需要设置的参数:长宽高和名称。
之后进入:
这里显示出设置的长宽高以及右边待设置 Target的 六个面。(这也能叫做可视化开发了吧,哈哈。)
在上传图片的时候,要注意图片的比例,因为长宽高已经设定好:
OK,上传成功一个,依次类推,根据上面图片计算你设置的Target的图片的比例:(如果没有设置完成所有六个面,是不能够下载dataset的)
新建的时候全部都是空的,
导入设定的 dataset后,自动生成:
修改标志之后的场景,如下:
总结:
乍一看,和普通的没有什么不同,除了Target形状以及Hierarchy不同之外。
当然最主要的脚本文件的源码是看不着的:
MultiTargetBehaviour
虽然这个功能看起来很不错,但是目前市场上这个功能的应用比较少。因为它采用六面,这种形式一般在包装盒上,而现在包装盒上面一般使用普通的ImageTarget的功能就已经足够了。其实这个功能完全可以应用在游戏当中,利用它虚实遮挡的功能,再加上物理引擎,这样模拟出来的游戏场景就更加真实了。
请尊重所有作者的劳动,转载请注明原帖来自 AR学院 !