init
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"id": "live2d_test",
|
||||||
|
"name": "Live2D Cubism",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": "ct",
|
||||||
|
"description": "Live2D Cubism C# runtime: model loading, rendering, physics, animation, effects",
|
||||||
|
"depends": ["core>=1","live2d>=1"],
|
||||||
|
"subscriptions": [
|
||||||
|
{
|
||||||
|
"scene": "home_outside",
|
||||||
|
"template": "default",
|
||||||
|
"code": "live2d_test_add",
|
||||||
|
"trigger": "on_enter",
|
||||||
|
"priority": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scene": "home_outside",
|
||||||
|
"template": "default",
|
||||||
|
"code": "live2d_test_remove",
|
||||||
|
"trigger": "on_exit",
|
||||||
|
"priority": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
|
||||||
|
============================================================
|
||||||
|
|
||||||
|
Sample Model
|
||||||
|
Ren Foster - PRO
|
||||||
|
|
||||||
|
============================================================
|
||||||
|
|
||||||
|
This model focuses on learning expressions that use the rich drawing features introduced in Cubism 5.3.
|
||||||
|
It serves as a reference for using features such as alpha blend for creating masks flexibly,
|
||||||
|
and offscreen drawing for displaying semi-transparency cleanly by drawing multiple objects together.
|
||||||
|
It is designed for use in environments with sufficient machine specifications,
|
||||||
|
such as video streaming on a PC using tracking software like nizima LIVE.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
License Agreement
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
You need to agree "Free Material License Agreement" and "Terms of Use" to use this sample model.
|
||||||
|
General Users and Small-Scale Enterprise Users can use the model for commercial purposes by accepting the "Free Material License Agreement".
|
||||||
|
Parties other than General User or Small-Scale Enterprise User are allowed to use the model for Internal or Supervision Purpose.
|
||||||
|
Please refer to this agreement for more details.
|
||||||
|
|
||||||
|
For more information on licensing, please see the following page.
|
||||||
|
https://www.live2d.com/en/download/sample-data/
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
Creator
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
- Illustration: Live2D Inc.
|
||||||
|
- Modeling: Live2D Inc.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
Sample Data Composition
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
- Model data (.cmo3)
|
||||||
|
- Basic motion (.can3)
|
||||||
|
- Embedded file set (.runtime folder)
|
||||||
|
- Model data (.moc3)
|
||||||
|
- Expression data (.exp3.json)
|
||||||
|
- Motion data (.motion3.json)
|
||||||
|
- Model setting file (.model3.json)
|
||||||
|
- Physical calculation setting file (.physics3.json)
|
||||||
|
- Display auxiliary file (.cdi3.json)
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
Release Note
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
- 2026-01-20
|
||||||
|
- Released.
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"Type": "Live2D Expression",
|
||||||
|
"FadeInTime": 0.5,
|
||||||
|
"FadeOutTime": 0.5,
|
||||||
|
"Parameters": [
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLOpen",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeROpen",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeRSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeSize",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLAngle",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRAngle",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"Type": "Live2D Expression",
|
||||||
|
"FadeInTime": 0.5,
|
||||||
|
"FadeOutTime": 0.5,
|
||||||
|
"Parameters": [
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLOpen",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLSmile",
|
||||||
|
"Value": 1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeROpen",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeRSmile",
|
||||||
|
"Value": 1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeSize",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLAngle",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRAngle",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"Type": "Live2D Expression",
|
||||||
|
"FadeInTime": 0.5,
|
||||||
|
"FadeOutTime": 0.5,
|
||||||
|
"Parameters": [
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLOpen",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeROpen",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeRSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeSize",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLAngle",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRAngle",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthForm",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"Type": "Live2D Expression",
|
||||||
|
"FadeInTime": 0.5,
|
||||||
|
"FadeOutTime": 0.5,
|
||||||
|
"Parameters": [
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLOpen",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeROpen",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeRSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeSize",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLAngle",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRAngle",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLForm",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRForm",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthForm",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"Type": "Live2D Expression",
|
||||||
|
"FadeInTime": 0.5,
|
||||||
|
"FadeOutTime": 0.5,
|
||||||
|
"Parameters": [
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLOpen",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeROpen",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeRSmile",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeSize",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRY",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRX",
|
||||||
|
"Value": 0,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLAngle",
|
||||||
|
"Value": 0.7,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRAngle",
|
||||||
|
"Value": 0.7,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLForm",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRForm",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthForm",
|
||||||
|
"Value": -1,
|
||||||
|
"Blend": "Add"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 4.1 MiB |
@@ -0,0 +1,647 @@
|
|||||||
|
{
|
||||||
|
"Version": 3,
|
||||||
|
"Parameters": [
|
||||||
|
{
|
||||||
|
"Id": "ParamAngleX",
|
||||||
|
"GroupId": "ParamGroupFace",
|
||||||
|
"Name": "Angle X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamAngleY",
|
||||||
|
"GroupId": "ParamGroupFace",
|
||||||
|
"Name": "Angle Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamAngleZ",
|
||||||
|
"GroupId": "ParamGroupFace",
|
||||||
|
"Name": "Angle Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLOpen",
|
||||||
|
"GroupId": "ParamGroupEye",
|
||||||
|
"Name": "Eye L Open"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeLSmile",
|
||||||
|
"GroupId": "ParamGroupEye",
|
||||||
|
"Name": "Eye L Smile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeROpen",
|
||||||
|
"GroupId": "ParamGroupEye",
|
||||||
|
"Name": "Eye R Open"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeRSmile",
|
||||||
|
"GroupId": "ParamGroupEye",
|
||||||
|
"Name": "Eye R Smile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeBallX",
|
||||||
|
"GroupId": "ParamGroupEyeballs",
|
||||||
|
"Name": "Eyeballs X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeBallY",
|
||||||
|
"GroupId": "ParamGroupEyeballs",
|
||||||
|
"Name": "Eyeballs Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamEyeSize",
|
||||||
|
"GroupId": "ParamGroupEyeballs",
|
||||||
|
"Name": "Eyeballs Shrink"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLY",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow L Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRY",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow R Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLX",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow L X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRX",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow R X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLAngle",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow L Angle"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRAngle",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow R Angle"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowLForm",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow L Form"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBrowRForm",
|
||||||
|
"GroupId": "ParamGroupBrows",
|
||||||
|
"Name": "Eyebrow R Form"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthForm",
|
||||||
|
"GroupId": "ParamGroupMouth",
|
||||||
|
"Name": "Mouth Form"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMouthOpenY",
|
||||||
|
"GroupId": "ParamGroupMouth",
|
||||||
|
"Name": "Mouth Open"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyAngleX",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Body Rotatoin X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyAngleY",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Body Rotatoin Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyAngleZ",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Body Rotatoin Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamWaistAngleZ",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Waist Rotation Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyCenter",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Weight Shift"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBreath",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Breath"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamLeftShoulderUp",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Shoulder L Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamRightShoulderUp",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Shoulder R Y"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamLegR",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Leg R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamLegL",
|
||||||
|
"GroupId": "ParamGroupBody",
|
||||||
|
"Name": "Leg L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyAngleX2",
|
||||||
|
"GroupId": "ParamGroup",
|
||||||
|
"Name": "Body Rotation X2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyAngleY2",
|
||||||
|
"GroupId": "ParamGroup",
|
||||||
|
"Name": "Body Rotation Y2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamBodyCenter2",
|
||||||
|
"GroupId": "ParamGroup",
|
||||||
|
"Name": "Weight Shift 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamLeftShoulderUp2",
|
||||||
|
"GroupId": "ParamGroup",
|
||||||
|
"Name": "Shoulder L Y 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamRightShoulderUp2",
|
||||||
|
"GroupId": "ParamGroup",
|
||||||
|
"Name": "Shoulder R Y 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamArmL01",
|
||||||
|
"GroupId": "ParamGroupArmL",
|
||||||
|
"Name": "Arm L Shoulder Rotation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamArmL02",
|
||||||
|
"GroupId": "ParamGroupArmL",
|
||||||
|
"Name": "Arm L Elbow Rotation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamArmL03",
|
||||||
|
"GroupId": "ParamGroupArmL",
|
||||||
|
"Name": "Arm L Wrist Rotation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHandL",
|
||||||
|
"GroupId": "ParamGroupArmL",
|
||||||
|
"Name": "Hand L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHandLDrawOrder",
|
||||||
|
"GroupId": "ParamGroupArmL",
|
||||||
|
"Name": "Hand L Draw Order"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamArmR01",
|
||||||
|
"GroupId": "ParamGroupArmR",
|
||||||
|
"Name": "Arm R Shoulder Rotation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamArmR02",
|
||||||
|
"GroupId": "ParamGroupArmR",
|
||||||
|
"Name": "Arm R Elbow Rotation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamArmR03",
|
||||||
|
"GroupId": "ParamGroupArmR",
|
||||||
|
"Name": "Arm R Wrist Rotation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHandR",
|
||||||
|
"GroupId": "ParamGroupArmR",
|
||||||
|
"Name": "Hand R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHandRDrawOrder",
|
||||||
|
"GroupId": "ParamGroupArmR",
|
||||||
|
"Name": "Hand R Draw Order"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHairFront",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Hair Sway Front"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHairSide",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Hair Move Side"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHairBack",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Hair Move Back"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHairFrontFuwa",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Front Hair Fluff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHairSideFuwa",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Side Hair Flap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHairBackFuwa",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Back Hair Fluff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamCollarString",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Collar Strap Sway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamNecklace1",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Necklace Sway 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamNecklace2",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Necklace Sway 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamNecklace3",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Necklace Sway 3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamPullHandle",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Puller Sway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamPocketString",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Pocket Band Sway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamJacket",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Jacket Sway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamCollarFuwa",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Collar Flap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamCollarStringFuwa",
|
||||||
|
"GroupId": "ParamGroupSway",
|
||||||
|
"Name": "Collar Strap Flap"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHologram",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Hologram"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamTransparent",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "See-through"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamHologramPattern",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Hologram Pattern"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamMonochrome",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Monochrome"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamNight",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Night"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamLight",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Light"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamDisplayWidth1",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Display 1 Width"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamDisplayHeight1",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Display 1 Height"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamDisplayWidth2",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Display 2 Width"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamDisplayHeight2",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Display 2 Height"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamDisplayAngle",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Display Angle"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamNoise",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Noise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamNoiseRotate",
|
||||||
|
"GroupId": "ParamGroupEffect",
|
||||||
|
"Name": "Noise Rotation"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ParameterGroups": [
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupFace",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Face"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupEye",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Eyes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupEyeballs",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Eyeballs"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupBrows",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Eyebrows"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupMouth",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Mouth"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupBody",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Body"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroup",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Body Physics"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupArmL",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Arm L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupArmR",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Arm R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupSway",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Sway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "ParamGroupEffect",
|
||||||
|
"GroupId": "",
|
||||||
|
"Name": "Effect"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Parts": [
|
||||||
|
{
|
||||||
|
"Id": "PartAll",
|
||||||
|
"Name": "Overall"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartSketch",
|
||||||
|
"Name": "[Guide Image]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEffect",
|
||||||
|
"Name": "Effect"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartCore",
|
||||||
|
"Name": "Core"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHairFront",
|
||||||
|
"Name": "Front Hair"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartBrow",
|
||||||
|
"Name": "Eyebrow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeL",
|
||||||
|
"Name": "Eye L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeR",
|
||||||
|
"Name": "Eye R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartNose",
|
||||||
|
"Name": "Nose"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartMouth",
|
||||||
|
"Name": "Mouth"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartFace",
|
||||||
|
"Name": "Face"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEar",
|
||||||
|
"Name": "Ears"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartNeck",
|
||||||
|
"Name": "Neck"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHairBack",
|
||||||
|
"Name": "Back Hair"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartJacket01",
|
||||||
|
"Name": "Jacket"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartArmL",
|
||||||
|
"Name": "Arm L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartArmR",
|
||||||
|
"Name": "Arm R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartBody",
|
||||||
|
"Name": "Upper Body"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartDisplay",
|
||||||
|
"Name": "Display"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartMonochrome",
|
||||||
|
"Name": "Monochrome"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartNight",
|
||||||
|
"Name": "Night"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHologram",
|
||||||
|
"Name": "Hologram"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartTransparent",
|
||||||
|
"Name": "See-through"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHairShadow",
|
||||||
|
"Name": "Hair Shadow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeballL",
|
||||||
|
"Name": "Eyeball L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeballR",
|
||||||
|
"Name": "Eyeball R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHairline",
|
||||||
|
"Name": "Hairline L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartJacket02",
|
||||||
|
"Name": "Jacket"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartJacketArmL",
|
||||||
|
"Name": "Jacket Arm L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartJacketArmR",
|
||||||
|
"Name": "Jacket Arm R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartJacketShadow",
|
||||||
|
"Name": "Jacket Shadow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartNecklace",
|
||||||
|
"Name": "Necklace"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartShirt",
|
||||||
|
"Name": "Shirt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartLowerBody",
|
||||||
|
"Name": "Lower Body"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartDisplayPaint",
|
||||||
|
"Name": "Display Fill"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartShadow",
|
||||||
|
"Name": "Shadow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartBrow2",
|
||||||
|
"Name": "Eyebrow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeL2",
|
||||||
|
"Name": "Eye L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeR2",
|
||||||
|
"Name": "Eye R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHairShadowOut",
|
||||||
|
"Name": "Hair Shadow Out"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartPupilL",
|
||||||
|
"Name": "Pupil L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartPupilR",
|
||||||
|
"Name": "Pupil R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartArmLDrawOrder",
|
||||||
|
"Name": "Arm L Draw Order"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartArmRDrawOrder",
|
||||||
|
"Name": "Arm R Draw Order"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartBodyOut",
|
||||||
|
"Name": "Torso Out"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartDisplay01",
|
||||||
|
"Name": "Display 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartDisplay02",
|
||||||
|
"Name": "Display 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeballL2",
|
||||||
|
"Name": "Eyeball L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartEyeballR2",
|
||||||
|
"Name": "Eyeball R"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartHairBackOut",
|
||||||
|
"Name": "Back Hair Out"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartPupilL2",
|
||||||
|
"Name": "Pupil L"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "PartPupilR2",
|
||||||
|
"Name": "Pupil R"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"CombinedParameters": [
|
||||||
|
[
|
||||||
|
"ParamAngleX",
|
||||||
|
"ParamAngleY"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ParamMouthForm",
|
||||||
|
"ParamMouthOpenY"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"Version": 3,
|
||||||
|
"FileReferences": {
|
||||||
|
"Moc": "ren.moc3",
|
||||||
|
"Textures": [
|
||||||
|
"ren.4096/texture_00.png"
|
||||||
|
],
|
||||||
|
"Physics": "ren.physics3.json",
|
||||||
|
"DisplayInfo": "ren.cdi3.json",
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"Name": "exp_01",
|
||||||
|
"File": "expressions/exp_01.exp3.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "exp_02",
|
||||||
|
"File": "expressions/exp_02.exp3.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "exp_03",
|
||||||
|
"File": "expressions/exp_03.exp3.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "exp_04",
|
||||||
|
"File": "expressions/exp_04.exp3.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "exp_05",
|
||||||
|
"File": "expressions/exp_05.exp3.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Motions": {
|
||||||
|
"Idle": [
|
||||||
|
{
|
||||||
|
"File": "motions/mtn_01.motion3.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"": [
|
||||||
|
{
|
||||||
|
"File": "motions/mtn_02.motion3.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"File": "motions/mtn_03.motion3.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Groups": [
|
||||||
|
{
|
||||||
|
"Target": "Parameter",
|
||||||
|
"Name": "EyeBlink",
|
||||||
|
"Ids": [
|
||||||
|
"ParamEyeLOpen",
|
||||||
|
"ParamEyeROpen"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Target": "Parameter",
|
||||||
|
"Name": "LipSync",
|
||||||
|
"Ids": [
|
||||||
|
"ParamMouthOpenY"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"HitAreas": [
|
||||||
|
{
|
||||||
|
"Id": "HitAreaBody",
|
||||||
|
"Name": "Body"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": "HitAreaHead",
|
||||||
|
"Name": "Head"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,77 @@
|
|||||||
|
var container = FindNode<Control>("Lastground");
|
||||||
|
if (container == null) return;
|
||||||
|
|
||||||
|
var existing = container.GetNodeOrNull<Node>("Live2DTestModel");
|
||||||
|
if (existing != null) return;
|
||||||
|
|
||||||
|
var model = Cthangover.Live2D.Cubism.Services.Live2DService.CreateModel(container, "models/runtime/ren.model3.json", "Live2DTestModel", "live2d_test");
|
||||||
|
|
||||||
|
var dragPanelParent = FindNode<Control>("ModBeforeUIPanel") ?? container;
|
||||||
|
|
||||||
|
var dragPanel = new Godot.ColorRect();
|
||||||
|
dragPanel.Name = "Live2DDragPanel";
|
||||||
|
dragPanel.MouseFilter = Godot.Control.MouseFilterEnum.Stop;
|
||||||
|
dragPanel.Color = new Godot.Color(0, 1f, 0, 0f);
|
||||||
|
dragPanel.Size = new Godot.Vector2(400, 400);
|
||||||
|
dragPanel.AnchorLeft = 0.5f;
|
||||||
|
dragPanel.AnchorRight = 0.5f;
|
||||||
|
dragPanel.AnchorTop = 0.5f;
|
||||||
|
dragPanel.AnchorBottom = 0.5f;
|
||||||
|
dragPanel.OffsetLeft = -200f;
|
||||||
|
dragPanel.OffsetRight = 200f;
|
||||||
|
dragPanel.OffsetTop = -200f;
|
||||||
|
dragPanel.OffsetBottom = 200f;
|
||||||
|
dragPanelParent.AddChild(dragPanel);
|
||||||
|
|
||||||
|
bool dragging = false;
|
||||||
|
float mouseStartX = 0f;
|
||||||
|
float mouseStartY = 0f;
|
||||||
|
float baseValueX = 0f;
|
||||||
|
float baseValueY = 0f;
|
||||||
|
|
||||||
|
var targetParamX = model.FindParameter("ParamAngleX");
|
||||||
|
var targetParamY = model.FindParameter("ParamAngleY");
|
||||||
|
|
||||||
|
dragPanel.GuiInput += (Godot.InputEvent e) =>
|
||||||
|
{
|
||||||
|
|
||||||
|
if (e is Godot.InputEventMouseButton mb)
|
||||||
|
{
|
||||||
|
if (mb.ButtonIndex == Godot.MouseButton.Left)
|
||||||
|
{
|
||||||
|
if (mb.Pressed)
|
||||||
|
{
|
||||||
|
dragging = true;
|
||||||
|
mouseStartX = mb.GlobalPosition.X;
|
||||||
|
mouseStartY = mb.GlobalPosition.Y;
|
||||||
|
baseValueX = targetParamX?.Value ?? 0f;
|
||||||
|
baseValueY = targetParamY?.Value ?? 0f;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (dragging)
|
||||||
|
{
|
||||||
|
dragging = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dragging && e is Godot.InputEventMouseMotion mm)
|
||||||
|
{
|
||||||
|
var deltaX = (mm.GlobalPosition.X - mouseStartX) / 30f;
|
||||||
|
var deltaY = (mm.GlobalPosition.Y - mouseStartY) / 30f;
|
||||||
|
|
||||||
|
if (targetParamX != null)
|
||||||
|
{
|
||||||
|
var newX = Math.Clamp(baseValueX + deltaX, targetParamX.MinimumValue, targetParamX.MaximumValue);
|
||||||
|
model.SetLiveParameter("ParamAngleX", newX);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetParamY != null)
|
||||||
|
{
|
||||||
|
var newY = Math.Clamp(baseValueY + deltaY, targetParamY.MinimumValue, targetParamY.MaximumValue);
|
||||||
|
model.SetLiveParameter("ParamAngleY", newY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
var container = FindNode<Control>("Lastground");
|
||||||
|
if (container != null)
|
||||||
|
{
|
||||||
|
var model = container.GetNodeOrNull<Node>("Live2DTestModel");
|
||||||
|
if (model != null)
|
||||||
|
model.QueueFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
var dragPanel = FindNode<Godot.ColorRect>("Live2DDragPanel");
|
||||||
|
if (dragPanel != null)
|
||||||
|
dragPanel.QueueFree();
|
||||||
Reference in New Issue
Block a user