Doesn't that armor look like the one stormcloaks wear in Skyrim..?
Anyways, great work. Ghoul is the coolest one, I think.
However, some of those are in desperate need for custom sounds.
Well... To be honest, I am not sure what you mean...uggardian wrote:Doesn't that armor look like the one stormcloaks wear in Skyrim..?
Anyways, great work. Ghoul is the coolest one, I think.
However, some of those are in desperate need for custom sounds.
What is the problem?Leki wrote:Sounds: There is known bug that custom monster can do animation events like attacks, but there is some problem with playSound(), so you cannot hear any walk or attack sounds, custom or not.
petri wrote:What is the problem?Leki wrote:Sounds: There is known bug that custom monster can do animation events like attacks, but there is some problem with playSound(), so you cannot hear any walk or attack sounds, custom or not.
Code: Select all
defineObject{
name = "skeleton_warrior",
class = "Monster",
model = "assets/models/monsters/skeleton_warrior.fbx",
meshName = "skeleton_warrior_mesh",
animations = {
idle = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_idle.fbx",
moveForward = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_walk.fbx",
turnLeft = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_turn_left.fbx",
turnRight = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_turn_right.fbx",
attack = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_attack.fbx",
attackBack = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_attack_back.fbx",
getHitFrontLeft = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_get_hit_front_left.fbx",
getHitFrontRight = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_get_hit_front_right.fbx",
getHitBack = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_get_hit_back.fbx",
getHitLeft = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_get_hit_left.fbx",
getHitRight = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_get_hit_right.fbx",
fall = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_get_hit_front_left.fbx",
},
moveSound = "skeleton_walk",
footstepSound = "skeleton_footstep",
attackSound = "skeleton_attack",
hitSound = "skeleton_hit",
dieSound = "skeleton_die",
hitEffect = "hit_dust",
capsuleHeight = 0.7,
capsuleRadius = 0.25,
collisionRadius = 0.6,
health = 120,
sight = 4,
attackPower = 9,
accuracy = 10,
protection = 5,
immunities = { "poison" },
movementCoolDown = 2,
noRecoilInterval = { 0.25, 0.5 },
exp = 90,
lootDrop = { 100, "legionary_spear", 100, "legionary_shield" },
healthIncrement = 15,
attackPowerIncrement = 5,
protectionIncrement = 1,
brain = "Melee",
}
Code: Select all
..
moveSound = "skeleton_walk",
footstepSound = "skeleton_footstep",
attackSound = "skeleton_attack",
hitSound = "skeleton_hit",
dieSound = "skeleton_die",
..
Code: Select all
local function monsters()
..
defineSound{
name = "skeleton_walk",
filename = "assets/samples/monsters/skeleton_walk_01.wav",
loop = false,
volume = 1,
minDistance = 1,
maxDistance = 10,
}
..
end
Code: Select all
..
defineAnimationEvent{
animation = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_walk.fbx",
event = "footstep",
frame = 9,
}
defineAnimationEvent{
animation = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_walk.fbx",
event = "footstep",
frame = 20,
}
defineAnimationEvent{
animation = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_walk.fbx",
event = "footstep",
frame = 31,
}
defineAnimationEvent{
animation = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_walk.fbx",
event = "footstep",
frame = 42,
}
defineAnimationEvent{
animation = "assets/animations/monsters/skeleton_warrior/skeleton_warrior_walk.fbx",
event = "footstep",
frame = 55,
}
..
Code: Select all
--
-- BARBARIAN AXE AND SHIELD
--
-- Legend of Grimrock Custom Monster
-------------------------------------------------------
-- monster definition
-------------------------------------------------------
defineObject{
name = "leki_barbarian_axe_shield",
class = "Monster",
model = "mod_assets/plugins/barbarian_axe/models/barbarian_new_axe_shield.fbx",
meshName = "barbarian_mesh",
animations = {
idle = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
moveForward = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_walk.fbx",
turnLeft = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_turn_left.fbx",
turnRight = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_turn_right.fbx",
attack = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_attack.fbx",
getHitFrontLeft = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
getHitFrontRight = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
getHitBack = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
getHitLeft = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
getHitRight = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
fall = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_idle.fbx",
},
moveSound = "barbarian_walk",
attackSound = "damage_human_male",
hitSound = "damage_human_male",
dieSound = "damage_minotaur_male",
hitEffect = "hit_blood",
capsuleHeight = 0.4,
capsuleRadius = 0.3,
collisionRadius = 0.6,
turnAnimSpeed = 1.0,
attackAnimSpeed = 1.0,
health = 80,
sight = 4,
attackPower = 30,
accuracy = 10,
protection = 10,
immunities = { "poison" },
movementCoolDown = 0.5,
coolDown = { 0.5, 1 },
evasion = 1,
noRecoilInterval = { 0.25, 1 },
exp = 680,
lootDrop = { 75, "snail_slice", 10, "snail_slice" },
healthIncrement = 30,
attackPowerIncrement = 9,
brain = "Melee",
protectionIncrement = 1,
}
defineObject{
name = "leki_barbarian_axe_shield__patrol_2",
class = "MonsterGroup",
monsterType = "leki_barbarian_axe_shield",
count = 2,
}
-------------------------------------------------------
-- sounds
-------------------------------------------------------
defineSound{
name = "barbarian_walk",
filename = "mod_assets/plugins/barbarian_axe/sounds/barbarian_step.wav",
loop = false,
volume = 2,
minDistance = 1,
maxDistance = 10,
}
-------------------------------------------------------
-- animation events
-------------------------------------------------------
defineAnimationEvent{
animation = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_attack.fbx",
event = "attack",
frame = 20,
}
defineAnimationEvent{
animation = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_walk.fbx",
event = "footstep",
frame = 3,
}
defineAnimationEvent{
animation = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_walk.fbx",
event = "footstep",
frame = 18,
}
defineAnimationEvent{
animation = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_walk.fbx",
event = "footstep",
frame = 34,
}
defineAnimationEvent{
animation = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_walk.fbx",
event = "footstep",
frame = 52,
}
defineAnimationEvent{
animation = "mod_assets/plugins/barbarian_axe/animations/barbarian_axe_shield_walk.fbx",
event = "footstep",
frame = 60,
}
-------------------------------------------------------
-- materials
-------------------------------------------------------
defineMaterial{
name = "barbarian",
diffuseMap = "mod_assets/plugins/barbarian_axe/textures/barbarian_d.tga",
specularMap = "mod_assets/plugins/barbarian_axe/textures/barbarian_s.tga",
normalMap = "mod_assets/plugins/barbarian_axe/textures/barbarian_n.tga",
doubleSided = false,
lighting = true,
alphaTest = true,
blendMode = "Opaque",
textureAddressMode = "Wrap",
glossiness = 20,
depthBias = 0,
Ah... Ok, I see.uggardian wrote: I meant with the sounds, that according to the video of bowman (for example) he uses the same sounds as the ranged skeleton warrior. The bowman could really be more interesting with his own walking sounds.
Code: Select all
footstepSound = "skeleton_footstep"
Code: Select all
defineAnimationEvent{
animation = "assets/animations/monsters/tunnel_ogre/tunnel_ogre_attack.fbx",
event = "playSound:ogre_whoosh",
frame = 17,
}
petri wrote:Leki, I think your custom monster does not define the footstep sound. Try this:I don't see why the attack sound isn't working. Hmm...Code: Select all
footstepSound = "skeleton_footstep"
You could also try triggering the sound effects directly from the animation event, like this:
Does this work?Code: Select all
defineAnimationEvent{ animation = "assets/animations/monsters/tunnel_ogre/tunnel_ogre_attack.fbx", event = "playSound:ogre_whoosh", frame = 17, }
Code: Select all
defineObject{
name = "snail",
class = "Monster",
model = "assets/models/monsters/snail.fbx",
meshName = "snail_mesh",
animations = {
idle = "assets/animations/monsters/snail/snail_idle.fbx",
moveForward = "assets/animations/monsters/snail/snail_walk.fbx",
turnLeft = "assets/animations/monsters/snail/snail_turn_left.fbx",
turnRight = "assets/animations/monsters/snail/snail_turn_right.fbx",
attack = "assets/animations/monsters/snail/snail_attack.fbx",
getHitFrontLeft = "assets/animations/monsters/snail/snail_get_hit_front_left.fbx",
getHitFrontRight = "assets/animations/monsters/snail/snail_get_hit_front_right.fbx",
getHitBack = "assets/animations/monsters/snail/snail_get_hit_back.fbx",
getHitLeft = "assets/animations/monsters/snail/snail_get_hit_left.fbx",
getHitRight = "assets/animations/monsters/snail/snail_get_hit_right.fbx",
fall = "assets/animations/monsters/snail/snail_get_hit_front_left.fbx",
},
moveSound = "snail_walk",
attackSound = "snail_attack",
hitSound = "snail_hit",
dieSound = "snail_die",
hitEffect = "hit_goo",
capsuleHeight = 0.2,
capsuleRadius = 0.7,
health = 90,
sight = 2.5,
attackPower = 6,
movementCoolDown = 4,
coolDown = { 0.5, 4 },
evasion = -10,
noRecoilInterval = { 0.1, 0.5 },
exp = 60,
lootDrop = { 75, "snail_slice", 10, "snail_slice" },
healthIncrement = 30,
attackPowerIncrement = 3,
brain = "Melee",
}
Code: Select all
defineAnimationEvent{
animation = "assets/animations/monsters/tunnel_ogre/tunnel_ogre_attack.fbx",
event = "playSound:ogre_whoosh",
frame = 17,
}