Skip to content

Commit

Permalink
Release of Cubism 5 SDK MotionSync Plugin for Native R1 beta1
Browse files Browse the repository at this point in the history
  • Loading branch information
wada-at-live2d-com committed Oct 17, 2023
0 parents commit 49b27a9
Show file tree
Hide file tree
Showing 124 changed files with 13,854 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* text=auto eol=lf
*.bat text eol=crlf
*.rc text eol=crlf
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Core directory files
/Core/**/*.a
/Core/**/*.bundle
/Core/**/*.dll
/Core/**/*.dylib
/Core/**/*.lib
/Core/**/*.so

# Sample build directories
/Samples/**/build/
# Sample third party files
/Samples/**/thirdParty/*
!/Samples/**/thirdParty/scripts/*
!/Samples/OpenGL/thirdParty/stb/*
!/Samples/Metal/thirdParty/stb/*
!/Samples/Vulkan/thirdParty/stb/*
# Other files
/build/
.vs/
.vscode/
.idea/
*.iml
.DS_Store
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).


## [5-r.1-beta.1] - 2023-10-17

### Added

* New released!
41 changes: 41 additions & 0 deletions Core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).


## 2023-10-17

### Changed

* Upgrade Core version to 05.00.0002.

### Fixed

* Fix a calculation bug within the `csmMotionSync_Analyze()`.


## 2023-09-28

### Added

* Add library for Android.
* Add library for ios.
* Add logging functions.
* `csmMotionSync_SetLogFunction()`
* `csmMotionSync_GetLogFunction()`


### Changed

* Upgrade Core version to 05.00.0001.
* Change `csmMotionSync_Analyze()` argument name.
* `analyzeConfiguration` -> `analysisConfiguration`


## 2023-08-17

### Added

* New released!
7 changes: 7 additions & 0 deletions Core/CRI/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Live2D Proprietary Software License

Live2D Cubism MotionSync Core is available under Live2D Proprietary Software License.

* [Live2D Proprietary Software License Agreement](https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html)
* [Live2D Proprietary Software 使用許諾契約書](https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_jp.html)
* [Live2D Proprietary Software 使用授权协议](https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_cn.html)
9 changes: 9 additions & 0 deletions Core/CRI/RedistributableFiles.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
The following is a list of files available for redistribution
under the terms of the Live2D Proprietary Software License Agreement:

- dll/macos/libLive2DCubismMotionSyncEngine_CRI.dylib
- dll/macos/Live2DCubismMotionSyncEngine_CRI.bundle
- dll/windows/x86/Live2DCubismMotionSyncEngine_CRI.dll
- dll/windows/x86/Live2DCubismMotionSyncEngine_CRI.lib
- dll/windows/x86_64/Live2DCubismMotionSyncEngine_CRI.dll
- dll/windows/x86_64/Live2DCubismMotionSyncEngine_CRI.lib
Binary file added Core/CRIWARELOGO_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions Core/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Definitions

## Live2D Open Software License

Live2D Cubism Components is available under Live2D Open Software License.

* [Live2D Open Software License](https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html)
* [Live2D Open Software 使用許諾契約書](https://www.live2d.com/eula/live2d-open-software-license-agreement_jp.html)
* [Live2D Open Software 使用授权协议](https://www.live2d.com/eula/live2d-open-software-license-agreement_cn.html)

## Cubism SDK Release License

*All business* users must obtain a Cubism SDK Release License. "Business" means an entity with the annual gross revenue more than ten million (10,000,000) JPY for the most recent fiscal year.

* [Cubism SDK Release License](https://www.live2d.com/en/download/cubism-sdk/release-license/)

直近会計年度の売上高が 1000 万円以上の事業者様がご利用になる場合は、Cubism SDK リリースライセンス(出版許諾契約)に同意していただく必要がございます。

* [Cubism SDK リリースライセンス](https://www.live2d.com/ja/download/cubism-sdk/release-license/)

如果您的企业在最近一个会计年度的销售额达到或超过1000万日元,您必须得到Cubism SDK的出版授权许可(出版许可协议)。

* [Cubism SDK发行许可证](https://www.live2d.com/zh-CHS/download/cubism-sdk/release-license/)

---

Please contact us from [here](https://www.live2d.jp/contact/) for more license information.
24 changes: 24 additions & 0 deletions Core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Live2D Cubism MotionSync Engine

This folder contains header files and platform-specific library files for using the motion sync plug-in.


## Library List

| Platform | Architecture | dll | lib | Path | Note |
| --- | --- | --- | --- | --- | --- |
| macOS | ARM64 || | macos/arm64 | |
| macOS | x86_64 || | macos/x86_64 | |
| Windows | x86 || | windows/x86 | |
| Windows | x86_64 || | windows/x86_64 | |


### Calling convention

When using the dynamic library of *Windows/x86*, explicitly use `__stdcall` as the calling convention.

---

[![CRIWARE for Games](CRIWARELOGO_1.png)](https://game.criware.jp/)

Powered by "CRIWARE".CRIWARE is a trademark of CRI Middleware Co., Ltd.
198 changes: 198 additions & 0 deletions Core/include/Live2DCubismMotionSyncEngine.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
/**
* Copyright(c) Live2D Inc. All rights reserved.
*
* Use of this source code is governed by the Live2D Open Software license
* that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
*/

#ifndef LIVE2D_CUBISM_MOTIONSYNC_ENGINE_H
#define LIVE2D_CUBISM_MOTIONSYNC_ENGINE_H

#if defined(__cplusplus)
extern "C"
{
#endif

/* ------- *
* DEFINES *
* ------- */

/** MotionSync API attribute. */
#if !defined(csmMotionSyncApi)
#define csmMotionSyncApi
#endif

/* ----- *
* TYPES *
* ----- */

/** Context of Analysis. */
typedef void* csmMotionSync_Context;

/** Engine version identifier. */
typedef unsigned int csmMotionSyncVersion;


/** Booleans. */
enum
{
csmMotionSyncFalse = 0,
csmMotionSyncTrue = 1
};

/**
* Result of analysis.
*/
typedef struct
{
/** Value Array of CubismParameter */
float* Values;

/** Number of values used in the analysis. */
int ValuesCount;

/** Number of samples used in the analysis. */
unsigned int ProcessedSampleCount;
} csmMotionSync_AnalysisResult;

/** Mapping Information of AudioParameter. */
typedef struct
{
/** ID of AudioParameter. */
const char* AudioParameterId;

/** Array of ID of ModelParameter linked to the AudioParameter. */
const char** ModelParameterIds;

/** Array of ModelParameter Value. */
float* ModelParameterValues;

/** Number of ModelParameter. */
unsigned int ModelParameterCount;

/** Scaling value for CubismParameter. */
float Scale;

/** Enable / Disable for applying.*/
unsigned int Enabled;
} csmMotionSync_MappingInfo;

/** Log handler.
*
* @param message Null-terminated string message to log.
*/
typedef void (*csmMotionSyncLogFunction)(const char* message);

/** Calling conventions for each platform. */
#if CSM_MOTIONSYNC_ENGINE_WIN32_DLL
#define csmMotionSyncCallingConvention __stdcall
#else
#define csmMotionSyncCallingConvention
#endif

/* ------- *
* VERSION *
* ------- */

/**
* Queries the version of Engine.
*
* @return Version of Engine.
*/
csmMotionSyncApi csmMotionSyncVersion csmMotionSyncCallingConvention csmMotionSync_GetEngineVersion();

/**
* Queries the name of Engine.
*
* @return Name of Engine.
*/
csmMotionSyncApi const char* csmMotionSyncCallingConvention csmMotionSync_GetEngineName();

/* ------- *
* LOGGING *
* ------- */

/**
* Queries log handler.
*
* @return Log handler.
*/
csmMotionSyncApi csmMotionSyncLogFunction csmMotionSyncCallingConvention csmMotionSync_GetLogFunction();

/**
* Sets log handler.
*
* @param handler Handler to use.
*/
csmMotionSyncApi void csmMotionSyncCallingConvention csmMotionSync_SetLogFunction(csmMotionSyncLogFunction handler);

/* ------- *
* METHOD *
* ------- */

/**
* Initializes the Engine.
* @param engineConfiguration Congifuration parameter for engine initialization. Set to `NULL` to use default parameter.
*
* @return `1` if Engine is available.
*/
csmMotionSyncApi int csmMotionSyncCallingConvention csmMotionSync_InitializeEngine(const void* engineConfiguration);

/**
* Disposes the Engine.
*/
csmMotionSyncApi void csmMotionSyncCallingConvention csmMotionSync_DisposeEngine();

/**
* Makes the context of Analysis.
*
* @param contextConfiguration Congifuration parameter for engine initialization. Set to `NULL` to use default parameter.
* @param mappingInformations Array of Mapping Information of AudioParameter.
* @param mappingInformationCount Length of `mappingInformations`.
*
* @return Valid pointer on success; '0' otherwise.
*/
csmMotionSyncApi csmMotionSync_Context csmMotionSyncCallingConvention csmMotionSync_CreateContext(const void* contextConfiguration, const csmMotionSync_MappingInfo* mappingInformations, const int mappingInformationCount);

/**
* Resets the context of Analysis for reusing.
*
* @param context Context to reset.
*/
csmMotionSyncApi void csmMotionSyncCallingConvention csmMotionSync_ClearContext(const csmMotionSync_Context context);

/**
* Destroys the context of Analysis.
*
* @param context Context to destroy.
*/
csmMotionSyncApi void csmMotionSyncCallingConvention csmMotionSync_DeleteContext(csmMotionSync_Context context);

/**
* Gets the number of samples to analyze at a time.
*
* @param context Context to query.
*
* @return Number of samples.
*/
csmMotionSyncApi unsigned int csmMotionSyncCallingConvention csmMotionSync_GetRequireSampleCount(const csmMotionSync_Context context);

/**
* Analyzes the samples for conversion to the CubismParameter.
*
* @param context Context to analyze.
* @param samples Array of sample to analyze.
* @param sampleCount Number of samples.
* @param analysisResult Array to store results.
* @param analysisConfiguration Configuration of analysis.
*
* @return `1` if succeeded the analysis.
*/
csmMotionSyncApi int csmMotionSyncCallingConvention csmMotionSync_Analyze(const csmMotionSync_Context context, const float* samples, const unsigned int sampleCount, csmMotionSync_AnalysisResult* analysisResult, const void* analysisConfiguration);

#if defined(__cplusplus)
}
#endif

#endif
Loading

0 comments on commit 49b27a9

Please sign in to comment.