feat(pets): replace static cats with Live2D LittleCat model (black texture)
- Copied LittleCat model files to frontend/public/live2d/models/little-cat/ - Using the black alternate texture as default - Created Live2DCat component that renders the model in a small canvas - PetZone now shows a single Live2D cat instead of two SVG cats
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 242 KiB |
@@ -0,0 +1,271 @@
|
||||
{
|
||||
"Version": 3,
|
||||
"Parameters": [
|
||||
{
|
||||
"Id": "ParamAngleX",
|
||||
"GroupId": "",
|
||||
"Name": "Angle X"
|
||||
},
|
||||
{
|
||||
"Id": "ParamAngleY",
|
||||
"GroupId": "",
|
||||
"Name": "Angle Y"
|
||||
},
|
||||
{
|
||||
"Id": "ParamAngleZ",
|
||||
"GroupId": "",
|
||||
"Name": "Angle Z"
|
||||
},
|
||||
{
|
||||
"Id": "ParamEyeLOpen",
|
||||
"GroupId": "",
|
||||
"Name": "EyeL Open"
|
||||
},
|
||||
{
|
||||
"Id": "ParamEyeLSmile",
|
||||
"GroupId": "",
|
||||
"Name": "EyeL Smile"
|
||||
},
|
||||
{
|
||||
"Id": "ParamEyeROpen",
|
||||
"GroupId": "",
|
||||
"Name": "EyeR Open"
|
||||
},
|
||||
{
|
||||
"Id": "ParamEyeRSmile",
|
||||
"GroupId": "",
|
||||
"Name": "EyeR Smile"
|
||||
},
|
||||
{
|
||||
"Id": "ParamEyeBallX",
|
||||
"GroupId": "",
|
||||
"Name": "Eyeball X"
|
||||
},
|
||||
{
|
||||
"Id": "ParamEyeBallY",
|
||||
"GroupId": "",
|
||||
"Name": "Eyeball Y"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowLY",
|
||||
"GroupId": "",
|
||||
"Name": "BrowL Y"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowRY",
|
||||
"GroupId": "",
|
||||
"Name": "BrowR Y"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowLX",
|
||||
"GroupId": "",
|
||||
"Name": "BrowL X"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowRX",
|
||||
"GroupId": "",
|
||||
"Name": "BrowR X"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowLAngle",
|
||||
"GroupId": "",
|
||||
"Name": "BrowL Angle"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowRAngle",
|
||||
"GroupId": "",
|
||||
"Name": "BrowR Angle"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowLForm",
|
||||
"GroupId": "",
|
||||
"Name": "BrowL Form"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBrowRForm",
|
||||
"GroupId": "",
|
||||
"Name": "BrowR Form"
|
||||
},
|
||||
{
|
||||
"Id": "ParamMouthForm",
|
||||
"GroupId": "",
|
||||
"Name": "Mouth Form"
|
||||
},
|
||||
{
|
||||
"Id": "ParamMouthOpenY",
|
||||
"GroupId": "",
|
||||
"Name": "Mouth Open"
|
||||
},
|
||||
{
|
||||
"Id": "ParamCheek",
|
||||
"GroupId": "",
|
||||
"Name": "Cheek"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBodyAngleX",
|
||||
"GroupId": "",
|
||||
"Name": "Body X"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBodyAngleY",
|
||||
"GroupId": "",
|
||||
"Name": "Body Y"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBodyAngleZ",
|
||||
"GroupId": "",
|
||||
"Name": "Body Z"
|
||||
},
|
||||
{
|
||||
"Id": "ParamBreath",
|
||||
"GroupId": "",
|
||||
"Name": "Breathing"
|
||||
},
|
||||
{
|
||||
"Id": "ParamArms",
|
||||
"GroupId": "",
|
||||
"Name": "Arms"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation2",
|
||||
"GroupId": "ParamGroup",
|
||||
"Name": "[0]tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation3",
|
||||
"GroupId": "ParamGroup",
|
||||
"Name": "[1]tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation4",
|
||||
"GroupId": "ParamGroup",
|
||||
"Name": "[2]tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation5",
|
||||
"GroupId": "ParamGroup",
|
||||
"Name": "[3]tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation6",
|
||||
"GroupId": "ParamGroup",
|
||||
"Name": "[4]tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation7",
|
||||
"GroupId": "ParamGroup",
|
||||
"Name": "[5]tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation10",
|
||||
"GroupId": "ParamGroup2",
|
||||
"Name": "[0]ear L wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation11",
|
||||
"GroupId": "ParamGroup2",
|
||||
"Name": "[1]ear L wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation12",
|
||||
"GroupId": "ParamGroup3",
|
||||
"Name": "[0]ear R wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "Param_Angle_Rotation13",
|
||||
"GroupId": "ParamGroup3",
|
||||
"Name": "[1]ear R wiggle"
|
||||
}
|
||||
],
|
||||
"ParameterGroups": [
|
||||
{
|
||||
"Id": "ParamGroup",
|
||||
"GroupId": "",
|
||||
"Name": "tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "ParamGroup2",
|
||||
"GroupId": "",
|
||||
"Name": "ear L wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "ParamGroup3",
|
||||
"GroupId": "",
|
||||
"Name": "ear L wiggle"
|
||||
}
|
||||
],
|
||||
"Parts": [
|
||||
{
|
||||
"Id": "Part",
|
||||
"Name": "ear L"
|
||||
},
|
||||
{
|
||||
"Id": "headfolder",
|
||||
"Name": "head"
|
||||
},
|
||||
{
|
||||
"Id": "Part3",
|
||||
"Name": "ear R"
|
||||
},
|
||||
{
|
||||
"Id": "tail_Skinning",
|
||||
"Name": "tail(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "PartSketch0",
|
||||
"Name": "[ Guide Image]"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh_Skinning2",
|
||||
"Name": "inner ear L(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh_Skinning",
|
||||
"Name": "inner ear L(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh0_Skinning2",
|
||||
"Name": "ear L(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh0_Skinning",
|
||||
"Name": "ear L(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "face",
|
||||
"Name": "face"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh4_Skinning2",
|
||||
"Name": "inner ear R(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh4_Skinning",
|
||||
"Name": "inner ear R(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh5_Skinning2",
|
||||
"Name": "ear R(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "ArtMesh5_Skinning",
|
||||
"Name": "ear R(Skinning)"
|
||||
},
|
||||
{
|
||||
"Id": "mouth",
|
||||
"Name": "mouth"
|
||||
},
|
||||
{
|
||||
"Id": "base",
|
||||
"Name": "base"
|
||||
},
|
||||
{
|
||||
"Id": "open",
|
||||
"Name": "open"
|
||||
},
|
||||
{
|
||||
"Id": "Part2",
|
||||
"Name": "inner mouth"
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"Version": 3,
|
||||
"FileReferences": {
|
||||
"Moc": "LittleCat.moc3",
|
||||
"Textures": [
|
||||
"LittleCat.2048/texture_00.png"
|
||||
],
|
||||
"Physics": "LittleCat.physics3.json",
|
||||
"DisplayInfo": "LittleCat.cdi3.json"
|
||||
},
|
||||
"Groups": [
|
||||
{
|
||||
"Target": "Parameter",
|
||||
"Name": "EyeBlink",
|
||||
"Ids": [
|
||||
"ParamEyeLOpen",
|
||||
"ParamEyeROpen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Target": "Parameter",
|
||||
"Name": "LipSync",
|
||||
"Ids": [
|
||||
"ParamMouthForm",
|
||||
"ParamMouthOpenY"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,451 @@
|
||||
{
|
||||
"Version": 3,
|
||||
"Meta": {
|
||||
"PhysicsSettingCount": 3,
|
||||
"TotalInputCount": 8,
|
||||
"TotalOutputCount": 11,
|
||||
"VertexCount": 16,
|
||||
"EffectiveForces": {
|
||||
"Gravity": {
|
||||
"X": 0,
|
||||
"Y": -1
|
||||
},
|
||||
"Wind": {
|
||||
"X": 0,
|
||||
"Y": 0
|
||||
}
|
||||
},
|
||||
"PhysicsDictionary": [
|
||||
{
|
||||
"Id": "PhysicsSetting1",
|
||||
"Name": "tail wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "PhysicsSetting2",
|
||||
"Name": "ear wiggle"
|
||||
},
|
||||
{
|
||||
"Id": "PhysicsSetting3",
|
||||
"Name": "arms"
|
||||
}
|
||||
]
|
||||
},
|
||||
"PhysicsSettings": [
|
||||
{
|
||||
"Id": "PhysicsSetting1",
|
||||
"Input": [
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamBodyAngleX"
|
||||
},
|
||||
"Weight": 100,
|
||||
"Type": "X",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamBodyAngleZ"
|
||||
},
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
}
|
||||
],
|
||||
"Output": [
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation2"
|
||||
},
|
||||
"VertexIndex": 1,
|
||||
"Scale": 33.072,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation3"
|
||||
},
|
||||
"VertexIndex": 2,
|
||||
"Scale": 33.978,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation4"
|
||||
},
|
||||
"VertexIndex": 3,
|
||||
"Scale": 34.41,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation5"
|
||||
},
|
||||
"VertexIndex": 4,
|
||||
"Scale": 32.674,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation6"
|
||||
},
|
||||
"VertexIndex": 5,
|
||||
"Scale": 27.941,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation7"
|
||||
},
|
||||
"VertexIndex": 6,
|
||||
"Scale": 24.302,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
}
|
||||
],
|
||||
"Vertices": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"Mobility": 1,
|
||||
"Delay": 1,
|
||||
"Acceleration": 1,
|
||||
"Radius": 0
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 10
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 20
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 30
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 40
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 50
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 60
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 70
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 80
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 90
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 100
|
||||
},
|
||||
"Mobility": 0.85,
|
||||
"Delay": 0.85,
|
||||
"Acceleration": 1.2,
|
||||
"Radius": 10
|
||||
}
|
||||
],
|
||||
"Normalization": {
|
||||
"Position": {
|
||||
"Minimum": -10,
|
||||
"Default": 0,
|
||||
"Maximum": 10
|
||||
},
|
||||
"Angle": {
|
||||
"Minimum": -10,
|
||||
"Default": 0,
|
||||
"Maximum": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": "PhysicsSetting2",
|
||||
"Input": [
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamAngleX"
|
||||
},
|
||||
"Weight": 60,
|
||||
"Type": "X",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamAngleZ"
|
||||
},
|
||||
"Weight": 60,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamBodyAngleX"
|
||||
},
|
||||
"Weight": 40,
|
||||
"Type": "X",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamBodyAngleZ"
|
||||
},
|
||||
"Weight": 40,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
}
|
||||
],
|
||||
"Output": [
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation10"
|
||||
},
|
||||
"VertexIndex": 1,
|
||||
"Scale": 7.857,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation11"
|
||||
},
|
||||
"VertexIndex": 2,
|
||||
"Scale": 8.996,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation12"
|
||||
},
|
||||
"VertexIndex": 1,
|
||||
"Scale": 7.857,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "Param_Angle_Rotation13"
|
||||
},
|
||||
"VertexIndex": 2,
|
||||
"Scale": 8.996,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
}
|
||||
],
|
||||
"Vertices": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"Mobility": 1,
|
||||
"Delay": 1,
|
||||
"Acceleration": 1,
|
||||
"Radius": 0
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 10
|
||||
},
|
||||
"Mobility": 0.97,
|
||||
"Delay": 0.8,
|
||||
"Acceleration": 0.5,
|
||||
"Radius": 10
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 18
|
||||
},
|
||||
"Mobility": 0.95,
|
||||
"Delay": 0.8,
|
||||
"Acceleration": 0.8,
|
||||
"Radius": 8
|
||||
}
|
||||
],
|
||||
"Normalization": {
|
||||
"Position": {
|
||||
"Minimum": -10,
|
||||
"Default": 0,
|
||||
"Maximum": 10
|
||||
},
|
||||
"Angle": {
|
||||
"Minimum": -10,
|
||||
"Default": 0,
|
||||
"Maximum": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": "PhysicsSetting3",
|
||||
"Input": [
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamBodyAngleY"
|
||||
},
|
||||
"Weight": 100,
|
||||
"Type": "X",
|
||||
"Reflect": false
|
||||
},
|
||||
{
|
||||
"Source": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamBodyAngleZ"
|
||||
},
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
}
|
||||
],
|
||||
"Output": [
|
||||
{
|
||||
"Destination": {
|
||||
"Target": "Parameter",
|
||||
"Id": "ParamArms"
|
||||
},
|
||||
"VertexIndex": 1,
|
||||
"Scale": 32.201,
|
||||
"Weight": 100,
|
||||
"Type": "Angle",
|
||||
"Reflect": false
|
||||
}
|
||||
],
|
||||
"Vertices": [
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 0
|
||||
},
|
||||
"Mobility": 1,
|
||||
"Delay": 1,
|
||||
"Acceleration": 1,
|
||||
"Radius": 0
|
||||
},
|
||||
{
|
||||
"Position": {
|
||||
"X": 0,
|
||||
"Y": 10
|
||||
},
|
||||
"Mobility": 0.9,
|
||||
"Delay": 0.6,
|
||||
"Acceleration": 1.5,
|
||||
"Radius": 10
|
||||
}
|
||||
],
|
||||
"Normalization": {
|
||||
"Position": {
|
||||
"Minimum": -10,
|
||||
"Default": 0,
|
||||
"Maximum": 10
|
||||
},
|
||||
"Angle": {
|
||||
"Minimum": -10,
|
||||
"Default": 0,
|
||||
"Maximum": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user