Cubism SDK手册
关于Cubism 4新功能的SDK支持
关于Cubism 4.2新功能的SDK支持
关于Cubism 4.2功能的SDK兼容性
将旧版本的项目迁移到Cubism 4 SDK
注意事项
平台对比
Original Workflow
Cubism Core
SDK for Native
SDK for Web
SDK for Unity
SDK for Java
SDK for Cocos Creator
常问问题
在Cubism SDK for Java 中,您可以在退出动态播放时通过回调获取Event。
在范例中,通过回调函数输出退出播放的记录文本。
此次,由于在退出动态播放时通过回调进行处理,因此进行实装,使其能够通过管理动态的抽象类
Framework/src/motion/ACubismMotion进行回调处理。
public class ACubismMotion{
// モーション再生終了コールバックの登録
public void setFinishedMotionHandler(IFinishedMotionCallback onFinishedMotionHandler) {
onFinishedMotion = onFinishedMotionHandler;
// モーション再生終了コールバックの取得
public IFinishedMotionCallback getFinishedMotionCallback() {
return onFinishedMotion;
// モーション再生終了時に呼び出されるコールバック関数を入れる変数
protected IFinishedMotionCallback onFinishedMotion;
* 用作动态播放结束回调的接口
public interface IFinishedMotionCallback {
public void execute(ACubismMotion motion);
在Cubism SDK for Java中,使用执行作为回调定义的接口的物体来再现回调机制。
在范例中,以下情况无法调用回调,敬请注意。
当正在播放的动态设置为“循环”时
在回调中注册null时
回调函数的使用
实装希望通过回调函数实际处理的内容。
在范例中,通知退出动态播放的记录文本被实装为使用LAppPal.printLog输出。
如果要在退出动态播放时变更处理,请变更以下函数的实装。
private static class FinishedMotion implements IFinishedMotionCallback {
@Override
public void execute(ACubismMotion motion) {
LAppPal.printLog("Motion Finished: " + motion);
另外,在注册回调方法时,在使用导入动态数据的Framework层的CubismUserMotion.loadMotion方法时,会在生成动态的同时传递回调方法。
如果已经有了一个动态,则使用“实装回调”中介绍的setFinishedMotionHandler()。
public int startMotion(
final String group,
int number,
int priority,
IFinishedMotionCallback onFinishedMotionHandler
if (motion == null) {
String fileName = modelSetting.getMotionFileName(group, number);
if (!fileName.equals("")) {
String path = modelHomeDirectory + fileName;
byte[] buffer = LAppPal.loadFileAsBytes(path);
// モーションデータを読み込むのと同時にコールバック関数オブジェクトを渡して登録する
motion = loadMotion(buffer, onFinishedMotionHandler);
} else {
motion.setFinishedMotionHandler(onFinishedMotionHandler);
在范例中,回调函数是从执行获取点击Event的onTap()时调用的startRandomMotion()传入。
此外,由于实际播放动态的是CubismMotion.doUpdateParameters(),因此进行实装,以便可以将回调函数传递给CubismMotion。
public static CubismMotion create(byte[] buffer, IFinishedMotionCallback callback) {
CubismMotion result = new CubismMotion();
result.parse(buffer);
result.sourceFrameRate = result.motionData.fps;
result.loopDurationSeconds = result.motionData.duration;
// コールバック関数の登録
result.onFinishedMotion = callback;
return result;
关于实装的发展
范例中只实装了退出动态播放,但通过发展这些实装,可以在退出动态播放后通过回调函数进行异步处理等,
通过从要应用回调的实际处理中反转函数,您可以在退出动态播放以外的地方实装回调。
关于本报道,敬请提出您的意见及要求。