diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 8099a24adf..32aa922761 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -243,9 +243,9 @@ ] }, "species": { - "wolf": { - "keyword": "wolf", - "generic": "Wolf" + "grolgar": { + "keyword": "grolgar", + "generic": "Grolgar" }, "saber": { "keyword": "sabertooth", @@ -493,6 +493,10 @@ "ogre": { "keyword": "ogre", "generic": "Ogre" + }, + "cyclops": { + "keyword": "cyclops", + "generic": "Cyclops" } } }, diff --git a/assets/voxygen/voxel/biped_large_center_manifest.ron b/assets/voxygen/voxel/biped_large_center_manifest.ron index 8cdd961d0c..9a799a37c2 100644 --- a/assets/voxygen/voxel/biped_large_center_manifest.ron +++ b/assets/voxygen/voxel/biped_large_center_manifest.ron @@ -27,4 +27,32 @@ center: ("npc.ogre.female.torso_lower"), ) ), + (Cyclops, Male): ( + head: ( + offset: (-7.0, -7.0, -6.5), + center: ("npc.cyclops.male.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -6.0), + center: ("npc.cyclops.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -6.0), + center: ("npc.cyclops.male.torso_lower"), + ) + ), + (Cyclops, Female): ( + head: ( + offset: (-7.0, -7.0, -6.5), + center: ("npc.cyclops.female.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -6.0), + center: ("npc.cyclops.female.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -6.0), + center: ("npc.cyclops.female.torso_lower"), + ) + ), }) diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index 0bae9fb070..a74c9306b1 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -67,4 +67,72 @@ lateral: ("npc.ogre.female.foot_r"), ) ), + (Cyclops, Male): ( + shoulder_l: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.cyclops.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.cyclops.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.cyclops.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.cyclops.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.5, -7.0), + lateral: ("npc.cyclops.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -7.0), + lateral: ("npc.cyclops.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -5.0), + lateral: ("npc.cyclops.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -5.0), + lateral: ("npc.cyclops.male.foot_r"), + ) + ), + (Cyclops, Female): ( + shoulder_l: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.cyclops.female.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.cyclops.female.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.cyclops.female.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.cyclops.female.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.5, -7.0), + lateral: ("npc.cyclops.female.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -7.0), + lateral: ("npc.cyclops.female.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -5.0), + lateral: ("npc.cyclops.female.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -5.0), + lateral: ("npc.cyclops.female.foot_r"), + ) + ), }) diff --git a/assets/voxygen/voxel/npc/cyclops/female/foot_l.vox b/assets/voxygen/voxel/npc/cyclops/female/foot_l.vox new file mode 100644 index 0000000000..28e8831551 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68922b688dd4b6af52b7e32e84f614d7b6cffa7fe7765868b235055f130e95ca +size 2196 diff --git a/assets/voxygen/voxel/npc/cyclops/female/foot_r.vox b/assets/voxygen/voxel/npc/cyclops/female/foot_r.vox new file mode 100644 index 0000000000..724deb18c0 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbec9af121656c67dcad42f86b508da2b675a310795a941bebbb7615e9bc0b10 +size 2196 diff --git a/assets/voxygen/voxel/npc/cyclops/female/hammer.vox b/assets/voxygen/voxel/npc/cyclops/female/hammer.vox new file mode 100644 index 0000000000..225e1b06eb --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/hammer.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80441437d997cb0a4c04f2376efc43ab30e32206778f5d3ad3be5d1bdd6e1910 +size 2952 diff --git a/assets/voxygen/voxel/npc/cyclops/female/hand_l.vox b/assets/voxygen/voxel/npc/cyclops/female/hand_l.vox new file mode 100644 index 0000000000..854c3ec7b7 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a79fac3f12d2d75a863d0871fbf98319cf7a46e91ad43dcca2a016879884483f +size 2112 diff --git a/assets/voxygen/voxel/npc/cyclops/female/hand_r.vox b/assets/voxygen/voxel/npc/cyclops/female/hand_r.vox new file mode 100644 index 0000000000..d17bda172b --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c78a6bce195ec1ae3146deb4027411f6ce4437d08c4e61fd011af67af737654 +size 2112 diff --git a/assets/voxygen/voxel/npc/cyclops/female/head.vox b/assets/voxygen/voxel/npc/cyclops/female/head.vox new file mode 100644 index 0000000000..f11c524547 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c26d1dee037c0b02b31ddc864699ca53533410162b30b58ee63e28f8e7c6f809 +size 4812 diff --git a/assets/voxygen/voxel/npc/cyclops/female/leg_l.vox b/assets/voxygen/voxel/npc/cyclops/female/leg_l.vox new file mode 100644 index 0000000000..80a44d9c98 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99f371b580f7c5887be8178306d3939c9cffec94dcc8f997f74f4b1b42bf26a2 +size 1932 diff --git a/assets/voxygen/voxel/npc/cyclops/female/leg_r.vox b/assets/voxygen/voxel/npc/cyclops/female/leg_r.vox new file mode 100644 index 0000000000..e91ad51fa9 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42bfae287134f49887a345180df8dcc534335c5f55dc90e24bd99f3b5c9cd815 +size 1932 diff --git a/assets/voxygen/voxel/npc/cyclops/female/shoulder_l.vox b/assets/voxygen/voxel/npc/cyclops/female/shoulder_l.vox new file mode 100644 index 0000000000..fa43b91ac4 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:315d56efea48853303cf38969c28fef54263acd39557c6a445e72ff7a8c5ce9c +size 2024 diff --git a/assets/voxygen/voxel/npc/cyclops/female/shoulder_r.vox b/assets/voxygen/voxel/npc/cyclops/female/shoulder_r.vox new file mode 100644 index 0000000000..c220338abf --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:456850b7812bda2a23fbf7786782718d5ebb924c7d9247da30ef9300dcf26094 +size 2024 diff --git a/assets/voxygen/voxel/npc/cyclops/female/torso_lower.vox b/assets/voxygen/voxel/npc/cyclops/female/torso_lower.vox new file mode 100644 index 0000000000..e5c571a2a6 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/torso_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22487461be00f47fe33f97301879e58b0a54a78c5dd363264dea74666f84c5fd +size 2996 diff --git a/assets/voxygen/voxel/npc/cyclops/female/torso_upper.vox b/assets/voxygen/voxel/npc/cyclops/female/torso_upper.vox new file mode 100644 index 0000000000..594d12c405 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/female/torso_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6213a11324dc9537913ef2ff6d6a7227d7ce1c8bb6b8c071acabeb10b1d1f63 +size 6272 diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox new file mode 100644 index 0000000000..28e8831551 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68922b688dd4b6af52b7e32e84f614d7b6cffa7fe7765868b235055f130e95ca +size 2196 diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox new file mode 100644 index 0000000000..724deb18c0 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbec9af121656c67dcad42f86b508da2b675a310795a941bebbb7615e9bc0b10 +size 2196 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hammer.vox b/assets/voxygen/voxel/npc/cyclops/male/hammer.vox new file mode 100644 index 0000000000..225e1b06eb --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/hammer.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80441437d997cb0a4c04f2376efc43ab30e32206778f5d3ad3be5d1bdd6e1910 +size 2952 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox new file mode 100644 index 0000000000..854c3ec7b7 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a79fac3f12d2d75a863d0871fbf98319cf7a46e91ad43dcca2a016879884483f +size 2112 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox new file mode 100644 index 0000000000..d17bda172b --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c78a6bce195ec1ae3146deb4027411f6ce4437d08c4e61fd011af67af737654 +size 2112 diff --git a/assets/voxygen/voxel/npc/cyclops/male/head.vox b/assets/voxygen/voxel/npc/cyclops/male/head.vox new file mode 100644 index 0000000000..f11c524547 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c26d1dee037c0b02b31ddc864699ca53533410162b30b58ee63e28f8e7c6f809 +size 4812 diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox new file mode 100644 index 0000000000..80a44d9c98 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99f371b580f7c5887be8178306d3939c9cffec94dcc8f997f74f4b1b42bf26a2 +size 1932 diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox new file mode 100644 index 0000000000..e91ad51fa9 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42bfae287134f49887a345180df8dcc534335c5f55dc90e24bd99f3b5c9cd815 +size 1932 diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox new file mode 100644 index 0000000000..fa43b91ac4 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:315d56efea48853303cf38969c28fef54263acd39557c6a445e72ff7a8c5ce9c +size 2024 diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox new file mode 100644 index 0000000000..c220338abf --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:456850b7812bda2a23fbf7786782718d5ebb924c7d9247da30ef9300dcf26094 +size 2024 diff --git a/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox b/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox new file mode 100644 index 0000000000..e5c571a2a6 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22487461be00f47fe33f97301879e58b0a54a78c5dd363264dea74666f84c5fd +size 2996 diff --git a/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox b/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox new file mode 100644 index 0000000000..594d12c405 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6213a11324dc9537913ef2ff6d6a7227d7ce1c8bb6b8c071acabeb10b1d1f63 +size 6272 diff --git a/assets/voxygen/voxel/npc/wolf/female/ears.vox b/assets/voxygen/voxel/npc/grolgar/female/ears.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/ears.vox rename to assets/voxygen/voxel/npc/grolgar/female/ears.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_lb.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_lb.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/foot_lb.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_lb.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_lf.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_lf.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/foot_lf.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_lf.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_rb.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_rb.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/foot_rb.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_rb.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_rf.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_rf.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/foot_rf.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_rf.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/head_lower.vox b/assets/voxygen/voxel/npc/grolgar/female/head_lower.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/head_lower.vox rename to assets/voxygen/voxel/npc/grolgar/female/head_lower.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/head_upper.vox rename to assets/voxygen/voxel/npc/grolgar/female/head_upper.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/jaw.vox b/assets/voxygen/voxel/npc/grolgar/female/jaw.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/jaw.vox rename to assets/voxygen/voxel/npc/grolgar/female/jaw.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/tail.vox b/assets/voxygen/voxel/npc/grolgar/female/tail.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/tail.vox rename to assets/voxygen/voxel/npc/grolgar/female/tail.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/torso_back.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_back.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/torso_back.vox rename to assets/voxygen/voxel/npc/grolgar/female/torso_back.vox diff --git a/assets/voxygen/voxel/npc/wolf/female/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/female/torso_front.vox rename to assets/voxygen/voxel/npc/grolgar/female/torso_front.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/ears.vox b/assets/voxygen/voxel/npc/grolgar/male/ears.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/ears.vox rename to assets/voxygen/voxel/npc/grolgar/male/ears.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_lb.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_lb.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/foot_lb.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_lb.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_lf.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_lf.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/foot_lf.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_lf.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_rb.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_rb.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/foot_rb.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_rb.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_rf.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_rf.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/foot_rf.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_rf.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/head_lower.vox b/assets/voxygen/voxel/npc/grolgar/male/head_lower.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/head_lower.vox rename to assets/voxygen/voxel/npc/grolgar/male/head_lower.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/head_upper.vox rename to assets/voxygen/voxel/npc/grolgar/male/head_upper.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/jaw.vox b/assets/voxygen/voxel/npc/grolgar/male/jaw.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/jaw.vox rename to assets/voxygen/voxel/npc/grolgar/male/jaw.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/tail.vox b/assets/voxygen/voxel/npc/grolgar/male/tail.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/tail.vox rename to assets/voxygen/voxel/npc/grolgar/male/tail.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/torso_back.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_back.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/torso_back.vox rename to assets/voxygen/voxel/npc/grolgar/male/torso_back.vox diff --git a/assets/voxygen/voxel/npc/wolf/male/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox similarity index 100% rename from assets/voxygen/voxel/npc/wolf/male/torso_front.vox rename to assets/voxygen/voxel/npc/grolgar/male/torso_front.vox diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index b1d556b3d8..3536ec793d 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -1,62 +1,62 @@ ({ - (Wolf, Male): ( + (Grolgar, Male): ( upper: ( offset: (-7.0, -9.0, -5.5), - central: ("npc.wolf.male.head_upper"), + central: ("npc.grolgar.male.head_upper"), ), lower: ( offset: (-7.0, -4.5, -5.0), - central: ("npc.wolf.male.head_lower"), + central: ("npc.grolgar.male.head_lower"), ), jaw: ( offset: (-3.0, -3.0, -2.5), - central: ("npc.wolf.male.jaw"), + central: ("npc.grolgar.male.jaw"), ), torso_f: ( offset: (-8.0, -5.5, -6.0), - central: ("npc.wolf.male.torso_front"), + central: ("npc.grolgar.male.torso_front"), ), torso_b: ( offset: (-7.0, -6.0, -6.0), - central: ("npc.wolf.male.torso_back"), + central: ("npc.grolgar.male.torso_back"), ), ears: ( offset: (-4.0, -1.0, -1.5), - central: ("npc.wolf.male.ears"), + central: ("npc.grolgar.male.ears"), ), tail: ( offset: (-2.0, -9.5, -5.0), - central: ("npc.wolf.male.tail"), + central: ("npc.grolgar.male.tail"), ), ), - (Wolf, Female): ( + (Grolgar, Female): ( upper: ( offset: (-7.0, -9.0, -5.5), - central: ("npc.wolf.female.head_upper"), + central: ("npc.grolgar.female.head_upper"), ), lower: ( offset: (-7.0, -4.5, -5.0), - central: ("npc.wolf.female.head_lower"), + central: ("npc.grolgar.female.head_lower"), ), jaw: ( offset: (-3.0, -3.0, -2.5), - central: ("npc.wolf.male.jaw"), + central: ("npc.grolgar.male.jaw"), ), torso_f: ( offset: (-8.0, -5.5, -6.0), - central: ("npc.wolf.female.torso_front"), + central: ("npc.grolgar.female.torso_front"), ), torso_b: ( offset: (-7.0, -6.0, -6.0), - central: ("npc.wolf.female.torso_back"), + central: ("npc.grolgar.female.torso_back"), ), ears: ( offset: (-4.0, -1.0, -1.5), - central: ("npc.wolf.female.ears"), + central: ("npc.grolgar.female.ears"), ), tail: ( offset: (-2.0, -9.5, -5.0), - central: ("npc.wolf.female.tail"), + central: ("npc.grolgar.female.tail"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 69c104c2fa..ed7260aa95 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -1,38 +1,38 @@ ({ - (Wolf, Male): ( + (Grolgar, Male): ( left_front: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.wolf.male.foot_lf"), + lateral: ("npc.grolgar.male.foot_lf"), ), right_front: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.wolf.male.foot_rf"), + lateral: ("npc.grolgar.male.foot_rf"), ), left_back: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.wolf.male.foot_lb"), + lateral: ("npc.grolgar.male.foot_lb"), ), right_back: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.wolf.male.foot_rb"), + lateral: ("npc.grolgar.male.foot_rb"), ), ), - (Wolf, Female): ( + (Grolgar, Female): ( left_front: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.wolf.female.foot_lf"), + lateral: ("npc.grolgar.female.foot_lf"), ), right_front: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.wolf.female.foot_rf"), + lateral: ("npc.grolgar.female.foot_rf"), ), left_back: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.wolf.female.foot_lb"), + lateral: ("npc.grolgar.female.foot_lb"), ), right_back: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.wolf.female.foot_rb"), + lateral: ("npc.grolgar.female.foot_rb"), ), ), (Saber, Male): ( diff --git a/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index 3a1635279b..598a15b7fe 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -28,6 +28,7 @@ impl From for super::Body { #[repr(u32)] pub enum Species { Ogre = 0, + Cyclops = 1, } /// Data representing per-species generic data. @@ -36,6 +37,7 @@ pub enum Species { #[derive(Clone, Debug, Deserialize)] pub struct AllSpecies { pub ogre: SpeciesMeta, + pub cyclops: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -45,11 +47,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies fn index(&self, &index: &'a Species) -> &Self::Output { match index { Species::Ogre => &self.ogre, + Species::Cyclops => &self.cyclops, } } } -pub const ALL_SPECIES: [Species; 1] = [Species::Ogre]; +pub const ALL_SPECIES: [Species; 2] = [Species::Ogre, Species::Cyclops]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { type Item = Species; diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index cfcf0aafc6..8d7a1265ff 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -27,7 +27,7 @@ impl From for super::Body { #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[repr(u32)] pub enum Species { - Wolf = 0, + Grolgar = 0, Saber = 1, Viper = 2, Tuskram = 3, @@ -42,7 +42,7 @@ pub enum Species { /// NOTE: Deliberately don't (yet?) implement serialize. #[derive(Clone, Debug, Deserialize)] pub struct AllSpecies { - pub wolf: SpeciesMeta, + pub grolgar: SpeciesMeta, pub saber: SpeciesMeta, pub viper: SpeciesMeta, pub tuskram: SpeciesMeta, @@ -58,7 +58,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies #[inline] fn index(&self, &index: &'a Species) -> &Self::Output { match index { - Species::Wolf => &self.wolf, + Species::Grolgar => &self.grolgar, Species::Saber => &self.saber, Species::Viper => &self.viper, Species::Tuskram => &self.tuskram, @@ -71,7 +71,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies } pub const ALL_SPECIES: [Species; 8] = [ - Species::Wolf, + Species::Grolgar, Species::Saber, Species::Viper, Species::Tuskram, diff --git a/voxygen/src/anim/biped_large/mod.rs b/voxygen/src/anim/biped_large/mod.rs index 0bb0621bcb..e5b3c38776 100644 --- a/voxygen/src/anim/biped_large/mod.rs +++ b/voxygen/src/anim/biped_large/mod.rs @@ -128,24 +128,31 @@ impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr { Self { head: match (body.species, body.body_type) { (Ogre, _) => (3.0, 6.0), + (Cyclops, _) => (3.0, 9.0), }, upper_torso: match (body.species, body.body_type) { (Ogre, _) => (0.0, 19.0), + (Cyclops, _) => (-1.0, 27.0), }, lower_torso: match (body.species, body.body_type) { (Ogre, _) => (1.0, -9.5), + (Cyclops, _) => (1.0, -10.5), }, shoulder: match (body.species, body.body_type) { (Ogre, _) => (6.1, 0.5, 2.5), + (Cyclops, _) => (9.5, 0.5, 2.5), }, hand: match (body.species, body.body_type) { (Ogre, _) => (10.5, -1.0, -0.5), + (Cyclops, _) => (10.5, 0.0, -0.5), }, leg: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0, -6.0), + (Cyclops, _) => (0.0, 0.0, -9.0), }, foot: match (body.species, body.body_type) { - (Ogre, _) => (4.0, 0.5, 2.5), + (Ogre, _) => (4.0, 0.5, 5.5), + (Cyclops, _) => (4.0, 0.5, 5.0), }, } } diff --git a/voxygen/src/anim/character/sit.rs b/voxygen/src/anim/character/sit.rs index 29c2a4d4c1..ff02bc3a86 100644 --- a/voxygen/src/anim/character/sit.rs +++ b/voxygen/src/anim/character/sit.rs @@ -89,6 +89,7 @@ impl Animation for SitAnimation { skeleton_attr.foot.2, ); next.l_foot.ori = Quaternion::rotation_x(slow * 0.1 + stop * 1.2 + slow * 0.1); + next.l_foot.scale = Vec3::one(); next.r_foot.offset = Vec3::new( skeleton_attr.foot.0, @@ -96,6 +97,7 @@ impl Animation for SitAnimation { skeleton_attr.foot.2, ); next.r_foot.ori = Quaternion::rotation_x(slowa * 0.1 + stop * 1.2 + slowa * 0.1); + next.r_foot.scale = Vec3::one(); next.l_shoulder.offset = Vec3::new( -skeleton_attr.shoulder.0, diff --git a/voxygen/src/anim/character/swim.rs b/voxygen/src/anim/character/swim.rs index 60477596a9..655b3ca9ec 100644 --- a/voxygen/src/anim/character/swim.rs +++ b/voxygen/src/anim/character/swim.rs @@ -59,9 +59,11 @@ impl Animation for SwimAnimation { skeleton_attr.chest.1 + short * 1.3, ); next.chest.ori = Quaternion::rotation_z(short * 0.4); + next.chest.scale = Vec3::one(); next.belt.offset = Vec3::new(0.0, skeleton_attr.belt.0, skeleton_attr.belt.1); next.belt.ori = Quaternion::rotation_z(short * 0.30); + next.belt.scale = Vec3::one(); next.back.offset = Vec3::new(0.0, skeleton_attr.back.0, skeleton_attr.back.1); next.back.ori = Quaternion::rotation_z(0.0); @@ -69,6 +71,7 @@ impl Animation for SwimAnimation { next.shorts.offset = Vec3::new(0.0, skeleton_attr.shorts.0, skeleton_attr.shorts.1); next.shorts.ori = Quaternion::rotation_z(short * 0.5); + next.shorts.scale = Vec3::one(); next.l_hand.offset = Vec3::new( -skeleton_attr.hand.0, @@ -76,6 +79,7 @@ impl Animation for SwimAnimation { skeleton_attr.hand.2 + foot * -3.0, ); next.l_hand.ori = Quaternion::rotation_x(0.8 + foot * -0.6) * Quaternion::rotation_y(0.2); + next.l_hand.scale = Vec3::one(); next.r_hand.offset = Vec3::new( skeleton_attr.hand.0, @@ -83,6 +87,7 @@ impl Animation for SwimAnimation { skeleton_attr.hand.2 + foot * 3.0, ); next.r_hand.ori = Quaternion::rotation_x(0.8 + foot * 0.6) * Quaternion::rotation_y(-0.2); + next.r_hand.scale = Vec3::one(); next.l_foot.offset = Vec3::new( -skeleton_attr.foot.0, @@ -90,6 +95,7 @@ impl Animation for SwimAnimation { -5.0 + skeleton_attr.foot.2 + foot * 6.5, ); next.l_foot.ori = Quaternion::rotation_x(-1.40 + foot * 0.6); + next.l_foot.scale = Vec3::one(); next.r_foot.offset = Vec3::new( skeleton_attr.foot.0, @@ -97,6 +103,7 @@ impl Animation for SwimAnimation { -5.0 + skeleton_attr.foot.2 + foot * -6.5, ); next.r_foot.ori = Quaternion::rotation_x(-1.40 + foot * -0.6); + next.r_foot.scale = Vec3::one(); next.l_shoulder.offset = Vec3::new( -skeleton_attr.shoulder.0, diff --git a/voxygen/src/anim/critter/jump.rs b/voxygen/src/anim/critter/jump.rs index c73eec7711..506a6d4309 100644 --- a/voxygen/src/anim/critter/jump.rs +++ b/voxygen/src/anim/critter/jump.rs @@ -13,28 +13,28 @@ impl Animation for JumpAnimation { _global_time: Self::Dependency, _anim_time: f64, _rate: &mut f32, - _skeleton_attr: &CritterAttr, + skeleton_attr: &CritterAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - next.head.offset = Vec3::new(0.0, 0.0, 0.0) / 18.0; - next.head.ori = Quaternion::rotation_z(0.0); + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) / 18.0; + next.head.ori = Quaternion::rotation_z(0.8) * Quaternion::rotation_x(0.5); next.head.scale = Vec3::one() / 18.0; - next.chest.offset = Vec3::new(0.0, 0.0, 0.0) / 18.0; - next.chest.ori = Quaternion::rotation_x(0.0); + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 18.0; + next.chest.ori = Quaternion::rotation_y(0.0); next.chest.scale = Vec3::one() / 18.0; - next.feet_f.offset = Vec3::new(0.0, 0.0, 0.0) / 18.0; + next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1) / 18.0; next.feet_f.ori = Quaternion::rotation_z(0.0); next.feet_f.scale = Vec3::one() / 18.0; - next.feet_b.offset = Vec3::new(0.0, 0.0, 0.0) / 18.0; + next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1) / 18.0; next.feet_b.ori = Quaternion::rotation_x(0.0); next.feet_b.scale = Vec3::one() / 18.0; - next.tail.offset = Vec3::new(0.0, 0.0, 0.0) / 18.0; - next.tail.ori = Quaternion::rotation_x(0.0); + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1) / 18.0; + next.tail.ori = Quaternion::rotation_y(0.0); next.tail.scale = Vec3::one() / 18.0; next diff --git a/voxygen/src/anim/quadruped_medium/jump.rs b/voxygen/src/anim/quadruped_medium/jump.rs index 3e8929482f..da66316fa0 100644 --- a/voxygen/src/anim/quadruped_medium/jump.rs +++ b/voxygen/src/anim/quadruped_medium/jump.rs @@ -1,5 +1,4 @@ use super::{super::Animation, QuadrupedMediumSkeleton, SkeletonAttr}; -use std::f32::consts::PI; use vek::*; pub struct JumpAnimation; @@ -11,61 +10,82 @@ impl Animation for JumpAnimation { fn update_skeleton( skeleton: &Self::Skeleton, _global_time: Self::Dependency, - anim_time: f64, + _anim_time: f64, _rate: &mut f32, - _skeleton_attr: &SkeletonAttr, + skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let wave = (anim_time as f32 * 14.0).sin(); - let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); - let wave_stop = (anim_time as f32 * 5.0).min(PI / 2.0).sin(); + next.head_upper.offset = Vec3::new( + 0.0, + skeleton_attr.head_upper.0, + skeleton_attr.head_upper.1 + 3.0, + ) / 11.0; + next.head_upper.ori = Quaternion::rotation_z(0.8) * Quaternion::rotation_x(0.5); + next.head_upper.scale = Vec3::one() / 10.98; - next.head_upper.offset = Vec3::new(0.0, 7.5, 15.0 + wave_stop * 4.8) / 11.0; - next.head_upper.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(wave_slow * -0.25); - next.head_upper.scale = Vec3::one() / 10.88; + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); + next.head_lower.ori = Quaternion::rotation_x(-0.4); + next.head_lower.scale = Vec3::one() * 1.02; - next.head_lower.offset = Vec3::new(0.0, 3.1, -4.5); - next.head_lower.ori = Quaternion::rotation_x(wave_stop * -0.1); - next.head_lower.scale = Vec3::one() * 0.98; - - next.jaw.offset = Vec3::new(0.0, 4.5, 2.0); + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.ori = Quaternion::rotation_x(0.0); - next.jaw.scale = Vec3::one() * 1.01; + next.jaw.scale = Vec3::one() * 0.98; - next.tail.offset = Vec3::new(0.0, -12.0, 8.0) / 11.0; - next.tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(wave_slow * -0.25); - next.tail.scale = Vec3::one() / 11.0; + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.tail.scale = Vec3::one(); - next.torso_back.offset = - Vec3::new(0.0, -9.5 + wave_stop * 1.0, 11.0 + wave_stop * 2.2) / 11.0; - next.torso_back.ori = Quaternion::rotation_x(wave_slow * -0.25); + next.torso_back.offset = Vec3::new( + 0.0, + skeleton_attr.torso_back.0, + skeleton_attr.torso_back.1 + 2.0, + ) / 11.0; + next.torso_back.ori = Quaternion::rotation_z(-0.8) + * Quaternion::rotation_z(0.0) + * Quaternion::rotation_x(0.2); next.torso_back.scale = Vec3::one() / 11.0; - next.torso_mid.offset = Vec3::new(0.0, 0.0, 12.0 + wave_stop * 3.6) / 11.0; - next.torso_mid.ori = Quaternion::rotation_x(wave_slow * -0.25); - next.torso_mid.scale = Vec3::one() / 10.5; + next.torso_mid.offset = + Vec3::new(0.0, skeleton_attr.torso_mid.0, skeleton_attr.torso_mid.1) / 11.0; + next.torso_mid.ori = Quaternion::rotation_x(-0.4); + next.torso_mid.scale = Vec3::one() / 10.98; - next.ears.offset = Vec3::new(0.0, 0.75, 6.25); + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0); - next.ears.scale = Vec3::one() * 1.05; + next.ears.scale = Vec3::one() / 1.02; - next.foot_lf.offset = Vec3::new(-5.0, 5.0 + wave_stop * 3.0, 5.0 + wave_stop * 7.0) / 11.0; - next.foot_lf.ori = Quaternion::rotation_x(wave_stop * 1.0 + wave * 0.15); + next.foot_lf.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ) / 11.0; + next.foot_lf.ori = Quaternion::rotation_x(0.0); next.foot_lf.scale = Vec3::one() / 11.0; - next.foot_rf.offset = Vec3::new(5.0, 5.0 - wave_stop * 3.0, 5.0 + wave_stop * 5.0) / 11.0; - next.foot_rf.ori = Quaternion::rotation_x(wave_stop * -1.0 + wave * 0.15); + next.foot_rf.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ) / 11.0; + next.foot_rf.ori = Quaternion::rotation_x(0.0); next.foot_rf.scale = Vec3::one() / 11.0; - next.foot_lb.offset = - Vec3::new(-5.0, -10.0 - wave_stop * 2.0, 5.0 + wave_stop * 0.0) / 11.0; - next.foot_lb.ori = Quaternion::rotation_x(wave_stop * -1.0 + wave * 0.15); + next.foot_lb.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ) / 11.0; + next.foot_lb.ori = Quaternion::rotation_x(0.0); next.foot_lb.scale = Vec3::one() / 11.0; - next.foot_rb.offset = Vec3::new(5.0, -10.0 + wave_stop * 2.0, 5.0 + wave_stop * 2.0) / 11.0; - next.foot_rb.ori = Quaternion::rotation_x(wave_stop * 1.0 + wave * 0.15); + next.foot_rb.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ) / 11.0; + next.foot_rb.ori = Quaternion::rotation_x(0.0); next.foot_rb.scale = Vec3::one() / 11.0; next diff --git a/voxygen/src/anim/quadruped_medium/mod.rs b/voxygen/src/anim/quadruped_medium/mod.rs index aca8b0990d..e69cfe6fb1 100644 --- a/voxygen/src/anim/quadruped_medium/mod.rs +++ b/voxygen/src/anim/quadruped_medium/mod.rs @@ -123,7 +123,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { use comp::quadruped_medium::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Wolf, _) => (12.0, 16.0), + (Grolgar, _) => (12.0, 16.0), (Saber, _) => (14.0, 12.0), (Viper, _) => (14.0, 10.0), (Tuskram, _) => (9.0, 12.0), @@ -133,7 +133,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (12.0, 19.0), }, head_lower: match (body.species, body.body_type) { - (Wolf, _) => (-4.0, -7.0), + (Grolgar, _) => (-4.0, -7.0), (Saber, _) => (-6.0, 0.0), (Viper, _) => (-3.0, -1.0), (Tuskram, _) => (-3.0, -1.0), @@ -143,7 +143,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { - (Wolf, _) => (3.0, -5.0), + (Grolgar, _) => (3.0, -5.0), (Saber, _) => (2.0, -1.0), (Viper, _) => (3.0, -2.0), (Tuskram, _) => (2.0, -2.0), @@ -153,7 +153,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (4.0, -9.0), }, tail: match (body.species, body.body_type) { - (Wolf, _) => (-6.0, -2.0), + (Grolgar, _) => (-6.0, -2.0), (Saber, _) => (-4.0, -2.0), (Viper, _) => (-6.0, -1.0), (Tuskram, _) => (-6.0, -2.0), @@ -163,7 +163,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (-7.0, -2.0), }, torso_back: match (body.species, body.body_type) { - (Wolf, _) => (4.0, 11.0), + (Grolgar, _) => (4.0, 11.0), (Saber, _) => (4.0, 9.0), (Viper, _) => (4.0, 7.0), (Tuskram, _) => (4.0, 9.0), @@ -173,7 +173,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (4.0, 9.0), }, torso_mid: match (body.species, body.body_type) { - (Wolf, _) => (-7.0, 10.5), + (Grolgar, _) => (-7.0, 10.5), (Saber, _) => (-7.0, 9.5), (Viper, _) => (-7.0, 7.0), (Tuskram, _) => (-7.0, 9.0), @@ -183,7 +183,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (-7.0, 8.0), }, ears: match (body.species, body.body_type) { - (Wolf, _) => (-1.0, 5.0), + (Grolgar, _) => (-1.0, 5.0), (Saber, _) => (-1.0, 6.0), (Viper, _) => (10.0, 2.0), (Tuskram, _) => (10.0, 2.0), @@ -193,7 +193,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (1.5, -2.0), }, feet_f: match (body.species, body.body_type) { - (Wolf, _) => (5.0, 6.0, 2.0), + (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), (Viper, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), @@ -203,7 +203,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (4.0, 6.0, 3.0), }, feet_b: match (body.species, body.body_type) { - (Wolf, _) => (5.0, -4.0, 3.0), + (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), (Viper, _) => (4.0, -4.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), @@ -213,7 +213,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (4.0, -8.0, 3.5), }, height: match (body.species, body.body_type) { - (Wolf, _) => (1.2), + (Grolgar, _) => (1.2), (Saber, _) => (1.0), (Viper, _) => (0.7), (Tuskram, _) => (1.0), diff --git a/voxygen/src/anim/quadruped_small/jump.rs b/voxygen/src/anim/quadruped_small/jump.rs index 24fb924df5..60552badfa 100644 --- a/voxygen/src/anim/quadruped_small/jump.rs +++ b/voxygen/src/anim/quadruped_small/jump.rs @@ -1,5 +1,4 @@ use super::{super::Animation, QuadrupedSmallSkeleton, SkeletonAttr}; -use std::f32::consts::PI; use vek::*; pub struct JumpAnimation; @@ -11,37 +10,50 @@ impl Animation for JumpAnimation { fn update_skeleton( skeleton: &Self::Skeleton, (_velocity, _global_time): Self::Dependency, - anim_time: f64, + _anim_time: f64, _rate: &mut f32, - _skeleton_attr: &SkeletonAttr, + skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let wave_slow = (anim_time as f32 * 7.0 + PI).sin(); - let wave_stop = (anim_time as f32 * 4.5).min(PI / 2.0).sin(); - - next.head.offset = Vec3::new(0.0, 0.0, -1.5) / 11.0; - next.head.ori = Quaternion::rotation_x(wave_stop * 0.4); + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) / 11.0; + next.head.ori = Quaternion::rotation_z(-0.8) * Quaternion::rotation_x(0.5); next.head.scale = Vec3::one() / 10.5; - next.chest.offset = Vec3::new(0.0, -9.0, 1.5) / 11.0; - next.chest.ori = Quaternion::rotation_x(0.0); + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 11.0; + next.chest.ori = Quaternion::rotation_y(0.0); next.chest.scale = Vec3::one() / 11.0; - next.leg_lf.offset = Vec3::new(-4.5, 3.0, 1.5) / 11.0; - next.leg_lf.ori = Quaternion::rotation_x(wave_stop * 0.6 - wave_slow * 0.3); + next.leg_lf.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ) / 11.0; + next.leg_lf.ori = Quaternion::rotation_x(0.0); next.leg_lf.scale = Vec3::one() / 11.0; - next.leg_rf.offset = Vec3::new(2.5, 3.0, 1.5) / 11.0; - next.leg_rf.ori = Quaternion::rotation_x(wave_stop * 0.6 - wave_slow * 0.3); + next.leg_rf.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ) / 11.0; + next.leg_rf.ori = Quaternion::rotation_x(0.0); next.leg_rf.scale = Vec3::one() / 11.0; - next.leg_lb.offset = Vec3::new(-4.5, -4.0, 2.0) / 11.0; - next.leg_lb.ori = Quaternion::rotation_x(wave_stop * -0.6 + wave_slow * 0.3); + next.leg_lb.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ) / 11.0; + next.leg_lb.ori = Quaternion::rotation_x(0.0); next.leg_lb.scale = Vec3::one() / 11.0; - next.leg_rb.offset = Vec3::new(2.5, -4.0, 2.0) / 11.0; - next.leg_rb.ori = Quaternion::rotation_x(wave_stop * -0.6 + wave_slow * 0.3); + next.leg_rb.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ) / 11.0; + next.leg_rb.ori = Quaternion::rotation_x(0.0); next.leg_rb.scale = Vec3::one() / 11.0; next