lfnetwork.com mark read register faq members calendar

Thread: Dialoge Animations
Thread Tools Display Modes
Post a new thread. Add a reply to this thread. Indicate all threads in this forum as read. Subscribe to this forum. RSS feed: this forum RSS feed: all forums
Old 08-10-2007, 04:52 PM   #1
Darth Balor
Junior Member
 
Darth Balor's Avatar
 
Join Date: Sep 2006
Location: Malachor V
Posts: 295
Dialoge Animations

ok here goes. I'm editing a dialoge and I need to make so during a line of dialoge the speaker uses force crush on the listener whom after the crush will stay lifted in the air. This will be done to four different people in the same dialoge then while they are all in the are force drain is used on them killing please help.

Darth Balor is offline   you may: quote & reply,
Old 08-11-2007, 09:24 AM   #2
Tupac Amaru
Junior Member
 
Tupac Amaru's Avatar
 
Join Date: Mar 2005
Location: Tahuantinsuyu
Posts: 273
Having them stay lifted in the air after the force crush isn't so easy since the game doesn't have animations that excactly do this. The best I can think of would be to start the force crush and then play the animation that is normally used to show a character floating in a Kolto tank. This script should work for a single character:
Code:
// Force Crush the target for fDuration seconds.
void FakeForceCrush(object oVictim, float fDuration);

// Cast Force Drain and kill the victim.
void UseForceDrain(object oCaster, object oVictim);

void FakeForceCrush(object oVictim, float fDuration) {
	AssignCommand(oVictim, ClearAllActions());
	AssignCommand(oVictim, ActionPlayAnimation(10460, 1.0, fDuration));
	DelayCommand(fDuration, AssignCommand(oVictim, ClearAllActions()));
}

void UseForceDrain(object oCaster, object oVictim) {
	effect eBeam = EffectBeam(VFX_BEAM_DRAIN_LIFE, oCaster, BODY_NODE_HAND);
	effect eVFX = EffectVisualEffect(VFX_PRO_DRAIN);
	DelayCommand(0.3, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam, oVictim, 2.0));
	DelayCommand(0.6, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oVictim));
	DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectDeath(), oVictim));
}

void main() {
	int nCutsceneParameter = GetScriptParameter(1);
	object oVictim = GetObjectByTag(GetScriptStringParameter());

        // Insert correct tag here.
	object oDrainUser = GetObjectByTag("");

	// Simulate force crush.
	if(nCutsceneParameter == 0) {

		float fCrushDuration = 1.9;
		ActionPauseConversation();

		AssignCommand(oDrainUser, ClearAllActions());
		AssignCommand(oDrainUser, ActionPlayAnimation( ANIMATION_FIREFORGET_FORCE_CAST, 1.0, fCrushDuration));

		FakeForceCrush(oVictim, fCrushDuration);

		DelayCommand(fCrushDuration, ActionResumeConversation());
        }

        // Kill them with Force Drain.
	if(nCutsceneParameter == 1) {

		AssignCommand(oDrainUser, ClearAllActions());
		AssignCommand(oDrainUser, ActionPlayAnimation( ANIMATION_FIREFORGET_FORCE_CAST, 1.0, 2.0));

		UseForceDrain(oDrainUser, oVictim);
       }
}
Call this script with script parameter P1 set to 0 in the dlg node where the Force Crush is supposed to start. You can pass the character's tag as a string parameter.
Then add dlg animation 1409 to all the subsequent nodes where the character should remain lifted in the air. Use the character's tag as participant of the animation.
When you reach the node where the character should die, call the script again. This time set the script parameter P1 to 1. Have this node run dlg animation 1409 as well.

If it isn't so important that the characters stay levitated in the air I think it would be less trouble to use Force Choke instead of Force Crush animation. Choking can be done with a simple dlg animation (number 10150) and stays active as long as you like while the animation for Force Crush only has a short duration. You can still kill them afterwards with Force Drain as in the script above.

Last edited by Tupac Amaru; 08-11-2007 at 10:15 AM.
Tupac Amaru is offline   you may: quote & reply,
Old 08-11-2007, 10:41 AM   #3
Darth Balor
Junior Member
 
Darth Balor's Avatar
 
Join Date: Sep 2006
Location: Malachor V
Posts: 295
well this is for the rebuilt enclave scene, with restored lines kreia speaks directly to each master lifting each one into a force crush and holding them there until she drains them all. so this should work.

Quote:
You can pass the character's tag as a string parameter.
Then add dlg animation 1409 to all the subsequent nodes where the character should remain lifted in the air. Use the character's tag as participant of the animation.
Quote:
You can pass the character's tag as a string parameter.
the caster of the crush or the reciever?

1409 are you sure it says that is the point animation


Last edited by Darth Balor; 08-11-2007 at 10:59 AM.
Darth Balor is offline   you may: quote & reply,
Old 08-11-2007, 12:40 PM   #4
Tupac Amaru
Junior Member
 
Tupac Amaru's Avatar
 
Join Date: Mar 2005
Location: Tahuantinsuyu
Posts: 273
Quote:
Originally Posted by Darth Balor
the caster of the crush or the reciever?
The tag for receiver is passed with the string parameter.

The tag of the caster is specified in this script line:

object oDrainUser = GetObjectByTag("");

You still need to put the correct tag in here which I forgot to mention.

Quote:
Originally Posted by Darth Balor
1409 are you sure it says that is the point animation
1409 is floating in Kolto tank. Point would be 10409.
Tupac Amaru is offline   you may: quote & reply,
Post a new thread. Add a reply to this thread. Indicate all threads in this forum as read. Subscribe to this forum. RSS feed: this forum RSS feed: all forums
Go Back   LucasForums > Network > Knights of the Old Republic > Editing / Modding > Holowan Laboratories > Dialoge Animations

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:48 PM.

LFNetwork, LLC ©2002-2011 - All rights reserved.
Powered by vBulletin®
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.