是否已指定 UI 更改 3d 对象而不是仅更改纹理的 instagram 蒙版?
Does have instagram masks specified UI to chage the 3d objects instead changing textures only?
所以我有 3 个不同的,其中包含具有特殊动画的不同 3d 对象。
首先是3d物体在头顶上方旋转,随着我们头部的摇动改变轨道的角度。第二个是掉落在角色周围的 2d 精灵通过闭眼呼叫。第三个是简单的 facemesh,上面有网格纹理。我绘制了特殊的 UI 并对其进行了编码,因此在 ArPlayer 中它可以完美运行,但是当我尝试将其上传到 facebook 时,这个 UI 不起作用并且我只有 1 号掩码。
所以我尝试在 Youtube 上搜索解决方案并且只有 this,但我认为这仅适用于纹理更改。所以我的问题是:我可以使用 instagram changing ui 和我的效果吗?如果可以,我该怎么做。太感谢了!
P.S: 你能找到的所有图片。
效果不得使用自定义按钮、键盘、选择器或滑块 - 效果只能使用本机 UI 选择器和滑块。 (Spark AR 审查政策 2.6)
使用本机 UI 选择器,您不仅可以更改纹理,还可以更改对象的可见性。
示例:
- 创建一个新项目
- 在场景中创建几个平面物体(比如3个)并命名为obj0,
obj1, obj2 并使它们不可见
- 在 Capabilities 中添加 Native UI -> Picker
- 向项目添加 3 个纹理并将它们命名为 icon_1、icon_2、icon_3 和 为每个人检查 "No compression" 选项
- 添加这样的脚本
const NativeUI = require('NativeUI');
const Textures = require('Textures');
const Scene = require('Scene');
Promise.all([
Textures.findFirst('icon_1'),
Textures.findFirst('icon_2'),
Textures.findFirst('icon_3'),
Scene.root.findFirst('obj0'),
Scene.root.findFirst('obj1'),
Scene.root.findFirst('obj2')
]).then(onReady);
function onReady(assets) {
const texture0 = assets[0];
const texture1 = assets[1];
const texture2 = assets[2];
const objects = [assets[3],assets[4],assets[5]];
const picker = NativeUI.picker;
const index = 0;
const configuration = {
selectedIndex: index,
items: [
{image_texture: texture0},
{image_texture: texture1},
{image_texture: texture2}
]
};
picker.configure(configuration);
picker.visible = true;
picker.selectedIndex.monitor({fireOnInitialValue:true}).subscribe(function(index) {
objects[index.newValue].hidden = false;
if(index.oldValue != undefined)
{
objects[index.oldValue].hidden = true;
}
});
}
类似的官方例子来自开发者,他们使用Native UI picker (script) + patch来隐藏对象。启动 Spark AR Studio 并从模板“3D Stickers”创建新项目并观察他们是如何做到的。如果您没有这样的项目模板,请更新 Spark AR Studio。
所以我有 3 个不同的,其中包含具有特殊动画的不同 3d 对象。
首先是3d物体在头顶上方旋转,随着我们头部的摇动改变轨道的角度。第二个是掉落在角色周围的 2d 精灵通过闭眼呼叫。第三个是简单的 facemesh,上面有网格纹理。我绘制了特殊的 UI 并对其进行了编码,因此在 ArPlayer 中它可以完美运行,但是当我尝试将其上传到 facebook 时,这个 UI 不起作用并且我只有 1 号掩码。 所以我尝试在 Youtube 上搜索解决方案并且只有 this,但我认为这仅适用于纹理更改。所以我的问题是:我可以使用 instagram changing ui 和我的效果吗?如果可以,我该怎么做。太感谢了!
P.S: 你能找到的所有图片。
效果不得使用自定义按钮、键盘、选择器或滑块 - 效果只能使用本机 UI 选择器和滑块。 (Spark AR 审查政策 2.6)
使用本机 UI 选择器,您不仅可以更改纹理,还可以更改对象的可见性。
示例:
- 创建一个新项目
- 在场景中创建几个平面物体(比如3个)并命名为obj0, obj1, obj2 并使它们不可见
- 在 Capabilities 中添加 Native UI -> Picker
- 向项目添加 3 个纹理并将它们命名为 icon_1、icon_2、icon_3 和 为每个人检查 "No compression" 选项
- 添加这样的脚本
const NativeUI = require('NativeUI');
const Textures = require('Textures');
const Scene = require('Scene');
Promise.all([
Textures.findFirst('icon_1'),
Textures.findFirst('icon_2'),
Textures.findFirst('icon_3'),
Scene.root.findFirst('obj0'),
Scene.root.findFirst('obj1'),
Scene.root.findFirst('obj2')
]).then(onReady);
function onReady(assets) {
const texture0 = assets[0];
const texture1 = assets[1];
const texture2 = assets[2];
const objects = [assets[3],assets[4],assets[5]];
const picker = NativeUI.picker;
const index = 0;
const configuration = {
selectedIndex: index,
items: [
{image_texture: texture0},
{image_texture: texture1},
{image_texture: texture2}
]
};
picker.configure(configuration);
picker.visible = true;
picker.selectedIndex.monitor({fireOnInitialValue:true}).subscribe(function(index) {
objects[index.newValue].hidden = false;
if(index.oldValue != undefined)
{
objects[index.oldValue].hidden = true;
}
});
}
类似的官方例子来自开发者,他们使用Native UI picker (script) + patch来隐藏对象。启动 Spark AR Studio 并从模板“3D Stickers”创建新项目并观察他们是如何做到的。如果您没有这样的项目模板,请更新 Spark AR Studio。