Jump to content

Recommended Posts

Posted

OK, so I followed this tutorial:

and I am able to make a somewhat working scene by following the instructions, however there are a couple of things that I have not found instruction for and have not been able to get working through the methods I thought would work.

 

In this scene, I want to have the player pick up a sword to start it, but the sword is not moved into the player's inventory. Instead, it stays there and emits a pulse of magic. The player is then forced to first person, and the kneeling animation from the quest unbound, where you are knelt on to the chopping block. Then, an npc who was already present steps in front of the player, and speaks a line. The screen then fades to black, the player is moved to a new cell, and fades back in again.

 

That is what I want to happen. What I have working currently is the player picks up the sword, first person is forced, controls are disabled, the player moved into position, as does the npc, but the player does not kneel. Then, the screen fades to black for a split-second, and is not teleported to the new cell. I have tried to look for how unbound does the player kneeling, but I could not find out how the scene calls it. Here is the code that I am using to hope to achieve the ending effects:

 

Game.FadeOutGame(true, true, 1.0, 10.0)

;PlayerAlias.MoveTo(teleportmarkeralias)

Game. FadeOutGame(false, true, 1.0, 3.0)

GetOwningQuest().SetStage(50)

 

I have also attached a screenshot of my scene. Does anyone know how to properly do this, and can point me in the right direction?

Posted

Ok, so through a little digging, I think I figured out that the engine actually uses a normal sit animation and modifies it through a script with the beheading animation, but as for the other stuff I am still clueless. Anyone have any idea?

Posted

It's possible the kneeling animation is a paired animation because there's the imperial captain that pushes her foot on the nord soldier as he kneels. So you would need two actors to play that animation. There's a separate kneeling animation that the greybeards use which is for a single person, I think.

Posted

It's possible the kneeling animation is a paired animation because there's the imperial captain that pushes her foot on the nord soldier as he kneels. So you would need two actors to play that animation. There's a separate kneeling animation that the greybeards use which is for a single person, I think.

Come to think of it, since it will be in first person anyway, the regular sitting animation would probably work. But is there any special way to do this? Right now I am using a UseIdleMarker package, and the player refuses to use it. Also, do you know anything about the teleporting or the FadeToBlack? Those also refuse to work.

Posted

Im not sure, maybe SetPlayerAiDriven() is what you need to make player use packages:

http://www.creationkit.com/SetPlayerAIDriven_-_Game

 

Then disable it when you're done.

 

As for teleporting, it seems your "Moveto" line of code is a comment (has a semicolon; in front of it) so papyrus skips over compiling it.

FadeToBlack: I don't really know how to do this, but I'm guessing make a black Imagespace modifier, then use AppleCrossFade to make the game fade to black and then RemoveCrossFade() to reverse it.

 

http://www.creationkit.com/ApplyCrossFade_-_ImageSpaceModifier

Posted

Im not sure, maybe SetPlayerAiDriven() is what you need to make player use packages:

http://www.creationkit.com/SetPlayerAIDriven_-_Game

 

Then disable it when you're done.

 

As for teleporting, it seems your "Moveto" line of code is a comment (has a semicolon; in front of it) so papyrus skips over compiling it.

FadeToBlack: I don't really know how to do this, but I'm guessing make a black Imagespace modifier, then use AppleCrossFade to make the game fade to black and then RemoveCrossFade() to reverse it.

 

http://www.creationkit.com/ApplyCrossFade_-_ImageSpaceModifier

That semicolon was there because the line of code would not compile without it, giving me an error that said it was not a function or did not exist. I read somewhere that that was a bug for script fragments, and that would fix it. Didn't know that it marked it as a comment though. Do you know the proper way to do that then? Also, the player is set to AI driven, hence why he/she can walk to the marker.

Posted (edited)

Oh the semicolon is fine if you want to make the code non-functioning, like a backup you can easily reverse in case you want the code to work again. But obviously it won't work since it's classified as a comment.

 

I just realized you call the MoveTo() funciton on PlayerAlias, but Moveto() can only be used on objectreferences (http://www.creationkit.com/MoveTo_-_ObjectReference).

 

So, either have "Actor property PlayerRef Auto" (actors are objectreferences and the player's reference will auto-fill) and call PlayerRef.MoveTo(teleportmarkeralias.GetReference()),

 

...or use (PlayerAlias.GetReference()).MoveTo(teleportmarkeralias.GetReference())

 

The difference between ReferenceAlias/LocationAlias/Alias and ObjectReference is that Aliases are, well, aliases. It's how the quest identifies the item, like a tag on the ObjectReferences, which are the actual objects themselves. So some functions work only on RefereceAliases, while others only work on ObjectReferences. GetReference() finds the actual reference the alias is pointing at, so you can use ObjectReference functions with it.

 

http://www.creationkit.com/GetReference_-_ReferenceAlias

Edited by Ceruulean
Posted

Oh the semicolon is fine if you want to make the code non-functioning, like a backup you can easily reverse in case you want the code to work again. But obviously it won't work since it's classified as a comment.

 

I just realized you call the MoveTo() funciton on PlayerAlias, but Moveto() can only be used on objectreferences (http://www.creationkit.com/MoveTo_-_ObjectReference).

 

So, either have "Actor property PlayerRef Auto" (actors are objectreferences and the player's reference will auto-fill) and call PlayerRef.MoveTo(teleportmarkeralias.GetReference()),

 

...or use (PlayerAlias.GetReference()).MoveTo(teleportmarkeralias.GetReference())

 

The difference between ReferenceAlias/LocationAlias/Alias and ObjectReference is that Aliases are, well, aliases. It's how the quest identifies the item, like a tag on the ObjectReferences, which are the actual objects themselves. So some functions work only on RefereceAliases, while others only work on ObjectReferences. GetReference() finds the actual reference the alias is pointing at, so you can use ObjectReference functions with it.

 

http://www.creationkit.com/GetReference_-_ReferenceAlias

I got the code for the moveto to compile with your suggestion, thank you. However, it still doesn't work. Is there anything special I need to do to get that to work on the player, other than set him/her to ai controlled? Actually, now that I look at this a bit closer, none of the code within the scene seems to execute, aside from the fadetoblack, which does not work correctly. Anything special I need to do for that as well?

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...