本文已参与掘金创作者训练营第三期「高产更文」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力。
Spark AR 是 Facebook 免费创作 AR 作品的平台,使用户能够为 Facebook 和 Instagram 创建交互式增强现实体验,超过 40 万名创作者,190个国家/地区,使用 Spark AR 来创作自己的AR作品
由于该软件无需任何编码知识即可使用,因此任何人现在都可以在 AR 世界中几乎没有经验地制作下一个疯狂式传播的 Instagram AR 特效,引领世界潮流。
专门的 AR 滤镜设计师单价甚至可达到 1000 美元到 3 万美元不等。
在块中使用输入输出
输入
使用输入自定义块内的贴片图:
- 打开块;
- 在场景面板中选择Block Root。
- 进入检查器的 Interactions。
- 单击Producer Patch旁边的Create:
或者,将场景块对象从场景面板中拖到贴片编辑器中。
输出
使用输出将信息从块传递到项目中。例如,块外的贴片。
在打开的块:
在场景面板中选择Block Root。 在检查器中单击Output旁边的箭头。
消费者贴片将被创建:
在项目中使用输入和输出
输入
当你在场景面板中选择块时,你添加到块中的所有输入都将在检查面板的Inputs项下列出:
你可以在检查器中改变输入的值,以改变块在你的效果中表现的方式。或者,单击输入旁边的箭头,创建一个消费者贴片,可以连接到图表的其余部分:
你也可以将块从场景面板拖到贴片编辑器中。
输出
一旦你定义了块的输出,将它从场景面板拖到贴片编辑器中创建一个贴片:
脚本
在通过名称访问场景中的块之后,你可以通过使用 BlockSceneRoot 类的方法在脚本中设置输入值和获取输出值。
// Load in the scene module
const Scene = require('Scene');
const Diagnostics = require('Diagnostics');
// Locate a block in the scene
Scene.root.findFirst('myBlock').then(function(myBlock){
// Set a scalar input (signals also accepted)
myBlock.inputs.setScalar('blockInput', 5)
.then(function() {
// Success
}, function(error) {
// input named blockInput probably doesn't exist
// or is not of scalar type, check error for details
Diagnostics.log(error);
});
// Get a scalar output
myBlock.outputs.getScalar('blockOutput')
.then(function(blockOutputScalarSignal){
// Do something with blockOutputScalarSignal
}, function(error) {
// output named blockOutput probably doesn't exist
// or is not of scalar type, check error for details
Diagnostics.log(error);
});
// Alternatively get scalar output with implicit
// error handling - i.e. in case of error `blockOutputScalarSignal` will have value 0.
const blockOutputScalarSignal = myBlock.outputs.getScalarOrFallback('blockOutput', 0);
});
添加一个描述
在区块中添加描述是个好主意。这将帮助任何与你分享块的创作者了解它做了什么,并帮助你保持跟踪。
添加描述:
- 在块的场景面板中选择Block Root。
- 在检查器中单击Block Properties。
- 在General选项卡中输入您对块的描述。
当你在资产面板中选择块时,你会在检查器中看到描述:
在其他项目中共享块和使用块
您可以打包块与其他创建者共享,或者将它们添加到其他项目中。
打包一个块:
- 打开你的块。
- 点击File并选择Package…
- 选择名称和目的路径。
- 单击Save。
将创建一个*.arblockpkg* 文件 —— 您可以与其他创建者共享该文件或将该块添加到另一个项目中。他们将能够将*.arblockpkg* 文件导入到他们的项目中。
加入 Spark AR 社区,与其他创作者分享技巧、灵感和区块和贴片组等资产。
在一个块中创建一个块
也可以在块中创建块。 让我们用看起来像雪的粒子系统重新使用这个块:
在 SnowBlock 中添加另一个块:
- 双击SnowBlock在一个新的一级窗口中打开它。
- 在资产面板中,创建另一个块。
第二级块将在资产面板中以 block0 的形式列出。
编辑第二级块
编辑第二级块:
- 在资产面板中选择block0,在检查器中,单击Edit。
- 在新打开的第二级窗口中进行任何编辑。
- 转到File并单击Save。
- 在下面的例子中,我们添加了一个不同的粒子系统到block0。它在场景面板中显示为emitter0。
实例化第二级块
您需要实例化第二级块,以便内容也出现在第一级块中。这样做:
- 回到第一级窗口,在资产面板中右键单击block0并选择Instantiate。
- 转到File并单击Save。
这两个块的内容现在将在第一级窗口中可见。
这两个块的内容也将在主项目中可见。在我们的例子中,两个粒子系统在视口和模拟器中都是可见的:
在块和贴片资产之间选择
块允许你组织你的项目,反复使用它的一部分。它们可以包含场景对象、资产和贴片。
贴片资产允许您与其他 Spark AR Studio 创建者保存和共享贴片组。贴片资产不能包含生产者贴片,消费者贴片或任何资产。
一般来说:
- 如果您想保存和导出的效果元素只使用贴片,请使用贴片组(Patch Groups)。
- 如果你使用的是场景对象和资产以及贴片,那就使用块。
限制
块只能用于以米为计量单位的项目。
不支持以下特性:
- 一些全局对象和资产,例如环境光和环境纹理;
- 脚本;
- 其他需要特殊功能的元素。