Added riding animations to Dragonite. Implemented animations for Serperior.

This commit is contained in:
Jakotens
2025-08-31 13:23:20 -06:00
parent d663461c51
commit 0f44b40d21
9 changed files with 4360 additions and 821 deletions
@@ -6,9 +6,9 @@
"identifier": "geometry.dragonite",
"texture_width": 256,
"texture_height": 128,
"visible_bounds_width": 9,
"visible_bounds_height": 5.5,
"visible_bounds_offset": [0, 2.25, 0]
"visible_bounds_width": 10,
"visible_bounds_height": 6,
"visible_bounds_offset": [0, 2, 0]
},
"bones": [
{
@@ -69,14 +69,6 @@
{"origin": [-8, 19.5, -8], "size": [16, 9, 15], "inflate": 0.25, "uv": [193, 85]}
]
},
{
"name": "locator_seat2",
"parent": "chest",
"pivot": [0, 21, 6],
"locators": {
"seat_2": [0, 21, 6]
}
},
{
"name": "mailbag",
"parent": "chest",
@@ -96,11 +88,11 @@
]
},
{
"name": "locator_seat1",
"name": "locator_seat_1",
"parent": "chest2",
"pivot": [0, 32, 6],
"pivot": [0, 36, 8],
"locators": {
"seat_1": [0, 32, 6]
"seat_1": [0, 36, 8]
}
},
{
@@ -744,7 +736,7 @@
{
"name": "legs",
"parent": "body",
"pivot": [5, 15, 0]
"pivot": [0, 14, 0]
},
{
"name": "leg_left",
@@ -895,4 +887,4 @@
]
}
]
}
}
@@ -312,9 +312,9 @@
"parent": "eye_left",
"pivot": [2.92, 36.1, -2.91],
"cubes": [
{"origin": [2.92, 35.85, -4.41], "size": [0, 1, 2], "inflate": 0.01, "uv": [20, 19]},
{"origin": [2.92, 36.1, -2.41], "size": [0, 1, 1], "inflate": 0.01, "uv": [22, 21]},
{"origin": [1.92, 35.65, -4.41], "size": [1, 1, 0], "inflate": 0.01, "uv": [20, 22]}
{"origin": [2.92, 35.85, -3.41], "size": [0, 1, 1], "inflate": 0.01, "uv": [24, 20]},
{"origin": [2.92, 36.1, -2.41], "size": [0, 1, 1], "inflate": 0.01, "uv": [24, 21]},
{"origin": [1.92, 35.6, -4.41], "size": [1, 1, 1], "inflate": 0.01, "uv": [20, 21]}
]
},
{
@@ -396,9 +396,9 @@
"parent": "eye_right",
"pivot": [-2.92, 36.1, -2.91],
"cubes": [
{"origin": [-2.92, 35.85, -4.41], "size": [0, 1, 2], "inflate": 0.01, "uv": [24, 19], "mirror": true},
{"origin": [-2.92, 35.85, -3.41], "size": [0, 1, 1], "inflate": 0.01, "uv": [26, 20], "mirror": true},
{"origin": [-2.92, 36.1, -2.41], "size": [0, 1, 1], "inflate": 0.01, "uv": [26, 21], "mirror": true},
{"origin": [-2.92, 35.65, -4.41], "size": [1, 1, 0], "inflate": 0.01, "uv": [24, 22], "mirror": true}
{"origin": [-2.92, 35.6, -4.41], "size": [1, 1, 1], "inflate": 0.01, "uv": [38, 22], "mirror": true}
]
},
{
@@ -445,12 +445,28 @@
{
"name": "mouth",
"parent": "head_angle",
"pivot": [0, 32.1, -3.5],
"pivot": [0, 33, -3.5],
"cubes": [
{"origin": [-1.5, 32.1, -5], "size": [3, 0, 2], "inflate": 0.01, "uv": [-2, 0]},
{"origin": [-1.5, 32.28, -6.75], "size": [3, 0, 2], "inflate": 0.01, "pivot": [0, 37.3, -4.5], "rotation": [15, 0, 0], "uv": [-2, 2]},
{"origin": [0.25, 32.09, -3.15], "size": [1, 0, 1], "inflate": 0.01, "pivot": [0.75, 32.1, -3], "rotation": [10, 45, 7], "uv": [-1, 4]},
{"origin": [-1.25, 32.09, -3.15], "size": [1, 0, 1], "inflate": 0.01, "pivot": [-0.75, 32.1, -3], "rotation": [10, -45, -7], "uv": [1, 4], "mirror": true}
{"origin": [-1, 33, -5], "size": [2, 0, 2], "pivot": [0, 33, -3], "rotation": [5.2, 0, 0], "uv": [-2, 0]},
{"origin": [-1, 33.18, -6.2], "size": [2, 0, 1], "inflate": 0.01, "pivot": [0.5, 38.2, -4.2], "rotation": [15, 0, 0], "uv": [-1, 2]}
]
},
{
"name": "tooth_left",
"parent": "mouth",
"pivot": [0.55, 32.99, -2.9],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [0.05, 33.02, -3.2], "size": [1, 0, 1], "inflate": 0.01, "pivot": [0.55, 32.99, -2.7], "rotation": [0, 45, 0], "uv": [-1, 4], "mirror": true}
]
},
{
"name": "tooth_right",
"parent": "mouth",
"pivot": [-0.55, 32.99, -2.9],
"rotation": [10, 0, 0],
"cubes": [
{"origin": [-1.05, 33.02, -3.2], "size": [1, 0, 1], "inflate": 0.01, "pivot": [-0.55, 32.99, -2.7], "rotation": [0, -45, 0], "uv": [1, 4]}
]
},
{
@@ -512,30 +528,30 @@
{
"name": "muzzle",
"parent": "head_angle",
"pivot": [0, 37.2, -4.5],
"pivot": [0, 37.1, -4.5],
"rotation": [15, 0, 0],
"cubes": [
{"origin": [-1.5, 32.2, -7.25], "size": [3, 5, 3], "inflate": 0.005, "uv": [0, 13]},
{"origin": [1.25, 32.2, -7.25], "size": [1, 5, 3], "uv": [12, 13]},
{"origin": [-2.25, 32.2, -7.25], "size": [1, 5, 3], "uv": [20, 13], "mirror": true}
{"origin": [-1.5, 32.1, -7.25], "size": [3, 5, 3], "inflate": 0.005, "uv": [0, 13]},
{"origin": [1.25, 32.1, -7.25], "size": [1, 5, 3], "uv": [12, 13]},
{"origin": [-2.25, 32.1, -7.25], "size": [1, 5, 3], "uv": [20, 13], "mirror": true}
]
},
{
"name": "muzzle2",
"parent": "muzzle",
"pivot": [0, 33.2, -7],
"pivot": [0, 33.1, -7],
"rotation": [-5, 0, 0],
"cubes": [
{"origin": [-1.5, 33.2, -9.25], "size": [3, 4, 3], "inflate": 0.01, "uv": [19, 0]}
{"origin": [-1.5, 33.1, -9.25], "size": [3, 4, 3], "inflate": 0.01, "uv": [19, 0]}
]
},
{
"name": "muzzle3",
"parent": "muzzle2",
"pivot": [0, 34.2, -9.25],
"pivot": [0, 34.1, -9.25],
"rotation": [-10, 0, 0],
"cubes": [
{"origin": [-1, 34.2, -11.25], "size": [2, 3, 2], "inflate": 0.01, "uv": [35, 2]}
{"origin": [-1, 34.1, -11.25], "size": [2, 3, 2], "inflate": 0.01, "uv": [35, 2]}
]
},
{
@@ -679,6 +695,15 @@
{"origin": [-4.5, 0, -4.5], "size": [9, 10, 9], "inflate": 0.1, "uv": [60, 0]}
]
},
{
"name": "locator_seat_1",
"parent": "segment1",
"pivot": [0, 1, 4.5],
"rotation": [-90, 0, 0],
"locators": {
"seat_1": [0, 1, 4.5]
}
},
{
"name": "segment2",
"parent": "segment1",
@@ -726,7 +751,7 @@
{
"name": "segment7",
"parent": "segment6",
"pivot": [0, -43, -0.5],
"pivot": [0, -43, 0],
"cubes": [
{"origin": [-1.5, -52, -1.5], "size": [3, 10, 3], "uv": [73, 35]}
]
@@ -1,17 +1,16 @@
{
"rootBone": "dragonite",
"portraitScale": 1.2,
"portraitTranslation": [
-0.2,
2.6,
0
],
"portraitTranslation": [-0.2, 2.6, 0],
"profileScale": 0.41,
"profileTranslation": [
0,
1.1,
-6
],
"profileTranslation": [0, 1.1, -6],
"firstPersonCameraOffset": {
"seat_1": [0, 0.5, 0]
},
"thirdPersonCameraOffset": {
"seat_1": [0, 1, 5],
"seat_1_reverse": [0, 1, 5]
},
"animations": {
"cry": "q.bedrock_stateful('dragonite', 'cry')"
},
@@ -25,14 +24,12 @@
]
},
"standing": {
"poseTypes": [
"STAND",
"NONE",
"PORTRAIT",
"PROFILE"
],
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"isBattle": false,
"condition": "q.has_entity ? !q.in_air : 1.0",
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'ground_idle')"
],
"quirks": [
@@ -40,11 +37,10 @@
]
},
"walk": {
"poseTypes": [
"WALK"
],
"poseTypes": ["WALK"],
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'ground_walk')"
],
"quirks": [
@@ -52,11 +48,11 @@
]
},
"battle-standing": {
"poseTypes": [
"STAND"
],
"poseTypes": ["STAND"],
"isBattle": true,
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'battle_idle')"
],
"quirks": [
@@ -64,11 +60,10 @@
]
},
"hover": {
"poseTypes": [
"HOVER"
],
"poseTypes": ["HOVER"],
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'air_idle')"
],
"quirks": [
@@ -76,12 +71,33 @@
]
},
"fly": {
"poseTypes": [
"FLY"
],
"poseTypes": ["FLY"],
"condition": "!q.is_gliding",
"animations": [
"q.look('head')",
"q.bedrock('dragonite', 'air_fly')"
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'air_fly')",
{
"condition": "q.is_ridden && q.has_entity",
"animation": "q.bedrock('dragonite', 'ride_air_fly')"
}
],
"quirks": [
"q.bedrock_quirk('dragonite', 'blink')"
]
},
"glide": {
"poseTypes": ["FLY"],
"condition": "q.is_gliding",
"animations": [
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'air_glide')",
"q.bedrock('dragonite', 'ride_air_dive')",
{
"condition": "q.is_ridden && q.has_entity",
"animation": "q.bedrock('dragonite', 'ride_air_glide')"
}
],
"quirks": [
"q.bedrock_quirk('dragonite', 'blink')"
@@ -89,11 +105,10 @@
},
"float": {
"isTouchingWater": true,
"poseTypes": [
"FLOAT"
],
"poseTypes": ["FLOAT"],
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'water_idle')"
],
"quirks": [
@@ -102,11 +117,10 @@
},
"swim": {
"isTouchingWater": true,
"poseTypes": [
"SWIM"
],
"poseTypes": ["SWIM"],
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'water_swim')"
],
"quirks": [
@@ -116,12 +130,10 @@
"surface_idle": {
"isTouchingWater": true,
"isUnderWater": false,
"poseTypes": [
"STAND",
"FLOAT"
],
"poseTypes": ["STAND", "FLOAT"],
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'surfacewater_idle')"
],
"quirks": [
@@ -131,11 +143,10 @@
"surface_swim": {
"isTouchingWater": true,
"isUnderWater": false,
"poseTypes": [
"SWIM"
],
"poseTypes": ["SWIM"],
"animations": [
"q.look('head')",
"q.look('neck', 0.5, 1, 10, -10, 20, -20)",
"q.look('head', 1, 0.25, 10, -15, 5, -5)",
"q.bedrock('dragonite', 'surfacewater_swim')"
],
"quirks": [
@@ -1,35 +1,94 @@
{
"portraitScale": 2.1,
"portraitTranslation": [-0.53, 1.37, 0],
"portraitScale": 1.81,
"portraitTranslation": [-0.59, 1.3, 0],
"profileScale": 0.6,
"profileTranslation": [0.1, 0.87, 0],
"profileTranslation": [0.15, 0.87, 0],
"rootBone": "serperior",
"firstPersonCameraOffset": {
"seat_1": [0, 0.35, 0]
},
"thirdPersonCameraOffset": {
"seat_1": [0, 0.75, 4],
"seat_1_reverse": [0, 0.75, 4]
},
"animations": {
"cry": "q.bedrock_stateful('serperior', 'cry')"
},
"poses": {
"standing": {
"poseTypes": [
"STAND",
"NONE",
"PORTRAIT",
"PROFILE"
],
"poseTypes": ["STAND", "NONE", "PORTRAIT", "PROFILE"],
"condition": "q.has_entity ? !q.in_air : 1.0",
"isBattle": false,
"animations": [
"q.look('head')",
"q.look('neck3', 0.5, 0.5, 5, -20, 12.5, -12.5)",
"q.look('neck4', 0.75, 0.75, 25, 0, 10, -10)",
"q.look('head', 1, 1, 17.5, -45, 30, -30)",
"q.bedrock('serperior', 'ground_idle')"
],
"quirks": [
"q.bedrock_quirk('serperior', 'blink')",
"q.bedrock_quirk('serperior', q.array('idle_quirk1', 'idle_quirk2'), 20, 40, 1))"
]
},
"battle-standing": {
"poseTypes": ["STAND"],
"isBattle": true,
"animations": [
"q.look('neck3', 0.5, 0.5, 5, -20, 12.5, -12.5)",
"q.look('neck4', 0.75, 0.75, 25, 0, 10, -10)",
"q.look('head', 1, 1, 17.5, -45, 30, -30)",
"q.bedrock('serperior', 'battle_idle')"
],
"quirks": [
"q.bedrock_quirk('serperior', 'blink')",
"q.bedrock_quirk('serperior', 'idle_quirk1', 20, 40, 1)"
]
},
"ride-jump": {
"poseTypes": ["STAND", "WALK"],
"isBattle": false,
"condition": "q.in_air",
"animations": [
"q.look('neck3', 0.5, 0.5, 5, -20, 12.5, -12.5)",
"q.look('neck4', 0.75, 0.75, 25, 0, 10, -10)",
"q.look('head', 1, 1, 17.5, -45, 30, -30)",
"q.bedrock('serperior', 'ride_jump')",
{
"condition": "q.is_ridden && q.has_entity",
"animation": "q.bedrock('serperior', 'ride_ground_run')"
}
],
"quirks": ["q.bedrock_quirk('serperior', 'blink')"],
"transformTicks": 5,
"transformToTicks": 10
},
"walking": {
"poseTypes": ["WALK", "FLOAT", "SWIM"],
"condition": "!q.in_air && !q.is_sprinting",
"animations": [
"q.look('neck3', 0.5, 0.5, 5, -20, 12.5, -12.5)",
"q.look('neck4', 0.75, 0.75, 25, 0, 10, -10)",
"q.look('head', 1, 1, 17.5, -45, 30, -30)",
"q.bedrock('serperior', 'ground_walk')",
{
"condition": "q.is_ridden && q.has_entity",
"animation": "q.bedrock('serperior', 'ride_ground_walk')"
}
],
"quirks": ["q.bedrock_quirk('serperior', 'blink')"]
},
"walking": {
"poseTypes": [
"WALK",
"FLOAT",
"SWIM"
],
"sprinting": {
"poseTypes": ["WALK", "SWIM"],
"condition": "!q.in_air && q.is_sprinting",
"animations": [
"q.look('head')",
"q.bedrock('serperior', 'ground_walk')"
"q.look('neck3', 0.5, 0.5, 5, -20, 12.5, -12.5)",
"q.look('neck4', 0.75, 0.75, 25, 0, 10, -10)",
"q.look('head', 1, 1, 17.5, -45, 30, -30)",
"q.bedrock('serperior', 'ground_run')",
{
"condition": "q.is_ridden && q.has_entity",
"animation": "q.bedrock('serperior', 'ride_ground_run')"
}
],
"quirks": ["q.bedrock_quirk('serperior', 'blink')"]
},
@@ -39,17 +98,6 @@
"cry": "q.bedrock_stateful('dummy', 'cry')"
},
"animations": ["q.bedrock('serperior', 'sleep')"]
},
"water_surface": {
"poseTypes": [
"STAND"
],
"isTouchingWater": true,
"animations": [
"q.look('head')",
"q.bedrock('serperior', 'ground_walk')"
],
"quirks": ["q.bedrock_quirk('serperior', 'blink')"]
}
}
}
@@ -5,7 +5,7 @@
"configurations": [
{
"type": "add_tasks_to_activity",
"condition": "q.entity.is_in_party ? true : (math.random(0, 1) < (0.1/20) && q.entity.distance_to_owner < 24 && q.entity.can_see(q.entity.owner, 24))",
"condition": "q.entity.is_in_party ? true : (math.random(0, 1) < (0.1/20) && q.entity.distance_to_owner < 40 && q.entity.can_see(q.entity.owner, 40))",
"activity": "idle",
"tasksByPriority": {
"4": [
@@ -92,29 +92,25 @@
"behaviours": {
"AIR": {
"key": "cobblemon:air/bird",
"gravity": "q.gravity * (0.1 + (q.passenger_count - 1) * 0.1)",
"speed": "Math.clamp(q.entity.velocity.horizontal_magnitude + 0.33, 0, 1)",
"jumpVector": [
0,
"0.3*q.jump_strength/50",
0
"rideSounds": [
{
"soundLocation": "cobblemon:ride.loop.leather",
"volumeExpr": "math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2)",
"pitchExpr": "math.max(1.0 ,0.2 + math.pow(math.min(q.ride_velocity() / 1.5, 1.0),2))",
"playForNonPassengers": true,
"muffleEnabled": true
}
],
"stats": {
"SPEED": "30-60",
"ACCELERATION": "30-65",
"SKILL": "30-60",
"JUMP": "30-60",
"STAMINA": "35-75"
"SPEED": "25-50",
"ACCELERATION": "20-100",
"SKILL": "50-100",
"JUMP": "25-50",
"STAMINA": "30-70"
}
},
"LAND": {
"key": "cobblemon:land/horse",
"speed": "Math.clamp(q.entity.velocity.horizontal_magnitude + 0.33, 0, 1)",
"jumpVector": [
0,
"0.3*q.jump_strength/50",
"-1 * 0.5*q.jump_strength/50"
],
"stats": {
"SPEED": "10-20",
"ACCELERATION": "90-100",
@@ -128,60 +124,9 @@
{
"offset": {
"x": 0,
"y": 1.5,
"z": -0.5
},
"poseOffsets": [
{
"poseTypes": [
"HOVER"
],
"offset": {
"x": 0,
"y": 0.7,
"z": -1
}
},
{
"poseTypes": [
"FLY"
],
"offset": {
"x": 0,
"y": 0.2,
"z": -1
}
}
]
},
{
"offset": {
"x": 0,
"y": 1.5,
"z": -1.5
},
"poseOffsets": [
{
"poseTypes": [
"HOVER"
],
"offset": {
"x": 0,
"y": 0.4,
"z": -1
}
},
{
"poseTypes": [
"FLY"
],
"offset": {
"x": 0,
"y": 0.2,
"z": -0.2
}
}
]
"y": 0,
"z": 0
}
}
]
},
@@ -49,6 +49,10 @@
"fixed": false
},
"behaviour": {
"walk": {
"canWalk": true,
"walkSpeed": 0.19
},
"resting": {
"canSleep": true,
"light": "0-4"
@@ -57,6 +61,29 @@
"maxSize": "5"
}
},
"riding": {
"behaviours": {
"LAND": {
"key": "cobblemon:land/horse",
"stats": {
"SPEED": "10-20",
"ACCELERATION": "90-100",
"SKILL": "15-30",
"JUMP": "10-20",
"STAMINA": "15-30"
}
}
},
"seats": [
{
"offset": {
"x": 0,
"y": 0,
"z": 0
}
}
]
},
"drops": {
"amount": 1,
"entries": [