Making weeping enemies . Help!

Talk about Severance Blade of Darkness modifications and maps here. No tips or tech support questions please, use the forum above. Note that the game is rated 18 so some content may be unsuitable for younger readers.

Moderators: prospero, Ade

Post Reply
Limpiacobardes
Whelp
Posts: 35
Joined: Sun Nov 03, 2002 2:12 am
Location: Chile

Making weeping enemies . Help!

Post by Limpiacobardes »

I`ve noticed that rarely time the traitor knights "complain" when they are hurt. What we can actually hear in the game are the "efforts" [esfuerzos] of the knights trying to hit us, but not they hurts sounds.

<i>What i know: </i>
Even though in AnisoundTknX, the hurt sounds are created:

Code: Select all

HeridaTkn1=Bladex.CreateSound('..\\..\\sounds\\heridaTkn1.wav', 'HeridaTkn1')
HeridaTkn1.SendNotify=1
HeridaTkn1.MinDistance=1000
HeridaTkn1.MaxDistance=25000
HeridaTkn2=Bladex.CreateSound('..\\..\\sounds\\heridaTkn2.wav', 'HeridaTkn2')
HeridaTkn2.SendNotify=1
HeridaTkn2.MinDistance=1000
HeridaTkn2.MaxDistance=25000
HeridaTkn3=Bladex.CreateSound('..\\..\\sounds\\heridaTkn3.wav', 'HeridaTkn3')
HeridaTkn3.SendNotify=1
HeridaTkn3.MinDistance=1000
HeridaTkn3.MaxDistance=25000
[btw, "herida" means wound]

and in AnisoundTkn this sounds are added to the animations:

Code: Select all

	per.AddAnimSound('Tkn_hurt_jog', HeridaTkn1, 0.2000)
	per.AddAnimSound('Tkn_hurt_neck', HeridaTkn1, 0.2000)
	per.AddAnimSound('Tkn_hurt_breast', HeridaTkn1, 0.2000)
	per.AddAnimSound('Tkn_hurt_back', HeridaTkn1, 0.2000)
	per.AddAnimSound('Tkn_hurt_r_arm', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_l_arm', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_r_leg', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_l_leg', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_neck', HeridaTkn3, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_breast', HeridaTkn3, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_back', HeridaTkn3, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_r_arm', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_l_arm', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_r_leg', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_l_leg', HeridaTkn2, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_lite', HeridaTkn3, 0.2000)
	per.AddAnimSound('Tkn_hurt_f_big', HeridaTkn3, 0.2000)
	per.AddAnimSound('Tkn_hurt_head', HeridaTkn3, 0.2000)
[btw, the number at the end, anyone knows what its for?]

Despite this, the sounds don't...ehh..sound

<i>What i don't know:</i>
Where is the file that says, okay so we have a sound linked to this, lets play it!


So, if anyone knows how works the sounds linked to animations, please give a shout (or a hurt sound[:D]), i would like to implement this

User avatar
prospero
Ancient Dragon
Posts: 1802
Joined: Wed Nov 21, 2001 1:42 am
Location: United Kingdom

Post by prospero »

Arrrgh![B)]

Thats interesting. I will try and set up a test function to check it out.

btw. The 0.2000 is the time the sound is played from the begining of the anim.

Stay Tuned.[8D]

Limpiacobardes
Whelp
Posts: 35
Joined: Sun Nov 03, 2002 2:12 am
Location: Chile

Post by Limpiacobardes »

Thanks Pro!, i will keep around[;)]

yaaargh[:p]

Vasja
Dragon
Posts: 89
Joined: Mon Sep 05, 2005 6:47 pm

Post by Vasja »

person.AddAnimSound("Tkn_hurt_jog", HeridaTkn1, 0.2)
It means -
add the chosen sound for the biped animated object animation. Animation plays - sound shouts. Shout start
is an animation frame relative number -
start = The_chosen_frame/All_anm_frames, 0.0 <= start <= 1.0
start is 0.2 in our case. Sound plays without a human care every time, when this animation plays. You may add
some animation sounds to the single animation together
let us say
person = Bladex.GetEntity("Your_tr_knight")
person.AddAnimSound("Tkn_hurt_jog", HeridaTkn1, 0.215)
person.AddAnimSound("Tkn_hurt_jog", HeridaTkn2, 0.38)
person.AddAnimSound("Tkn_hurt_jog", HeridaTkn3, 0.741)
Check your sound object before adding - can it play or can not ?
#
#
It is necesseray for the main character, but excessive for persons
with a limited functionality, as the traitor knights are. Also
remember - you need a script code to launch the appropriate hurt
animations and more RAM space to store ready made sound objects and
their Python interfaces. C++ heap RAM will not be lucky.

Limpiacobardes
Whelp
Posts: 35
Joined: Sun Nov 03, 2002 2:12 am
Location: Chile

Post by Limpiacobardes »

Thanks Vasja, i now try to implement things that i think were planned but not implemented (my bloodmod was a bit of a push the envelop altough [8)])

You can see in the AnisoundTkn that some attacks have also linked sounds of respiration...i think that it`s excessive, if i make a mod about this i surely remove that sounds. Well, i think i can swap resources this way. Besides, the orks are their hurts sounds perfectly implemented


I also have check the combat sounds of other games, once again Blade was by far the most ambition of all. To give the sense that the characters are alive most games link sounds to the swings of the weapons and to the hurt sounds of the enemies (since that the enemies are going to die a lot and also its a good feedback to the player). For the enemies Blade has effort sounda, respirations sounds (during the combat), several swings sounds (for just one attack) and the hurt sounds.


**************UPDATE
<i>What i find out</i>

They are 2 kinds of hurt animations:

1)With movement
hurt_big, hurt_jog, hurt_lite

2)without movement
everything else
therefore im not sure if are animations in the proper sense.

Code: Select all

	anm_name="Trl_hurt_l_arm"
	Bladex.LoadSampledAnimation("..\\..\\Anm\\Trl_hurt_l_arm.BMV","Trl_hurt_l_arm",0)
	Bladex.AddAnmRStep(anm_name,0.000)
	Bladex.AddAnmLStep(anm_name,0.000)
	
	
	anm_name="Trl_hurt_breast"
	Bladex.LoadSampledAnimation("..\\..\\Anm\\Trl_hurt_breast.BMV","Trl_hurt_breast",0)
	Bladex.AddAnmRStep(anm_name,0.000)
	Bladex.AddAnmLStep(anm_name,0.000)
	
	
	anm_name="Trl_hurt_back"
	Bladex.LoadSampledAnimation("..\\..\\Anm\\Trl_hurt_back.BMV","Trl_hurt_back",0)
	Bladex.AddAnmRStep(anm_name,0.000)
	Bladex.AddAnmLStep(anm_name,0.000)
[Could this be the problem why the sound doesnt trigger, since are linked to the frame 0,2?]

Most of the animations with no movement (that actually sound) have the sound linked to the frame 0,5

In the demo, Sargon complains a lot more than the retail version, his hurt sounds are linked to the frame 0,3

<i>I`ve made some pogress</i>

So far i`ve been able to trigger the several hurt sounds
f_l_arm (0,5)
f_r_leg (0,5)
f_l_leg (0,5)
f_r_arm (0,5)
f_big (0,3)


and the ones that i cannot trigger are these...
f_back
f_head
f_breast

If anyone think of something, please give a sound [:D]

Vasja
Dragon
Posts: 89
Joined: Mon Sep 05, 2005 6:47 pm

Post by Vasja »

Code: Select all

# At first - from your chosen file load animation, its string name
# will be a reference to the C++ animation object.
your_anm_name = "Kgt_hurt_f_head"
Bladex.LoadSampledAnimation(your_anm_path, your_anm_name, 0)
Bladex.AddAnmRStep(your_anm_name, 0.0)
Bladex.AddAnmLStep(your_anm_name, 0.0)
# At second - make an abstract action object from the chosen animation object,
# from the start frame 0.11 till the end frame 0.60 .
Bladex.AddBipedAction("Knight", "hurt_f_head", "Kgt_hurt_f_head", 0.11, 0.60, 0)
# Handle system/manual events during this action -
Bladex.SetActionEventTable(table_name, "hurt_f_head", table_part)
# At third - create a sound object(and test whether it works or not).
sound = Bladex.CreateSound(your_sound_path, your_sound_name)
sound.SendNotify = 0
sound.Volume = 0.75
sound.MinDistance = 1000
sound.MaxDistance = 25000
# At fourth, after CreateEntity -
person = Bladex.GetEntity("Your_entity")
person.AddAnimSound("Kgt_hurt_f_head", sound, 0.215)
# At fifth - test.
person = Bladex.GetEntity("Your_entity")
person.DoAction("hurt_f_head")
This is such a way to set a person's action. The main problem above
is, that system script has already done these procedures instead of
us. Action "hurt_f_head" has already existed and tuned. Try this
chunk for the Knight -

Code: Select all

sound = Bladex.CreateSound(your_sound_path, your_sound_name)
sound.SendNotify = 0
sound.Volume = 0.75
sound.MinDistance = 1000
sound.MaxDistance = 25000
Bladex.GetEntity(your_entity).AddAnimSound("Kgt_hurt_f_head", sound, 0.215)
# Somewhere else -
Bladex.GetEntity(your_entity).DoAction("hurt_f_head")

Limpiacobardes
Whelp
Posts: 35
Joined: Sun Nov 03, 2002 2:12 am
Location: Chile

Post by Limpiacobardes »

Sorry for the delay Vasya, my computer decide to retire from the world, so now I'm trying to recover some of the data, including nice recollected sword-like sounds from around the web...[V]

i will try this and post how it went

Post Reply