The Helgen Excecution & Actor Decapitation

Post » Tue Jun 19, 2012 3:23 pm

Hello,

I am trying to understand how the game decapitates actors.

This is the script found on the Chopping Block at the execution scene at Helgen at the game's start:



scriptName HeadChopBlockHookupSCRIPT extends ObjectReference{- This script hooks up the two people in the head chop block furniture and makes them play the chop animation together.}import utilityimport DebugObjectReference executionerActorObjectReference executioneeActorObjectReference executionGuardActorIdle property animIdle auto{This is the idle that the executionee will play when everything is ready.}Idle property playerAnimIdle auto{This is the idle that the player will play when everything is ready.}Keyword property executionerKeyword auto{The keyword that designates the executioner from the soon to be dead.}Keyword property executionGuardKeyword auto{The keyword that designates the executioner from the soon to be dead.}Quest Property MQ101 Auto;*****************************************auto STATE readyToChopEvent OnActivate( ObjectReference akActionRef );  debug.trace(self + " OnActivate: " + akActionRef)if ( akActionRef.HasKeyword( executionerKeyword ) );   debug.trace(self+ "The executioner is in place: " + akActionRef )  executionerActor = akActionRefelseif ( akActionRef.HasKeyword( executionGuardKeyword ) );   debug.trace(self+ "The execution guard is in place: " + akActionRef )  executionGuardActor = akActionRefelseif (akActionRef == Game.GetPlayer())  ;Make sure the player can't look around during the execution;   debug.trace(self+ "The victim is in place: " + akActionRef )  executioneeActor = akActionRefelse;   debug.trace(self+ "The victim is in place: " + akActionRef )  executioneeActor = akActionRefendif;if it's ready, then do the chop!if ( executioneeActor != none && executionGuardActor != none && executionerActor != none )  gotoState("chopping");   debug.trace(self+ "Both in place, ready to chop" )  RegisterForSingleUpdate(0.5)endifendEventendStateSTATE chopping; do nothing for nowendStateEvent OnUpdate();  debug.trace(self + " OnUpdate");if it's ready, then do the chop!if ( executioneeActor != none && executionerActor != none );   debug.trace(self+ "CHOPPING START" )  wait(0.5)  ;set up the relationship  if ( !executioneeActor.AddDependentAnimatedObjectReference( executionerActor ) || !executioneeActor.AddDependentAnimatedObjectReference( executionGuardActor ) )   Notification( "dependence broken." )  endif


Can anyone see how this actually beheads the "excecutionee"? I'm trying my best to reverse engineer stuff and learn as I go. At the top of the code, it describes how this is only to hook up the actors to display the animation together. So perhaps the actual decapitating of the actor is done elsewhere in another script? I could not find any scripts that lead to the actually decapitation, whether it is a model swap, a parts-of-the-model swap etc. Should I go back in to the scene and try to look around some more? I've searched all around the CK for anything "decapitation, decap, decapitate" etc and have come up with nada.

I am extremely new to scripting, so please don't hate. I am not even sure if what I am looking to do is possible, so to determine that I need to first find out how the game decapitates people.
Does anyone recall coming across a pre-decapitated body in a cave or elsewhere I could check out as an example? Any other ideas?


Thanks folks.
User avatar
Kristian Perez
 
Posts: 3365
Joined: Thu Aug 23, 2007 3:03 am

Return to V - Skyrim