MONSTERS by LEKI (CLOSED)

Talk about creating Grimrock 1 levels and mods here. Warning: forum contains spoilers!
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by Drakkan »

say 92% pls ! :D
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
Leki
Posts: 550
Joined: Wed Sep 12, 2012 3:49 pm

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by Leki »

Well, OK - only hits and souds to do. Then some polishing and it will be ready for publishing. So I can say 93%...
I'm the Gate I'm the Key.
Dawn of Lore
User avatar
Leki
Posts: 550
Joined: Wed Sep 12, 2012 3:49 pm

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by Leki »

Well, I have no idea, how to solve custom monster sound problem...
Monsters like skeleton_warrior_sword has definition like this one:

SpoilerShow

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",
}
as you can see, there is a part of sound definition:
SpoilerShow

Code: Select all

        ..	
        moveSound = "skeleton_walk",
	footstepSound = "skeleton_footstep",
	attackSound = "skeleton_attack",
	hitSound = "skeleton_hit",
	dieSound = "skeleton_die",
        ..
in grimrock_assets\sounds.lua you can find "skeleton walk":
SpoilerShow

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
in grimrock_assets\animation_events.lua you can find "skeleton walk":
SpoilerShow

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,
}
..
As you can see, it's easy:
You have sound deffinition, and you have animation event definition. In monster definition you have to write "sound_name" of your custom sound. When monster is walking, there is animation_event and this events calls sound in defined frame.

Here is custom monster script:

SpoilerShow

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,




But, if he is walking, you can hear only first step - does not matter if in monster script is defineAnimationEvent defined. Attack works without problem. Party gets hit on defined frame, so event"attack" is ok, I guess. But event "footstep" does nothing.
As you can see there is not "turn" animation_event definiton, but ingame you can hear sound. Its in the beggining of animation - the same as walking and you can hear it once as well.
For human bowman I used skeleton archer walking animation, as you know. Current version is without walking animation events, only attack. It sounds in the same way so I wrote there walking events and it's ok now, so I will update bownam files soon, but it does not solving human warrior problem. Bowman is ok, because I just copied skeleton archer animation and renamed it. Warrior has whole new walking animation. So maybe there is smth wron in export and frames are corupted or smth like that... I can loop walk sount 3x to mimic his sounds, but its piece of shit and the same happens for attack - I don't like to fake whole sounds. Any ideas?
I'm the Gate I'm the Key.
Dawn of Lore
User avatar
maneus
Posts: 246
Joined: Mon Jun 17, 2013 10:42 pm
Location: Switzerland

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by maneus »

Maybe you can set in your sound.lua loop = "true". ? No idea if it fix your problem, but I would try it.
User avatar
Drakkan
Posts: 1318
Joined: Mon Dec 31, 2012 12:25 am

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by Drakkan »

80 % ? Thats a nightmare ! :D
Breath from the unpromising waters.
Eye of the Atlantis
User avatar
Eleven Warrior
Posts: 745
Joined: Thu Apr 18, 2013 2:32 pm
Location: Australia

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by Eleven Warrior »

Leki I don't know what or if this right, but when I use your Human Warriors (archers) I don't hear them walking but I don't care because imam so busy trying to kill them I don't even notice their walking Sounds ahy.. And I guess nobody else would either ahy.. Anyhows I love your work sound or no sound its awesome, buts that just me.. When you are trying to kill something, the last thing imam thinking about, hey can I hear its foot steps LOL
bongobeat
Posts: 1076
Joined: Thu May 16, 2013 5:58 pm
Location: France

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by bongobeat »

Hey,
Eleven Warrior is true, that sound problem doesn't really a problem, or?
I use actually your archer and I hear a sound like skeleton archer's sound. Seems now, that is the first step you mentionned?
I just come back from the editor and I hear now that the bowman did only a "first step", while the skeleton did have a additional walk sound.
If you didnt had post that here, I would not notice anything. And honestly, this doesn't bother me, my attention is on their shoots, not on their moves :)

Well, it doesn't bother me as a player, but as a conceptor, I understand it may hmmm, make angry? Sorry I dont find the word :o !

Anyway, this is a small detail :)
My asset pack: viewtopic.php?f=22&t=9320

Log1 mod : Toorum Manor: viewtopic.php?f=14&t=5505
User avatar
Leki
Posts: 550
Joined: Wed Sep 12, 2012 3:49 pm

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by Leki »

I still cannot solve human warrior sound problem. The same sh*t happend to the dragon, so I made fake attack sound (dragon bite) controled by script and timer. It's terrible to synchronize it with animation - because different speeds of computers - so it's only around 90% match... But this method doesn't helps for standard monster like human warrior is. So I will release him with this known bug :-/

Just to keep continuity of this thread , here is the Dragon. You can see him in the action in ORRR2.
After some polishing, I will release him as monster plugin as well, with simple tutorial how to use it - so you can play with dragon in the editor as well!


Image
SpoilerShow
Image
SpoilerShow
Image
I'm the Gate I'm the Key.
Dawn of Lore
User avatar
LordGarth
Posts: 500
Joined: Mon Jun 18, 2012 5:07 pm
Location: Colorado USA

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by LordGarth »

Very Impressive. I cant wait too see all the other monsters you will create as well in the future.

LordGarth
Dungeon Master and DOOM will live forever.
User avatar
undeaddemon
Posts: 157
Joined: Fri Mar 02, 2012 3:38 pm

Re: [SOURCE] MONSTERS by Leki (Human Warrior 80%)

Post by undeaddemon »

IS AH taking note of this?? Frickin AMAZING!! -
Post Reply