动效素材叠加是指多个动效素材可以同时生效。
注意:素材叠加注意事项:
注意:1. 客户需要自行管理素材之间是否适合叠加。举两个例子:
注意:例1:特效 A 是变成贵妃脸,特效 B 是变成童话脸,这两个特效叠加后可能会导致画面非常别扭。
注意:例2:特效 A 是个兔耳朵,特效 B 是猪耳朵,两个叠加后,就有两种耳朵。
注意:例1和例2这两种情况不适合叠加。如果特效 A 是兔耳朵,特效 B 是送一个飞吻,这两个特效不会冲突,就适合叠加。
注意:2. 只支持简单素材之间的叠加。简单素材是指只有单动效能力、或者单美妆效果、或者单抠背等,复杂素材是指包含了多种效果。简单素材和复杂素材没有明确的界定,建议客户充分测试后,自行管理哪些素材之间可以叠加,哪些不能叠加。
注意:3. 叠加时,有动作触发的特效(例如伸出手触发某个特效、微笑触发某个特效等)属于复杂特效,需要放在前面,简单特效放在后面叠加在它之上。
注意:4. 使用示例:主播使用了特效 A,然后观众送礼物特效 B,B 要叠加在 A 之上,一段时间后 B 消失,恢复成特效 A。那么设置步骤如下:
注意:4.1 设置特效 A,mergeWithCurrentMotion 设置为 false。
注意:4.2 设置特效 B,mergeWithCurrentMotion 设置为 true。
注意:4.3 一小段时间后,再设置 A,mergeWithCurrentMotion 设置为 false。
一、如何配置同时生效?
V3.5.0及以上V3.0.1及以上
1. 如果你使用setEffect方法来更新美颜属性,要实现素材叠加功能,可以在extrainfo中添加 mergeWithCurrentMotion 字段设置为"true"2. 如果使用的是updateProperty方法,那么可参见 V3.0.1中列举的方法。
二、Android:
如果想要某个动效/美妆/分割素材叠加在当前素材上,则将该素材 XmagicProperty 对象的 mergeWithCurrentMotion 设置为 true。XMagicProperty 对象的其他属性设置见 美颜参数设置。
XmagicProperty xmagicProperty = new XmagicProperty(XmagicProperty.Category.MOTION,"video_keaituya",mResPath+"xmagic/MotionRes/2dMotionRes/video_keaituya",null,null);
xmagicProperty.mergeWithCurrentMotion = true;
mXMagicApi.updateProperty(xmagicProperty);
三、iOS:
如果想要某个动效/美妆/分割素材叠加在当前素材上,则设置该素材时,在 withExtraInfo 的字典中设置 mergeWithCurrentMotion 为 true,示例如下:
NSString *key = _xmagicUIProperty.property.Id;NSString *value = [[NSBundle mainBundle] pathForResource:@"makeupMotionRes" ofType:@"bundle"];NSDictionary* extraInfo = @{@"mergeWithCurrentMotion":@(true)}; [self.beautyKitRef configPropertyWithType:@"motion" withName:key withData:[NSString stringWithFormat:@"%@",value] withExtraInfo:extraInfo];