Compare commits

..

10 Commits

Author SHA1 Message Date
孙羽 a5fd852e63 翻译注释 2023-10-23 11:30:41 +08:00
wada a1c5667449 Update to Cubism 5 SDK for Web R1 beta2 2023-09-28 11:16:51 +09:00
wada 3f141813b2 Update to Cubism 5 SDK for Web R1 beta1 2023-08-17 11:07:18 +09:00
wada 2526bb87a2
Merge pull request #49 from Tsar/fix/fix_blurry_image_on_mobile_devices
Fix blurry image on mobile devices (especially in fullscreen mode)
2023-05-30 12:00:31 +09:00
wada aacd34c6e0 Update to Cubism 4 SDK for Web R7 2023-05-25 11:35:15 +09:00
Ioann Volkov 1e281f8031 Fix blurry image on mobile devices (especially in fullscreen mode) 2023-05-21 01:02:27 +03:00
wada 4f1531c94a Update to Cubism 4 SDK for Web R6_2 2023-03-16 21:50:12 +09:00
wada 9976bd8635 Update to Cubism 4 SDK for Web R6_1 2023-03-10 21:38:13 +09:00
wada 0219fa5158 Update to Cubism 4 SDK for Web R6 2023-02-21 11:09:40 +09:00
wada 33087bc4d4 Update to Cubism 4 SDK for Web R5 2022-09-08 11:22:12 +09:00
83 changed files with 23285 additions and 2664 deletions

View File

@ -7,3 +7,6 @@ indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

View File

@ -1,6 +1,5 @@
{
"recommendations": [
"editorconfig.editorconfig",
"msjsdiag.debugger-for-chrome"
"editorconfig.editorconfig"
]
}

6
.vscode/launch.json vendored
View File

@ -2,10 +2,10 @@
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"type": "firefox",
"request": "launch",
"name": "Launch Chrome",
"url": "http://localhost:5000/Samples/TypeScript/Demo/",
"name": "Launch Firefox",
"url": "http://localhost:8080/Samples/TypeScript/Demo/",
"webRoot": "${workspaceFolder}",
"sourceMaps": true,
"sourceMapPathOverrides": {

View File

@ -1,3 +1,4 @@
{
"typescript.tsdk": "./Samples/TypeScript/Demo/node_modules/typescript/lib"
"typescript.tsdk": "./Samples/TypeScript/Demo/node_modules/typescript/lib",
"cmake.configureOnOpen": true
}

View File

@ -5,6 +5,70 @@ 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.2] - 2023-09-28
### Changed
* Replace the sample model `Mao` with the updated version that is compatible with Cubism 5.0.
## [5-r.1-beta.1] - 2023-08-17
### Added
* Add Wankoromochi as a model bundled with SDK.
### Fixed
* Fix blurry image and models on mobile devices. by [@Tsar](https://github.com/Tsar)
* Fix a bug that caused scroll-blocking violations to appear in the log.
## [4-r.7] - 2023-05-25
### Added
* Add compiler options `noImplicitAny` and `useUnknownInCatchVariables` to `tsconfig.json`.
* Add some functions for checking consistency of MOC3 files.
* Add the function of checking consistency in `lappmodel.setupModel()`.
* Add the function of checking consistency before loading a model. (`lappmodel.hasMocConsistencyFromFile()`)
* This feature is enabled by default. Please see the following manual for more information.
* https://docs.live2d.com/cubism-sdk-manual/moc3-consistency/
### Fixed
* Fix a problem in which `haru` motion and voice were incorrect combination.
## [4-r.6.2] - 2023-03-16
### Fixed
* Fix some problems related to Cubism Core.
* See `CHANGELOG.md` in Core.
## [4-r.6.1] - 2023-03-10
### Added
* Add funciton to validate MOC3 files.
* See `CHANGELOG.md` in Core and Framework.
## [4-r.6] - 2023-02-21
### Removed
* Remove Debugger for Chrome from recommended extensions.
* Use `Javascript Debugger`, a built-in feature of Visual Studio Code.
## [4-r.5] - 2022-09-08
### Added
* Add the multilingual supported documents.
## [4-r.5-beta.5] - 2022-08-04
### Changed
@ -146,6 +210,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
* Fix issue with reloading model images in WebKit.
[5-r.1-beta.2]: https://github.com/Live2D/CubismWebSamples/compare/5-r.1-beta.1...5-r.1-beta.2
[5-r.1-beta.1]: https://github.com/Live2D/CubismWebSamples/compare/4-r.7...5-r.1-beta.1
[4-r.7]: https://github.com/Live2D/CubismWebSamples/compare/4-r.6.2...4-r.7
[4-r.6.2]: https://github.com/Live2D/CubismWebSamples/compare/4-r.6.1...4-r.6.2
[4-r.6.1]: https://github.com/Live2D/CubismWebSamples/compare/4-r.6...4-r.6.1
[4-r.6]: https://github.com/Live2D/CubismWebSamples/compare/4-r.5...4-r.6
[4-r.5]: https://github.com/Live2D/CubismWebSamples/compare/4-r.5-beta.5...4-r.5
[4-r.5-beta.5]: https://github.com/Live2D/CubismWebSamples/compare/4-r.5-beta.4...4-r.5-beta.5
[4-r.5-beta.4]: https://github.com/Live2D/CubismWebSamples/compare/4-r.5-beta.3...4-r.5-beta.4
[4-r.5-beta.3]: https://github.com/Live2D/CubismWebSamples/compare/4-r.5-beta.2...4-r.5-beta.3

View File

@ -5,6 +5,81 @@ 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-08-17
### Added
* Enhance Blend Shape features.
* Please see [here](https://docs.live2d.com/en/cubism-editor-manual/blend-shape/).
### Changed
* Upgrade Core version to 05.00.0000.
## 2023-05-09
### Changed
* Change the GCC version of the library for Linux from 6.5.0 to 8.3.0.
## 2023-03-16
### Fixed
* Fix a case in which the index of the mask's drawable object was negative value for `csmGetDrawableMasks()`.
* Fix a problem in which `csmHasMocConsistency()` was returned as 0 even though the MOC3 file was in the correct format.
* This problem was occurring in some models using the blendshape weight limit settings.
* Fix a problem that could cause a crash if a MOC3 file that is not in the correct format is loaded with `csmHasMocConsistency()`.
### Changed
* Upgrade Core version to 04.02.0004.
## 2023-03-10
### Added
* Add the function `csmHasMocConsistency`.
* This function verifies that the `MOC3` file is valid.
### Changed
* Upgrade Core version to 04.02.0003.
## 2023-02-21
### Added
* [Web] Added classes related to `Memory`.
* Add the funciton `initializeAmountOfMemory()` to adjust the amount of memory at initialization.
## 2022-10-28
### Fixed
* [Java] Remove unnecessary methods.
## 2022-10-06
### Added
* [Java] Add AAR file for Android.
## 2022-09-08
### Added
* Add the multilingual supported documents.
* Support Visual Studio 2022.
## 2022-08-04
### Fixed

30
Core/README.ja.md Normal file
View File

@ -0,0 +1,30 @@
[English](README.md) / [日本語](README.ja.md)
---
# Live2D Cubism Core
このフォルダーには、JavaScriptまたはTypeScriptアプリケーションを開発するためのコアライブラリファイルが含まれています。
## ファイルリスト
### live2dcubismcore.d.ts
このファイルには、`live2dcubismcore.js`に関するTypeScriptの型情報が含まれています。
TypeScriptで開発する場合は、このファイルを`live2dcubismcore.js`とともに使用してください。
### live2dcubismcore.js
このファイルには、CubismCoreの機能といくつかのラッパーが含まれています。
JavaScriptで開発する場合は、このファイルを使用してください。
### live2dcubismcore.js.map
このファイルは、`live2dcubismcore.d.ts`と`live2dcubismcore.js`の間のソースマップです。
デバッグ時にこのファイルを使用します。
### live2dcubismcore.min.js
このファイルは、`live2dcubismcore.js`のminify版です。
このファイルを本番環境で使用します。

View File

@ -1,3 +1,7 @@
[English](README.md) / [日本語](README.ja.md)
---
# Live2D Cubism Core
This folder contains core library files for developing JavaScript or TypeScript applications.
@ -22,5 +26,5 @@ Use this file when debugging.
### live2dcubismcore.min.js
This file is minified of `live2dcubismcore.js`.
This file is the minified version of `live2dcubismcore.js`.
Use this file in production.

367
Core/live2dcubismcore.d.ts vendored Normal file
View File

@ -0,0 +1,367 @@
/**
* Copyright(c) Live2D Inc. All rights reserved.
*
* Use of this source code is governed by the Live2D Proprietary Software license
* that can be found at https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html.
*/
declare namespace Live2DCubismCore {
/** Cubism version identifier. */
type csmVersion = number;
/** moc3 version identifier. */
type csmMocVersion = number;
/** Parameter type identifier. */
type csmParameterType = number;
/** Necessary alignment for mocs (in bytes). */
const AlignofMoc: number;
/** Necessary alignment for models (in bytes). */
const AlignofModel: number;
/** .moc3 file version Unknown */
const MocVersion_Unknown: number;
/** .moc3 file version 3.0.00 - 3.2.07 */
const MocVersion_30: number;
/** .moc3 file version 3.3.00 - 3.3.03 */
const MocVersion_33: number;
/** .moc3 file version 4.0.00 - 4.1.05 */
const MocVersion_40: number;
/** .moc3 file version 4.2.00 - 4.2.04 */
const MocVersion_42: number;
/** .moc3 file version 5.0.00 - */
const MocVersion_50: number;
/** Normal Parameter. */
const ParameterType_Normal: number;
/** Parameter for blend shape. */
const ParameterType_BlendShape: number;
/** Log handler.
*
* @param message Null-terminated string message to log.
*/
interface csmLogFunction {
(message: string): void;
}
/** Cubism version. */
class Version {
/**
* Queries Core version.
*
* @return Core version.
*/
static csmGetVersion(): csmVersion;
/**
* Gets Moc file supported latest version.
*
* @return Moc file latest format version.
*/
static csmGetLatestMocVersion(): csmMocVersion;
/**
* Gets Moc file format version.
*
* @param moc Moc
*
* @return csmMocVersion
*/
static csmGetMocVersion(moc: Moc, mocBytes: ArrayBuffer): csmMocVersion;
private constructor();
}
/** Cubism logging. */
class Logging {
private static logFunction;
/**
* Sets log handler.
*
* @param handler Handler to use.
*/
static csmSetLogFunction(handler: csmLogFunction): void;
/**
* Queries log handler.
*
* @return Log handler.
*/
static csmGetLogFunction(): csmLogFunction;
/**
* Wrap log function.
*
* @param messagePtr number
*
* @return string
*/
private static wrapLogFunction;
private constructor();
}
/** Cubism moc. */
class Moc {
/**
* Checks consistency of a moc.
*
* @param mocBytes Moc bytes.
*
* @returns '1' if Moc is valid; '0' otherwise.
*/
hasMocConsistency(mocBytes: ArrayBuffer): number;
/** Creates [[Moc]] from [[ArrayBuffer]].
*
* @param buffer Array buffer
*
* @return [[Moc]] on success; [[null]] otherwise.
*/
static fromArrayBuffer(buffer: ArrayBuffer): Moc;
/** Releases instance. */
_release(): void;
/** Native moc. */
_ptr: number;
/**
* Initializes instance.
*
* @param mocBytes Moc bytes.
*/
private constructor();
}
/** Cubism model. */
class Model {
/** Parameters. */
parameters: Parameters;
/** Parts. */
parts: Parts;
/** Drawables. */
drawables: Drawables;
/** Canvas information. */
canvasinfo: CanvasInfo;
/**
* Creates [[Model]] from [[Moc]].
*
* @param moc Moc
*
* @return [[Model]] on success; [[null]] otherwise.
*/
static fromMoc(moc: Moc): Model;
/** Updates instance. */
update(): void;
/** Releases instance. */
release(): void;
/** Native model. */
_ptr: number;
/**
* Initializes instance.
*
* @param moc Moc
*/
private constructor();
}
/** Canvas information interface. */
class CanvasInfo {
/** Width of native model canvas. */
CanvasWidth: number;
/** Height of native model canvas. */
CanvasHeight: number;
/** Coordinate origin of X axis. */
CanvasOriginX: number;
/** Coordinate origin of Y axis. */
CanvasOriginY: number;
/** Pixels per unit of native model. */
PixelsPerUnit: number;
/**
* Initializes instance.
*
* @param modelPtr Native model pointer.
*/
constructor(modelPtr: number);
}
/** Cubism model parameters */
class Parameters {
/** Parameter count. */
count: number;
/** Parameter IDs. */
ids: Array<string>;
/** Minimum parameter values. */
minimumValues: Float32Array;
/** Parameter types. */
types: Int32Array;
/** Maximum parameter values. */
maximumValues: Float32Array;
/** Default parameter values. */
defaultValues: Float32Array;
/** Parameter values. */
values: Float32Array;
/** Number of key values of each parameter. */
keyCounts: Int32Array;
/** Key values of each parameter. */
keyValues: Array<Float32Array>;
/**
* Initializes instance.
*
* @param modelPtr Native model.
*/
constructor(modelPtr: number);
}
/** Cubism model parts */
class Parts {
/** Part count. */
count: number;
/** Part IDs. */
ids: Array<string>;
/** Opacity values. */
opacities: Float32Array;
/** Part's parent part indices. */
parentIndices: Int32Array;
/**
* Initializes instance.
*
* @param modelPtr Native model.
*/
constructor(modelPtr: number);
}
/** Cubism model drawables */
class Drawables {
/** Drawable count. */
count: number;
/** Drawable IDs. */
ids: Array<string>;
/** Constant drawable flags. */
constantFlags: Uint8Array;
/** Dynamic drawable flags. */
dynamicFlags: Uint8Array;
/** Drawable texture indices. */
textureIndices: Int32Array;
/** Drawable draw orders. */
drawOrders: Int32Array;
/** Drawable render orders. */
renderOrders: Int32Array;
/** Drawable opacities. */
opacities: Float32Array;
/** Mask count for each drawable. */
maskCounts: Int32Array;
/** Masks for each drawable. */
masks: Array<Int32Array>;
/** Number of vertices of each drawable. */
vertexCounts: Int32Array;
/** 2D vertex position data of each drawable. */
vertexPositions: Array<Float32Array>;
/** 2D texture coordinate data of each drawables. */
vertexUvs: Array<Float32Array>;
/** Number of triangle indices for each drawable. */
indexCounts: Int32Array;
/** Triangle index data for each drawable. */
indices: Array<Uint16Array>;
/** Information multiply color. */
multiplyColors: Float32Array;
/** Information Screen color. */
screenColors: Float32Array;
/** Indices of drawables parent part. */
parentPartIndices: Int32Array;
/** Resets all dynamic drawable flags.. */
resetDynamicFlags(): void;
/** Native model. */
private _modelPtr;
/**
* Initializes instance.
*
* @param modelPtr Native model.
*/
constructor(modelPtr: number);
}
/** Utility functions. */
class Utils {
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasBlendAdditiveBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasBlendMultiplicativeBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasIsDoubleSidedBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasIsInvertedMaskBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasIsVisibleBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasVisibilityDidChangeBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasOpacityDidChangeBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasDrawOrderDidChangeBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasRenderOrderDidChangeBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasVertexPositionsDidChangeBit(bitfield: number): boolean;
/**
* Checks whether flag is set in bitfield.
*
* @param bitfield Bitfield to query against.
*
* @return [[true]] if bit set; [[false]] otherwise
*/
static hasBlendColorDidChangeBit(bitfield: number): boolean;
}
/** Memory functions. */
class Memory {
/**
* HACK:
* Extend memory size allocated during module initialization.
* If the specified size is less than or equal to 16777216(byte), the default of 16 MB is allocated.
*
* @see https://github.com/emscripten-core/emscripten/blob/main/src/settings.js#L161
*
* @param size allocated memory size [byte(s)]
*/
static initializeAmountOfMemory(size: number): void;
private constructor();
}
/** Emscripten Cubism Core module. */
}

686
Core/live2dcubismcore.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

9
Core/live2dcubismcore.min.js vendored Normal file

File diff suppressed because one or more lines are too long

@ -1 +1 @@
Subproject commit e115df6e1e7a190ecdd7795c15ef222254fb193c
Subproject commit ff606d5bee3cdab4f8430947f29badab598821c5

View File

@ -51,9 +51,11 @@ Live2D models listed below are available under Free Material License.
```
Samples/Resources/Haru
Samples/Resources/Hiyori
Samples/Resources/Mao
Samples/Resources/Mark
Samples/Resources/Natori
Samples/Resources/Rice
Samples/Resources/Wanko
```
If you use these models, you must agree to the terms of a contract set [here](https://docs.live2d.com/cubism-editor-manual/sample-model/) for each model.

41
NOTICE.ja.md Normal file
View File

@ -0,0 +1,41 @@
[English](NOTICE.md) / [日本語](NOTICE.ja.md)
---
# お知らせ
## [注意事項] Cubism 4 SDK for Web R1 以降へのアップデートに伴う注意
Cubism 4 SDK for Web R1 にてそれ以前のベータ版から正式版のリリースに伴い、
利便性向上のためパッケージ及びリポジトリの構造変更がおこなわれました。
この変更は Cubism 4 SDK for Native と構造を変えずに運用がなされるほか、
ユーザに管理が不必要なファイルが混在することを避けることが理由です。
構造の変更点、及び Cubism 4 SDK for Web beta2 以前のプロジェクトからの更新方法に関して、
[Cubism SDK Manual] に詳細を記載しています。アップデートを行う際は必ずご確認ください。
[Cubism SDK Manual]: https://docs.live2d.com/cubism-sdk-manual/warning-for-cubism4-web-r1-update/
## [注意事項] 依存パッケージでの宣言重複エラーについて (2023-02-23)
Cubism 4 SDK for Web Samples で利用されている依存パッケージのうち `@types/node` に起因する、
宣言重複のエラーが発生する場合があります。
こちらは以下のいずれかの手順で解決が可能であることを確認しております。
### 解決策1: npm-check-updatesを利用する方法
1. ターミナルで `/Samples/TypeScript/Demo` ディレクトリに移動する。
1. コマンド `npm i -g npm-check-updates` を実行する。
1. コマンド `ncu` を実行する。
### 解決策2: @types/node明示的にインストールし直す方法
1. ターミナルで `/Samples/TypeScript/Demo` ディレクトリに移動する。
1. コマンド `npm uninstall @types/node` を実行する。
1. コマンド `npm install @types/node` を実行する。
---
©Live2D

View File

@ -1,12 +1,38 @@
## [注意事項] Cubism 4 SDK for Web R1 以降へのアップデートに伴う注意
[English](NOTICE.md) / [日本語](NOTICE.ja.md)
Cubism 4 SDK for Web R1 にてそれ以前のベータ版から正式版のリリースに伴い、
利便性向上のためパッケージ及びリポジトリの構造変更がおこなわれました。
---
この変更は Cubism 4 SDK for Native と構造を変えずに運用がなされるほか、
ユーザに管理が不必要なファイルが混在することを避けることが理由です。
# Notices
構造の変更点、及び Cubism 4 SDK for Web beta2 以前のプロジェクトからの更新方法に関して、
[Cubism SDK Manual] に詳細を記載しています。アップデートを行う際は必ずご確認ください。
## [Caution] Precautions for updating to Cubism 4 SDK for Web R1 or later
With the release of the official version of the Cubism 4 SDK for Web R1 from the previous beta version, the structure of packages and repositories has been changed to improve usability.
The reason for this change is to operate without changing the structure of Cubism 4 SDK for Native, and to avoid mixing files that do not require management by users.
Details on structural changes and how to update from projects prior to Cubism 4 SDK for Web beta2 are described in the [Cubism SDK Manual]. Please be sure to check it when updating.
[Cubism SDK Manual]: https://docs.live2d.com/cubism-sdk-manual/warning-for-cubism4-web-r1-update/
## [Caution] About the duplicate declaration error in dependent packages (2023-02-23)
A duplicate declaration error may occur due to `@types/node` among the dependency packages used in the Cubism 4 SDK for Web Samples.
We have confirmed that this can be resolved by one of the following procedures.
### Solution 1: Use npm-check-updates
1. Navigate to the `/Samples/TypeScript/Demo` directory in Terminal.
1. Execute the command `npm i -g npm-check-updates`.
1. Execute the command `ncu`.
### Solution 2: Reinstall @types/node explicitly
1. Navigate to the `/Samples/TypeScript/Demo` directory in Terminal.
1. Execute the command `npm uninstall @types/node`.
1. Execute the command `npm install @types/node`.
---
©Live2D

141
README.ja.md Normal file
View File

@ -0,0 +1,141 @@
[English](README.md) / [日本語](README.ja.md)
---
# Cubism Web Samples
Live2D Cubism Editor で出力したモデルを表示するアプリケーションのサンプル実装です。
Cubism Web Framework および Live2D Cubism Core と組み合わせて使用します。
## ライセンス
本 SDK を使用する前に、[ライセンス](LICENSE.md)をご確認ください。
## お知らせ
本 SDK を使用する前に、[お知らせ](NOTICE.ja.md)をご確認ください。
## Cubism 5新機能や過去バージョンとの互換性について
本 SDK はCubism 5に対応した製品です。
Cubism 5 Editorに搭載された新機能のSDK対応については [こちら](https://docs.live2d.com/cubism-sdk-manual/cubism-5-new-functions/)をご確認ください。
過去バージョンのCubism SDKとの互換性については [こちら](https://docs.live2d.com/cubism-sdk-manual/compatibility-with-cubism-5/)をご確認ください。
## ディレクトリ構成
```
.
├─ .vscode # Visual Studio Code 用プロジェクト設定ディレクトリ
├─ Core # Live2D Cubism Core が含まれるディレクトリ
├─ Framework # レンダリングやアニメーション機能などのソースコードが含まれるディレクトリ
└─ Samples
├─ Resources # モデルのファイルや画像などのリソースが含まれるディレクトリ
└─ TypeScript # TypeScript のサンプルプロジェクトが含まれるディレクトリ
```
## Live2D Cubism Core for Web
モデルをロードするためのライブラリです。
当リポジトリではCubism Coreを管理していません。
[こちら](https://www.live2d.com/download/cubism-sdk/download-web/)からCubism SDK for Webをダウンロードして、
Coreディレクトリのファイルをコピーしてください。
## 開発環境構築
1. [Node.js] と [Visual Studio Code] をインストールします
1. Visual Studio Code で **本 SDK のトップディレクトリ** を開き、推奨拡張機能をインストールします
* ポップアップ通知の他、拡張機能タブから `@recommended` を入力することで確認できます
### サンプルデモの動作確認
コマンドパレット(*View > Command Palette...*)で `>Tasks: Run Task` を入力することで、タスク一覧が表示されます。
1. タスク一覧から `npm: install - Samples/TypeScript/Demo` を選択して依存パッケージのダウンロードを行います
1. タスク一覧から `npm: build - Samples/TypeScript/Demo` を選択してサンプルデモのビルドを行います
1. タスク一覧から `npm: serve - Samples/TypeScript/Demo` を選択して動作確認用の簡易サーバを起動します
1. ブラウザの URL 欄に `http://localhost:5000/Samples/TypeScript/Demo/` と入力してアクセスします
1. コマンドパレットから `>Tasks: Terminate Task` を入力して `npm: serve` を選択すると簡易サーバが終了します
その他のタスクに関してはサンプルプロジェクトの [README.md](Samples/TypeScript/README.ja.md) を参照ください。
NOTE: デバック用の設定は、`.vscode/tasks.json` に記述しています。
### プロジェクトのデバック
Visual Studio Code で **本 SDK のトップディレクトリ** を開き、 *F5* キーを入力すると Debugger for Chrome が起動します。
Visual Studio Code 上でブレイクポイントを貼って Chrome ブラウザと連動してデバックを行うことができます。
NOTE: デバック用の設定は、`.vscode/launch.json` に記述しています。
## SDKマニュアル
[Cubism SDK Manual](https://docs.live2d.com/cubism-sdk-manual/top/)
## 変更履歴
当リポジトリの変更履歴については [CHANGELOG.md](CHANGELOG.md) を参照ください。
## 開発環境
### Node.js
* 20.7.0
* 18.18.0
## 動作確認環境
| プラットフォーム | ブラウザ | バージョン |
| --- | --- | --- |
| Android | Google Chrome | 113.0.5672.77 |
| Android | Microsoft Edge | 113.0.1774.38 |
| Android | Mozilla Firefox | 113.0 |
| iOS / iPadOS | Google Chrome | 113.0.5672.109 |
| iOS / iPadOS | Microsoft Edge | 113.0.1774.42 |
| iOS / iPadOS | Mozilla Firefox | 113.0 |
| iOS / iPadOS | Safari | 16.6.1 |
| macOS | Google Chrome | 117.0.5938.92 |
| macOS | Microsoft Edge | 117.0.2045.43 |
| macOS | Mozilla Firefox | 113.0.1 |
| macOS | Safari | 16.6.1 |
| Windows | Google Chrome | 117.0.5938.92 |
| Windows | Microsoft Edge | 117.0.2045.43 |
| Windows | Mozilla Firefox | 113.0 |
Note: 動作確認時のサーバの起動は `./Samples/TypeScript/Demo/package.json``serve` スクリプトを使用して行っています。
## プロジェクトへの貢献
プロジェクトに貢献する方法はたくさんあります。バグのログの記録、このGitHubでのプルリクエストの送信、Live2Dコミュニティでの問題の報告と提案の作成です。
### フォークとプルリクエスト
修正、改善、さらには新機能をもたらすかどうかにかかわらず、プルリクエストに感謝します。ただし、ラッパーは可能な限り軽量で浅くなるように設計されているため、バグ修正とメモリ/パフォーマンスの改善のみを行う必要があることに注意してください。メインリポジトリを可能な限りクリーンに保つために、必要に応じて個人用フォークと機能ブランチを作成してください。
### バグ
Live2Dコミュニティでは、問題のレポートと機能リクエストを定期的にチェックしています。バグレポートを提出する前に、Live2Dコミュニティで検索して、問題のレポートまたは機能リクエストがすでに投稿されているかどうかを確認してください。問題がすでに存在する場合は、関連するコメントを追記してください。
### 提案
SDKの将来についてのフィードバックにも関心があります。Live2Dコミュニティで提案や機能のリクエストを送信できます。このプロセスをより効果的にするために、それらをより明確に定義するのに役立つより多くの情報を含めるようお願いしています。
## フォーラム
ユーザー同士でCubism SDKの活用方法の提案や質問をしたい場合は、是非フォーラムをご活用ください。
- [Live2D 公式クリエイターズフォーラム](https://creatorsforum.live2d.com/)
- [Live2D Creator's Forum(English)](https://community.live2d.com/)

149
README.md
View File

@ -1,115 +1,142 @@
[English](README.md) / [日本語](README.ja.md)
---
# Cubism Web Samples
Live2D Cubism 4 Editor で出力したモデルを表示するアプリケーションのサンプル実装です。
This is a sample implementation of an application that displays models output by Live2D Cubism Editor.
Cubism Web Framework および Live2D Cubism Core と組み合わせて使用します。
It is used in conjunction with the Cubism Web Framework and Live2D Cubism Core.
## ライセンス
## License
本 SDK を使用する前に、[ライセンス](LICENSE.md)をご確認ください。
Please check the [license](LICENSE.md) before using this SDK.
## 注意事項
## Notices
本 SDK を使用する前に、[注意事項](NOTICE.md)をご確認ください。
Please check the [notices](NOTICE.md) before using this SDK.
## ディレクトリ構成
## Compatibility with Cubism 5 new features and previous Cubism SDK versions
This SDK is compatible with Cubism 5.
For SDK compatibility with new features in Cubism 5 Editor, please refer to [here](https://docs.live2d.com/en/cubism-sdk-manual/cubism-5-new-functions/).
For compatibility with previous versions of Cubism SDK, please refer to [here](https://docs.live2d.com/en/cubism-sdk-manual/compatibility-with-cubism-5/).
## Directory structure
```
.
├─ .vscode # Visual Studio Code 用プロジェクト設定ディレクトリ
├─ Core # Live2D Cubism Core が含まれるディレクトリ
├─ Framework # レンダリングやアニメーション機能などのソースコードが含まれるディレクトリ
├─ .vscode # Project settings directory for Visual Studio Code
├─ Core # Directory containing Live2D Cubism Core
├─ Framework # Directory containing source code such as rendering and animation functions
└─ Samples
├─ Resources # モデルのファイルや画像などのリソースが含まれるディレクトリ
└─ TypeScript # TypeScript のサンプルプロジェクトが含まれるディレクトリ
├─ Resources # Directory containing resources such as model files and images
└─ TypeScript # Directory containing TypeScript sample projects
```
## Live2D Cubism Core for Web
モデルをロードするためのライブラリです。
A library for loading the model.
当リポジトリではCubism Coreを管理していません。
[こちら](https://www.live2d.com/download/cubism-sdk/download-web/)からCubism SDK for Webをダウンロードして、
Coreディレクトリのファイルをコピーしてください。
This repository does not manage Cubism Core.
Download the Cubism SDK for Web from [here](https://www.live2d.com/download/cubism-sdk/download-web/) and copy the files in the Core directory.
## 開発環境構築
## Development environment construction
1. [Node.js] と [Visual Studio Code] をインストールします
1. Visual Studio Code で **本 SDK のトップディレクトリ** を開き、推奨拡張機能をインストールします
* ポップアップ通知の他、拡張機能タブから `@recommended` を入力することで確認できます
1. Install [Node.js] and [Visual Studio Code]
1. Open **the top directory of this SDK** in Visual Studio Code and install the recommended extensions
* In addition to pop-up notifications, you can check the others by typing `@recommended` from the Extensions tab
### サンプルデモの動作確認
### Operation check of sample demo
コマンドパレット(*View > Command Palette...*)で `>Tasks: Run Task` を入力することで、タスク一覧が表示されます。
Enter `>Tasks: Run Task` in the command palette (*View > Command Palette...*) to display the task list.
1. タスク一覧から `npm: install - Samples/TypeScript/Demo` を選択して依存パッケージのダウンロードを行います
1. タスク一覧から `npm: build - Samples/TypeScript/Demo` を選択してサンプルデモのビルドを行います
1. タスク一覧から `npm: serve - Samples/TypeScript/Demo` を選択して動作確認用の簡易サーバを起動します
1. ブラウザの URL 欄に `http://localhost:5000/Samples/TypeScript/Demo/` と入力してアクセスします
1. コマンドパレットから `>Tasks: Terminate Task` を入力して `npm: serve` を選択すると簡易サーバが終了します
1. Select `npm: install - Samples/TypeScript/Demo` from the task list to download the dependent packages
1. Select `npm: build - Samples/TypeScript/Demo` from the task list to build the sample demo
1. Select `npm: serve - Samples/TypeScript/Demo` from the task list to start the simple server for operation check
1. Enter `http://localhost:5000/Samples/TypeScript/Demo/` in the URL field of your browser to access it
1. Enter `>Tasks: Terminate Task` from the command palette and select `npm: serve` to terminate the simple server
その他のタスクに関してはサンプルプロジェクトの [README.md](Samples/TypeScript/README.md) を参照ください。
For other tasks, see [README.md](Samples/TypeScript/README.md) of the sample project.
NOTE: デバック用の設定は、`.vscode/tasks.json` に記述しています。
NOTE: Settings for debugging are described in `.vscode/tasks.json`.
### プロジェクトのデバック
### Project debugging
Visual Studio Code で **本 SDK のトップディレクトリ** を開き、 *F5* キーを入力すると Debugger for Chrome が起動します。
Open **the top directory of this SDK** in Visual Studio Code and enter the *F5* key to start Debugger for Chrome.
Visual Studio Code 上でブレイクポイントを貼って Chrome ブラウザと連動してデバックを行うことができます。
You can place breakpoints in Visual Studio Code to debug in conjunction with the Chrome browser.
NOTE: デバック用の設定は、`.vscode/launch.json` に記述しています。
NOTE: Settings for debugging are described in `.vscode/launch.json`.
## SDKマニュアル
## SDK manual
[Cubism SDK Manual](https://docs.live2d.com/cubism-sdk-manual/top/)
## 変更履歴
## Changelog
当リポジトリの変更履歴については [CHANGELOG.md](CHANGELOG.md) を参照ください。
Please refer to [CHANGELOG.md](CHANGELOG.md) for the changelog of this repository.
## 開発環境
## Development environment
### Node.js
* 18.7.0
* 16.16.0
* 14.20.0
* 20.7.0
* 18.18.0
## 動作確認環境
## Operation environment
| プラットフォーム | ブラウザ | バージョン |
| Platform | Browser | Version |
| --- | --- | --- |
| Android | Google Chrome | 103.0.5060.129 |
| Android | Microsoft Edge | 101.0.1210.47 |
| Android | Mozilla Firefox | 100.1.2 |
| iOS / iPadOS | Google Chrome | 101.0.4951.58 |
| iOS / iPadOS | Microsoft Edge | 101.1210.47 |
| iOS / iPadOS | Mozilla Firefox | 100.1 |
| iOS / iPadOS | Safari | 15.6 |
| macOS | Google Chrome | 101.0.4951.64 |
| macOS | Microsoft Edge | 101.0.1210.47 |
| macOS | Mozilla Firefox | 100.0.1 |
| macOS | Safari | 15.6 |
| Windows | Google Chrome | 102.0.5005.115 |
| Windows | Microsoft Edge | 103.0.1264.71 |
| Windows | Mozilla Firefox | 100.0 |
| Android | Google Chrome | 113.0.5672.77 |
| Android | Microsoft Edge | 113.0.1774.38 |
| Android | Mozilla Firefox | 113.0 |
| iOS / iPadOS | Google Chrome | 113.0.5672.109 |
| iOS / iPadOS | Microsoft Edge | 113.0.1774.42 |
| iOS / iPadOS | Mozilla Firefox | 113.0 |
| iOS / iPadOS | Safari | 16.6.1 |
| macOS | Google Chrome | 117.0.5938.92 |
| macOS | Microsoft Edge | 117.0.2045.43 |
| macOS | Mozilla Firefox | 113.0.1 |
| macOS | Safari | 16.6.1 |
| Windows | Google Chrome | 117.0.5938.92 |
| Windows | Microsoft Edge | 117.0.2045.43 |
| Windows | Mozilla Firefox | 113.0 |
Note: 動作確認時のサーバの起動は `./Samples/TypeScript/Demo/package.json``serve` スクリプトを使用して行っています。
Note: You can start the server for operation check by running the `serve` script of `./Samples/TypeScript/Demo/package.json`.
## コミュニティ
## Contributing
ユーザー同士でCubism SDKの活用方法の提案や質問をしたい場合は、是非コミュニティをご活用ください。
There are many ways to contribute to the project: logging bugs, submitting pull requests on this GitHub, and reporting issues and making suggestions in Live2D Community.
- [Live2D 公式コミュニティ](https://creatorsforum.live2d.com/)
- [Live2D community(English)](https://community.live2d.com/)
### Forking And Pull Requests
We very much appreciate your pull requests, whether they bring fixes, improvements, or even new features. Note, however, that the wrapper is designed to be as lightweight and shallow as possible and should therefore only be subject to bug fixes and memory/performance improvements. To keep the main repository as clean as possible, create a personal fork and feature branches there as needed.
### Bugs
We are regularly checking issue-reports and feature requests at Live2D Community. Before filing a bug report, please do a search in Live2D Community to see if the issue-report or feature request has already been posted. If you find your issue already exists, make relevant comments and add your reaction.
### Suggestions
We're also interested in your feedback for the future of the SDK. You can submit a suggestion or feature request at Live2D Community. To make this process more effective, we're asking that you include more information to help define them more clearly.
## Forum
If you want to suggest or ask questions about how to use the Cubism SDK between users, please use the forum.
- [Live2D Creator's Forum](https://community.live2d.com/)
- [Live2D 公式クリエイターズフォーラム (Japanese)](https://creatorsforum.live2d.com/)

View File

@ -61,25 +61,25 @@
"File": "motions/haru_g_m26.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5,
"Sound": "sounds/haru_normal_04.wav"
"Sound": "sounds/haru_talk_13.wav"
},
{
"File": "motions/haru_g_m06.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5,
"Sound": "sounds/haru_normal_01.wav"
"Sound": "sounds/haru_Info_14.wav"
},
{
"File": "motions/haru_g_m20.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5,
"Sound": "sounds/haru_normal_03.wav"
"Sound": "sounds/haru_normal_6.wav"
},
{
"File": "motions/haru_g_m09.motion3.json",
"FadeInTime": 0.5,
"FadeOutTime": 0.5,
"Sound": "sounds/haru_normal_02.wav"
"Sound": "sounds/haru_Info_04.wav"
}
]
},

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -117,27 +117,27 @@
"Name": "右眉 変形"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"GroupId": "ParamGroupMouth",
"Name": "あ"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"GroupId": "ParamGroupMouth",
"Name": "い"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"GroupId": "ParamGroupMouth",
"Name": "う"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"GroupId": "ParamGroupMouth",
"Name": "え"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"GroupId": "ParamGroupMouth",
"Name": "お"
},
@ -416,150 +416,250 @@
"GroupId": "ParamGroupSway",
"Name": "ローブのふわ"
},
{
"Id": "ParamSmokeOn",
"GroupId": "ParamGroupEffectsMistake",
"Name": "煙 表示"
},
{
"Id": "ParamSmoke",
"GroupId": "ParamGroupEffectsMistake",
"Name": "煙"
},
{
"Id": "ParamExplosionChargeOn",
"GroupId": "ParamGroupEffectsMistake",
"Name": "爆発光溜め 表示"
},
{
"Id": "ParamExplosionLightCharge",
"GroupId": "ParamGroupEffectsMistake",
"Name": "爆発光溜め"
},
{
"Id": "ParamExplosionOn",
"GroupId": "ParamGroupEffectsMistake",
"Name": "爆発 表示"
},
{
"Id": "ParamExplosion",
"GroupId": "ParamGroupEffectsMistake",
"Name": "爆発"
},
{
"Id": "ParamWandInkColorRainbow",
"GroupId": "ParamGroupEffectsMistake",
"Name": "杖インク 虹色"
},
{
"Id": "ParamHeartMissOn",
"GroupId": "ParamGroupEffectsMistake",
"GroupId": "ParamGroupHeart",
"Name": "ハート失敗 表示"
},
{
"Id": "ParamHeartBackMissOn",
"GroupId": "ParamGroupEffectsMistake",
"GroupId": "ParamGroupHeart",
"Name": "ハート失敗後ろ 表示"
},
{
"Id": "ParamHeartColorRainbow",
"GroupId": "ParamGroupEffectsMistake",
"GroupId": "ParamGroupHeart",
"Name": "ハート失敗 虹色"
},
{
"Id": "ParamWandInkColorHeal",
"GroupId": "ParamGroupEffectsSuccess",
"Name": "杖インク 緑色"
},
{
"Id": "ParamHeartHealOn",
"GroupId": "ParamGroupEffectsSuccess",
"GroupId": "ParamGroupHeart",
"Name": "ハート回復 表示"
},
{
"Id": "ParamHeartBackHealOn",
"GroupId": "ParamGroupEffectsSuccess",
"GroupId": "ParamGroupHeart",
"Name": "ハート回復後ろ 表示"
},
{
"Id": "ParamHeartColorHeal",
"GroupId": "ParamGroupEffectsSuccess",
"GroupId": "ParamGroupHeart",
"Name": "ハート回復 緑色"
},
{
"Id": "ParamHeartLightOn",
"GroupId": "ParamGroupEffectsSuccess",
"Name": "光 表示"
},
{
"Id": "ParamHeartLight",
"GroupId": "ParamGroupEffectsSuccess",
"Name": "光 星"
},
{
"Id": "ParamHeartLightColor",
"GroupId": "ParamGroupEffectsSuccess",
"Name": "光 色変化"
},
{
"Id": "ParamMagicPositionX",
"GroupId": "ParamGroupEffects",
"Name": "魔法の位置X"
},
{
"Id": "ParamMagicPositionY",
"GroupId": "ParamGroupEffects",
"Name": "魔法の位置Y"
},
{
"Id": "ParamWandInk",
"GroupId": "ParamGroupEffects",
"Name": "杖インク"
},
{
"Id": "ParamHeartDrow",
"GroupId": "ParamGroupEffects",
"GroupId": "ParamGroupHeart",
"Name": "ハート 描画"
},
{
"Id": "ParamHeartSize",
"GroupId": "ParamGroupEffects",
"GroupId": "ParamGroupHeart",
"Name": "ハート 拡縮"
},
{
"Id": "ParamHeartColorLight",
"GroupId": "ParamGroupEffects",
"GroupId": "ParamGroupHeart",
"Name": "ハート 色変化"
},
{
"Id": "ParamAllColor",
"GroupId": "ParamGroupEffectsHeal",
"Name": "全体の色"
"Id": "ParamWandInkColorRainbow",
"GroupId": "ParamGroupInk",
"Name": "杖インク 虹色"
},
{
"Id": "ParamWandInkColorHeal",
"GroupId": "ParamGroupInk",
"Name": "杖インク 緑色"
},
{
"Id": "ParamWandInk",
"GroupId": "ParamGroupInk",
"Name": "杖インク"
},
{
"Id": "ParamSmokeOn",
"GroupId": "ParamGroupExplosion",
"Name": "煙 表示"
},
{
"Id": "ParamSmoke",
"GroupId": "ParamGroupExplosion",
"Name": "煙"
},
{
"Id": "ParamExplosionChargeOn",
"GroupId": "ParamGroupExplosion",
"Name": "爆発光溜め 表示"
},
{
"Id": "ParamExplosionLightCharge",
"GroupId": "ParamGroupExplosion",
"Name": "爆発光溜め"
},
{
"Id": "ParamExplosionOn",
"GroupId": "ParamGroupExplosion",
"Name": "爆発 表示"
},
{
"Id": "ParamExplosion",
"GroupId": "ParamGroupExplosion",
"Name": "爆発"
},
{
"Id": "ParamRabbitElimination",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 消滅"
},
{
"Id": "ParamRabbitAppearance",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 出現"
},
{
"Id": "ParamRabbitSize",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 拡縮"
},
{
"Id": "ParamRabbitDraworder",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 描画順"
},
{
"Id": "ParamRabbitEar",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 耳"
},
{
"Id": "ParamRabbitDirection",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 向き"
},
{
"Id": "ParamRabbitLight",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ 色変化"
},
{
"Id": "ParamRabbitLightSize",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎ光 拡縮"
},
{
"Id": "ParamRabbitX",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎの移動 X"
},
{
"Id": "ParamRabbitY",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎの移動 Y"
},
{
"Id": "ParamRabbitRotate",
"GroupId": "ParamGroupRabbit",
"Name": "うさぎの回転"
},
{
"Id": "ParamAuraOn",
"GroupId": "ParamGroupEffectsHeal",
"GroupId": "ParamGroupAura",
"Name": "オーラ 表示"
},
{
"Id": "ParamAura",
"GroupId": "ParamGroupEffectsHeal",
"GroupId": "ParamGroupAura",
"Name": "オーラ"
},
{
"Id": "ParamAuraColor",
"GroupId": "ParamGroupEffectsHeal",
"Name": "オーラ 色変化"
"Id": "ParamAuraColor1",
"GroupId": "ParamGroupAura",
"Name": "オーラ 色変化1"
},
{
"Id": "ParamHealOn",
"GroupId": "ParamGroupEffectsHeal",
"Id": "ParamAuraColor2",
"GroupId": "ParamGroupAura",
"Name": "オーラ 色変化2"
},
{
"Id": "ParamHeartLightOn",
"GroupId": "ParamGroupLight",
"Name": "光 表示"
},
{
"Id": "ParamHeartLight",
"GroupId": "ParamGroupLight",
"Name": "光 星"
},
{
"Id": "ParamHeartLightColor",
"GroupId": "ParamGroupLight",
"Name": "光 色変化"
},
{
"Id": "ParamHealLightOn",
"GroupId": "ParamGroupLight",
"Name": "回復魔法光 表示"
},
{
"Id": "ParamHealLight",
"GroupId": "ParamGroupEffectsHeal",
"GroupId": "ParamGroupLight",
"Name": "回復魔法光"
},
{
"Id": "ParamStrengthenLightOn",
"GroupId": "ParamGroupLight",
"Name": "強化魔法光 表示"
},
{
"Id": "ParamStrengthenLight",
"GroupId": "ParamGroupLight",
"Name": "強化魔法光"
},
{
"Id": "ParamStrengthenLightMove",
"GroupId": "ParamGroupLight",
"Name": "強化魔法光 移動"
},
{
"Id": "ParamMagicPositionX",
"GroupId": "ParamGroupAllEffects",
"Name": "魔法の位置X"
},
{
"Id": "ParamMagicPositionY",
"GroupId": "ParamGroupAllEffects",
"Name": "魔法の位置Y"
},
{
"Id": "ParamAllColor1",
"GroupId": "ParamGroupAllEffects",
"Name": "全体の色1"
},
{
"Id": "ParamAllColor2",
"GroupId": "ParamGroupAllEffects",
"Name": "全体の色2"
},
{
"Id": "ParamSphereOn",
"GroupId": "ParamGroupColorSample",
"Name": "玉 表示"
},
{
"Id": "ParamSphereMove",
"GroupId": "ParamGroupColorSample",
"Name": "玉 移動"
},
{
"Id": "ParamSphereMultiplyColor",
"GroupId": "ParamGroupColorSample",
"Name": "玉 乗算色"
},
{
"Id": "ParamSphereScreenColor",
"GroupId": "ParamGroupColorSample",
"Name": "玉 スクリーン色"
}
],
"ParameterGroups": [
@ -624,24 +724,44 @@
"Name": "揺れ"
},
{
"Id": "ParamGroupEffectsMistake",
"Id": "ParamGroupHeart",
"GroupId": "",
"Name": "魔法失敗エフェクト"
"Name": "ハート"
},
{
"Id": "ParamGroupEffectsSuccess",
"Id": "ParamGroupInk",
"GroupId": "",
"Name": "魔法成功エフェクト"
"Name": "インク"
},
{
"Id": "ParamGroupEffects",
"Id": "ParamGroupExplosion",
"GroupId": "",
"Name": "魔法共通エフェクト"
"Name": "爆発"
},
{
"Id": "ParamGroupEffectsHeal",
"Id": "ParamGroupRabbit",
"GroupId": "",
"Name": "回復エフェクト"
"Name": "うさぎ"
},
{
"Id": "ParamGroupAura",
"GroupId": "",
"Name": "オーラ"
},
{
"Id": "ParamGroupLight",
"GroupId": "",
"Name": "光"
},
{
"Id": "ParamGroupAllEffects",
"GroupId": "",
"Name": "全体エフェクト"
},
{
"Id": "ParamGroupColorSample",
"GroupId": "",
"Name": "乗算色・スクリーン色サンプル"
}
],
"Parts": [
@ -649,6 +769,14 @@
"Id": "PartCore",
"Name": "コア"
},
{
"Id": "PartRabbit",
"Name": "うさぎ"
},
{
"Id": "PartEffect",
"Name": "エフェクト"
},
{
"Id": "PartInk",
"Name": "インク"
@ -749,6 +877,10 @@
"Id": "PartArmRB",
"Name": "右腕B"
},
{
"Id": "PartColorSample",
"Name": "乗算色・スクリーン色サンプル"
},
{
"Id": "PartSketch",
"Name": "[ 下絵 ]"

Binary file not shown.

View File

@ -46,6 +46,9 @@
"Idle": [
{
"File": "motions/mtn_01.motion3.json"
},
{
"File": "motions/sample_01.motion3.json"
}
],
"TapBody": [
@ -63,11 +66,21 @@
},
{
"File": "motions/special_02.motion3.json"
},
{
"File": "motions/special_03.motion3.json"
}
]
}
},
"Groups": [
{
"Target": "Parameter",
"Name": "LipSync",
"Ids": [
"ParamA"
]
},
{
"Target": "Parameter",
"Name": "EyeBlink",
@ -75,11 +88,6 @@
"ParamEyeLOpen",
"ParamEyeROpen"
]
},
{
"Target": "Parameter",
"Name": "LipSync",
"Ids": []
}
],
"HitAreas": [

View File

@ -10,8 +10,8 @@
},
{
"Id": "ParamEyeLOpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeLSmile",
@ -25,8 +25,8 @@
},
{
"Id": "ParamEyeROpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeRSmile",
@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -10,8 +10,8 @@
},
{
"Id": "ParamEyeLOpen",
"Value": -1.2,
"Blend": "Add"
"Value": 0,
"Blend": "Multiply"
},
{
"Id": "ParamEyeLSmile",
@ -25,8 +25,8 @@
},
{
"Id": "ParamEyeROpen",
"Value": -1.2,
"Blend": "Add"
"Value": 0,
"Blend": "Multiply"
},
{
"Id": "ParamEyeRSmile",
@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -10,8 +10,8 @@
},
{
"Id": "ParamEyeLOpen",
"Value": -1.2,
"Blend": "Add"
"Value": 0,
"Blend": "Multiply"
},
{
"Id": "ParamEyeLSmile",
@ -25,8 +25,8 @@
},
{
"Id": "ParamEyeROpen",
"Value": -1.2,
"Blend": "Add"
"Value": 0,
"Blend": "Multiply"
},
{
"Id": "ParamEyeRSmile",
@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -10,8 +10,8 @@
},
{
"Id": "ParamEyeLOpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeLSmile",
@ -25,8 +25,8 @@
},
{
"Id": "ParamEyeROpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeRSmile",
@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -10,8 +10,8 @@
},
{
"Id": "ParamEyeLOpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeLSmile",
@ -25,8 +25,8 @@
},
{
"Id": "ParamEyeROpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeRSmile",
@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -10,8 +10,8 @@
},
{
"Id": "ParamEyeLOpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeLSmile",
@ -25,8 +25,8 @@
},
{
"Id": "ParamEyeROpen",
"Value": 0,
"Blend": "Add"
"Value": 1,
"Blend": "Multiply"
},
{
"Id": "ParamEyeRSmile",
@ -99,27 +99,27 @@
"Blend": "Add"
},
{
"Id": "ParamMouthA",
"Id": "ParamA",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthI",
"Id": "ParamI",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthU",
"Id": "ParamU",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthE",
"Id": "ParamE",
"Value": 0,
"Blend": "Add"
},
{
"Id": "ParamMouthO",
"Id": "ParamO",
"Value": 0,
"Blend": "Add"
},

View File

@ -7,9 +7,9 @@
"FadeOutTime": 1.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 116,
"TotalSegmentCount": 193,
"TotalPointCount": 503,
"CurveCount": 136,
"TotalSegmentCount": 213,
"TotalPointCount": 543,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
@ -542,7 +542,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthA",
"Id": "ParamA",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -555,7 +555,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthI",
"Id": "ParamI",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -568,7 +568,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthU",
"Id": "ParamU",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -581,7 +581,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthE",
"Id": "ParamE",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -594,7 +594,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthO",
"Id": "ParamO",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -1712,6 +1712,162 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
@ -1790,7 +1946,128 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Id": "ParamRabbitElimination",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitAppearance",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitSize",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitDraworder",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitEar",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitDirection",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitLight",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitLightSize",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitX",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitY",
"Segments": [
0,
1,
0,
5.567,
1
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitRotate",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -1803,7 +2080,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Id": "ParamAura",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -1816,7 +2093,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Id": "ParamAuraColor1",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -1829,61 +2106,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Id": "ParamAuraColor2",
"Segments": [
0,
0,
@ -1931,6 +2154,65 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLightOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightOn",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLight",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightMove",
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
@ -1959,7 +2241,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Id": "ParamAllColor1",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
@ -1972,9 +2254,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Id": "ParamAllColor2",
"Segments": [
0,
0,
@ -1985,9 +2265,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Id": "ParamSphereOn",
"Segments": [
0,
0,
@ -1998,9 +2276,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Id": "ParamSphereMove",
"Segments": [
0,
0,
@ -2011,9 +2287,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAllColor",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Id": "ParamSphereMultiplyColor",
"Segments": [
0,
0,
@ -2024,61 +2298,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealOn",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Segments": [
0,
0,
0,
5.567,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"FadeInTime": 1.0,
"FadeOutTime": 1.0,
"Id": "ParamSphereScreenColor",
"Segments": [
0,
0,

View File

@ -7,9 +7,9 @@
"FadeOutTime": 1.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 116,
"TotalSegmentCount": 233,
"TotalPointCount": 585,
"CurveCount": 136,
"TotalSegmentCount": 253,
"TotalPointCount": 625,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
@ -469,7 +469,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthA",
"Id": "ParamA",
"Segments": [
0,
0,
@ -480,7 +480,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthI",
"Id": "ParamI",
"Segments": [
0,
0,
@ -491,7 +491,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthU",
"Id": "ParamU",
"Segments": [
0,
0,
@ -502,7 +502,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthE",
"Id": "ParamE",
"Segments": [
0,
0,
@ -513,7 +513,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthO",
"Id": "ParamO",
"Segments": [
0,
0,
@ -1750,6 +1750,138 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
@ -1818,7 +1950,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Id": "ParamRabbitElimination",
"Segments": [
0,
0,
@ -1829,7 +1961,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Id": "ParamRabbitAppearance",
"Segments": [
0,
0,
@ -1840,7 +1972,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Id": "ParamRabbitSize",
"Segments": [
0,
0,
@ -1851,7 +1983,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Id": "ParamRabbitDraworder",
"Segments": [
0,
0,
@ -1862,7 +1994,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Id": "ParamRabbitEar",
"Segments": [
0,
0,
@ -1873,7 +2005,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Id": "ParamRabbitDirection",
"Segments": [
0,
0,
@ -1884,7 +2016,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Id": "ParamRabbitLight",
"Segments": [
0,
0,
@ -1895,7 +2027,84 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Id": "ParamRabbitLightSize",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitX",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitY",
"Segments": [
0,
1,
0,
3.467,
1
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitRotate",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor1",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor2",
"Segments": [
0,
0,
@ -1937,6 +2146,61 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLightOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLight",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightMove",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
@ -1961,7 +2225,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Id": "ParamAllColor1",
"Segments": [
0,
0,
@ -1972,7 +2236,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Id": "ParamAllColor2",
"Segments": [
0,
0,
@ -1983,7 +2247,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Id": "ParamSphereOn",
"Segments": [
0,
0,
@ -1994,7 +2258,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Id": "ParamSphereMove",
"Segments": [
0,
0,
@ -2005,7 +2269,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAllColor",
"Id": "ParamSphereMultiplyColor",
"Segments": [
0,
0,
@ -2016,51 +2280,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealOn",
"Segments": [
0,
0,
0,
3.467,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Id": "ParamSphereScreenColor",
"Segments": [
0,
0,

View File

@ -7,9 +7,9 @@
"FadeOutTime": 1.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 116,
"TotalSegmentCount": 215,
"TotalPointCount": 529,
"CurveCount": 136,
"TotalSegmentCount": 235,
"TotalPointCount": 569,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
@ -465,7 +465,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthA",
"Id": "ParamA",
"Segments": [
0,
0,
@ -476,7 +476,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthI",
"Id": "ParamI",
"Segments": [
0,
0,
@ -487,7 +487,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthU",
"Id": "ParamU",
"Segments": [
0,
0,
@ -498,7 +498,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthE",
"Id": "ParamE",
"Segments": [
0,
0,
@ -509,7 +509,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthO",
"Id": "ParamO",
"Segments": [
0,
0,
@ -1620,6 +1620,138 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
@ -1688,7 +1820,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Id": "ParamRabbitElimination",
"Segments": [
0,
0,
@ -1699,7 +1831,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Id": "ParamRabbitAppearance",
"Segments": [
0,
0,
@ -1710,7 +1842,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Id": "ParamRabbitSize",
"Segments": [
0,
0,
@ -1721,7 +1853,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Id": "ParamRabbitDraworder",
"Segments": [
0,
0,
@ -1732,7 +1864,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Id": "ParamRabbitEar",
"Segments": [
0,
0,
@ -1743,7 +1875,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Id": "ParamRabbitDirection",
"Segments": [
0,
0,
@ -1754,7 +1886,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Id": "ParamRabbitLight",
"Segments": [
0,
0,
@ -1765,7 +1897,84 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Id": "ParamRabbitLightSize",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitX",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitY",
"Segments": [
0,
1,
0,
4.4,
1
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitRotate",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor1",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor2",
"Segments": [
0,
0,
@ -1807,6 +2016,61 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLightOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLight",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightMove",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
@ -1831,7 +2095,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Id": "ParamAllColor1",
"Segments": [
0,
0,
@ -1842,7 +2106,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Id": "ParamAllColor2",
"Segments": [
0,
0,
@ -1853,7 +2117,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Id": "ParamSphereOn",
"Segments": [
0,
0,
@ -1864,7 +2128,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Id": "ParamSphereMove",
"Segments": [
0,
0,
@ -1875,7 +2139,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAllColor",
"Id": "ParamSphereMultiplyColor",
"Segments": [
0,
0,
@ -1886,51 +2150,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealOn",
"Segments": [
0,
0,
0,
4.4,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Id": "ParamSphereScreenColor",
"Segments": [
0,
0,

View File

@ -7,9 +7,9 @@
"FadeOutTime": 0.5,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 116,
"TotalSegmentCount": 280,
"TotalPointCount": 726,
"CurveCount": 136,
"TotalSegmentCount": 300,
"TotalPointCount": 766,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
@ -689,7 +689,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthA",
"Id": "ParamA",
"Segments": [
0,
0,
@ -700,7 +700,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthI",
"Id": "ParamI",
"Segments": [
0,
0,
@ -711,7 +711,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthU",
"Id": "ParamU",
"Segments": [
0,
0,
@ -722,7 +722,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthE",
"Id": "ParamE",
"Segments": [
0,
0,
@ -733,7 +733,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthO",
"Id": "ParamO",
"Segments": [
0,
0,
@ -2079,6 +2079,138 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
@ -2147,7 +2279,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Id": "ParamRabbitElimination",
"Segments": [
0,
0,
@ -2158,7 +2290,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Id": "ParamRabbitAppearance",
"Segments": [
0,
0,
@ -2169,7 +2301,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Id": "ParamRabbitSize",
"Segments": [
0,
0,
@ -2180,7 +2312,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Id": "ParamRabbitDraworder",
"Segments": [
0,
0,
@ -2191,7 +2323,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Id": "ParamRabbitEar",
"Segments": [
0,
0,
@ -2202,7 +2334,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Id": "ParamRabbitDirection",
"Segments": [
0,
0,
@ -2213,7 +2345,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Id": "ParamRabbitLight",
"Segments": [
0,
0,
@ -2224,7 +2356,84 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Id": "ParamRabbitLightSize",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitX",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitY",
"Segments": [
0,
1,
0,
4.2,
1
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitRotate",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor1",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor2",
"Segments": [
0,
0,
@ -2266,6 +2475,61 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLightOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLight",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightMove",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
@ -2290,7 +2554,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Id": "ParamAllColor1",
"Segments": [
0,
0,
@ -2301,7 +2565,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Id": "ParamAllColor2",
"Segments": [
0,
0,
@ -2312,7 +2576,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Id": "ParamSphereOn",
"Segments": [
0,
0,
@ -2323,7 +2587,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Id": "ParamSphereMove",
"Segments": [
0,
0,
@ -2334,7 +2598,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAllColor",
"Id": "ParamSphereMultiplyColor",
"Segments": [
0,
0,
@ -2345,51 +2609,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealOn",
"Segments": [
0,
0,
0,
4.2,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Id": "ParamSphereScreenColor",
"Segments": [
0,
0,

File diff suppressed because it is too large Load Diff

View File

@ -7,9 +7,9 @@
"FadeOutTime": 0.25,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 116,
"TotalSegmentCount": 393,
"TotalPointCount": 1053,
"CurveCount": 136,
"TotalSegmentCount": 413,
"TotalPointCount": 1093,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
@ -752,7 +752,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthA",
"Id": "ParamA",
"Segments": [
0,
0,
@ -777,7 +777,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthI",
"Id": "ParamI",
"Segments": [
0,
0,
@ -788,7 +788,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthU",
"Id": "ParamU",
"Segments": [
0,
0,
@ -799,7 +799,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthE",
"Id": "ParamE",
"Segments": [
0,
0,
@ -810,7 +810,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthO",
"Id": "ParamO",
"Segments": [
0,
0,
@ -2418,83 +2418,6 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmoke",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosionChargeOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosionLightCharge",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosionOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosion",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
@ -2528,31 +2451,6 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Segments": [
0,
0,
1,
1.044,
0,
2.089,
0,
3.133,
0,
1,
3.244,
0,
3.356,
1,
3.467,
1,
0,
7.8,
1
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
@ -2656,148 +2554,6 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartLightOn",
"Segments": [
0,
0,
1,
1.089,
0,
2.178,
0,
3.267,
0,
1,
3.567,
0.661,
3.867,
1,
4.167,
1,
1,
4.344,
1,
4.522,
0.757,
4.7,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartLight",
"Segments": [
0,
0,
1,
1.111,
0,
2.222,
0,
3.333,
0,
1,
3.911,
17.478,
4.489,
30,
5.067,
30,
1,
5.078,
30,
5.089,
0,
5.1,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartLightColor",
"Segments": [
0,
0,
1,
1.078,
0,
2.156,
0,
3.233,
0,
1,
3.544,
0,
3.856,
1,
4.167,
1,
1,
4.344,
1,
4.522,
1,
4.7,
1,
1,
4.711,
1,
4.722,
0,
4.733,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionY",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
0.5,
0,
0,
2,
1,
0,
7.8,
1
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
@ -2927,51 +2683,238 @@
},
{
"Target": "Parameter",
"Id": "ParamAllColor",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Segments": [
0,
0,
1,
1.456,
1.044,
0,
2.911,
2.089,
0,
4.367,
3.133,
0,
1,
4.611,
3.244,
0,
4.856,
0.6,
5.1,
0.6,
3.356,
1,
5.244,
0.6,
5.389,
0.4,
5.533,
0.4,
3.467,
1,
5.678,
0.4,
5.822,
0.6,
5.967,
0.6,
1,
6.111,
0.6,
6.256,
0.572,
6.4,
0.4,
1,
6.567,
0.201,
6.733,
0,
6.9,
7.8,
1
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
0.5,
0,
0,
2,
1,
0,
7.8,
1
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSmoke",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosionChargeOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosionLightCharge",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosionOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamExplosion",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitElimination",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitAppearance",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitSize",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitDraworder",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitEar",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitDirection",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitLight",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitLightSize",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitX",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitY",
"Segments": [
0,
1,
0,
7.8,
1
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitRotate",
"Segments": [
0,
0,
0,
7.8,
@ -3050,7 +2993,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraColor",
"Id": "ParamAuraColor1",
"Segments": [
0,
0,
@ -3089,7 +3032,121 @@
},
{
"Target": "Parameter",
"Id": "ParamHealOn",
"Id": "ParamAuraColor2",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartLightOn",
"Segments": [
0,
0,
1,
1.089,
0,
2.178,
0,
3.267,
0,
1,
3.567,
0.661,
3.867,
1,
4.167,
1,
1,
4.344,
1,
4.522,
0.757,
4.7,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartLight",
"Segments": [
0,
0,
1,
1.111,
0,
2.222,
0,
3.333,
0,
1,
3.911,
17.478,
4.489,
30,
5.067,
30,
1,
5.078,
30,
5.089,
0,
5.1,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartLightColor",
"Segments": [
0,
0,
1,
1.078,
0,
2.156,
0,
3.233,
0,
1,
3.544,
0,
3.856,
1,
4.167,
1,
1,
4.344,
1,
4.522,
1,
4.7,
1,
1,
4.711,
1,
4.722,
0,
4.733,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLightOn",
"Segments": [
0,
0,
@ -3165,6 +3222,169 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLight",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightMove",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionY",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAllColor1",
"Segments": [
0,
0,
1,
1.456,
0,
2.911,
0,
4.367,
0,
1,
4.611,
0,
4.856,
0.6,
5.1,
0.6,
1,
5.244,
0.6,
5.389,
0.4,
5.533,
0.4,
1,
5.678,
0.4,
5.822,
0.6,
5.967,
0.6,
1,
6.111,
0.6,
6.256,
0.572,
6.4,
0.4,
1,
6.567,
0.201,
6.733,
0,
6.9,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAllColor2",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSphereOn",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSphereMove",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSphereMultiplyColor",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "Parameter",
"Id": "ParamSphereScreenColor",
"Segments": [
0,
0,
0,
7.8,
0
]
},
{
"Target": "PartOpacity",
"Id": "PartArmLA",

View File

@ -7,9 +7,9 @@
"FadeOutTime": 0.25,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 116,
"TotalSegmentCount": 516,
"TotalPointCount": 1400,
"CurveCount": 136,
"TotalSegmentCount": 536,
"TotalPointCount": 1440,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
@ -57,7 +57,7 @@
-25.081,
1,
2.511,
-26.204,
-26.205,
2.689,
-26.911,
2.867,
@ -1323,7 +1323,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthA",
"Id": "ParamA",
"Segments": [
0,
0,
@ -1362,7 +1362,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthI",
"Id": "ParamI",
"Segments": [
0,
0,
@ -1373,7 +1373,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthU",
"Id": "ParamU",
"Segments": [
0,
0,
@ -1384,7 +1384,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthE",
"Id": "ParamE",
"Segments": [
0,
0,
@ -1395,7 +1395,7 @@
},
{
"Target": "Parameter",
"Id": "ParamMouthO",
"Id": "ParamO",
"Segments": [
0,
0,
@ -3308,6 +3308,324 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0.01,
1,
0.444,
0.023,
0.556,
1,
0.667,
1,
1,
2.2,
1,
3.733,
1,
5.267,
1,
1,
5.411,
1,
5.556,
0,
5.7,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Segments": [
0,
0,
1,
0.9,
0,
1.8,
0,
2.7,
0,
1,
3.156,
0,
3.611,
1,
4.067,
1,
1,
4.467,
1,
4.867,
1,
5.267,
1,
1,
5.411,
1,
5.556,
0,
5.7,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Segments": [
0,
0,
1,
0.756,
0,
1.511,
0,
2.267,
0,
0,
3.6,
29.3,
2,
3.633,
0,
0,
4.967,
29.3,
2,
5,
0,
0,
6.333,
29.3,
0,
9.367,
29.3
]
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Segments": [
0,
0,
0,
0.567,
0,
1,
0.8,
13.228,
1.033,
14.173,
1.267,
15,
1,
1.611,
20.079,
1.956,
27.892,
2.3,
30,
0,
9.367,
30
]
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Segments": [
0,
0,
1,
1.611,
0,
3.222,
0,
4.833,
0,
1,
4.944,
0,
5.056,
0.3,
5.167,
0.3,
1,
5.333,
0.3,
5.5,
-0.9,
5.667,
-0.9,
0,
9.367,
-0.9
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Segments": [
0,
0,
1,
0.9,
0,
1.8,
0,
2.7,
0,
1,
3.156,
0,
3.611,
1,
4.067,
1,
0,
9.367,
1
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2.267,
5,
0,
3.6,
34.3,
2,
3.633,
5,
0,
4.967,
34.3,
2,
5,
5,
0,
6.333,
34.3,
1,
6.344,
34.3,
6.356,
5.15,
6.367,
5,
1,
6.622,
1.548,
6.878,
0,
7.133,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
0.5,
0,
1,
0.744,
0,
0.989,
0.25,
1.233,
0.489,
1,
1.489,
0.735,
1.744,
1,
2,
1,
0,
9.367,
1
]
},
{
"Target": "Parameter",
"Id": "ParamSmokeOn",
@ -3545,168 +3863,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorRainbow",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2.267,
5,
0,
3.6,
34.3,
2,
3.633,
5,
0,
4.967,
34.3,
2,
5,
5,
0,
6.333,
34.3,
1,
6.344,
34.3,
6.356,
5.15,
6.367,
5,
1,
6.622,
1.548,
6.878,
0,
7.133,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartMissOn",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0.01,
1,
0.444,
0.023,
0.556,
1,
0.667,
1,
1,
2.2,
1,
3.733,
1,
5.267,
1,
1,
5.411,
1,
5.556,
0,
5.7,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartBackMissOn",
"Segments": [
0,
0,
1,
0.9,
0,
1.8,
0,
2.7,
0,
1,
3.156,
0,
3.611,
1,
4.067,
1,
1,
4.467,
1,
4.867,
1,
5.267,
1,
1,
5.411,
1,
5.556,
0,
5.7,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorRainbow",
"Segments": [
0,
0,
1,
0.756,
0,
1.511,
0,
2.267,
0,
0,
3.6,
29.3,
2,
3.633,
0,
0,
4.967,
29.3,
2,
5,
0,
0,
6.333,
29.3,
0,
9.367,
29.3
]
},
{
"Target": "Parameter",
"Id": "ParamWandInkColorHeal",
"Id": "ParamRabbitElimination",
"Segments": [
0,
0,
@ -3717,7 +3874,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartHealOn",
"Id": "ParamRabbitAppearance",
"Segments": [
0,
0,
@ -3728,7 +3885,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartBackHealOn",
"Id": "ParamRabbitSize",
"Segments": [
0,
0,
@ -3739,7 +3896,128 @@
},
{
"Target": "Parameter",
"Id": "ParamHeartColorHeal",
"Id": "ParamRabbitDraworder",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitEar",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitDirection",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitLight",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitLightSize",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitX",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitY",
"Segments": [
0,
1,
0,
9.367,
1
]
},
{
"Target": "Parameter",
"Id": "ParamRabbitRotate",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor1",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamAuraColor2",
"Segments": [
0,
0,
@ -3781,6 +4059,61 @@
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLightOn",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightOn",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLight",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamStrengthenLightMove",
"Segments": [
0,
0,
0,
9.367,
0
]
},
{
"Target": "Parameter",
"Id": "ParamMagicPositionX",
@ -3805,120 +4138,7 @@
},
{
"Target": "Parameter",
"Id": "ParamWandInk",
"Segments": [
0,
0,
0,
0.5,
0,
1,
0.744,
0,
0.989,
0.25,
1.233,
0.489,
1,
1.489,
0.735,
1.744,
1,
2,
1,
0,
9.367,
1
]
},
{
"Target": "Parameter",
"Id": "ParamHeartDrow",
"Segments": [
0,
0,
0,
0.567,
0,
1,
0.8,
13.228,
1.033,
14.173,
1.267,
15,
1,
1.611,
20.079,
1.956,
27.892,
2.3,
30,
0,
9.367,
30
]
},
{
"Target": "Parameter",
"Id": "ParamHeartSize",
"Segments": [
0,
0,
1,
1.611,
0,
3.222,
0,
4.833,
0,
1,
4.944,
0,
5.056,
0.3,
5.167,
0.3,
1,
5.333,
0.3,
5.5,
-0.9,
5.667,
-0.9,
0,
9.367,
-0.9
]
},
{
"Target": "Parameter",
"Id": "ParamHeartColorLight",
"Segments": [
0,
0,
1,
0.9,
0,
1.8,
0,
2.7,
0,
1,
3.156,
0,
3.611,
1,
4.067,
1,
0,
9.367,
1
]
},
{
"Target": "Parameter",
"Id": "ParamAllColor",
"Id": "ParamAllColor1",
"Segments": [
0,
0,
@ -3929,7 +4149,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraOn",
"Id": "ParamAllColor2",
"Segments": [
0,
0,
@ -3940,7 +4160,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAura",
"Id": "ParamSphereOn",
"Segments": [
0,
0,
@ -3951,7 +4171,7 @@
},
{
"Target": "Parameter",
"Id": "ParamAuraColor",
"Id": "ParamSphereMove",
"Segments": [
0,
0,
@ -3962,7 +4182,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHealOn",
"Id": "ParamSphereMultiplyColor",
"Segments": [
0,
0,
@ -3973,7 +4193,7 @@
},
{
"Target": "Parameter",
"Id": "ParamHealLight",
"Id": "ParamSphereScreenColor",
"Segments": [
0,
0,

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

View File

@ -0,0 +1,261 @@
{
"Version": 3,
"Parameters": [
{
"Id": "PARAM_ANGLE_X",
"GroupId": "",
"Name": "角度 X"
},
{
"Id": "PARAM_ANGLE_Y",
"GroupId": "",
"Name": "角度 Y"
},
{
"Id": "PARAM_ANGLE_Z",
"GroupId": "",
"Name": "角度 Z"
},
{
"Id": "PARAM_EYE_L_OPEN",
"GroupId": "",
"Name": "左眼 開閉"
},
{
"Id": "PARAM_EYE_R_OPEN",
"GroupId": "",
"Name": "右眼 開閉"
},
{
"Id": "PARAM_MOUTH_FORM",
"GroupId": "",
"Name": "口 変形"
},
{
"Id": "PARAM_MOUTH_OPEN_Y",
"GroupId": "",
"Name": "口 開閉"
},
{
"Id": "PARAM_TERE",
"GroupId": "",
"Name": "照れ"
},
{
"Id": "PARAM_BODY_ANGLE_X",
"GroupId": "",
"Name": "体の回転 X"
},
{
"Id": "PARAM_BODY_ANGLE_Z",
"GroupId": "",
"Name": "体の回転 Z"
},
{
"Id": "PARAM_BODY_ANGLE_Y",
"GroupId": "",
"Name": "体の回転 Y"
},
{
"Id": "PARAM_BREATH",
"GroupId": "",
"Name": "呼吸"
},
{
"Id": "PARAM_BOWL_LID",
"GroupId": "",
"Name": "お椀 ふた"
},
{
"Id": "PARAM_YUGE_01",
"GroupId": "",
"Name": "湯気"
},
{
"Id": "PARAM_YUGE_02",
"GroupId": "",
"Name": "湯気"
},
{
"Id": "PARAM_EFFECT",
"GroupId": "",
"Name": "エフェクト"
},
{
"Id": "PARAM_EAR_L",
"GroupId": "",
"Name": "左耳"
},
{
"Id": "PARAM_EAR_R",
"GroupId": "",
"Name": "右耳"
},
{
"Id": "PARAM_HAND_L",
"GroupId": "",
"Name": "左手"
},
{
"Id": "PARAM_HAND_R",
"GroupId": "",
"Name": "右手"
},
{
"Id": "PARAM_SWING",
"GroupId": "",
"Name": "揺れ"
},
{
"Id": "PARAM_BOWL_SWING",
"GroupId": "",
"Name": "揺れ お椀"
},
{
"Id": "PARAM_FACE_01",
"GroupId": "",
"Name": "どや キリッ"
},
{
"Id": "PARAM_BASE_X",
"GroupId": "",
"Name": "全体の左右"
},
{
"Id": "PARAM_BASE_Y",
"GroupId": "",
"Name": "全体の上下"
}
],
"ParameterGroups": [],
"Parts": [
{
"Id": "PARTS_01_SKETCH",
"Name": "[ 下絵 ]"
},
{
"Id": "PARTS_01_BACKGROUND",
"Name": "背景"
},
{
"Id": "PARTS_01_BOWL",
"Name": "お椀"
},
{
"Id": "PARTS_01_BODY",
"Name": "体"
},
{
"Id": "PARTS_01_EAR_001",
"Name": "耳"
},
{
"Id": "PARTS_01_NOSE_001",
"Name": "鼻"
},
{
"Id": "PARTS_01_MOUTH_001",
"Name": "口"
},
{
"Id": "PARTS_01_BROW_001",
"Name": "まゆ毛"
},
{
"Id": "PARTS_01_EYE_BALL_001",
"Name": "目玉"
},
{
"Id": "PARTS_01_EYE_001",
"Name": "目"
},
{
"Id": "PARTS_01_FACE_001",
"Name": "顔"
},
{
"Id": "PARTS_01_HOHO",
"Name": "頬"
},
{
"Id": "PARTS_01_EFFECT",
"Name": "エフェクト"
},
{
"Id": "PARTS_01_ITEM_16",
"Name": "蕎麦6杯目"
},
{
"Id": "PARTS_01_ITEM_15",
"Name": "ベニテングタケ"
},
{
"Id": "PARTS_01_ITEM_14",
"Name": "蕎麦5杯目"
},
{
"Id": "PARTS_01_ITEM_13",
"Name": "しいたけ"
},
{
"Id": "PARTS_01_ITEM_12",
"Name": "みかん"
},
{
"Id": "PARTS_01_ITEM_11",
"Name": "蕎麦4杯目"
},
{
"Id": "PARTS_01_ITEM_10",
"Name": "王冠"
},
{
"Id": "PARTS_01_ITEM_09",
"Name": "まゆげ"
},
{
"Id": "PARTS_01_ITEM_08",
"Name": "蕎麦3杯目"
},
{
"Id": "PARTS_01_ITEM_07",
"Name": "アフロ"
},
{
"Id": "PARTS_01_ITEM_06",
"Name": "リボン"
},
{
"Id": "PARTS_01_ITEM_05",
"Name": "蕎麦2杯目"
},
{
"Id": "PARTS_01_ITEM_04",
"Name": "星"
},
{
"Id": "PARTS_01_ITEM_03",
"Name": "ひげ"
},
{
"Id": "PARTS_01_ITEM_02",
"Name": "蕎麦1杯目"
},
{
"Id": "PARTS_01_ITEM_01",
"Name": "たんぽぽ"
},
{
"Id": "PARTS_01_CORE_ITEM",
"Name": "コア アイテム"
},
{
"Id": "PARTS_01_CORE",
"Name": "コア"
},
{
"Id": "ROUGH",
"Name": "ラフ"
}
]
}

Binary file not shown.

View File

@ -0,0 +1,55 @@
{
"Version": 3,
"FileReferences": {
"Moc": "Wanko.moc3",
"Textures": [
"Wanko.1024/texture_00.png"
],
"Physics": "Wanko.physics3.json",
"DisplayInfo": "Wanko.cdi3.json",
"Motions": {
"Idle": [
{
"File": "motions/idle_01.motion3.json"
},
{
"File": "motions/idle_03.motion3.json"
},
{
"File": "motions/idle_04.motion3.json"
}
],
"TapBody": [
{
"File": "motions/touch_02.motion3.json"
},
{
"File": "motions/touch_04.motion3.json"
}
]
}
},
"Groups": [
{
"Target": "Parameter",
"Name": "EyeBlink",
"Ids": [
"PARAM_EYE_L_OPEN",
"PARAM_EYE_R_OPEN"
]
},
{
"Target": "Parameter",
"Name": "LipSync",
"Ids": [
"PARAM_MOUTH_OPEN_Y"
]
}
],
"HitAreas": [
{
"Id": "HitArea",
"Name": "Body"
}
]
}

View File

@ -0,0 +1,373 @@
{
"Version": 3,
"Meta": {
"PhysicsSettingCount": 4,
"TotalInputCount": 14,
"TotalOutputCount": 4,
"VertexCount": 8,
"EffectiveForces": {
"Gravity": {
"X": 0,
"Y": -1
},
"Wind": {
"X": 0,
"Y": 0
}
},
"PhysicsDictionary": [
{
"Id": "PhysicsSetting1",
"Name": "お椀揺れ"
},
{
"Id": "PhysicsSetting2",
"Name": "揺れ"
},
{
"Id": "PhysicsSetting3",
"Name": "右耳"
},
{
"Id": "PhysicsSetting4",
"Name": "左耳"
}
]
},
"PhysicsSettings": [
{
"Id": "PhysicsSetting1",
"Input": [
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X"
},
"Weight": 100,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z"
},
"Weight": 100,
"Type": "Angle",
"Reflect": false
}
],
"Output": [
{
"Destination": {
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING"
},
"VertexIndex": 1,
"Scale": 1,
"Weight": 100,
"Type": "Angle",
"Reflect": false
}
],
"Vertices": [
{
"Position": {
"X": 0,
"Y": 0
},
"Mobility": 1,
"Delay": 1,
"Acceleration": 1,
"Radius": 0
},
{
"Position": {
"X": 0,
"Y": 3
},
"Mobility": 0.8,
"Delay": 0.9,
"Acceleration": 1.5,
"Radius": 3
}
],
"Normalization": {
"Position": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
},
"Angle": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
}
}
},
{
"Id": "PhysicsSetting2",
"Input": [
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y"
},
"Weight": 100,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z"
},
"Weight": 100,
"Type": "Angle",
"Reflect": false
}
],
"Output": [
{
"Destination": {
"Target": "Parameter",
"Id": "PARAM_SWING"
},
"VertexIndex": 1,
"Scale": 1,
"Weight": 100,
"Type": "Angle",
"Reflect": false
}
],
"Vertices": [
{
"Position": {
"X": 0,
"Y": 0
},
"Mobility": 1,
"Delay": 1,
"Acceleration": 1,
"Radius": 0
},
{
"Position": {
"X": 0,
"Y": 5
},
"Mobility": 0.85,
"Delay": 0.9,
"Acceleration": 1,
"Radius": 5
}
],
"Normalization": {
"Position": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
},
"Angle": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
}
}
},
{
"Id": "PhysicsSetting3",
"Input": [
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_ANGLE_X"
},
"Weight": 50,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y"
},
"Weight": 20,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z"
},
"Weight": 60,
"Type": "Angle",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X"
},
"Weight": 30,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z"
},
"Weight": 40,
"Type": "Angle",
"Reflect": false
}
],
"Output": [
{
"Destination": {
"Target": "Parameter",
"Id": "PARAM_EAR_R"
},
"VertexIndex": 1,
"Scale": 1.5,
"Weight": 100,
"Type": "Angle",
"Reflect": false
}
],
"Vertices": [
{
"Position": {
"X": 0,
"Y": 0
},
"Mobility": 1,
"Delay": 1,
"Acceleration": 1,
"Radius": 0
},
{
"Position": {
"X": 0,
"Y": 5.5
},
"Mobility": 0.95,
"Delay": 0.9,
"Acceleration": 1.5,
"Radius": 5.5
}
],
"Normalization": {
"Position": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
},
"Angle": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
}
}
},
{
"Id": "PhysicsSetting4",
"Input": [
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_ANGLE_X"
},
"Weight": 50,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y"
},
"Weight": 20,
"Type": "X",
"Reflect": true
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z"
},
"Weight": 60,
"Type": "Angle",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X"
},
"Weight": 30,
"Type": "X",
"Reflect": false
},
{
"Source": {
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z"
},
"Weight": 40,
"Type": "Angle",
"Reflect": false
}
],
"Output": [
{
"Destination": {
"Target": "Parameter",
"Id": "PARAM_EAR_L"
},
"VertexIndex": 1,
"Scale": 1.5,
"Weight": 100,
"Type": "Angle",
"Reflect": false
}
],
"Vertices": [
{
"Position": {
"X": 0,
"Y": 0
},
"Mobility": 1,
"Delay": 1,
"Acceleration": 1,
"Radius": 0
},
{
"Position": {
"X": 0,
"Y": 5.5
},
"Mobility": 0.95,
"Delay": 0.9,
"Acceleration": 1.5,
"Radius": 5.5
}
],
"Normalization": {
"Position": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
},
"Angle": {
"Minimum": -10,
"Default": 0,
"Maximum": 10
}
}
}
]
}

View File

@ -0,0 +1,699 @@
{
"Version": 3,
"Meta": {
"Duration": 5.967,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 85,
"TotalPointCount": 233,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
-1,
1,
0.222,
-1,
0.444,
0,
0.667,
0,
1,
0.911,
0,
1.156,
-1,
1.4,
-1,
1,
1.622,
-1,
1.844,
0,
2.067,
0,
1,
2.322,
0,
2.578,
-1,
2.833,
-1,
1,
3.067,
-1,
3.3,
0,
3.533,
0,
1,
3.844,
0,
4.156,
-1,
4.467,
-1,
1,
4.656,
-1,
4.844,
0,
5.033,
0,
1,
5.333,
0,
5.633,
-1,
5.933,
-1,
0,
5.967,
-1
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
14,
1,
0.222,
14,
0.444,
-8,
0.667,
-8,
1,
0.911,
-8,
1.156,
14,
1.4,
14,
1,
1.622,
14,
1.844,
-13,
2.067,
-13,
1,
2.322,
-13,
2.578,
14,
2.833,
14,
1,
3.067,
14,
3.3,
-8,
3.533,
-8,
1,
3.844,
-8,
4.156,
14,
4.467,
14,
1,
4.656,
14,
4.844,
-13,
5.033,
-13,
1,
5.333,
-13,
5.633,
14,
5.933,
14,
0,
5.967,
14
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
-10,
1,
0.467,
-10,
0.933,
13,
1.4,
13,
1,
1.878,
13,
2.356,
-10,
2.833,
-10,
1,
3.378,
-10,
3.922,
13,
4.467,
13,
1,
4.956,
13,
5.444,
-10,
5.933,
-10,
0,
5.967,
-10
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
1,
1,
0.622,
1,
1.244,
1,
1.867,
1,
1,
1.922,
1,
1.978,
0,
2.033,
0,
1,
2.133,
0,
2.233,
1,
2.333,
1,
1,
3.533,
1,
4.733,
1,
5.933,
1,
0,
5.967,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
1,
1,
0.622,
1,
1.244,
1,
1.867,
1,
1,
1.922,
1,
1.978,
0,
2.033,
0,
1,
2.133,
0,
2.233,
1,
2.333,
1,
1,
3.533,
1,
4.733,
1,
5.933,
1,
0,
5.967,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
1,
1,
0.622,
1,
1.244,
1,
1.867,
1,
1,
1.922,
1,
1.978,
0,
2.033,
0,
1,
2.133,
0,
2.233,
1,
2.333,
1,
1,
3.044,
1,
3.756,
1,
4.467,
1,
1,
4.656,
1,
4.844,
0,
5.033,
0,
1,
5.333,
0,
5.633,
1,
5.933,
1,
0,
5.967,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
-2,
1,
0.467,
-2,
0.933,
2,
1.4,
2,
1,
1.878,
2,
2.356,
-2,
2.833,
-2,
1,
3.378,
-2,
3.922,
4,
4.467,
4,
1,
4.956,
4,
5.444,
-2,
5.933,
-2,
0,
5.967,
-2
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
-5,
1,
0.467,
-5,
0.933,
6,
1.4,
6,
1,
1.878,
6,
2.356,
-5,
2.833,
-5,
1,
3.378,
-5,
3.922,
6,
4.467,
6,
1,
4.956,
6,
5.444,
-5,
5.933,
-5,
0,
5.967,
-5
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
1.978,
50,
3.956,
50,
5.933,
50,
0,
5.967,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.267,
0,
0.533,
0,
0.8,
0,
1,
0.867,
0,
0.933,
0.82,
1,
0.82,
1,
1.056,
0.82,
1.111,
-0.72,
1.167,
-0.72,
1,
1.222,
-0.72,
1.278,
0.23,
1.333,
0.23,
1,
1.356,
0.23,
1.378,
0,
1.4,
0,
1,
2.156,
0,
2.911,
0,
3.667,
0,
1,
3.722,
0,
3.778,
0.82,
3.833,
0.82,
1,
3.889,
0.82,
3.944,
-0.72,
4,
-0.72,
1,
4.056,
-0.72,
4.111,
0.23,
4.167,
0.23,
1,
4.2,
0.23,
4.233,
0,
4.267,
0,
1,
4.822,
0,
5.378,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
1.978,
0,
3.956,
0,
5.933,
0,
0,
5.967,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
5.967,
0
]
}
]
}

View File

@ -0,0 +1,818 @@
{
"Version": 3,
"Meta": {
"Duration": 6.933,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 102,
"TotalPointCount": 284,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.3,
0,
0.6,
0,
0.9,
0,
1,
1.167,
0,
1.433,
-2,
1.7,
-2,
1,
1.889,
-2,
2.078,
-2,
2.267,
-2,
1,
2.633,
-2,
3,
0,
3.367,
0,
1,
3.567,
0,
3.767,
0,
3.967,
0,
1,
4.322,
0,
4.678,
0,
5.033,
0,
1,
5.156,
0,
5.278,
0,
5.4,
0,
1,
5.9,
0,
6.4,
0,
6.9,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.3,
0,
0.6,
0,
0.9,
0,
1,
1.167,
0,
1.433,
15,
1.7,
15,
1,
1.889,
15,
2.078,
15,
2.267,
15,
1,
2.633,
15,
3,
0,
3.367,
0,
1,
3.567,
0,
3.767,
0,
3.967,
0,
1,
4.322,
0,
4.678,
0,
5.033,
0,
1,
5.078,
0,
5.122,
11,
5.167,
11,
1,
5.244,
11,
5.322,
0,
5.4,
0,
1,
5.9,
0,
6.4,
0,
6.9,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.3,
0,
0.6,
0,
0.9,
0,
1,
1.167,
0,
1.433,
23,
1.7,
23,
1,
1.889,
23,
2.078,
23,
2.267,
23,
1,
2.633,
23,
3,
-7,
3.367,
-7,
1,
3.567,
-7,
3.767,
0,
3.967,
0,
1,
4.322,
0,
4.678,
0,
5.033,
0,
1,
5.656,
0,
6.278,
0,
6.9,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
1,
1,
0.444,
1,
0.889,
1,
1.333,
1,
1,
1.367,
1,
1.4,
0,
1.433,
0,
1,
1.5,
0,
1.567,
1,
1.633,
1,
1,
2.856,
1,
4.078,
1,
5.3,
1,
1,
5.333,
1,
5.367,
0,
5.4,
0,
1,
5.467,
0,
5.533,
1,
5.6,
1,
0,
6.933,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
1,
1,
0.444,
1,
0.889,
1,
1.333,
1,
1,
1.367,
1,
1.4,
0,
1.433,
0,
1,
1.5,
0,
1.567,
1,
1.633,
1,
1,
2.856,
1,
4.078,
1,
5.3,
1,
1,
5.333,
1,
5.367,
0,
5.4,
0,
1,
5.467,
0,
5.533,
1,
5.6,
1,
0,
6.933,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
1,
1,
0.978,
1,
1.956,
1,
2.933,
1,
1,
3.078,
1,
3.222,
0,
3.367,
0,
1,
3.8,
0,
4.233,
0,
4.667,
0,
1,
4.789,
0,
4.911,
0,
5.033,
0,
1,
5.111,
0,
5.189,
1,
5.267,
1,
1,
5.4,
1,
5.533,
0,
5.667,
0,
1,
5.911,
0,
6.156,
0,
6.4,
0,
1,
6.567,
0,
6.733,
1,
6.9,
1,
0,
6.933,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.3,
0,
0.6,
0,
0.9,
0,
1,
2.278,
0,
3.656,
0,
5.033,
0,
1,
5.656,
0,
6.278,
0,
6.9,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.3,
0,
0.6,
0,
0.9,
0,
1,
1.167,
0,
1.433,
10,
1.7,
10,
1,
1.889,
10,
2.078,
10,
2.267,
10,
1,
2.833,
10,
3.4,
0,
3.967,
0,
1,
4.322,
0,
4.678,
0,
5.033,
0,
1,
5.656,
0,
6.278,
0,
6.9,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
2,
0.333,
2,
1,
0.522,
2,
0.711,
0,
0.9,
0,
1,
1.011,
0,
1.122,
8,
1.233,
8,
1,
1.389,
8,
1.544,
0,
1.7,
0,
1,
1.889,
0,
2.078,
0,
2.267,
0,
1,
2.489,
0,
2.711,
3,
2.933,
3,
1,
3.078,
3,
3.222,
0,
3.367,
0,
1,
3.567,
0,
3.767,
0,
3.967,
0,
1,
4.2,
0,
4.433,
2,
4.667,
2,
1,
4.789,
2,
4.911,
0,
5.033,
0,
1,
5.078,
0,
5.122,
8,
5.167,
8,
1,
5.244,
8,
5.322,
-2,
5.4,
-2,
1,
5.456,
-2,
5.511,
1,
5.567,
1,
1,
5.6,
1,
5.633,
0,
5.667,
0,
1,
5.789,
0,
5.911,
0,
6.033,
0,
1,
6.156,
0,
6.278,
3,
6.4,
3,
1,
6.567,
3,
6.733,
0,
6.9,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
0,
6.933,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
1.656,
0,
3.311,
0,
4.967,
0,
1,
5.011,
0,
5.056,
-0.57,
5.1,
-0.57,
1,
5.167,
-0.57,
5.233,
0.55,
5.3,
0.55,
1,
5.367,
0.55,
5.433,
-0.24,
5.5,
-0.24,
1,
5.556,
-0.24,
5.611,
0,
5.667,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
1.656,
0,
3.311,
0,
4.967,
0,
1,
5.011,
0,
5.056,
0.5,
5.1,
0.5,
1,
5.167,
0.5,
5.233,
-0.64,
5.3,
-0.64,
1,
5.367,
-0.64,
5.433,
0.18,
5.5,
0.18,
1,
5.556,
0.18,
5.611,
0,
5.667,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
0,
6.933,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
6.933,
0
]
}
]
}

View File

@ -0,0 +1,783 @@
{
"Version": 3,
"Meta": {
"Duration": 6.7,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 97,
"TotalPointCount": 269,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
-14,
1.133,
-14,
1,
1.344,
-14,
1.556,
-14,
1.767,
-14,
1,
2.189,
-14,
2.611,
-14,
3.033,
-14,
1,
3.8,
-14,
4.567,
-14,
5.333,
-14,
1,
5.678,
-14,
6.022,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
16,
1.133,
16,
1,
1.344,
16,
1.556,
16,
1.767,
16,
1,
2.956,
16,
4.144,
16,
5.333,
16,
1,
5.678,
16,
6.022,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
0,
1.133,
0,
1,
1.344,
0,
1.556,
0,
1.767,
0,
1,
2.956,
0,
4.144,
0,
5.333,
0,
1,
5.678,
0,
6.022,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
1,
1,
0.478,
1,
0.956,
1,
1.433,
1,
1,
1.544,
1,
1.656,
0,
1.767,
0,
1,
2.022,
0,
2.278,
0,
2.533,
0,
1,
2.689,
0,
2.844,
0,
3,
0,
1,
3.111,
0,
3.222,
1,
3.333,
1,
1,
4,
1,
4.667,
1,
5.333,
1,
1,
5.456,
1,
5.578,
1,
5.7,
1,
1,
5.733,
1,
5.767,
0,
5.8,
0,
1,
5.867,
0,
5.933,
1,
6,
1,
0,
6.7,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
1,
1,
0.478,
1,
0.956,
1,
1.433,
1,
1,
1.544,
1,
1.656,
0,
1.767,
0,
1,
2.022,
0,
2.278,
0,
2.533,
0,
1,
2.689,
0,
2.844,
0,
3,
0,
1,
3.111,
0,
3.222,
1,
3.333,
1,
1,
4,
1,
4.667,
1,
5.333,
1,
1,
5.456,
1,
5.578,
1,
5.7,
1,
1,
5.733,
1,
5.767,
0,
5.8,
0,
1,
5.867,
0,
5.933,
1,
6,
1,
0,
6.7,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
1.422,
0,
2.844,
0,
4.267,
0,
1,
4.378,
0,
4.489,
0.6,
4.6,
0.6,
1,
4.733,
0.6,
4.867,
0,
5,
0,
1,
5.456,
0,
5.911,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
-9,
1.133,
-9,
1,
2.533,
-9,
3.933,
-9,
5.333,
-9,
1,
5.678,
-9,
6.022,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.622,
0,
0.878,
-2,
1.133,
-2,
1,
2.533,
-2,
3.933,
0,
5.333,
0,
1,
5.678,
0,
6.022,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
4,
0.367,
4,
1,
0.511,
4,
0.656,
-1,
0.8,
-1,
1,
0.856,
-1,
0.911,
1,
0.967,
1,
1,
1.044,
1,
1.122,
0,
1.2,
0,
1,
1.389,
0,
1.578,
0,
1.767,
0,
1,
1.8,
0,
1.833,
2,
1.867,
2,
1,
1.911,
2,
1.956,
0,
2,
0,
1,
2.044,
0,
2.089,
1,
2.133,
1,
1,
2.178,
1,
2.222,
0,
2.267,
0,
1,
2.622,
0,
2.978,
0,
3.333,
0,
1,
3.511,
0,
3.689,
0,
3.867,
0,
1,
4,
0,
4.133,
-1,
4.267,
-1,
1,
4.411,
-1,
4.556,
2,
4.7,
2,
1,
4.911,
2,
5.122,
1.884,
5.333,
0,
1,
5.489,
-1.388,
5.644,
-5,
5.8,
-5,
1,
5.989,
-5,
6.178,
0,
6.367,
0,
1,
6.467,
0,
6.567,
0,
6.667,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
1.778,
50,
3.556,
50,
5.333,
50,
0,
6.7,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
1.778,
0,
3.556,
0,
5.333,
0,
0,
6.7,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
6.7,
0
]
}
]
}

View File

@ -0,0 +1,636 @@
{
"Version": 3,
"Meta": {
"Duration": 10.367,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 76,
"TotalPointCount": 206,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
2.533,
0,
5.067,
-1,
7.6,
-1,
1,
8.511,
-1,
9.422,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.333,
0,
0.667,
12,
1,
12,
1,
1.6,
12,
2.2,
-1.589,
2.8,
-1.589,
1,
3.178,
-1.589,
3.556,
12,
3.933,
12,
1,
4.656,
12,
5.378,
-1.589,
6.1,
-1.589,
1,
6.489,
-1.589,
6.878,
13.71,
7.267,
13.71,
1,
7.378,
13.71,
7.489,
-23,
7.6,
-23,
1,
7.678,
-23,
7.756,
-7.683,
7.833,
-7.683,
1,
7.933,
-7.683,
8.033,
-10.837,
8.133,
-10.837,
1,
8.867,
-10.837,
9.6,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
-8,
1,
0.333,
-8,
0.667,
9,
1,
9,
1,
1.6,
9,
2.2,
-11,
2.8,
-11,
1,
3.178,
-11,
3.556,
9,
3.933,
9,
1,
4.656,
9,
5.378,
-11,
6.1,
-11,
1,
6.489,
-11,
6.878,
5,
7.267,
5,
1,
7.378,
5,
7.489,
-9,
7.6,
-9,
1,
7.678,
-9,
7.756,
-1,
7.833,
-1,
1,
7.933,
-1,
8.033,
-7,
8.133,
-7,
1,
8.478,
-7,
8.822,
2,
9.167,
2,
1,
9.556,
2,
9.944,
-8,
10.333,
-8,
0,
10.367,
-8
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
0.333,
0,
0.667,
0.42,
1,
0.42,
1,
1.6,
0.42,
2.2,
0,
2.8,
0,
1,
3.178,
0,
3.556,
0.42,
3.933,
0.42,
1,
4.656,
0.42,
5.378,
0,
6.1,
0,
1,
6.489,
0,
6.878,
0.35,
7.267,
0.35,
1,
7.6,
0.35,
7.933,
0,
8.267,
0,
1,
8.567,
0,
8.867,
0.34,
9.167,
0.34,
1,
9.556,
0.34,
9.944,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
2.422,
0,
4.844,
0,
7.267,
0,
1,
7.378,
0,
7.489,
-6,
7.6,
-6,
1,
7.778,
-6,
7.956,
-6,
8.133,
-6,
1,
8.867,
-6,
9.6,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.333,
0,
0.667,
0.64,
1,
0.64,
1,
1.6,
0.64,
2.2,
0,
2.8,
0,
1,
3.178,
0,
3.556,
0.73,
3.933,
0.73,
1,
4.656,
0.73,
5.378,
0,
6.1,
0,
1,
6.489,
0,
6.878,
0.73,
7.267,
0.73,
1,
7.556,
0.73,
7.844,
0,
8.133,
0,
1,
8.478,
0,
8.822,
0.39,
9.167,
0.39,
1,
9.556,
0.39,
9.944,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
3.444,
50,
6.889,
50,
10.333,
50,
0,
10.367,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
3.444,
0,
6.889,
0,
10.333,
0,
0,
10.367,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
10.367,
0
]
}
]
}

View File

@ -0,0 +1,748 @@
{
"Version": 3,
"Meta": {
"Duration": 2.5,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 92,
"TotalPointCount": 254,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
-9,
1,
0.044,
-9,
0.089,
-7.426,
0.133,
0,
1,
0.2,
11.14,
0.267,
20,
0.333,
20,
1,
0.456,
20,
0.578,
-18,
0.7,
-18,
1,
0.822,
-18,
0.944,
16,
1.067,
16,
1,
1.178,
16,
1.289,
-8,
1.4,
-8,
1,
1.489,
-8,
1.578,
0,
1.667,
0,
1,
1.933,
0,
2.2,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
14,
1,
0.044,
14,
0.089,
30,
0.133,
30,
1,
0.2,
30,
0.267,
30,
0.333,
30,
1,
0.456,
30,
0.578,
23.223,
0.7,
13,
1,
0.822,
2.777,
0.944,
-1,
1.067,
-1,
1,
1.178,
-1,
1.289,
3,
1.4,
3,
1,
1.489,
3,
1.578,
0,
1.667,
0,
1,
1.933,
0,
2.2,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
30,
0.4,
30,
1,
0.522,
30,
0.644,
-25,
0.767,
-25,
1,
0.889,
-25,
1.011,
26,
1.133,
26,
1,
1.222,
26,
1.311,
-10,
1.4,
-10,
1,
1.544,
-10,
1.689,
0,
1.833,
0,
1,
2.044,
0,
2.256,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
0,
1.133,
0,
1,
1.311,
0,
1.489,
1,
1.667,
1,
1,
1.933,
1,
2.2,
1,
2.467,
1,
0,
2.5,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
0,
1.133,
0,
1,
1.311,
0,
1.489,
1,
1.667,
1,
1,
1.933,
1,
2.2,
1,
2.467,
1,
0,
2.5,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
1,
1,
0.822,
1,
1.644,
1,
2.467,
1,
0,
2.5,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
4,
0.333,
4,
1,
0.456,
4,
0.578,
-4,
0.7,
-4,
1,
0.822,
-4,
0.944,
3,
1.067,
3,
1,
1.178,
3,
1.289,
-1,
1.4,
-1,
1,
1.489,
-1,
1.578,
0,
1.667,
0,
1,
1.767,
0,
1.867,
0,
1.967,
0,
1,
2.133,
0,
2.3,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
10,
0.4,
10,
1,
0.522,
10,
0.644,
-10,
0.767,
-10,
1,
0.889,
-10,
1.011,
5,
1.133,
5,
1,
1.222,
5,
1.311,
-3,
1.4,
-3,
1,
1.511,
-3,
1.622,
1,
1.733,
1,
1,
1.978,
1,
2.222,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.578,
0,
1.156,
0,
1.733,
0,
1,
1.978,
0,
2.222,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.822,
50,
1.644,
50,
2.467,
50,
0,
2.5,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.044,
0,
0.089,
-1,
0.133,
-1,
1,
0.222,
-1,
0.311,
1,
0.4,
1,
1,
0.511,
1,
0.622,
-1,
0.733,
-1,
1,
0.811,
-1,
0.889,
1,
0.967,
1,
1,
1.067,
1,
1.167,
-1,
1.267,
-1,
1,
1.367,
-1,
1.467,
1,
1.567,
1,
1,
1.667,
1,
1.767,
-0.35,
1.867,
-0.35,
1,
1.922,
-0.35,
1.978,
0.08,
2.033,
0.08,
1,
2.1,
0.08,
2.167,
-0.08,
2.233,
-0.08,
1,
2.311,
-0.08,
2.389,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.044,
0,
0.089,
-0.96,
0.133,
-0.96,
1,
0.222,
-0.96,
0.311,
1,
0.4,
1,
1,
0.511,
1,
0.622,
-1,
0.733,
-1,
1,
0.811,
-1,
0.889,
1,
0.967,
1,
1,
1.067,
1,
1.167,
-1,
1.267,
-1,
1,
1.367,
-1,
1.467,
1,
1.567,
1,
1,
1.667,
1,
1.767,
-0.32,
1.867,
-0.32,
1,
1.922,
-0.32,
1.978,
0.07,
2.033,
0.07,
1,
2.1,
0.07,
2.167,
-0.08,
2.233,
-0.08,
1,
2.311,
-0.08,
2.389,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.822,
0,
1.644,
0,
2.467,
0,
0,
2.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
2.5,
0
]
}
]
}

View File

@ -0,0 +1,867 @@
{
"Version": 3,
"Meta": {
"Duration": 2.533,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 109,
"TotalPointCount": 305,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.411,
0,
0.489,
0,
0.567,
0,
1,
0.656,
0,
0.744,
0,
0.833,
0,
1,
1.389,
0,
1.944,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
30,
1,
0.111,
30,
0.222,
30,
0.333,
30,
1,
0.411,
30,
0.489,
30,
0.567,
30,
1,
0.656,
30,
0.744,
30,
0.833,
30,
1,
1.389,
30,
1.944,
30,
2.5,
30,
0,
2.533,
30
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.033,
0,
0.067,
-30,
0.1,
-30,
1,
0.211,
-30,
0.322,
30,
0.433,
30,
1,
0.511,
30,
0.589,
-11,
0.667,
-11,
1,
0.756,
-11,
0.844,
30,
0.933,
30,
1,
1.011,
30,
1.089,
-14,
1.167,
-14,
1,
1.256,
-14,
1.344,
9,
1.433,
9,
1,
1.522,
9,
1.611,
-4,
1.7,
-4,
1,
1.8,
-4,
1.9,
0,
2,
0,
1,
2.167,
0,
2.333,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.844,
0,
1.122,
0,
1.4,
0,
1,
1.456,
0,
1.511,
1,
1.567,
1,
1,
1.878,
1,
2.189,
1,
2.5,
1,
0,
2.533,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.844,
0,
1.122,
0,
1.4,
0,
1,
1.456,
0,
1.511,
1,
1.567,
1,
1,
1.878,
1,
2.189,
1,
2.5,
1,
0,
2.533,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.811,
0,
1.056,
0,
1.3,
0,
1,
1.333,
0,
1.367,
1,
1.4,
1,
1,
1.444,
1,
1.489,
0,
1.533,
0,
1,
1.856,
0,
2.178,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
1.211,
0,
1.856,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
-10,
1,
0.111,
-10,
0.222,
10,
0.333,
10,
1,
0.411,
10,
0.489,
-10,
0.567,
-10,
1,
0.656,
-10,
0.744,
10,
0.833,
10,
1,
0.956,
10,
1.078,
-3,
1.2,
-3,
1,
1.333,
-3,
1.467,
-3,
1.6,
-3,
1,
1.722,
-3,
1.844,
0,
1.967,
0,
1,
2.144,
0,
2.322,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
10,
1,
0.067,
10,
0.133,
-2,
0.2,
-2,
1,
0.244,
-2,
0.289,
-2.18,
0.333,
0,
1,
0.411,
3.815,
0.489,
10,
0.567,
10,
1,
0.622,
10,
0.678,
-2,
0.733,
-2,
1,
0.767,
-2,
0.8,
-1.988,
0.833,
0,
1,
0.922,
5.303,
1.011,
10,
1.1,
10,
1,
1.167,
10,
1.233,
-2,
1.3,
-2,
1,
1.333,
-2,
1.367,
2,
1.4,
2,
1,
1.444,
2,
1.489,
0,
1.533,
0,
1,
1.856,
0,
2.178,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.833,
0,
1.667,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.833,
50,
1.667,
50,
2.5,
50,
0,
2.533,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.833,
0,
1.667,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.833,
0,
1.667,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.833,
0,
1.667,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.044,
0,
0.089,
0.65,
0.133,
0.65,
1,
0.211,
0.65,
0.289,
-0.76,
0.367,
-0.76,
1,
0.467,
-0.76,
0.567,
1,
0.667,
1,
1,
0.778,
1,
0.889,
-1,
1,
-1,
1,
1.089,
-1,
1.178,
1,
1.267,
1,
1,
1.333,
1,
1.4,
0,
1.467,
0,
1,
1.522,
0,
1.578,
1,
1.633,
1,
1,
1.711,
1,
1.789,
-0.96,
1.867,
-0.96,
1,
1.922,
-0.96,
1.978,
0.17,
2.033,
0.17,
1,
2.1,
0.17,
2.167,
0,
2.233,
0,
1,
2.322,
0,
2.411,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.044,
0,
0.089,
0.81,
0.133,
0.81,
1,
0.211,
0.81,
0.289,
-1,
0.367,
-1,
1,
0.467,
-1,
0.567,
1,
0.667,
1,
1,
0.778,
1,
0.889,
-1,
1,
-1,
1,
1.089,
-1,
1.178,
1,
1.267,
1,
1,
1.333,
1,
1.4,
0.721,
1.467,
0,
1,
1.522,
-0.601,
1.578,
-1,
1.633,
-1,
1,
1.711,
-1,
1.789,
1,
1.867,
1,
1,
1.922,
1,
1.978,
-0.16,
2.033,
-0.16,
1,
2.1,
-0.16,
2.167,
0,
2.233,
0,
1,
2.322,
0,
2.411,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.822,
0,
1.078,
0,
1.333,
0,
1,
1.378,
0,
1.422,
1,
1.467,
1,
1,
1.5,
1,
1.533,
0,
1.567,
0,
1,
1.878,
0,
2.189,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.822,
0,
1.078,
0,
1.333,
0,
1,
1.378,
0,
1.422,
1,
1.467,
1,
1,
1.5,
1,
1.533,
0,
1.567,
0,
1,
1.878,
0,
2.189,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.833,
0,
1.667,
0,
2.5,
0,
0,
2.533,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
2.533,
0
]
}
]
}

View File

@ -0,0 +1,594 @@
{
"Version": 3,
"Meta": {
"Duration": 2,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 70,
"TotalPointCount": 188,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.622,
0,
0.878,
0,
1.133,
0,
1,
1.411,
0,
1.689,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.422,
0,
0.478,
30,
0.533,
30,
1,
0.633,
30,
0.733,
0,
0.833,
0,
1,
0.933,
0,
1.033,
0,
1.133,
0,
1,
1.411,
0,
1.689,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.522,
0,
0.678,
30,
0.833,
30,
1,
0.933,
30,
1.033,
30,
1.133,
30,
1,
1.411,
30,
1.689,
30,
1.967,
30,
0,
2,
30
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
1,
1,
0.656,
1,
1.311,
1,
1.967,
1,
0,
2,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
1,
1,
0.656,
1,
1.311,
1,
1.967,
1,
0,
2,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
1,
1,
0.656,
1,
1.311,
1,
1.967,
1,
0,
2,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.522,
0,
0.678,
2,
0.833,
2,
1,
0.933,
2,
1.033,
2,
1.133,
2,
1,
1.411,
2,
1.689,
2,
1.967,
2,
0,
2,
2
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.378,
0,
0.756,
0,
1.133,
0,
1,
1.411,
0,
1.689,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.422,
0,
0.478,
6,
0.533,
6,
1,
0.633,
6,
0.733,
0,
0.833,
0,
1,
0.933,
0,
1.033,
0,
1.133,
0,
1,
1.411,
0,
1.689,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.656,
50,
1.311,
50,
1.967,
50,
0,
2,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.444,
0,
0.522,
1,
0.6,
1,
1,
0.667,
1,
0.733,
-1,
0.8,
-1,
1,
0.856,
-1,
0.911,
0.31,
0.967,
0.31,
1,
1.022,
0.31,
1.078,
-0.2,
1.133,
-0.2,
1,
1.2,
-0.2,
1.267,
0,
1.333,
0,
1,
1.544,
0,
1.756,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.444,
0,
0.522,
-1,
0.6,
-1,
1,
0.667,
-1,
0.733,
1,
0.8,
1,
1,
0.856,
1,
0.911,
-0.34,
0.967,
-0.34,
1,
1.022,
-0.34,
1.078,
0.16,
1.133,
0.16,
1,
1.2,
0.16,
1.267,
0,
1.333,
0,
1,
1.544,
0,
1.756,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
2,
0
]
}
]
}

View File

@ -0,0 +1,699 @@
{
"Version": 3,
"Meta": {
"Duration": 2,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 85,
"TotalPointCount": 233,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
0,
0.5,
0,
1,
0.589,
0,
0.678,
0,
0.767,
0,
1,
0.878,
0,
0.989,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
25,
0.5,
25,
1,
0.589,
25,
0.678,
0,
0.767,
0,
1,
0.878,
0,
0.989,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
7,
0.5,
7,
1,
0.589,
7,
0.678,
0,
0.767,
0,
1,
0.878,
0,
0.989,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.589,
0,
0.844,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.589,
0,
0.844,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
7,
0.5,
7,
1,
0.589,
7,
0.678,
-3,
0.767,
-3,
1,
0.833,
-3,
0.9,
1,
0.967,
1,
1,
1.011,
1,
1.056,
-1,
1.1,
-1,
1,
1.178,
-1,
1.256,
0,
1.333,
0,
1,
1.544,
0,
1.756,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
8,
0.5,
8,
1,
0.589,
8,
0.678,
-3,
0.767,
-3,
1,
0.833,
-3,
0.9,
1,
0.967,
1,
1,
1.011,
1,
1.056,
-1,
1.1,
-1,
1,
1.178,
-1,
1.256,
0,
1.333,
0,
1,
1.544,
0,
1.756,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.656,
50,
1.311,
50,
1.967,
50,
0,
2,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.422,
0,
0.511,
1,
0.6,
1,
1,
0.678,
1,
0.756,
-1,
0.833,
-1,
1,
0.911,
-1,
0.989,
0.67,
1.067,
0.67,
1,
1.122,
0.67,
1.178,
-0.48,
1.233,
-0.48,
1,
1.3,
-0.48,
1.367,
0,
1.433,
0,
1,
1.611,
0,
1.789,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.422,
0,
0.511,
-1,
0.6,
-1,
1,
0.678,
-1,
0.756,
1,
0.833,
1,
1,
0.911,
1,
0.989,
-0.53,
1.067,
-0.53,
1,
1.122,
-0.53,
1.178,
0.47,
1.233,
0.47,
1,
1.3,
0.47,
1.367,
0,
1.433,
0,
1,
1.611,
0,
1.789,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.589,
0,
0.844,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.589,
0,
0.844,
0,
1.1,
0,
1,
1.389,
0,
1.678,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
2,
0
]
}
]
}

View File

@ -0,0 +1,643 @@
{
"Version": 3,
"Meta": {
"Duration": 2,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 77,
"TotalPointCount": 209,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
-3,
1,
0.133,
-3,
0.267,
-3,
0.4,
-3,
1,
0.467,
-3,
0.533,
17,
0.6,
17,
1,
0.656,
17,
0.711,
-22,
0.767,
-22,
1,
0.833,
-22,
0.9,
9,
0.967,
9,
1,
1.033,
9,
1.1,
0,
1.167,
0,
1,
1.433,
0,
1.7,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
15,
1,
0.133,
15,
0.267,
15,
0.4,
15,
1,
0.467,
15,
0.533,
17,
0.6,
17,
1,
0.789,
17,
0.978,
0,
1.167,
0,
1,
1.433,
0,
1.7,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.922,
0,
1.444,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.922,
0,
1.444,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
1,
1,
0.656,
1,
1.311,
1,
1.967,
1,
0,
2,
1
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.467,
0,
0.533,
-3,
0.6,
-3,
1,
0.656,
-3,
0.711,
2,
0.767,
2,
1,
0.833,
2,
0.9,
-1,
0.967,
-1,
1,
1.033,
-1,
1.1,
0,
1.167,
0,
1,
1.433,
0,
1.7,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.467,
0,
0.533,
7,
0.6,
7,
1,
0.656,
7,
0.711,
-2,
0.767,
-2,
1,
0.833,
-2,
0.9,
1,
0.967,
1,
1,
1.033,
1,
1.1,
0,
1.167,
0,
1,
1.433,
0,
1.7,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.656,
0,
0.911,
-3,
1.167,
-3,
1,
1.433,
-3,
1.7,
-3,
1.967,
-3,
0,
2,
-3
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.656,
50,
1.311,
50,
1.967,
50,
0,
2,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.611,
0,
0.656,
1,
0.7,
1,
1,
0.767,
1,
0.833,
-0.94,
0.9,
-0.94,
1,
0.956,
-0.94,
1.011,
0.49,
1.067,
0.49,
1,
1.144,
0.49,
1.222,
-0.4,
1.3,
-0.4,
1,
1.367,
-0.4,
1.433,
0,
1.5,
0,
1,
1.656,
0,
1.811,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.189,
0,
0.378,
0,
0.567,
0,
1,
0.611,
0,
0.656,
-1,
0.7,
-1,
1,
0.767,
-1,
0.833,
1,
0.9,
1,
1,
0.956,
1,
1.011,
-0.43,
1.067,
-0.43,
1,
1.144,
-0.43,
1.222,
0.34,
1.3,
0.34,
1,
1.367,
0.34,
1.433,
0,
1.5,
0,
1,
1.656,
0,
1.811,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.922,
0,
1.444,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.133,
0,
0.267,
0,
0.4,
0,
1,
0.922,
0,
1.444,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
2,
0
]
}
]
}

View File

@ -0,0 +1,615 @@
{
"Version": 3,
"Meta": {
"Duration": 2,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 73,
"TotalPointCount": 197,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.144,
0,
0.289,
0,
0.433,
0,
1,
0.5,
0,
0.567,
0,
0.633,
0,
1,
0.844,
0,
1.056,
0,
1.267,
0,
1,
1.5,
0,
1.733,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.144,
0,
0.289,
0,
0.433,
0,
1,
0.5,
0,
0.567,
-11,
0.633,
-11,
1,
0.733,
-11,
0.833,
10,
0.933,
10,
1,
1.044,
10,
1.156,
0,
1.267,
0,
1,
1.5,
0,
1.733,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.144,
0,
0.289,
0,
0.433,
0,
1,
0.711,
0,
0.989,
0,
1.267,
0,
1,
1.5,
0,
1.733,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.144,
0,
0.289,
0,
0.433,
0,
1,
0.711,
0,
0.989,
0,
1.267,
0,
1,
1.5,
0,
1.733,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
0.144,
0,
0.289,
0,
0.433,
0,
1,
0.6,
0,
0.767,
0,
0.933,
0,
1,
1.044,
0,
1.156,
0,
1.267,
0,
1,
1.5,
0,
1.733,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.144,
0,
0.289,
0,
0.433,
0,
1,
0.5,
0,
0.567,
-6,
0.633,
-6,
1,
0.733,
-6,
0.833,
4,
0.933,
4,
1,
1.044,
4,
1.156,
0,
1.267,
0,
1,
1.5,
0,
1.733,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.656,
50,
1.311,
50,
1.967,
50,
0,
2,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.444,
0,
0.522,
1,
0.6,
1,
1,
0.678,
1,
0.756,
-1,
0.833,
-1,
1,
0.911,
-1,
0.989,
0.8,
1.067,
0.8,
1,
1.122,
0.8,
1.178,
-0.13,
1.233,
-0.13,
1,
1.289,
-0.13,
1.344,
0,
1.4,
0,
1,
1.589,
0,
1.778,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.122,
0,
0.244,
0,
0.367,
0,
1,
0.444,
0,
0.522,
-1,
0.6,
-1,
1,
0.678,
-1,
0.756,
1,
0.833,
1,
1,
0.911,
1,
0.989,
-0.81,
1.067,
-0.81,
1,
1.122,
-0.81,
1.178,
0.11,
1.233,
0.11,
1,
1.289,
0.11,
1.344,
0,
1.4,
0,
1,
1.589,
0,
1.778,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.211,
0,
0.422,
0,
0.633,
0,
1,
1.078,
0,
1.522,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.211,
0,
0.422,
0,
0.633,
0,
1,
1.078,
0,
1.522,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.656,
0,
1.311,
0,
1.967,
0,
0,
2,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
2,
0
]
}
]
}

View File

@ -0,0 +1,510 @@
{
"Version": 3,
"Meta": {
"Duration": 1.5,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 58,
"TotalPointCount": 152,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.4,
0,
0.6,
0,
0.8,
0,
1,
1.022,
0,
1.244,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
-11,
1,
0.067,
-11,
0.133,
-11,
0.2,
-11,
1,
0.3,
-11,
0.4,
10,
0.5,
10,
1,
0.6,
10,
0.7,
0,
0.8,
0,
1,
1.022,
0,
1.244,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.4,
0,
0.6,
0,
0.8,
0,
1,
1.022,
0,
1.244,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.4,
0,
0.6,
0,
0.8,
0,
1,
1.022,
0,
1.244,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.3,
0,
0.4,
0,
0.5,
0,
1,
0.6,
0,
0.7,
0,
0.8,
0,
1,
1.022,
0,
1.244,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.3,
0,
0.4,
4,
0.5,
4,
1,
0.6,
4,
0.7,
0,
0.8,
0,
1,
1.022,
0,
1.244,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.489,
50,
0.978,
50,
1.467,
50,
0,
1.5,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.622,
0,
1.044,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.067,
0,
0.133,
0,
0.2,
0,
1,
0.622,
0,
1.044,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.489,
0,
0.978,
0,
1.467,
0,
0,
1.5,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
1.5,
0
]
}
]
}

View File

@ -0,0 +1,720 @@
{
"Version": 3,
"Meta": {
"Duration": 1.867,
"Fps": 30.0,
"Loop": true,
"AreBeziersRestricted": true,
"CurveCount": 22,
"TotalSegmentCount": 88,
"TotalPointCount": 242,
"UserDataCount": 0,
"TotalUserDataSize": 0
},
"Curves": [
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_X",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.456,
0,
0.578,
3,
0.7,
3,
1,
0.778,
3,
0.856,
-2,
0.933,
-2,
1,
1.233,
-2,
1.533,
-2,
1.833,
-2,
0,
1.867,
-2
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Y",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.378,
0,
0.422,
18,
0.467,
18,
1,
0.544,
18,
0.622,
-30,
0.7,
-30,
1,
0.778,
-30,
0.856,
-13,
0.933,
-13,
1,
1.011,
-13,
1.089,
-30,
1.167,
-30,
1,
1.389,
-30,
1.611,
-30,
1.833,
-30,
0,
1.867,
-30
]
},
{
"Target": "Parameter",
"Id": "PARAM_ANGLE_Z",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.456,
0,
0.578,
-7.716,
0.7,
-17,
1,
0.778,
-22.908,
0.856,
-24,
0.933,
-24,
1,
1.233,
-24,
1.533,
-24,
1.833,
-24,
0,
1.867,
-24
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_L_OPEN",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.456,
0,
0.578,
0,
0.7,
0,
1,
0.778,
0,
0.856,
0,
0.933,
0,
1,
1.233,
0,
1.533,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EYE_R_OPEN",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.456,
0,
0.578,
0,
0.7,
0,
1,
0.778,
0,
0.856,
0,
0.933,
0,
1,
1.233,
0,
1.533,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_MOUTH_OPEN_Y",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.456,
0,
0.578,
0,
0.7,
0,
1,
0.778,
0,
0.856,
0,
0.933,
0,
1,
1.233,
0,
1.533,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_X",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.611,
0,
0.889,
-6,
1.167,
-6,
1,
1.389,
-6,
1.611,
-6,
1.833,
-6,
0,
1.867,
-6
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Z",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.456,
0,
0.578,
-2,
0.7,
-2,
1,
0.778,
-2,
0.856,
-2,
0.933,
-2,
1,
1.233,
-2,
1.533,
-2,
1.833,
-2,
0,
1.867,
-2
]
},
{
"Target": "Parameter",
"Id": "PARAM_BODY_ANGLE_Y",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.378,
0,
0.422,
3,
0.467,
3,
1,
0.544,
3,
0.622,
-6,
0.7,
-6,
1,
0.778,
-6,
0.856,
-6,
0.933,
-6,
1,
1.233,
-6,
1.533,
-6,
1.833,
-6,
0,
1.867,
-6
]
},
{
"Target": "Parameter",
"Id": "PARAM_BREATH",
"Segments": [
0,
0,
1,
0.611,
0,
1.222,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_LID",
"Segments": [
0,
50,
1,
0.611,
50,
1.222,
50,
1.833,
50,
0,
1.867,
50
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_01",
"Segments": [
0,
0,
1,
0.611,
0,
1.222,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_YUGE_02",
"Segments": [
0,
0,
1,
0.611,
0,
1.222,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EFFECT",
"Segments": [
0,
0,
1,
0.611,
0,
1.222,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_L",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
-1,
0.5,
-1,
1,
0.556,
-1,
0.611,
1,
0.667,
1,
1,
0.733,
1,
0.8,
-0.95,
0.867,
-0.95,
1,
0.922,
-0.95,
0.978,
0.45,
1.033,
0.45,
1,
1.089,
0.45,
1.144,
-0.17,
1.2,
-0.17,
1,
1.267,
-0.17,
1.333,
0,
1.4,
0,
1,
1.544,
0,
1.689,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_EAR_R",
"Segments": [
0,
0,
1,
0.111,
0,
0.222,
0,
0.333,
0,
1,
0.389,
0,
0.444,
1,
0.5,
1,
1,
0.556,
1,
0.611,
-1,
0.667,
-1,
1,
0.733,
-1,
0.8,
1,
0.867,
1,
1,
0.922,
1,
0.978,
-0.39,
1.033,
-0.39,
1,
1.089,
-0.39,
1.144,
0.13,
1.2,
0.13,
1,
1.267,
0.13,
1.333,
0,
1.4,
0,
1,
1.544,
0,
1.689,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_L",
"Segments": [
0,
0,
1,
0.233,
0,
0.467,
0,
0.7,
0,
1,
0.778,
0,
0.856,
0,
0.933,
0,
1,
1.233,
0,
1.533,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_HAND_R",
"Segments": [
0,
0,
1,
0.233,
0,
0.467,
0,
0.7,
0,
1,
0.778,
0,
0.856,
0,
0.933,
0,
1,
1.233,
0,
1.533,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_SWING",
"Segments": [
0,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BOWL_SWING",
"Segments": [
0,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_FACE_01",
"Segments": [
0,
0,
1,
0.611,
0,
1.222,
0,
1.833,
0,
0,
1.867,
0
]
},
{
"Target": "Parameter",
"Id": "PARAM_BASE_X",
"Segments": [
0,
0,
0,
1.867,
0
]
}
]
}

View File

@ -25,3 +25,5 @@ rules:
'@typescript-eslint/no-unsafe-assignment': off
'@typescript-eslint/no-unsafe-return': off
'@typescript-eslint/no-floating-promises': off
'@typescript-eslint/no-unused-vars': off
'@typescript-eslint/no-explicit-any': off

View File

@ -2,13 +2,18 @@
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=1900">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>TypeScript HTML App</title>
<style>
html, body {
margin: 0;
overflow: hidden;
}
canvas {
width: 100vw;
height: 100vh;
display: block;
}
</style>
<!-- Pollyfill script -->
<script src="https://unpkg.com/core-js-bundle@3.6.1/minified.js"></script>

File diff suppressed because it is too large Load Diff

View File

@ -11,21 +11,24 @@
"clean": "rimraf dist"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.31.0",
"@typescript-eslint/parser": "^5.31.0",
"eslint": "^8.20.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"prettier": "^2.7.1",
"rimraf": "^3.0.2",
"serve": "^14.0.1",
"ts-loader": "^9.3.1",
"typescript": "^4.7.4",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-dev-server": "^4.9.3"
"@typescript-eslint/eslint-plugin": "^6.7.2",
"@typescript-eslint/parser": "^6.7.2",
"eslint": "^8.49.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-prettier": "^5.0.0",
"prettier": "^3.0.3",
"rimraf": "^5.0.1",
"serve": "^14.2.1",
"ts-loader": "^9.4.4",
"typescript": "^5.2.2",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1"
},
"dependencies": {
"whatwg-fetch": "^3.6.2"
"whatwg-fetch": "^3.6.19"
},
"optionalDependencies": {
"fsevents": "*"
}
}

View File

@ -8,13 +8,13 @@
import { LogLevel } from '@framework/live2dcubismframework';
/**
* Sample App使
* Sample App使
*/
// Canvas width and height pixel values, or dynamic screen size ('auto').
// Canvas的宽和高的像素值,或动态屏幕大小('auto')。
export const CanvasSize: { width: number; height: number } | 'auto' = 'auto';
// 画面
// 屏幕
export const ViewScale = 1.0;
export const ViewMaxScale = 2.0;
export const ViewMinScale = 0.8;
@ -29,52 +29,56 @@ export const ViewLogicalMaxRight = 2.0;
export const ViewLogicalMaxBottom = -2.0;
export const ViewLogicalMaxTop = 2.0;
// 相対パス
// 相对路径
export const ResourcesPath = '../../Resources/';
// モデルの後ろにある背景の画像ファイル
// 在模型后面的背景图片文件
export const BackImageName = 'back_class_normal.png';
// 歯車
// 齿轮
export const GearImageName = 'icon_gear.png';
// 終了ボタン
// 关闭按钮
export const PowerImageName = 'CloseNormal.png';
// モデル定義---------------------------------------------
// モデルを配置したディレクトリ名の配列
// ディレクトリ名とmodel3.jsonの名前を一致させておくこと
// 模型定义---------------------------------------------
// 部署模型的目录名数组
// 请将目录名和model3.json的名字匹配
export const ModelDir: string[] = [
'Haru',
'Hiyori',
'Mark',
'Natori',
'Rice',
'Mao'
'Mao',
'Wanko'
];
export const ModelDirSize: number = ModelDir.length;
// 外部定義ファイルjsonと合わせる
export const MotionGroupIdle = 'Idle'; // アイドリング
export const MotionGroupTapBody = 'TapBody'; // 体をタップしたとき
// 与外部定义文件json匹配
export const MotionGroupIdle = 'Idle'; // 空闲
export const MotionGroupTapBody = 'TapBody'; // 点击身体时
// 外部定義ファイルjsonと合わせる
// 与外部定义文件json匹配
export const HitAreaNameHead = 'Head';
export const HitAreaNameBody = 'Body';
// モーションの優先度定数
// 动作的优先级常量
export const PriorityNone = 0;
export const PriorityIdle = 1;
export const PriorityNormal = 2;
export const PriorityForce = 3;
// デバッグ用ログの表示オプション
// MOC3的一致性验证选项
export const MOCConsistencyValidationEnable = true;
// 显示用于调试的日志的选项
export const DebugLogEnable = true;
export const DebugTouchLogEnable = false;
// Frameworkから出力するログのレベル設定
// 设置从框架输出的日志的级别
export const CubismLoggingLevel: LogLevel = LogLevel.LogLevel_Verbose;
// デフォルトのレンダーターゲットサイズ
// 默认的渲染目标大小
export const RenderTargetWidth = 1900;
export const RenderTargetHeight = 1000;

View File

@ -19,15 +19,15 @@ export let gl: WebGLRenderingContext = null;
export let frameBuffer: WebGLFramebuffer = null;
/**
*
* Cubism SDK
*
* Cubism SDK
*/
export class LAppDelegate {
/**
*
*
*
*
*
* @return
* @return
*/
public static getInstance(): LAppDelegate {
if (s_instance == null) {
@ -38,7 +38,7 @@ export class LAppDelegate {
}
/**
*
*
*/
public static releaseInstance(): void {
if (s_instance != null) {
@ -49,19 +49,13 @@ export class LAppDelegate {
}
/**
* APP
* APP西
*/
public initialize(): boolean {
// キャンバスの作成
// 创建画布
canvas = document.createElement('canvas');
if (LAppDefine.CanvasSize === 'auto') {
this._resizeCanvas();
} else {
canvas.width = LAppDefine.CanvasSize.width;
canvas.height = LAppDefine.CanvasSize.height;
}
// glコンテキストを初期化
// 初始化webgl上下文
// @ts-ignore
gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
@ -72,40 +66,47 @@ export class LAppDelegate {
document.body.innerHTML =
'This browser does not support the <code>&lt;canvas&gt;</code> element.';
// gl初期化失敗
// webgl初始化失败
return false;
}
// キャンバスを DOM に追加
// 将画布添加到DOM中
document.body.appendChild(canvas);
if (LAppDefine.CanvasSize === 'auto') {
this._resizeCanvas();
} else {
canvas.width = LAppDefine.CanvasSize.width;
canvas.height = LAppDefine.CanvasSize.height;
}
if (!frameBuffer) {
frameBuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);
}
// 透過設定
// 启用透明设置
gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
const supportTouch: boolean = 'ontouchend' in canvas;
if (supportTouch) {
// タッチ関連コールバック関数登録
canvas.ontouchstart = onTouchBegan;
canvas.ontouchmove = onTouchMoved;
canvas.ontouchend = onTouchEnded;
canvas.ontouchcancel = onTouchCancel;
// 注册触摸相关的回调函数
canvas.addEventListener('touchstart', onTouchBegan, { passive: true });
canvas.addEventListener('touchmove', onTouchMoved, { passive: true });
canvas.addEventListener('touchend', onTouchEnded, { passive: true });
canvas.addEventListener('touchcancel', onTouchCancel, { passive: true });
} else {
// マウス関連コールバック関数登録
canvas.onmousedown = onClickBegan;
canvas.onmousemove = onMouseMoved;
canvas.onmouseup = onClickEnded;
// 注册鼠标相关的回调函数
canvas.addEventListener('mousedown', onClickBegan, { passive: true });
canvas.addEventListener('mousemove', onMouseMoved, { passive: true });
canvas.addEventListener('mouseup', onClickEnded, { passive: true });
}
// AppViewの初期化
// 初始化AppView
this._view.initialize();
// Cubism SDKの初期化
// 初始化Cubism SDK
this.initializeCubism();
return true;
@ -118,15 +119,10 @@ export class LAppDelegate {
this._resizeCanvas();
this._view.initialize();
this._view.initializeSprite();
// キャンバスサイズを渡す
const viewport: number[] = [0, 0, canvas.width, canvas.height];
gl.viewport(viewport[0], viewport[1], viewport[2], viewport[3]);
}
/**
*
*
*/
public release(): void {
this._textureManager.release();
@ -135,59 +131,59 @@ export class LAppDelegate {
this._view.release();
this._view = null;
// リソースを解放
// 释放资源
LAppLive2DManager.releaseInstance();
// Cubism SDKの解放
// 释放Cubism SDK
CubismFramework.dispose();
}
/**
*
*
*/
public run(): void {
// メインループ
// 主循环
const loop = (): void => {
// インスタンスの有無の確認
// 检查实例是否存在
if (s_instance == null) {
return;
}
// 時間更新
// 更新时间
LAppPal.updateTime();
// 画面の初期化
// 初始化屏幕
gl.clearColor(0.0, 0.0, 0.0, 1.0);
// 深度テストを有効化
// 启用深度测试
gl.enable(gl.DEPTH_TEST);
// 近くにある物体は、遠くにある物体を覆い隠す
// 近处的物体会覆盖远处的物体
gl.depthFunc(gl.LEQUAL);
// カラーバッファや深度バッファをクリアする
// 清除颜色缓冲区和深度缓冲区
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.clearDepth(1.0);
// 透過設定
// 启用透明设置
gl.enable(gl.BLEND);
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
// 描画更新
// 更新绘制
this._view.render();
// ループのために再帰呼び出し
// 为了循环再次调用
requestAnimationFrame(loop);
};
loop();
}
/**
*
*
*/
public createShader(): WebGLProgram {
// バーテックスシェーダーのコンパイル
// 编译顶点着色器
const vertexShaderId = gl.createShader(gl.VERTEX_SHADER);
if (vertexShaderId == null) {
@ -209,7 +205,7 @@ export class LAppDelegate {
gl.shaderSource(vertexShaderId, vertexShader);
gl.compileShader(vertexShaderId);
// フラグメントシェーダのコンパイル
// 编译片段着色器
const fragmentShaderId = gl.createShader(gl.FRAGMENT_SHADER);
if (fragmentShaderId == null) {
@ -229,7 +225,7 @@ export class LAppDelegate {
gl.shaderSource(fragmentShaderId, fragmentShader);
gl.compileShader(fragmentShaderId);
// プログラムオブジェクトの作成
// 创建程序对象
const programId = gl.createProgram();
gl.attachShader(programId, vertexShaderId);
gl.attachShader(programId, fragmentShaderId);
@ -237,7 +233,7 @@ export class LAppDelegate {
gl.deleteShader(vertexShaderId);
gl.deleteShader(fragmentShaderId);
// リンク
// 链接
gl.linkProgram(programId);
gl.useProgram(programId);
@ -246,7 +242,7 @@ export class LAppDelegate {
}
/**
* View
* View
*/
public getView(): LAppView {
return this._view;
@ -257,7 +253,7 @@ export class LAppDelegate {
}
/**
*
*
*/
constructor() {
this._captured = false;
@ -271,18 +267,18 @@ export class LAppDelegate {
}
/**
* Cubism SDK
* Cubism SDK
*/
public initializeCubism(): void {
// setup cubism
// 设置cubism
this._cubismOption.logFunction = LAppPal.printMessage;
this._cubismOption.loggingLevel = LAppDefine.CubismLoggingLevel;
CubismFramework.startUp(this._cubismOption);
// initialize cubism
// 初始化cubism
CubismFramework.initialize();
// load model
// 加载模型
LAppLive2DManager.getInstance();
LAppPal.updateTime();
@ -291,24 +287,25 @@ export class LAppDelegate {
}
/**
* Resize the canvas to fill the screen.
*
*/
private _resizeCanvas(): void {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.width = canvas.clientWidth * window.devicePixelRatio;
canvas.height = canvas.clientHeight * window.devicePixelRatio;
gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
}
_cubismOption: Option; // Cubism SDK Option
_view: LAppView; // View情報
_captured: boolean; // クリックしているか
_mouseX: number; // マウスX座標
_mouseY: number; // マウスY座標
_isEnd: boolean; // APP終了しているか
_textureManager: LAppTextureManager; // テクスチャマネージャー
_cubismOption: Option; // Cubism SDK选项
_view: LAppView; // View信息
_captured: boolean; // 是否要捕获
_mouseX: number; // 鼠标X坐标
_mouseY: number; // 鼠标Y坐标
_isEnd: boolean; // APP是否已结束
_textureManager: LAppTextureManager; // 纹理管理器
}
/**
*
*
*/
function onClickBegan(e: MouseEvent): void {
if (!LAppDelegate.getInstance()._view) {
@ -324,7 +321,7 @@ function onClickBegan(e: MouseEvent): void {
}
/**
*
*
*/
function onMouseMoved(e: MouseEvent): void {
if (!LAppDelegate.getInstance()._captured) {
@ -344,7 +341,7 @@ function onMouseMoved(e: MouseEvent): void {
}
/**
*
*
*/
function onClickEnded(e: MouseEvent): void {
LAppDelegate.getInstance()._captured = false;
@ -361,7 +358,7 @@ function onClickEnded(e: MouseEvent): void {
}
/**
*
*
*/
function onTouchBegan(e: TouchEvent): void {
if (!LAppDelegate.getInstance()._view) {
@ -378,7 +375,7 @@ function onTouchBegan(e: TouchEvent): void {
}
/**
*
*
*/
function onTouchMoved(e: TouchEvent): void {
if (!LAppDelegate.getInstance()._captured) {
@ -399,7 +396,7 @@ function onTouchMoved(e: TouchEvent): void {
}
/**
*
*
*/
function onTouchEnded(e: TouchEvent): void {
LAppDelegate.getInstance()._captured = false;
@ -418,7 +415,7 @@ function onTouchEnded(e: TouchEvent): void {
}
/**
*
*
*/
function onTouchCancel(e: TouchEvent): void {
LAppDelegate.getInstance()._captured = false;

View File

@ -17,15 +17,14 @@ import { LAppPal } from './lapppal';
export let s_instance: LAppLive2DManager = null;
/**
* CubismModel
*
* CubismModel
*
*/
export class LAppLive2DManager {
/**
*
*
*
* @return
*
*
* @return
*/
public static getInstance(): LAppLive2DManager {
if (s_instance == null) {
@ -36,7 +35,7 @@ export class LAppLive2DManager {
}
/**
*
*
*/
public static releaseInstance(): void {
if (s_instance != null) {
@ -47,10 +46,10 @@ export class LAppLive2DManager {
}
/**
*
*
*
* @param no
* @return NULL
* @param no
* @return NULL
*/
public getModel(no: number): LAppModel {
if (no < this._models.getSize()) {
@ -61,7 +60,7 @@ export class LAppLive2DManager {
}
/**
*
*
*/
public releaseAllModel(): void {
for (let i = 0; i < this._models.getSize(); i++) {
@ -73,10 +72,9 @@ export class LAppLive2DManager {
}
/**
*
*
* @param x X
* @param y Y
*
* @param x - x
* @param y - y
*/
public onDrag(x: number, y: number): void {
for (let i = 0; i < this._models.getSize(); i++) {
@ -89,10 +87,14 @@ export class LAppLive2DManager {
}
/**
*
*
*
* @param x X
* @param y Y
* @param x X
* @param y Y
* Lapplive2DManageronTap
*
*
* xy
*/
public onTap(x: number, y: number): void {
if (LAppDefine.DebugLogEnable) {
@ -127,8 +129,8 @@ export class LAppLive2DManager {
}
/**
*
*
*
*
*/
public onUpdate(): void {
const { width, height } = canvas;
@ -141,27 +143,27 @@ export class LAppLive2DManager {
if (model.getModel()) {
if (model.getModel().getCanvasWidth() > 1.0 && width < height) {
// 横に長いモデルを縦長ウィンドウに表示する際モデルの横サイズでscaleを算出する
// 当在纵向窗口中显示横向模型时,根据模型的横向大小计算比例
model.getModelMatrix().setWidth(2.0);
projection.scale(1.0, width / height);
} else {
projection.scale(height / width, 1.0);
}
// 必要があればここで乗算
// 如果需要,在这里进行乘法
if (this._viewMatrix != null) {
projection.multiplyByMatrix(this._viewMatrix);
}
}
model.update();
model.draw(projection); // 参照渡しなのでprojectionは変質する
model.draw(projection); // 传递引用所以projection会改变
}
}
/**
*
*
*
*
*/
public nextScene(): void {
const no: number = (this._sceneIndex + 1) % LAppDefine.ModelDirSize;
@ -169,8 +171,9 @@ export class LAppLive2DManager {
}
/**
*
*
*
* @param index -
* @returns void
*/
public changeScene(index: number): void {
this._sceneIndex = index;
@ -178,9 +181,9 @@ export class LAppLive2DManager {
LAppPal.printMessage(`[APP]model index: ${this._sceneIndex}`);
}
// ModelDir[]に保持したディレクトリ名から
// model3.jsonのパスを決定する
// ディレクトリ名とmodel3.jsonの名前を一致させておくこと
// 根据在ModelDir[]中保存的目录名称
// 确定model3.json的路径
// 目录名称和model3.json的名称应保持一致
const model: string = LAppDefine.ModelDir[index];
const modelPath: string = LAppDefine.ResourcesPath + model + '/';
let modelJsonName: string = LAppDefine.ModelDir[index];
@ -198,7 +201,7 @@ export class LAppLive2DManager {
}
/**
*
*
*/
constructor() {
this._viewMatrix = new CubismMatrix44();
@ -207,10 +210,10 @@ export class LAppLive2DManager {
this.changeScene(this._sceneIndex);
}
_viewMatrix: CubismMatrix44; // モデル描画に用いるview行列
_models: csmVector<LAppModel>; // モデルインスタンスのコンテナ
_sceneIndex: number; // 表示するシーンのインデックス値
// モーション再生終了のコールバック関
_viewMatrix: CubismMatrix44; // 用于模型绘制的视图矩阵
_models: csmVector<LAppModel>; // 模型实例的容器
_sceneIndex: number; // 要显示的场景的索引值
// 动作播放结束的回调函
_finishedMotion = (self: ACubismMotion): void => {
LAppPal.printMessage('Motion Finished:');
console.log(self);

View File

@ -32,13 +32,18 @@ import { csmMap } from '@framework/type/csmmap';
import { csmRect } from '@framework/type/csmrectf';
import { csmString } from '@framework/type/csmstring';
import { csmVector } from '@framework/type/csmvector';
import { CubismLogError, CubismLogInfo } from '@framework/utils/cubismdebug';
import {
CSM_ASSERT,
CubismLogError,
CubismLogInfo
} from '@framework/utils/cubismdebug';
import * as LAppDefine from './lappdefine';
import { canvas, frameBuffer, gl, LAppDelegate } from './lappdelegate';
import { LAppPal } from './lapppal';
import { TextureInfo } from './lapptexturemanager';
import { LAppWavFileHandler } from './lappwavfilehandler';
import { CubismMoc } from '@framework/model/cubismmoc';
enum LoadStep {
LoadAssets,
@ -67,12 +72,12 @@ enum LoadStep {
}
/**
* 使<br>
*
* 使
*
*/
export class LAppModel extends CubismUserModel {
/**
* model3.json
* model3.json
* @param dir
* @param fileName
*/
@ -87,19 +92,19 @@ export class LAppModel extends CubismUserModel {
arrayBuffer.byteLength
);
// ステートを更新
// 更新状态
this._state = LoadStep.LoadModel;
// 結果を保存
// 保存结果
this.setupModel(setting);
});
}
/**
* model3.json
* model3.json
* model3.json
* model3.json
*
* @param setting ICubismModelSetting
* @param setting ICubismModelSetting
*/
private setupModel(setting: ICubismModelSetting): void {
this._updating = true;
@ -114,7 +119,7 @@ export class LAppModel extends CubismUserModel {
fetch(`${this._modelHomeDir}${modelFileName}`)
.then(response => response.arrayBuffer())
.then(arrayBuffer => {
this.loadModel(arrayBuffer);
this.loadModel(arrayBuffer, this._mocConsistency);
this._state = LoadStep.LoadExpression;
// callback
@ -350,22 +355,22 @@ export class LAppModel extends CubismUserModel {
const motionGroupCount: number = this._modelSetting.getMotionGroupCount();
// モーションの総数を求める
// 计算动作总数
for (let i = 0; i < motionGroupCount; i++) {
group[i] = this._modelSetting.getMotionGroupName(i);
this._allMotionCount += this._modelSetting.getMotionCount(group[i]);
}
// モーションの読み込み
// 加载动作
for (let i = 0; i < motionGroupCount; i++) {
this.preLoadMotionGroup(group[i]);
}
// モーションがない場合
// 如果没有动作
if (motionGroupCount == 0) {
this._state = LoadStep.LoadTexture;
// 全てのモーションを停止する
// 停止所有动作
this._motionManager.stopAllMotions();
this._updating = false;
@ -379,7 +384,7 @@ export class LAppModel extends CubismUserModel {
}
/**
*
*
*/
private setupTextures(): void {
// iPhoneでのアルファ品質向上のためTypescriptではpremultipliedAlphaを採用
@ -429,7 +434,7 @@ export class LAppModel extends CubismUserModel {
}
/**
*
*
*/
public reloadRenderer(): void {
this.deleteRenderer();
@ -450,13 +455,13 @@ export class LAppModel extends CubismUserModel {
this._dragX = this._dragManager.getX();
this._dragY = this._dragManager.getY();
// モーションによるパラメータ更新の有無
// 参数更新是否由动作引起
let motionUpdated = false;
//--------------------------------------------------------------------------
this._model.loadParameters(); // 前回セーブされた状態をロード
this._model.loadParameters(); // 加载上一次保存的状态
if (this._motionManager.isFinished()) {
// モーションの再生がない場合、待機モーションの中からランダムで再生する
// 如果没有动作播放,随机从待机动作中选择一个播放
this.startRandomMotion(
LAppDefine.MotionGroupIdle,
LAppDefine.PriorityIdle
@ -465,55 +470,55 @@ export class LAppModel extends CubismUserModel {
motionUpdated = this._motionManager.updateMotion(
this._model,
deltaTimeSeconds
); // モーションを更新
); // 更新动作
}
this._model.saveParameters(); // 状態を保存
this._model.saveParameters(); // 保存状态
//--------------------------------------------------------------------------
// まばたき
// 闪烁
if (!motionUpdated) {
if (this._eyeBlink != null) {
// メインモーションの更新がないとき
this._eyeBlink.updateParameters(this._model, deltaTimeSeconds); // 目パチ
// 当主要动作没有更新时
this._eyeBlink.updateParameters(this._model, deltaTimeSeconds); // 眨眼
}
}
if (this._expressionManager != null) {
this._expressionManager.updateMotion(this._model, deltaTimeSeconds); // 表情でパラメータ更新(相対変化)
this._expressionManager.updateMotion(this._model, deltaTimeSeconds); // 通过表情更新参数(相对变化)
}
// ドラッグによる変化
// ドラッグによる顔の向きの調整
this._model.addParameterValueById(this._idParamAngleX, this._dragX * 30); // -30から30の値を加える
// 由拖动引起的改变
// 调整由拖动引起的脸部方向
this._model.addParameterValueById(this._idParamAngleX, this._dragX * 30); // 添加-30到30的值
this._model.addParameterValueById(this._idParamAngleY, this._dragY * 30);
this._model.addParameterValueById(
this._idParamAngleZ,
this._dragX * this._dragY * -30
);
// ドラッグによる体の向きの調整
// 调整由拖动引起的身体方向
this._model.addParameterValueById(
this._idParamBodyAngleX,
this._dragX * 10
); // -10から10の値を加える
); // 添加-10到10的值
// ドラッグによる目の向きの調整
this._model.addParameterValueById(this._idParamEyeBallX, this._dragX); // -1から1の値を加える
// 调整由拖动引起的眼睛方向
this._model.addParameterValueById(this._idParamEyeBallX, this._dragX); // 添加-1到1的值
this._model.addParameterValueById(this._idParamEyeBallY, this._dragY);
// 呼吸など
// 呼吸
if (this._breath != null) {
this._breath.updateParameters(this._model, deltaTimeSeconds);
}
// 物理演算の設定
// 设置物理运算
if (this._physics != null) {
this._physics.evaluate(this._model, deltaTimeSeconds);
}
// リップシンクの設定
// 设置唇形同步
if (this._lipsync) {
let value = 0.0; // リアルタイムでリップシンクを行う場合、システムから音量を取得して、0~1の範囲で値を入力します
let value = 0.0; // 如果要实时进行唇形同步从系统中获取音量并输入0~1的范围内的值
this._wavFileHandler.update(deltaTimeSeconds);
value = this._wavFileHandler.getRms();
@ -523,7 +528,7 @@ export class LAppModel extends CubismUserModel {
}
}
// ポーズの設定
// 设置姿势
if (this._pose != null) {
this._pose.updateParameters(this._model, deltaTimeSeconds);
}
@ -532,12 +537,12 @@ export class LAppModel extends CubismUserModel {
}
/**
*
* @param group
* @param no
* @param priority
* @param onFinishedMotionHandler
* @return isFinished()使[-1]
*
* @param group
* @param no
* @param priority
* @param onFinishedMotionHandler
* @return isFinished()[-1]
*/
public startMotion(
group: string,
@ -586,7 +591,7 @@ export class LAppModel extends CubismUserModel {
}
motion.setEffectIds(this._eyeBlinkIds, this._lipSyncIds);
autoDelete = true; // 終了時にメモリから削
autoDelete = true; // 结束时从内存中删
});
} else {
motion.setFinishedMotionHandler(onFinishedMotionHandler);
@ -611,11 +616,11 @@ export class LAppModel extends CubismUserModel {
}
/**
*
* @param group
* @param priority
* @param onFinishedMotionHandler
* @return isFinished()使[-1]
*
* @param group
* @param priority
* @param onFinishedMotionHandler
* @return isFinished()[-1]
*/
public startRandomMotion(
group: string,
@ -634,9 +639,9 @@ export class LAppModel extends CubismUserModel {
}
/**
*
*
*
* @param expressionId ID
* @param expressionId ID
*/
public setExpression(expressionId: string): void {
const motion: ACubismMotion = this._expressions.getValue(expressionId);
@ -659,7 +664,7 @@ export class LAppModel extends CubismUserModel {
}
/**
*
*
*/
public setRandomExpression(): void {
if (this._expressions.getSize() == 0) {
@ -678,22 +683,22 @@ export class LAppModel extends CubismUserModel {
}
/**
*
*
*/
public motionEventFired(eventValue: csmString): void {
CubismLogInfo('{0} is fired on LAppModel!!', eventValue.s);
}
/**
*
*
*
* ID
*
* @param hitArenaName ID
* @param x X
* @param y Y
* @param hitArenaName ID
* @param x X
* @param y Y
*/
public hitTest(hitArenaName: string, x: number, y: number): boolean {
// 透明時は当たり判定無し
// 透明时无碰撞检测
if (this._opacity < 1) {
return false;
}
@ -711,10 +716,10 @@ export class LAppModel extends CubismUserModel {
}
/**
*
* ModelSetting
*
* ModelSetting
*
* @param group
* @param group
*/
public preLoadMotionGroup(group: string): void {
for (let i = 0; i < this._modelSetting.getMotionCount(group); i++) {
@ -758,7 +763,7 @@ export class LAppModel extends CubismUserModel {
if (this._motionCount >= this._allMotionCount) {
this._state = LoadStep.LoadTexture;
// 全てのモーションを停止する
// 停止所有动作
this._motionManager.stopAllMotions();
this._updating = false;
@ -773,26 +778,26 @@ export class LAppModel extends CubismUserModel {
}
/**
*
*
*/
public releaseMotions(): void {
this._motions.clear();
}
/**
*
*
*/
public releaseExpressions(): void {
this._expressions.clear();
}
/**
* View-Projection
* View-Projection
*/
public doDraw(): void {
if (this._model == null) return;
// キャンバスサイズを渡す
// 传递画布大小
const viewport: number[] = [0, 0, canvas.width, canvas.height];
this.getRenderer().setRenderState(frameBuffer, viewport);
@ -800,14 +805,14 @@ export class LAppModel extends CubismUserModel {
}
/**
* View-Projection
* View-Projection
*/
public draw(matrix: CubismMatrix44): void {
if (this._model == null) {
return;
}
// 各読み込み終了後
// 各读取完成后
if (this._state == LoadStep.CompleteSetup) {
matrix.multiplyByMatrix(this._modelMatrix);
@ -817,8 +822,32 @@ export class LAppModel extends CubismUserModel {
}
}
public async hasMocConsistencyFromFile() {
CSM_ASSERT(this._modelSetting.getModelFileName().localeCompare(``));
// CubismModel
if (this._modelSetting.getModelFileName() != '') {
const modelFileName = this._modelSetting.getModelFileName();
const response = await fetch(`${this._modelHomeDir}${modelFileName}`);
const arrayBuffer = await response.arrayBuffer();
this._consistency = CubismMoc.hasMocConsistency(arrayBuffer);
if (!this._consistency) {
CubismLogInfo('Inconsistent MOC3.');
} else {
CubismLogInfo('Consistent MOC3.');
}
return this._consistency;
} else {
LAppPal.printMessage('Model data does not exist.');
}
}
/**
*
*
*/
public constructor() {
super();
@ -827,11 +856,11 @@ export class LAppModel extends CubismUserModel {
this._modelHomeDir = null;
this._userTimeSeconds = 0.0;
this._eyeBlinkIds = new csmVector<CubismIdHandle>();
this._lipSyncIds = new csmVector<CubismIdHandle>();
this._eyeBlinkIds = new csmVector<CubismIdHandle>(); // 模型设置的眨眼功能参数ID
this._lipSyncIds = new csmVector<CubismIdHandle>(); // 模型设置的唇形同步功能参数ID
this._motions = new csmMap<string, ACubismMotion>();
this._expressions = new csmMap<string, ACubismMotion>();
this._motions = new csmMap<string, ACubismMotion>(); // 已加载的动作列表
this._expressions = new csmMap<string, ACubismMotion>(); // 已加载的表情列表
this._hitArea = new csmVector<csmRect>();
this._userArea = new csmVector<csmRect>();
@ -855,38 +884,44 @@ export class LAppModel extends CubismUserModel {
CubismDefaultParameterId.ParamBodyAngleX
);
if (LAppDefine.MOCConsistencyValidationEnable) {
this._mocConsistency = true;
}
this._state = LoadStep.LoadAssets;
this._expressionCount = 0;
this._textureCount = 0;
this._motionCount = 0;
this._allMotionCount = 0;
this._wavFileHandler = new LAppWavFileHandler();
this._consistency = false;
}
_modelSetting: ICubismModelSetting; // モデルセッティング情報
_modelHomeDir: string; // モデルセッティングが置かれたディレクトリ
_userTimeSeconds: number; // デルタ時間の積算値[秒]
_modelSetting: ICubismModelSetting; // 模型设置信息
_modelHomeDir: string; // 放置模型设置的目录
_userTimeSeconds: number; // 时间增量的累积值[秒]
_eyeBlinkIds: csmVector<CubismIdHandle>; // モデルに設定された瞬き機能用パラメータID
_lipSyncIds: csmVector<CubismIdHandle>; // モデルに設定されたリップシンク機能用パラメータID
_eyeBlinkIds: csmVector<CubismIdHandle>; // 模型设定的眨眼功能参数ID
_lipSyncIds: csmVector<CubismIdHandle>; // 模型设定的唇形同步功能参数ID
_motions: csmMap<string, ACubismMotion>; // 読み込まれているモーションのリスト
_expressions: csmMap<string, ACubismMotion>; // 読み込まれている表情のリスト
_motions: csmMap<string, ACubismMotion>; // 已加载的动作列表
_expressions: csmMap<string, ACubismMotion>; // 已加载的表情列表
_hitArea: csmVector<csmRect>;
_userArea: csmVector<csmRect>;
_idParamAngleX: CubismIdHandle; // パラメータID: ParamAngleX
_idParamAngleY: CubismIdHandle; // パラメータID: ParamAngleY
_idParamAngleZ: CubismIdHandle; // パラメータID: ParamAngleZ
_idParamEyeBallX: CubismIdHandle; // パラメータID: ParamEyeBallX
_idParamEyeBallY: CubismIdHandle; // パラメータID: ParamEyeBAllY
_idParamBodyAngleX: CubismIdHandle; // パラメータID: ParamBodyAngleX
_idParamAngleX: CubismIdHandle; // 参数ID: ParamAngleX
_idParamAngleY: CubismIdHandle; // 参数ID: ParamAngleY
_idParamAngleZ: CubismIdHandle; // 参数ID: ParamAngleZ
_idParamEyeBallX: CubismIdHandle; // 参数ID: ParamEyeBallX
_idParamEyeBallY: CubismIdHandle; // 参数ID: ParamEyeBAllY
_idParamBodyAngleX: CubismIdHandle; // 参数ID: ParamBodyAngleX
_state: number; // 現在のステータス管理用
_expressionCount: number; // 表情データカウント
_textureCount: number; // テクスチャカウント
_motionCount: number; // モーションデータカウント
_allMotionCount: number; // モーション総数
_wavFileHandler: LAppWavFileHandler; //wavファイルハンドラ
_state: LoadStep; // 当前的状态管理用
_expressionCount: number; // 表情数据计数
_textureCount: number; // 纹理计数
_motionCount: number; // 动作数据计数
_allMotionCount: number; // 动作总数
_wavFileHandler: LAppWavFileHandler; //wav文件处理器
_consistency: boolean; // MOC3一致性检查管理用
}

View File

@ -6,19 +6,19 @@
*/
/**
* Cubism Platform Abstraction Layer.
* Cubism Platform Abstraction Layer .
*
*
* .
*/
export class LAppPal {
/**
*
*
*
* @param filePath
* @param filePath
* @return
* {
* buffer,
* size
* buffer,
* size
* }
*/
public static loadFileAsBytes(
@ -31,8 +31,8 @@ export class LAppPal {
}
/**
*
* @return [ms]
*
* @return [ms]
*/
public static getDeltaTime(): number {
return this.s_deltaTime;
@ -45,8 +45,8 @@ export class LAppPal {
}
/**
*
* @param message
*
* @param message
*/
public static printMessage(message: string): void {
console.log(message);

View File

@ -8,18 +8,18 @@
import { canvas, gl } from './lappdelegate';
/**
*
*
*
* Rect
* IDRect
*/
export class LAppSprite {
/**
*
* @param x x
* @param y y
* @param width
* @param height
* @param textureId
*
* @param x x
* @param y y
* @param width
* @param height
* @param textureId
*/
constructor(
x: number,
@ -50,7 +50,7 @@ export class LAppSprite {
}
/**
*
*
*/
public release(): void {
this._rect = null;
@ -69,54 +69,54 @@ export class LAppSprite {
}
/**
*
*
*/
public getTexture(): WebGLTexture {
return this._texture;
}
/**
*
* @param programId
* @param canvas
*
* @param programId
* @param canvas
*/
public render(programId: WebGLProgram): void {
if (this._texture == null) {
// ロードが完了していない
// 加载未完成
return;
}
// 初回描画時
// 首次绘制
if (this._firstDraw) {
// 何番目のattribute変数か取得
// 获取attribute变量的索引
this._positionLocation = gl.getAttribLocation(programId, 'position');
gl.enableVertexAttribArray(this._positionLocation);
this._uvLocation = gl.getAttribLocation(programId, 'uv');
gl.enableVertexAttribArray(this._uvLocation);
// 何番目のuniform変数か取得
// 获取uniform变量的索引
this._textureLocation = gl.getUniformLocation(programId, 'texture');
// uniform属性の登録
// 注册uniform属性
gl.uniform1i(this._textureLocation, 0);
// uvバッファ、座標初期
// uv缓冲,坐标初始
{
this._uvArray = new Float32Array([
1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0
]);
// uvバッファを作成
// 创建uv缓冲
this._uvBuffer = gl.createBuffer();
}
// 頂点バッファ、座標初期
// 顶点缓冲,坐标初始
{
const maxWidth = canvas.width;
const maxHeight = canvas.height;
// 頂点データ
// 顶点数据
this._positionArray = new Float32Array([
(this._rect.right - maxWidth * 0.5) / (maxWidth * 0.5),
(this._rect.up - maxHeight * 0.5) / (maxHeight * 0.5),
@ -128,41 +128,41 @@ export class LAppSprite {
(this._rect.down - maxHeight * 0.5) / (maxHeight * 0.5)
]);
// 頂点バッファを作成
// 创建顶点缓冲
this._vertexBuffer = gl.createBuffer();
}
// 頂点インデックスバッファ、初期
// 顶点索引缓冲,初始
{
// インデックスデータ
// 索引数据
this._indexArray = new Uint16Array([0, 1, 2, 3, 2, 0]);
// インデックスバッファを作成
// 创建索引缓冲
this._indexBuffer = gl.createBuffer();
}
this._firstDraw = false;
}
// UV座標登録
// 注册UV坐标
gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer);
gl.bufferData(gl.ARRAY_BUFFER, this._uvArray, gl.STATIC_DRAW);
// attribute属性を登録
// 注册attribute属性
gl.vertexAttribPointer(this._uvLocation, 2, gl.FLOAT, false, 0, 0);
// 頂点座標を登録
// 注册顶点坐标
gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, this._positionArray, gl.STATIC_DRAW);
// attribute属性を登録
// 注册attribute属性
gl.vertexAttribPointer(this._positionLocation, 2, gl.FLOAT, false, 0, 0);
// 頂点インデックスを作成
// 创建顶点索引
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this._indexArray, gl.DYNAMIC_DRAW);
// モデルの描画
// 绘制模型
gl.bindTexture(gl.TEXTURE_2D, this._texture);
gl.drawElements(
gl.TRIANGLES,
@ -173,15 +173,15 @@ export class LAppSprite {
}
/**
*
* @param pointX x
* @param pointY y
*
* @param pointX x
* @param pointY y
*/
public isHit(pointX: number, pointY: number): boolean {
// 画面サイズを取得する
// 获取屏幕大小
const { height } = canvas;
// Y座標は変換する必要あり
// Y坐标需要转换
const y = height - pointY;
return (
@ -192,10 +192,10 @@ export class LAppSprite {
);
}
_texture: WebGLTexture; // テクスチャ
_vertexBuffer: WebGLBuffer; // 頂点バッファ
_uvBuffer: WebGLBuffer; // uv頂点バッファ
_indexBuffer: WebGLBuffer; // 頂点インデックスバッファ
_texture: WebGLTexture; // 纹理
_vertexBuffer: WebGLBuffer; // 顶点缓冲
_uvBuffer: WebGLBuffer; // uv顶点缓冲
_indexBuffer: WebGLBuffer; // 顶点索引缓冲
_rect: Rect; // 矩形
_positionLocation: number;
@ -210,8 +210,8 @@ export class LAppSprite {
}
export class Rect {
public left: number; // 左
public right: number; // 右
public up: number; // 上
public down: number; // 下
public left: number; // 左
public right: number; // 右
public up: number; // 上
public down: number; // 下
}

View File

@ -10,19 +10,19 @@ import { csmVector, iterator } from '@framework/type/csmvector';
import { gl } from './lappdelegate';
/**
*
*
*
*
*/
export class LAppTextureManager {
/**
*
*
*/
constructor() {
this._textures = new csmVector<TextureInfo>();
}
/**
*
*
*/
public release(): void {
for (
@ -36,18 +36,18 @@ export class LAppTextureManager {
}
/**
*
*
*
* @param fileName
* @param usePremultiply Premult
* @return null
* @param fileName
* @param usePremultiply Premult
* @return null
*/
public createTextureFromPngFile(
fileName: string,
usePremultiply: boolean,
callback: (textureInfo: TextureInfo) => void
): void {
// search loaded texture already
// 搜索已加载的纹理
for (
let ite: iterator<TextureInfo> = this._textures.begin();
ite.notEqual(this._textures.end());
@ -57,67 +57,82 @@ export class LAppTextureManager {
ite.ptr().fileName == fileName &&
ite.ptr().usePremultply == usePremultiply
) {
// 2回目以降はキャッシュが使用される(待ち時間なし)
// WebKitでは同じImageのonloadを再度呼ぶには再インスタンスが必要
// 詳細https://stackoverflow.com/a/5024181
// 第二次及以后使用缓存(无等待时间)
// 在 WebKit 中,需要重新实例化 Image 才能再次调用相同的 onload
// 详情https://stackoverflow.com/a/5024181
ite.ptr().img = new Image();
ite.ptr().img.onload = (): void => callback(ite.ptr());
ite
.ptr()
.img.addEventListener('load', (): void => callback(ite.ptr()), {
passive: true
});
ite.ptr().img.src = fileName;
return;
}
}
// データのオンロードをトリガーにする
// 以数据加载为触发器
const img = new Image();
img.onload = (): void => {
// テクスチャオブジェクトの作成
const tex: WebGLTexture = gl.createTexture();
img.addEventListener(
'load',
(): void => {
// 创建纹理对象
const tex: WebGLTexture = gl.createTexture();
// テクスチャを選択
gl.bindTexture(gl.TEXTURE_2D, tex);
// 选择纹理
gl.bindTexture(gl.TEXTURE_2D, tex);
// テクスチャにピクセルを書き込む
gl.texParameteri(
gl.TEXTURE_2D,
gl.TEXTURE_MIN_FILTER,
gl.LINEAR_MIPMAP_LINEAR
);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
// 将像素写入纹理
gl.texParameteri(
gl.TEXTURE_2D,
gl.TEXTURE_MIN_FILTER,
gl.LINEAR_MIPMAP_LINEAR
);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
// Premult処理を行わせる
if (usePremultiply) {
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
}
// 启用 Premult 处理
if (usePremultiply) {
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1);
}
// テクスチャにピクセルを書き込む
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
// 将像素写入纹理
gl.texImage2D(
gl.TEXTURE_2D,
0,
gl.RGBA,
gl.RGBA,
gl.UNSIGNED_BYTE,
img
);
// ミップマップを生成
gl.generateMipmap(gl.TEXTURE_2D);
// 生成 Mipmap
gl.generateMipmap(gl.TEXTURE_2D);
// テクスチャをバインド
gl.bindTexture(gl.TEXTURE_2D, null);
// 绑定纹理
gl.bindTexture(gl.TEXTURE_2D, null);
const textureInfo: TextureInfo = new TextureInfo();
if (textureInfo != null) {
textureInfo.fileName = fileName;
textureInfo.width = img.width;
textureInfo.height = img.height;
textureInfo.id = tex;
textureInfo.img = img;
textureInfo.usePremultply = usePremultiply;
this._textures.pushBack(textureInfo);
}
const textureInfo: TextureInfo = new TextureInfo();
if (textureInfo != null) {
textureInfo.fileName = fileName;
textureInfo.width = img.width;
textureInfo.height = img.height;
textureInfo.id = tex;
textureInfo.img = img;
textureInfo.usePremultply = usePremultiply;
this._textures.pushBack(textureInfo);
}
callback(textureInfo);
};
callback(textureInfo);
},
{ passive: true }
);
img.src = fileName;
}
/**
*
*
*
*
*
*/
public releaseTextures(): void {
for (let i = 0; i < this._textures.getSize(); i++) {
@ -128,10 +143,10 @@ export class LAppTextureManager {
}
/**
*
*
*
*
* @param texture
*
* @param texture
*/
public releaseTextureByTexture(texture: WebGLTexture): void {
for (let i = 0; i < this._textures.getSize(); i++) {
@ -146,10 +161,10 @@ export class LAppTextureManager {
}
/**
*
*
*
*
* @param fileName
*
* @param fileName
*/
public releaseTextureByFilePath(fileName: string): void {
for (let i = 0; i < this._textures.getSize(); i++) {
@ -165,13 +180,13 @@ export class LAppTextureManager {
}
/**
*
*
*/
export class TextureInfo {
img: HTMLImageElement; // 画像
id: WebGLTexture = null; // テクスチャ
width = 0; // 横幅
height = 0; // 高
usePremultply: boolean; // Premult処理を有効にするか
fileName: string; // ファイル
img: HTMLImageElement; // 图片
id: WebGLTexture = null; // 纹理
width = 0; // 宽度
height = 0; // 高
usePremultply: boolean; // 是否启用 Premult 处理
fileName: string; // 文件
}

View File

@ -17,29 +17,29 @@ import { TextureInfo } from './lapptexturemanager';
import { TouchManager } from './touchmanager';
/**
*
*
*/
export class LAppView {
/**
*
*
*/
constructor() {
this._programId = null;
this._back = null;
this._gear = null;
// タッチ関係のイベント管理
// 触摸相关事件管理
this._touchManager = new TouchManager();
// デバイス座標からスクリーン座標に変換するための
// 从设备坐标到屏幕坐标的转换矩阵
this._deviceToScreen = new CubismMatrix44();
// 画面の表示の拡大縮小や移動の変換を行う行列
// 屏幕显示的缩放和移动转换矩阵
this._viewMatrix = new CubismViewMatrix();
}
/**
*
*
*/
public initialize(): void {
const { width, height } = canvas;
@ -50,7 +50,7 @@ export class LAppView {
const bottom: number = LAppDefine.ViewLogicalLeft;
const top: number = LAppDefine.ViewLogicalRight;
this._viewMatrix.setScreenRect(left, right, bottom, top); // デバイスに対応する画面の範囲。 Xの左端、Xの右端、Yの下端、Yの上端
this._viewMatrix.setScreenRect(left, right, bottom, top); // 设备对应的屏幕范围。 X的左端X的右端Y的下端Y的上端
this._viewMatrix.scale(LAppDefine.ViewScale, LAppDefine.ViewScale);
this._deviceToScreen.loadIdentity();
@ -63,11 +63,11 @@ export class LAppView {
}
this._deviceToScreen.translateRelative(-width * 0.5, -height * 0.5);
// 表示範囲の設定
this._viewMatrix.setMaxScale(LAppDefine.ViewMaxScale); // 限界拡張
this._viewMatrix.setMinScale(LAppDefine.ViewMinScale); // 限界縮小率
// 设置显示范围
this._viewMatrix.setMaxScale(LAppDefine.ViewMaxScale); // 最大扩展
this._viewMatrix.setMinScale(LAppDefine.ViewMinScale); // 最大缩小率
// 表示できる最大範囲
// 可显示的最大范围
this._viewMatrix.setMaxScreenRect(
LAppDefine.ViewLogicalMaxLeft,
LAppDefine.ViewLogicalMaxRight,
@ -77,7 +77,7 @@ export class LAppView {
}
/**
*
*
*/
public release(): void {
this._viewMatrix = null;
@ -95,7 +95,7 @@ export class LAppView {
}
/**
*
*
*/
public render(): void {
gl.useProgram(this._programId);
@ -117,7 +117,7 @@ export class LAppView {
}
/**
*
*
*/
public initializeSprite(): void {
const width: number = canvas.width;
@ -128,10 +128,10 @@ export class LAppView {
let imageName = '';
// 背景画像初期
// 背景图片初始
imageName = LAppDefine.BackImageName;
// 非同期なのでコールバック関数を作成
// 因为是异步的所以创建回调函数
const initBackGroundTexture = (textureInfo: TextureInfo): void => {
const x: number = width * 0.5;
const y: number = height * 0.5;
@ -147,7 +147,7 @@ export class LAppView {
initBackGroundTexture
);
// 歯車画像初期
// 齿轮图片初始
imageName = LAppDefine.GearImageName;
const initGearTexture = (textureInfo: TextureInfo): void => {
const x = width - textureInfo.width * 0.5;
@ -163,113 +163,124 @@ export class LAppView {
initGearTexture
);
// シェーダーを作成
// 创建着色器
if (this._programId == null) {
this._programId = LAppDelegate.getInstance().createShader();
}
}
/**
*
*
*
* @param pointX X
* @param pointY Y
* @param pointX X
* @param pointY Y
*/
public onTouchesBegan(pointX: number, pointY: number): void {
this._touchManager.touchesBegan(pointX, pointY);
this._touchManager.touchesBegan(
pointX * window.devicePixelRatio,
pointY * window.devicePixelRatio
);
}
/**
*
*
*
* @param pointX X
* @param pointY Y
* @param pointX X
* @param pointY Y
*/
public onTouchesMoved(pointX: number, pointY: number): void {
const viewX: number = this.transformViewX(this._touchManager.getX());
const viewY: number = this.transformViewY(this._touchManager.getY());
this._touchManager.touchesMoved(pointX, pointY);
this._touchManager.touchesMoved(
pointX * window.devicePixelRatio,
pointY * window.devicePixelRatio
);
const live2DManager: LAppLive2DManager = LAppLive2DManager.getInstance();
live2DManager.onDrag(viewX, viewY);
}
/**
*
*
*
* @param pointX X
* @param pointY Y
* @param pointX X
* @param pointY Y
*/
public onTouchesEnded(pointX: number, pointY: number): void {
// タッチ終了
// 触摸结束
const live2DManager: LAppLive2DManager = LAppLive2DManager.getInstance();
live2DManager.onDrag(0.0, 0.0);
{
// シングルタップ
// 单次触摸
const x: number = this._deviceToScreen.transformX(
this._touchManager.getX()
); // 論理座標変換した座標を取得
); // 获取经过逻辑坐标转换的坐标
const y: number = this._deviceToScreen.transformY(
this._touchManager.getY()
); // 論理座標変化した座標を取得
); // 获取经过逻辑坐标转换的坐标
if (LAppDefine.DebugTouchLogEnable) {
LAppPal.printMessage(`[APP]touchesEnded x: ${x} y: ${y}`);
}
live2DManager.onTap(x, y);
// 歯車にタップしたか
if (this._gear.isHit(pointX, pointY)) {
// 点击了齿轮?
if (
this._gear.isHit(
pointX * window.devicePixelRatio,
pointY * window.devicePixelRatio
)
) {
live2DManager.nextScene();
}
}
}
/**
* XView
* XView
*
* @param deviceX X
* @param deviceX X
*/
public transformViewX(deviceX: number): number {
const screenX: number = this._deviceToScreen.transformX(deviceX); // 論理座標変換した座標を取得
return this._viewMatrix.invertTransformX(screenX); // 拡大、縮小、移動後の値
const screenX: number = this._deviceToScreen.transformX(deviceX); // 获取经过逻辑坐标转换的坐标
return this._viewMatrix.invertTransformX(screenX); // 获取缩放,移动后的值
}
/**
* YView
* YView
*
* @param deviceY Y
* @param deviceY Y
*/
public transformViewY(deviceY: number): number {
const screenY: number = this._deviceToScreen.transformY(deviceY); // 論理座標変換した座標を取得
const screenY: number = this._deviceToScreen.transformY(deviceY); // 获取经过逻辑坐标转换的坐标
return this._viewMatrix.invertTransformY(screenY);
}
/**
* XScreen
* @param deviceX X
* XScreen
* @param deviceX X
*/
public transformScreenX(deviceX: number): number {
return this._deviceToScreen.transformX(deviceX);
}
/**
* YScreen
* YScreen
*
* @param deviceY Y
* @param deviceY Y
*/
public transformScreenY(deviceY: number): number {
return this._deviceToScreen.transformY(deviceY);
}
_touchManager: TouchManager; // タッチマネージャー
_deviceToScreen: CubismMatrix44; // デバイスからスクリーンへの行列
_touchManager: TouchManager; // 触摸管理器
_deviceToScreen: CubismMatrix44; // 从设备到屏幕的矩阵
_viewMatrix: CubismViewMatrix; // viewMatrix
_programId: WebGLProgram; // シェーダID
_back: LAppSprite; // 背景画像
_gear: LAppSprite; // ギア画像
_changeModel: boolean; // モデル切り替えフラグ
_isClick: boolean; // クリック中
_programId: WebGLProgram; // 着色器ID
_back: LAppSprite; // 背景图片
_gear: LAppSprite; // 齿轮图片
_changeModel: boolean; // 模型切换标志
_isClick: boolean; // 正在点击
}

View File

@ -11,10 +11,9 @@ export let s_instance: LAppWavFileHandler = null;
export class LAppWavFileHandler {
/**
*
*
*
*
* @return
* @return
*/
public static getInstance(): LAppWavFileHandler {
if (s_instance == null) {
@ -25,7 +24,7 @@ export class LAppWavFileHandler {
}
/**
*
*
*/
public static releaseInstance(): void {
if (s_instance != null) {
@ -39,7 +38,7 @@ export class LAppWavFileHandler {
let goalOffset: number;
let rms: number;
// データロード前/ファイル末尾に達した場合は更新しない
// 如果在加载数据之前/达到文件末尾,则不更新
if (
this._pcmData == null ||
this._sampleOffset >= this._wavFileInfo._samplesPerChannel
@ -48,7 +47,7 @@ export class LAppWavFileHandler {
return false;
}
// 経過時間後の状態を保持
// 保持经过时间后的状态
this._userTimeSeconds += deltaTimeSeconds;
goalOffset = Math.floor(
this._userTimeSeconds * this._wavFileInfo._samplingRate
@ -57,7 +56,7 @@ export class LAppWavFileHandler {
goalOffset = this._wavFileInfo._samplesPerChannel;
}
// RMS計測
// RMS测量
rms = 0.0;
for (
let channelCount = 0;
@ -85,11 +84,11 @@ export class LAppWavFileHandler {
}
public start(filePath: string): void {
// サンプル位参照位置を初期化
// 初始化样本位参考位置
this._sampleOffset = 0;
this._userTimeSeconds = 0.0;
// RMS値をリセット
// 重置RMS值
this._lastRms = 0.0;
if (!this.loadWavFile(filePath)) {
@ -108,7 +107,7 @@ export class LAppWavFileHandler {
this.releasePcmData();
}
// ファイルロード
// 文件加载
const asyncFileLoad = async () => {
return fetch(filePath).then(responce => {
return responce.arrayBuffer();
@ -121,7 +120,7 @@ export class LAppWavFileHandler {
this._byteReader._fileSize = this._byteReader._fileByte.byteLength;
this._byteReader._readOffset = 0;
// ファイルロードに失敗しているか、先頭のシグネチャ"RIFF"を入れるサイズもない場合は失敗
// 如果文件加载失败或者没有足够的大小来插入顶部的签名"RIFF",则失败
if (
this._byteReader._fileByte == null ||
this._byteReader._fileSize < 4
@ -129,50 +128,50 @@ export class LAppWavFileHandler {
return false;
}
// ファイル
// 文件
this._wavFileInfo._fileName = filePath;
try {
// シグネチャ "RIFF"
// 签名 "RIFF"
if (!this._byteReader.getCheckSignature('RIFF')) {
ret = false;
throw new Error('Cannot find Signeture "RIFF".');
}
// ファイルサイズ-8読み飛ばし
// 文件大小-8跳过
this._byteReader.get32LittleEndian();
// シグネチャ "WAVE"
// 签名 "WAVE"
if (!this._byteReader.getCheckSignature('WAVE')) {
ret = false;
throw new Error('Cannot find Signeture "WAVE".');
}
// シグネチャ "fmt "
// 签名 "fmt "
if (!this._byteReader.getCheckSignature('fmt ')) {
ret = false;
throw new Error('Cannot find Signeture "fmt".');
}
// fmtチャンクサイズ
// fmt块大小
const fmtChunkSize = this._byteReader.get32LittleEndian();
// フォーマットIDは1リニアPCM以外受け付けない
// 格式ID不接受1线性PCM以外的格式
if (this._byteReader.get16LittleEndian() != 1) {
ret = false;
throw new Error('File is not linear PCM.');
}
// チャンネル数
// 通道数量
this._wavFileInfo._numberOfChannels =
this._byteReader.get16LittleEndian();
// サンプリングレート
// 采样率
this._wavFileInfo._samplingRate = this._byteReader.get32LittleEndian();
// データ速度[byte/sec](読み飛ばし
// 数据速度[byte/sec](跳过
this._byteReader.get32LittleEndian();
// ブロックサイズ(読み飛ばし
// 块大小(跳过
this._byteReader.get16LittleEndian();
// 量子化ビット
// 量化位
this._wavFileInfo._bitsPerSample = this._byteReader.get16LittleEndian();
// fmtチャンクの拡張部分の読み飛ばし
// 跳过fmt块的扩展部分
if (fmtChunkSize > 16) {
this._byteReader._readOffset += fmtChunkSize - 16;
}
// "data"チャンクが出現するまで読み飛ばし
// 跳过直到出现"data"块
while (
!this._byteReader.getCheckSignature('data') &&
this._byteReader._readOffset < this._byteReader._fileSize
@ -180,12 +179,12 @@ export class LAppWavFileHandler {
this._byteReader._readOffset +=
this._byteReader.get32LittleEndian() + 4;
}
// ファイル内に"data"チャンクが出現しなかった
// 文件中没有出现"data"块
if (this._byteReader._readOffset >= this._byteReader._fileSize) {
ret = false;
throw new Error('Cannot find "data" Chunk.');
}
// サンプル数
// 样本数量
{
const dataChunkSize = this._byteReader.get32LittleEndian();
this._wavFileInfo._samplesPerChannel =
@ -193,7 +192,7 @@ export class LAppWavFileHandler {
(this._wavFileInfo._bitsPerSample *
this._wavFileInfo._numberOfChannels);
}
// 領域確
// 留区域
this._pcmData = new Array(this._wavFileInfo._numberOfChannels);
for (
let channelCount = 0;
@ -204,7 +203,7 @@ export class LAppWavFileHandler {
this._wavFileInfo._samplesPerChannel
);
}
// 波形データ取得
// 获取波形数据
for (
let sampleCount = 0;
sampleCount < this._wavFileInfo._samplesPerChannel;
@ -231,7 +230,7 @@ export class LAppWavFileHandler {
public getPcmSample(): number {
let pcm32;
// 32ビット幅に拡張してから-11の範囲に丸める
// 在扩展到32位宽度后将其四舍五入到-11的范围内
switch (this._wavFileInfo._bitsPerSample) {
case 8:
pcm32 = this._byteReader.get8() - 128;
@ -244,7 +243,7 @@ export class LAppWavFileHandler {
pcm32 = this._byteReader.get24LittleEndian() << 8;
break;
default:
// 対応していないビット幅
// 不支持的位宽
pcm32 = 0;
break;
}
@ -295,11 +294,11 @@ export class WavFileInfo {
this._samplesPerChannel = 0;
}
_fileName: string; ///< ファイル
_numberOfChannels: number; ///< チャンネル
_bitsPerSample: number; ///< サンプルあたりビット
_samplingRate: number; ///< サンプリングレート
_samplesPerChannel: number; ///< 1チャンネルあたり総サンプル
_fileName: string; ///< 文件
_numberOfChannels: number; ///< 通道
_bitsPerSample: number; ///< 每个样本的位
_samplingRate: number; ///< 采样率
_samplesPerChannel: number; ///< 每个通道的总样本
}
export class ByteReader {
@ -311,8 +310,8 @@ export class ByteReader {
}
/**
* @brief 8
* @return Csm::csmUint8 8
* @brief 8
* @return Csm::csmUint8 8
*/
public get8(): number {
const ret = this._fileDataView.getUint8(this._readOffset);
@ -321,8 +320,8 @@ export class ByteReader {
}
/**
* @brief 16
* @return Csm::csmUint16 16
* @brief 16
* @return Csm::csmUint16 16
*/
public get16LittleEndian(): number {
const ret =
@ -333,8 +332,8 @@ export class ByteReader {
}
/**
* @brief 24
* @return Csm::csmUint32 2424
* @brief 24
* @return Csm::csmUint32 2424
*/
public get24LittleEndian(): number {
const ret =
@ -346,8 +345,8 @@ export class ByteReader {
}
/**
* @brief 32
* @return Csm::csmUint32 32
* @brief 32
* @return Csm::csmUint32 32
*/
public get32LittleEndian(): number {
const ret =
@ -360,10 +359,10 @@ export class ByteReader {
}
/**
* @brief
* @param[in] reference
* @retval true
* @retval false
* @brief
* @param[in] reference
* @retval true
* @retval false
*/
public getCheckSignature(reference: string): boolean {
const getSignature: Uint8Array = new Uint8Array(4);
@ -382,8 +381,8 @@ export class ByteReader {
);
}
_fileByte: ArrayBuffer; ///< ロードしたファイルのバイト
_fileByte: ArrayBuffer; ///< 加载的文件字节序
_fileDataView: DataView;
_fileSize: number; ///< ファイルサイズ
_readOffset: number; ///< ファイル参照位置
_fileSize: number; ///< 文件大小
_readOffset: number; ///< 文件引用位置
}

View File

@ -9,27 +9,39 @@ import { LAppDelegate } from './lappdelegate';
import * as LAppDefine from './lappdefine';
/**
*
*
*/
window.onload = (): void => {
// create the application instance
if (LAppDelegate.getInstance().initialize() == false) {
return;
}
window.addEventListener(
'load',
(): void => {
// 创建应用实例
if (LAppDelegate.getInstance().initialize() == false) {
return;
}
LAppDelegate.getInstance().run();
};
LAppDelegate.getInstance().run();
},
{ passive: true }
);
/**
*
*
*/
window.onbeforeunload = (): void => LAppDelegate.releaseInstance();
window.addEventListener(
'beforeunload',
(): void => LAppDelegate.releaseInstance(),
{ passive: true }
);
/**
* Process when changing screen size.
*
*/
window.onresize = () => {
if (LAppDefine.CanvasSize === 'auto') {
LAppDelegate.getInstance().onResize();
}
};
window.addEventListener(
'resize',
() => {
if (LAppDefine.CanvasSize === 'auto') {
LAppDelegate.getInstance().onResize();
}
},
{ passive: true }
);

View File

@ -7,7 +7,7 @@
export class TouchManager {
/**
*
*
*/
constructor() {
this._startX = 0.0;
@ -91,9 +91,9 @@ export class TouchManager {
}
/**
*
* @param deviceX x
* @param deviceY y
*
* @param deviceX x
* @param deviceY y
*/
public touchesBegan(deviceX: number, deviceY: number): void {
this._lastX = deviceX;
@ -106,9 +106,9 @@ export class TouchManager {
}
/**
*
* @param deviceX x
* @param deviceY y
*
* @param deviceX x
* @param deviceY y
*/
public touchesMoved(deviceX: number, deviceY: number): void {
this._lastX = deviceX;
@ -118,8 +118,8 @@ export class TouchManager {
}
/**
*
* @return
* flick
* @return flick
*/
public getFlickDistance(): number {
return this.calculateDistance(
@ -131,12 +131,12 @@ export class TouchManager {
}
/**
*
* 12
*
* @param x1 x
* @param y1 y
* @param x2 x
* @param y2 y
* @param x1 x
* @param y1 y
* @param x2 x
* @param y2 y
*/
public calculateDistance(
x1: number,
@ -148,13 +148,13 @@ export class TouchManager {
}
/**
*
*
*
* 0
*
* @param v1
* @param v2
* @param v1
* @param v2
*
* @return
* @return
*/
public calculateMovingAmount(v1: number, v2: number): number {
if (v1 > 0.0 != v2 > 0.0) {
@ -169,18 +169,18 @@ export class TouchManager {
);
}
_startY: number; // タッチを開始した時のxの値
_startX: number; // タッチを開始した時のyの値
_lastX: number; // シングルタッチ時のxの値
_lastY: number; // シングルタッチ時のyの値
_lastX1: number; // ダブルタッチ時の一つ目のxの値
_lastY1: number; // ダブルタッチ時の一つ目のyの値
_lastX2: number; // ダブルタッチ時の二つ目のxの値
_lastY2: number; // ダブルタッチ時の二つ目のyの値
_lastTouchDistance: number; // 2本以上でタッチしたときの指の距離
_deltaX: number; // 前回の値から今回の値へのxの移動距離
_deltaY: number; // 前回の値から今回の値へのyの移動距離
_scale: number; // このフレームで掛け合わせる拡大率。拡大操作中以外は1。
_touchSingle: boolean; // シングルタッチ時はtrue
_flipAvailable: boolean; // フリップが有効かどうか
_startY: number; // 触摸开始时的x值
_startX: number; // 触摸开始时的y值
_lastX: number; // 单点触摸时的x值
_lastY: number; // 单点触摸时的y值
_lastX1: number; // 双点触摸时的第一个点的x值
_lastY1: number; // 双点触摸时的第一个点的y值
_lastX2: number; // 双点触摸时的第二个点的x值
_lastY2: number; // 双点触摸时的第二个点的y值
_lastTouchDistance: number; // 当触摸2个以上的点时指的距离
_deltaX: number; // 从上一个值到现在的值的x移动距离
_deltaY: number; // 从上一个值到现在的值的y移动距离
_scale: number; // 这一帧要乘的缩放比例。除了缩放操作中,其他时候为1。
_touchSingle: boolean; // 单点触摸时为true
_flipAvailable: boolean; // flick是否可用
}

View File

@ -11,7 +11,9 @@
"baseUrl": "./",
"paths": {
"@framework/*": ["../../../Framework/src/*"]
}
},
"noImplicitAny": true,
"useUnknownInCatchVariables": true
},
"include": [
"src/**/*.ts",

View File

@ -34,7 +34,7 @@ module.exports = {
}
],
hot: true,
port: 5000,
port: 8080,
host: '0.0.0.0',
compress: true,
devMiddleware: {

View File

@ -0,0 +1,72 @@
[English](README.md) / [日本語](README.ja.md)
---
# Cubism Web Samples for TypeScript
TypeScript で実装したアプリケーションのサンプル実装です。
## 開発環境
| パッケージ | バージョン |
| --- | --- |
| TypeScript | 5.2.2 |
| Webpack | 5.88.2 |
その他のパッケージに関しては、各プロジェクトの `package.json` を確認してください。
また、その他の開発環境・動作確認環境はトップディレクトリにある [README.md](/README.ja.md) を参照してください。
## タスク一覧
### `npm: start`
開発用のローカルサーバが起動され、プロジェクトの監視ビルドが行われます。
プロジェクトの変更を行うと自動的に再ビルドが行われ、ブラウザのリロードが発生します。
[プロジェクトのデバック]から Visual Studio Code 上でデバックを行うことができます。
Visual Studio Code 上で終了する場合は、
コマンドパレットから `>Tasks: Terminate Task` を入力してタスクを選択します。
### `npm: build`
`dist` ディレクトリに、TypeScript のビルド成果物を出力します。
Webpack を用いて1つにまとめられた JavaScript ファイルが出力されます。
`tsconfig.json` 及び `webpack.config.js` を編集することで設定内容を変更できます。
### `npm: build:prod`
上記のビルドを最適化した上で行います。
ビルドサイズが削減されるため、本番環境用の成果物の出力に使用します。
### `npm: test`
TypeScript の型チェックテストを行います。
`tsconfig.json` を編集することで設定内容を変更できます。
### `npm: lint`
`src` ディレクトリ内の TypeScript ファイルの静的解析を行います。
`.eslintrc.yml` を編集することで設定内容を変更できます。
### `npm: lint:fix`
`src` ディレクトリ内の TypeScript ファイルの静的解析及び自動修正を行います。
`.eslintrc.yml` を編集することで設定内容を変更できます。
### `npm: serve`
簡易ローカルサーバを起動します。
ブラウザからサーバ内の `/Samples/TypeScript/Demo` にアクセスすることで index.html の確認ができます。
事前にプロジェクトのビルドを行なっている必要があります。
本番環境に近い環境で成果物の検証を行うことができます。
### `npm: clean`
ビルド成果物ディレクトリ(`dist`)を削除します。

View File

@ -1,68 +1,71 @@
[English](README.md) / [日本語](README.ja.md)
---
# Cubism Web Samples for TypeScript
TypeScript で実装したアプリケーションのサンプル実装です。
This is a sample implementation of an application implemented with TypeScript.
## 開発環境
## Development environment
| パッケージ | バージョン |
| Package | Version |
| --- | --- |
| TypeScript | 4.6.4 |
| Webpack | 5.72.1 |
| TypeScript | 5.2.2 |
| Webpack | 5.88.2 |
その他のパッケージに関しては、各プロジェクトの `package.json` を確認してください。
また、その他の開発環境・動作確認環境はトップディレクトリにある [README.md](/README.md) を参照してください。
For other packages, check the `package.json` for each project.
For other development environments and operation environments, see [README.md](/README.md) in the top directory.
## タスク一覧
## Task list
### `npm: start`
開発用のローカルサーバが起動され、プロジェクトの監視ビルドが行われます。
プロジェクトの変更を行うと自動的に再ビルドが行われ、ブラウザのリロードが発生します。
[プロジェクトのデバック]から Visual Studio Code 上でデバックを行うことができます。
Starts a local server for development and creates a project monitor build.
Any changes you make to the project will automatically rebuild and cause the browser to reload.
You can debug in Visual Studio Code from [Debug Project].
Visual Studio Code 上で終了する場合は、
コマンドパレットから `>Tasks: Terminate Task` を入力してタスクを選択します。
To terminate in Visual Studio Code, type `>Tasks: Terminate Task` and select the task from the command palette.
### `npm: build`
`dist` ディレクトリに、TypeScript のビルド成果物を出力します。
Webpack を用いて1つにまとめられた JavaScript ファイルが出力されます。
Outputs a TypeScript build deliverable to the `dist` directory.
The output is a JavaScript file that has been bundled into one using Webpack.
`tsconfig.json` 及び `webpack.config.js` を編集することで設定内容を変更できます。
You can change the settings by editing `tsconfig.json` and `webpack.config.js`.
### `npm: build:prod`
上記のビルドを最適化した上で行います。
ビルドサイズが削減されるため、本番環境用の成果物の出力に使用します。
Creates above build after optimizing it.
It is used to output deliverables for production environments as it reduces the build size.
### `npm: test`
TypeScript の型チェックテストを行います。
Performs a TypeScript type check test.
`tsconfig.json` を編集することで設定内容を変更できます。
You can change the settings by editing `tsconfig.json`.
### `npm: lint`
`src` ディレクトリ内の TypeScript ファイルの静的解析を行います。
Performs static analysis of TypeScript files in the `src` directory.
`.eslintrc.yml` を編集することで設定内容を変更できます。
You can change the settings by editing `.eslintrc.yml`.
### `npm: lint:fix`
`src` ディレクトリ内の TypeScript ファイルの静的解析及び自動修正を行います。
Performs static analysis and automatic modification of TypeScript files in the `src` directory.
`.eslintrc.yml` を編集することで設定内容を変更できます。
You can change the settings by editing `.eslintrc.yml`.
### `npm: serve`
簡易ローカルサーバを起動します。
ブラウザからサーバ内の `/Samples/TypeScript/Demo` にアクセスすることで index.html の確認ができます。
事前にプロジェクトのビルドを行なっている必要があります。
Starts a simple local server.
You can check the index.html by accessing `/Samples/TypeScript/Demo` in the server from your browser.
The project needs to be built in advance.
本番環境に近い環境で成果物の検証を行うことができます。
Deliverables can be verified in an environment close to the production environment.
### `npm: clean`
ビルド成果物ディレクトリ(`dist`)を削除します。
Deletes the build deliverable directory (`dist`).