mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Add werewolf npc
This commit is contained in:
parent
ab411406b0
commit
204fa50de9
@ -573,6 +573,10 @@
|
|||||||
"dullahan": {
|
"dullahan": {
|
||||||
"keyword": "dullahan",
|
"keyword": "dullahan",
|
||||||
"generic": "Dullahan"
|
"generic": "Dullahan"
|
||||||
|
},
|
||||||
|
"werewolf": {
|
||||||
|
"keyword": "werewolf",
|
||||||
|
"generic": "Werewolf"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -239,8 +239,6 @@
|
|||||||
central: ("npc.troll.female.hammer"),
|
central: ("npc.troll.female.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
(Dullahan, Male): (
|
(Dullahan, Male): (
|
||||||
head: (
|
head: (
|
||||||
offset: (-8.0, -5.0, -6.0),
|
offset: (-8.0, -5.0, -6.0),
|
||||||
@ -271,7 +269,6 @@
|
|||||||
central: ("npc.cyclops.male.hammer"),
|
central: ("npc.cyclops.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
(Dullahan, Female): (
|
(Dullahan, Female): (
|
||||||
head: (
|
head: (
|
||||||
offset: (-8.0, -5.0, -6.0),
|
offset: (-8.0, -5.0, -6.0),
|
||||||
@ -302,4 +299,64 @@
|
|||||||
central: ("npc.cyclops.male.hammer"),
|
central: ("npc.cyclops.male.hammer"),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
(Werewolf, Male): (
|
||||||
|
head: (
|
||||||
|
offset: (-5.0, -7.5, -6.5),
|
||||||
|
center: ("npc.werewolf.male.head"),
|
||||||
|
),
|
||||||
|
torso_upper: (
|
||||||
|
offset: (-8.0, -12.5, -10.5),
|
||||||
|
center: ("npc.werewolf.male.torso_upper"),
|
||||||
|
),
|
||||||
|
torso_lower: (
|
||||||
|
offset: (-6.0, -5.5, -4.0),
|
||||||
|
center: ("npc.werewolf.male.torso_lower"),
|
||||||
|
),
|
||||||
|
jaw: (
|
||||||
|
offset: (-2.0, 0.0, -2.0),
|
||||||
|
center: ("npc.werewolf.male.jaw"),
|
||||||
|
),
|
||||||
|
tail: (
|
||||||
|
offset: (-4.0, -27.0, -6.0),
|
||||||
|
center: ("npc.werewolf.male.tail"),
|
||||||
|
),
|
||||||
|
second: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
center: ("armor.empty"),
|
||||||
|
),
|
||||||
|
main: (
|
||||||
|
offset: (-1.5, -9.0, -10.0),
|
||||||
|
center: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(Werewolf, Female): (
|
||||||
|
head: (
|
||||||
|
offset: (-5.0, -7.5, -6.5),
|
||||||
|
center: ("npc.werewolf.male.head"),
|
||||||
|
),
|
||||||
|
torso_upper: (
|
||||||
|
offset: (-8.0, -12.5, -10.5),
|
||||||
|
center: ("npc.werewolf.male.torso_upper"),
|
||||||
|
),
|
||||||
|
torso_lower: (
|
||||||
|
offset: (-6.0, -5.5, -4.0),
|
||||||
|
center: ("npc.werewolf.male.torso_lower"),
|
||||||
|
),
|
||||||
|
jaw: (
|
||||||
|
offset: (-2.0, 0.0, -2.0),
|
||||||
|
center: ("npc.werewolf.male.jaw"),
|
||||||
|
),
|
||||||
|
tail: (
|
||||||
|
offset: (-4.0, -27.0, -6.0),
|
||||||
|
center: ("npc.werewolf.male.tail"),
|
||||||
|
),
|
||||||
|
second: (
|
||||||
|
offset: (0.0, 0.0, 0.0),
|
||||||
|
center: ("armor.empty"),
|
||||||
|
),
|
||||||
|
main: (
|
||||||
|
offset: (-1.5, -9.0, -10.0),
|
||||||
|
center: ("armor.empty"),
|
||||||
|
)
|
||||||
|
),
|
||||||
})
|
})
|
@ -339,4 +339,72 @@
|
|||||||
lateral: ("npc.dullahan.male.foot_r"),
|
lateral: ("npc.dullahan.male.foot_r"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
(Werewolf, Male): (
|
||||||
|
shoulder_l: (
|
||||||
|
offset: (-4.0, -4.5, -5.0),
|
||||||
|
lateral: ("npc.werewolf.male.shoulder_l"),
|
||||||
|
),
|
||||||
|
shoulder_r: (
|
||||||
|
offset: (-4.0, -4.5, -5.0),
|
||||||
|
lateral: ("npc.werewolf.male.shoulder_r"),
|
||||||
|
),
|
||||||
|
hand_l: (
|
||||||
|
offset: (-3.0, -3.0, -13.0),
|
||||||
|
lateral: ("npc.werewolf.male.hand_l"),
|
||||||
|
),
|
||||||
|
hand_r: (
|
||||||
|
offset: (-3.0, -3.0, -13.0),
|
||||||
|
lateral: ("npc.werewolf.male.hand_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-2.5, -4.0, -3.5),
|
||||||
|
lateral: ("npc.werewolf.male.leg_l"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-2.5, -4.0, -3.5),
|
||||||
|
lateral: ("npc.werewolf.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-3.5, -6.0, -5.5),
|
||||||
|
lateral: ("npc.werewolf.male.foot_l"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-3.5, -6.0, -5.5),
|
||||||
|
lateral: ("npc.werewolf.male.foot_r"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(Werewolf, Female): (
|
||||||
|
shoulder_l: (
|
||||||
|
offset: (-4.0, -4.5, -5.0),
|
||||||
|
lateral: ("npc.werewolf.male.shoulder_l"),
|
||||||
|
),
|
||||||
|
shoulder_r: (
|
||||||
|
offset: (-4.0, -4.5, -5.0),
|
||||||
|
lateral: ("npc.werewolf.male.shoulder_r"),
|
||||||
|
),
|
||||||
|
hand_l: (
|
||||||
|
offset: (-3.0, -3.0, -13.0),
|
||||||
|
lateral: ("npc.werewolf.male.hand_l"),
|
||||||
|
),
|
||||||
|
hand_r: (
|
||||||
|
offset: (-3.0, -3.0, -13.0),
|
||||||
|
lateral: ("npc.werewolf.male.hand_r"),
|
||||||
|
),
|
||||||
|
leg_l: (
|
||||||
|
offset: (-2.5, -4.0, -3.5),
|
||||||
|
lateral: ("npc.werewolf.male.leg_l"),
|
||||||
|
),
|
||||||
|
leg_r: (
|
||||||
|
offset: (-2.5, -4.0, -3.5),
|
||||||
|
lateral: ("npc.werewolf.male.leg_r"),
|
||||||
|
),
|
||||||
|
foot_l: (
|
||||||
|
offset: (-3.5, -6.0, -5.5),
|
||||||
|
lateral: ("npc.werewolf.male.foot_l"),
|
||||||
|
),
|
||||||
|
foot_r: (
|
||||||
|
offset: (-3.5, -6.0, -5.5),
|
||||||
|
lateral: ("npc.werewolf.male.foot_r"),
|
||||||
|
),
|
||||||
|
),
|
||||||
})
|
})
|
BIN
assets/voxygen/voxel/npc/werewolf/male/foot_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/foot_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/foot_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/foot_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/hand_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/hand_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/hand_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/hand_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/head.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/head.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/jaw.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/jaw.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/leg_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/leg_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/leg_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/leg_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/shoulder_l.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/shoulder_r.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/tail.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/tail.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/torso_lower.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/torso_lower.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/werewolf/male/torso_upper.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/werewolf/male/torso_upper.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -39,6 +39,7 @@ make_case_elim!(
|
|||||||
Wendigo = 2,
|
Wendigo = 2,
|
||||||
Troll = 3,
|
Troll = 3,
|
||||||
Dullahan = 4,
|
Dullahan = 4,
|
||||||
|
Werewolf = 5,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -52,6 +53,7 @@ pub struct AllSpecies<SpeciesMeta> {
|
|||||||
pub wendigo: SpeciesMeta,
|
pub wendigo: SpeciesMeta,
|
||||||
pub troll: SpeciesMeta,
|
pub troll: SpeciesMeta,
|
||||||
pub dullahan: SpeciesMeta,
|
pub dullahan: SpeciesMeta,
|
||||||
|
pub werewolf: SpeciesMeta,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta> {
|
||||||
@ -65,16 +67,18 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies<SpeciesMeta>
|
|||||||
Species::Wendigo => &self.wendigo,
|
Species::Wendigo => &self.wendigo,
|
||||||
Species::Troll => &self.troll,
|
Species::Troll => &self.troll,
|
||||||
Species::Dullahan => &self.dullahan,
|
Species::Dullahan => &self.dullahan,
|
||||||
|
Species::Werewolf => &self.werewolf,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const ALL_SPECIES: [Species; 5] = [
|
pub const ALL_SPECIES: [Species; 6] = [
|
||||||
Species::Ogre,
|
Species::Ogre,
|
||||||
Species::Cyclops,
|
Species::Cyclops,
|
||||||
Species::Wendigo,
|
Species::Wendigo,
|
||||||
Species::Troll,
|
Species::Troll,
|
||||||
Species::Dullahan,
|
Species::Dullahan,
|
||||||
|
Species::Werewolf,
|
||||||
];
|
];
|
||||||
|
|
||||||
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies<SpeciesMeta> {
|
||||||
|
@ -26,6 +26,9 @@ impl Animation for IdleAnimation {
|
|||||||
let lab = 1.0;
|
let lab = 1.0;
|
||||||
let torso = (anim_time as f32 * lab as f32 + 1.5 * PI).sin();
|
let torso = (anim_time as f32 * lab as f32 + 1.5 * PI).sin();
|
||||||
|
|
||||||
|
let slower = (anim_time as f32 * 1.0 + PI).sin();
|
||||||
|
let slow = (anim_time as f32 * 3.5 + PI).sin();
|
||||||
|
|
||||||
let look = Vec2::new(
|
let look = Vec2::new(
|
||||||
((global_time + anim_time) as f32 / 8.0)
|
((global_time + anim_time) as f32 / 8.0)
|
||||||
.floor()
|
.floor()
|
||||||
@ -38,8 +41,18 @@ impl Animation for IdleAnimation {
|
|||||||
.sin()
|
.sin()
|
||||||
* 0.25,
|
* 0.25,
|
||||||
);
|
);
|
||||||
|
let tailmove = Vec2::new(
|
||||||
let wave_slow = (anim_time as f32 * 0.8).sin();
|
((global_time + anim_time) as f32 / 2.0)
|
||||||
|
.floor()
|
||||||
|
.mul(7331.0)
|
||||||
|
.sin()
|
||||||
|
* 0.25,
|
||||||
|
((global_time + anim_time) as f32 / 2.0)
|
||||||
|
.floor()
|
||||||
|
.mul(1337.0)
|
||||||
|
.sin()
|
||||||
|
* 0.125,
|
||||||
|
);
|
||||||
|
|
||||||
next.head.position = Vec3::new(
|
next.head.position = Vec3::new(
|
||||||
0.0,
|
0.0,
|
||||||
@ -66,16 +79,17 @@ impl Animation for IdleAnimation {
|
|||||||
next.lower_torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
next.lower_torso.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
|
||||||
next.lower_torso.scale = Vec3::one() * 1.02;
|
next.lower_torso.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
|
next.jaw.position = Vec3::new(
|
||||||
next.jaw.orientation = Quaternion::rotation_x(wave_slow * 0.09);
|
|
||||||
next.jaw.scale = Vec3::one();
|
|
||||||
|
|
||||||
next.tail.position = Vec3::new(
|
|
||||||
0.0,
|
0.0,
|
||||||
skeleton_attr.tail.0,
|
skeleton_attr.jaw.0 - slower * 0.12,
|
||||||
skeleton_attr.tail.1 + torso * 0.0,
|
skeleton_attr.jaw.1 + slow * 0.2,
|
||||||
);
|
);
|
||||||
next.tail.orientation = Quaternion::rotation_z(0.0);
|
next.jaw.orientation = Quaternion::rotation_x(slow * 0.05);
|
||||||
|
next.jaw.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
|
next.tail.position = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1);
|
||||||
|
next.tail.orientation =
|
||||||
|
Quaternion::rotation_z(0.0 + slow * 0.2 + tailmove.x) * Quaternion::rotation_x(0.0);
|
||||||
next.tail.scale = Vec3::one();
|
next.tail.scale = Vec3::one();
|
||||||
|
|
||||||
next.control.position = Vec3::new(0.0, 0.0, 0.0);
|
next.control.position = Vec3::new(0.0, 0.0, 0.0);
|
||||||
|
@ -129,6 +129,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (3.0, 13.5),
|
(Wendigo, _) => (3.0, 13.5),
|
||||||
(Troll, _) => (6.0, 10.0),
|
(Troll, _) => (6.0, 10.0),
|
||||||
(Dullahan, _) => (3.0, 6.0),
|
(Dullahan, _) => (3.0, 6.0),
|
||||||
|
(Werewolf, _) => (19.0, 1.0),
|
||||||
},
|
},
|
||||||
jaw: match (body.species, body.body_type) {
|
jaw: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (0.0, 0.0),
|
(Ogre, _) => (0.0, 0.0),
|
||||||
@ -136,6 +137,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (0.0, 0.0),
|
(Wendigo, _) => (0.0, 0.0),
|
||||||
(Troll, _) => (2.0, -4.0),
|
(Troll, _) => (2.0, -4.0),
|
||||||
(Dullahan, _) => (0.0, 0.0),
|
(Dullahan, _) => (0.0, 0.0),
|
||||||
|
(Werewolf, _) => (-2.5, -4.5),
|
||||||
},
|
},
|
||||||
upper_torso: match (body.species, body.body_type) {
|
upper_torso: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (0.0, 28.0),
|
(Ogre, Male) => (0.0, 28.0),
|
||||||
@ -144,6 +146,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (-1.0, 29.0),
|
(Wendigo, _) => (-1.0, 29.0),
|
||||||
(Troll, _) => (-1.0, 27.5),
|
(Troll, _) => (-1.0, 27.5),
|
||||||
(Dullahan, _) => (0.0, 29.0),
|
(Dullahan, _) => (0.0, 29.0),
|
||||||
|
(Werewolf, _) => (3.0, 30.5),
|
||||||
},
|
},
|
||||||
lower_torso: match (body.species, body.body_type) {
|
lower_torso: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (1.0, -7.0),
|
(Ogre, Male) => (1.0, -7.0),
|
||||||
@ -152,6 +155,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (-1.5, -6.0),
|
(Wendigo, _) => (-1.5, -6.0),
|
||||||
(Troll, _) => (1.0, -10.5),
|
(Troll, _) => (1.0, -10.5),
|
||||||
(Dullahan, _) => (0.0, -6.5),
|
(Dullahan, _) => (0.0, -6.5),
|
||||||
|
(Werewolf, _) => (1.0, -14.5),
|
||||||
},
|
},
|
||||||
tail: match (body.species, body.body_type) {
|
tail: match (body.species, body.body_type) {
|
||||||
(Ogre, _) => (0.0, 0.0),
|
(Ogre, _) => (0.0, 0.0),
|
||||||
@ -159,6 +163,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (0.0, 0.0),
|
(Wendigo, _) => (0.0, 0.0),
|
||||||
(Troll, _) => (0.0, 0.0),
|
(Troll, _) => (0.0, 0.0),
|
||||||
(Dullahan, _) => (0.0, 0.0),
|
(Dullahan, _) => (0.0, 0.0),
|
||||||
|
(Werewolf, _) => (-5.5, 2.0),
|
||||||
},
|
},
|
||||||
shoulder: match (body.species, body.body_type) {
|
shoulder: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (12.0, 0.5, 0.0),
|
(Ogre, Male) => (12.0, 0.5, 0.0),
|
||||||
@ -167,6 +172,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (9.0, 0.5, -0.5),
|
(Wendigo, _) => (9.0, 0.5, -0.5),
|
||||||
(Troll, _) => (11.0, 0.5, -1.5),
|
(Troll, _) => (11.0, 0.5, -1.5),
|
||||||
(Dullahan, _) => (14.0, 0.5, 4.5),
|
(Dullahan, _) => (14.0, 0.5, 4.5),
|
||||||
|
(Werewolf, _) => (9.0, 4.0, -6.5),
|
||||||
},
|
},
|
||||||
hand: match (body.species, body.body_type) {
|
hand: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (14.5, 0.0, -2.0),
|
(Ogre, Male) => (14.5, 0.0, -2.0),
|
||||||
@ -175,6 +181,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (12.0, 0.0, -0.5),
|
(Wendigo, _) => (12.0, 0.0, -0.5),
|
||||||
(Troll, _) => (11.5, 0.0, -1.5),
|
(Troll, _) => (11.5, 0.0, -1.5),
|
||||||
(Dullahan, _) => (14.5, 0.0, -2.5),
|
(Dullahan, _) => (14.5, 0.0, -2.5),
|
||||||
|
(Werewolf, _) => (10.0, 2.5, -11.0),
|
||||||
},
|
},
|
||||||
leg: match (body.species, body.body_type) {
|
leg: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (0.0, 0.0, -4.0),
|
(Ogre, Male) => (0.0, 0.0, -4.0),
|
||||||
@ -183,6 +190,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (2.0, 2.0, -2.5),
|
(Wendigo, _) => (2.0, 2.0, -2.5),
|
||||||
(Troll, _) => (5.0, 0.0, -6.0),
|
(Troll, _) => (5.0, 0.0, -6.0),
|
||||||
(Dullahan, _) => (0.0, 0.0, -5.0),
|
(Dullahan, _) => (0.0, 0.0, -5.0),
|
||||||
|
(Werewolf, _) => (4.5, 0.5, -3.0),
|
||||||
},
|
},
|
||||||
foot: match (body.species, body.body_type) {
|
foot: match (body.species, body.body_type) {
|
||||||
(Ogre, Male) => (4.0, 2.5, 8.0),
|
(Ogre, Male) => (4.0, 2.5, 8.0),
|
||||||
@ -191,6 +199,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
|
|||||||
(Wendigo, _) => (5.0, 0.5, 6.0),
|
(Wendigo, _) => (5.0, 0.5, 6.0),
|
||||||
(Troll, _) => (6.0, 0.5, 4.0),
|
(Troll, _) => (6.0, 0.5, 4.0),
|
||||||
(Dullahan, _) => (4.0, 2.5, 8.0),
|
(Dullahan, _) => (4.0, 2.5, 8.0),
|
||||||
|
(Werewolf, _) => (5.5, 6.5, 6.0),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ use super::{
|
|||||||
super::{vek::*, Animation},
|
super::{vek::*, Animation},
|
||||||
BipedLargeSkeleton, SkeletonAttr,
|
BipedLargeSkeleton, SkeletonAttr,
|
||||||
};
|
};
|
||||||
use std::f32::consts::PI;
|
use std::{f32::consts::PI, ops::Mul};
|
||||||
|
|
||||||
pub struct RunAnimation;
|
pub struct RunAnimation;
|
||||||
|
|
||||||
@ -82,11 +82,12 @@ impl Animation for RunAnimation {
|
|||||||
next.lower_torso.scale = Vec3::one() * 1.02;
|
next.lower_torso.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
|
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
|
||||||
next.jaw.orientation = Quaternion::rotation_z(0.0);
|
next.jaw.orientation = Quaternion::rotation_x(0.0);
|
||||||
next.jaw.scale = Vec3::one();
|
next.jaw.scale = Vec3::one() * 1.02;
|
||||||
|
|
||||||
next.tail.position = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1 * 0.0);
|
next.tail.position = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1);
|
||||||
next.tail.orientation = Quaternion::rotation_z(0.0);
|
next.tail.orientation =
|
||||||
|
Quaternion::rotation_x(shortalt * 0.3);
|
||||||
next.tail.scale = Vec3::one();
|
next.tail.scale = Vec3::one();
|
||||||
|
|
||||||
next.second.position = Vec3::new(0.0, 0.0, 0.0);
|
next.second.position = Vec3::new(0.0, 0.0, 0.0);
|
||||||
|
Loading…
Reference in New Issue
Block a user