###由于项目需要更生动的动画,例如:点击人物需要随机播放动画,手指在屏幕上滑动需要人物眼睛跟着手指转
刚好live2d符合要求,在官网下载了Demo后尝试自己手动接入live2d库和C++代码.
下面介绍下live2d接入相关:c++接入,jsb绑定,creator使用教程
live2d版本号使用的是:Cubism 3
#live2d版本号和下载地址:
官网:https://www.live2d.com/ja/download
demo+sdk:http://cubism3.live2d.com.s3.amazonaws.com/sdk/Cubism3SDKforNative-beta12-1.zip
官网下载的是beta12,我接入的时候是beta8,版本相差不大,按照我的流程来基本不会有问题.
可以参考demo自己手动接入,或者按照下面流程使用已经改好的代码进行接入…
那我们开始吧!!!
#C++代码,安卓,ios相关环境接入
##首先C++
代码部分我已经打好包,下载下来解压缩 Core和Framework文件夹放在runtime-src目录下,Class文件夹和runtime-src目录下Class合并
runtime-src.zip (2.4 MB)
-
AppDelegate类中需要添加live的初始化和内存释放
-
头文件声明变量:
LAppAllocator _cubismAllocator;
Csm::CubismFramework::Option _cubismOption; -
初始化:函数AppDelegate::applicationDidFinishLaunching()
#ifdef CSM_TARGET_ANDROID_ES2
char exts = (char)glGetString(GL_EXTENSIONS);
if(strstr(exts, "GL_NV_shader_framebuffer_fetch ")){
Csm::Rendering::CubismRenderer_OpenGLES2::SetExtShaderMode( true , true );
}
#endif// prepare for Cubism Framework API.
_cubismOption.LogFunction = LAppPal::PrintMessage;
_cubismOption.LoggingLevel = LAppDefine::CubismLoggingLevel;
Csm::CubismFramework::StartUp(&_cubismAllocator, &_cubismOption);assert(Csm::CubismFramework::IsStarted());
Csm::CubismFramework::Initialize();
jsb_run_script(“main.js”);
-
内存释放:函数**AppDelegate::~AppDelegate()**末尾添加
Csm::CubismFramework::Dispose(); -
JSB绑定初始化: jsb_module_register中添加注册se->addRegisterCallback(register_all_cocos2dx_live2d);
到这一步C++部分代码添加完成
##安卓部分: Android.mk添加c++关联和库关联
include $(CLEAR_VARS)这一行后面添加
LOCAL_MODULE := libLive2DCubismCore
LOCAL_SRC_FILES := $(LOCAL_PATH)/../../../Core/lib/android/$(TARGET_ARCH_ABI)/libLive2DCubismCore.a
include $(PREBUILT_STATIC_LIBRARY)
添加c++文件关联:(这一步不做过多说明,都知道.cpp和.h的添加位置)
cpp添加
../../../Classes/jsb_cocos2dx_live2d.cpp \
../../../Classes/LAppAllocator.cpp \
../../../Classes/LAppDefine.cpp \
../../../Classes/LAppModel.cpp \
../../../Classes/LAppPal.cpp \
../../../Classes/LAppView.cpp \
../../../Framework/src/Motion/ACubismMotion.cpp \
../../../Framework/src/Type/csmRectF.cpp \
../../../Framework/src/Type/csmString.cpp \
../../../Framework/src/Effect/CubismBreath.cpp \
../../../Framework/src/Utils/CubismDebug.cpp \
../../../Framework/src/CubismDefaultParameterId.cpp \
../../../Framework/src/Motion/CubismExpressionMotion.cpp \
../../../Framework/src/Effect/CubismEyeBlink.cpp \
../../../Framework/src/CubismFramework.cpp \
../../../Framework/src/Id/CubismId.cpp \
../../../Framework/src/Id/CubismIdManager.cpp \
../../../Framework/src/Utils/CubismJson.cpp \
../../../Framework/src/Math/CubismMath.cpp \
../../../Framework/src/Math/CubismMatrix44.cpp \
../../../Framework/src/Model/CubismMoc.cpp \
../../../Framework/src/Model/CubismModel.cpp \
../../../Framework/src/Math/CubismModelMatrix.cpp \
../../../Framework/src/CubismModelSettingJson.cpp \
../../../Framework/src/Model/CubismModelUserData.cpp \
../../../Framework/src/Model/CubismModelUserDataJson.cpp \
../../../Framework/src/Motion/CubismMotion.cpp \
../../../Framework/src/Motion/CubismMotionJson.cpp \
../../../Framework/src/Motion/CubismMotionManager.cpp \
../../../Framework/src/Motion/CubismMotionQueueEntry.cpp \
../../../Framework/src/Motion/CubismMotionQueueManager.cpp \
../../../Framework/src/Physics/CubismPhysics.cpp \
../../../Framework/src/Physics/CubismPhysicsJson.cpp \
../../../Framework/src/Effect/CubismPose.cpp \
../../../Framework/src/Rendering/CubismRenderer.cpp \
../../../Framework/src/Rendering/OpenGL/CubismRenderer_OpenGLES2.cpp \
../../../Framework/src/Utils/CubismString.cpp \
../../../Framework/src/Math/CubismTargetPoint.cpp \
../../../Framework/src/Model/CubismUserModel.cpp \
../../../Framework/src/Math/CubismVector2.cpp \
../../../Framework/src/Math/CubismViewMatrix.cpp
头文件
…/…/…/Core/include
…/…/…/Framework/src
宏定义 LOCAL_STATIC_LIBRARIES := cocos2d_js_static libLive2DCubismCore
##IOS XCode部分
这部分比较少,只需要添加一个宏定义即可: lLive2DCubismCore
#jsb_cocos2dx_live2d生成
这个文件是通过LAppView.h,然后通过jsb转换脚本一键生成的.
至于怎么生成的论坛搜索jsb绑定就能搜到
#creator控件脚本
Live2DModel.zip (1.1 KB)
