Monday, January 27, 2014

Tutorial: Talking Activators - make things engage dialogue

Object: To be able to speak to static elements (non-Actors)

Difficulty: Quite easy

Time Needed: A couple of minutes

Things you will need:
  • Creation Kit. The Creation Kit is the modding tool for Skyrim and can be downloaded for free on Steam.
  • Basic knowledge in quest/dialogue creation
  • Reading the additional note at the end *do read it!*
What we're going to do

If you have played Skyrim quite a bit, you probably came to meet some strange beings that could talk to you even though they weren't NPCs, but rather some floating magic orb, or just a voice talking out of nowhere. Well, that's what we're going to do here: creating one of those things that can engage dialog with the player.
The method to do it is probably not the one the developers used, but it works, so it's all that matters.

With this tutorial, you can make any static mesh seem to be able to talk: it can be a rock, a giant mushroom, a pretty light FX, or whatever floats the boat of your imagination. Just keep in mind that the activator will be static.


Creating the Talking Activator

1. Open the Creation Kit and load Skyrim.esm.
2. In the Object View window, filter "talkingactivator", then select the category ALL. You will see that there aren't many talking activators available. Duplicate one of them, rename it to your liking, and double click to edit it.
Actually, there isn't much to change here, but it's interesting to take a look. Notice the Voice Type field, and notice that the voice type of those talking activators is always a Unique voice type. Well, it'd be best that you pick one of those Unique voice types, because else, the activator is going to greet you with common racial greetings such as "How can I assist, hm?" or "Yes, sera?". It can ruin the mojo quite badly if you were going to make some badass talking rock.
When you've picked a voice, hit OK, and place your talking activator in the world. Probably in front of the rock, giant mushroom or pretty light FX of your choice.


Creating the dialogue

1. To create a dialogue, you need to create a quest. So, go to the Object Window, in Character>Quest, and create a new quest (right-click>New). If you are not familiar with quests, it would be best that you give a look to the Creation Kit wiki's tutorial on quest creation and dialogue.
2. Upon creating a new quest, the Quest window prompts. Give your quest a name, hit OK, and open it again so you can access more tabs that will be needed in the next steps.
3. Go to Quest Aliases. Right-click>New in the table. In the window that prompts, select "Specific Reference" and click on the button right to the option to select the talking activator in the Render View. Give your alias a nice name, like "Voice".
4. Now we're going to create the dialogue that this Voice will say. So go to the Dialogue View tab.

  • Create a new dialogue view (right-click>new)
  • Create a new dialogue branch (right-click>new)
  • Name your first dialogue topic.

For the purpose of testing, I just made a simple dialogue with two possible answers to the first topic.
5. Once your dialogue is done, go the the Scenes tab.

  • Create a new scene (right-click>new)
  • Create a new phase at end (right-click>create new phase at end)
  • Add an actor (select Voice, or whatever you named your quest alias)
  • Select the phase, right-click>New action>Package

In the window that pops up, right-click in the table>new. The Package window prompts.

  • In the drop-down menu called Package Template, select ForceGreet
  • In the table on the left, click on the first option (Topic) and select the first topic of your dialogue in the drop-down menu, right to the table. You can filter it by typing its name.
  • In the table, you may also click on the third option (Trigger Location), click on the button in the Selected Package Data area, and select your talking activator in the Render View. The radius is set to 500 by default, you might want to reduce it eventually, but it's not very important.
  • Click OK on all the windows that are open to save the changes to your quest.

Now you could think that since you just created a scene, in which your talking activator is supposed to force dialogue when approached by the player, that it would be normal for it to act this way. Well, sadly, that doesn't work, and the talking activator cannot be activated by the player either. So we need to find a way to force the activator to start its scene.

Creating the Trigger or Activator

1. Now we have two options:

  • Creating a trigger volume that will force the dialogue when the player enters it
  • Creating a custom activator that the player can use to start the dialogue

So it's all a matter of whether you want the player to initiate the dialogue or not.

Creating a trigger
For this option, just select an item in your scene that is about the size of the player, and click on the little icon looking like a cube with a T inside, in the toolbar. A red box will appear around the item you selected. You can use the arrows pointing from its center to resize it, or press 2 and move it around to place it near your talking activator.


Creating a custom activator
For this option, go to the Object View, in WorldObjects>Activator and filter any kind of button, simple lever or pull chain as you like. I like the NorPullChain01 but that's personal taste. Duplicate the activator of your choice and rename it, then let's edit its properties.

  • In the field "Name", you could put the name of the character supposed to be speaking (or anything else, we can be tricky). Here, I put "Insane Crystal" because an Azuran crystal on Tamriel is obviously insane.
  • In the field "Activate Text Override", you could put something like "talk". Or it could be anything, like "annoy", "bother", etc. Be crazy if it serves your evil projects.
  • Among the options on the right, you might want to tick "Is Marker". This will make the activator invisible, so it will really look like you're trying to talk to your static mesh, without having to use some device for this purpose.


Now if we leave things as they are, it's gonna be pretty useless, because neither the trigger nor the activators know what to do. For this, we're going to need a little script.


Creating the Trigger or Activator

What this script does is simply to force the activation of the talking activator, which forces it to start its scene.

  • Double click on your trigger/activator in the Render View
  • Go to the Scripts tab, far right in the tabs of the Reference window
  • Click on Add (wait a little for scripts to load)
  • Click on New Script, and give it a name. Click OK.
  • Select your script in the Reference window, right-click>Edit source
  • Paste the following code and save:

ObjectReference Property TalkActivator Auto 
Event OnActivate(ObjectReference akActionRef)
TalkActivator.Activate(Game.GetPlayer(), true)
EndEvent

  • Double-click on your script to edit its properties.
  • Select TalkActivator and click on Edit Value. Click on the button to select the talking activator in the Render View.

And that's it! Now it's time to test this out ingame!


As you can see, this insane crystal talks like a Khajiit, due to MaleKhajiit voice type.

Very important additional note
I had the very displeasing surprise to figure out that this method didn't seem to work anymore as I started to apply it to my mod. I did all the possible tests I could do to figure what wasn't working, until a friend told me of the "quest dialogue bug" that has started to occur with a recent update. This bug makes it impossible to engage dialogue with any NPC or, in this case, a talking activator ...until you save and reload the game.
Yes, the fix is as simple as this. F5, F9, and it all works smoothly again. Don't forget to add this recommendation in the description of your mod when you publish it!

Thanks to Felroki for the tip. If you like Dunmer items or want to see a more Dunmeri revamp of the Gray Quarter, do check out her mods on the Nexus or Steam! She did a fantastic job on them!





Thursday, July 11, 2013

EBMv2 - New books added and placed

Here is a part of the covers I made for books from the previous ES games --you may remember some. Each book features a description its content on the backcover, I thought it would be nice and helpful for the player. As you may see I also created templates to both save my time, and give the feeling that books were published by actual editors, such as the Tribunal Temple, the Imperial College, the Order of Arkay or the School of Julianos, to name but a few.




These shots are from the CK save for the last one, obviously ingame. Note that I use doccdr's Book Covers Skyrim mod, as I intend EBM.2 to work along with it. So far it seems the book covers all fit nicely together.

As you can see there are still many holes on the shelves, which shall be filled either by books I still have to bring back or by mine in some cases. The books are sorted by categories in the library (History, Geopolitics, Religious, etc) and by themes in the shelves (War of the First Council, Daedra, epics, horror/love/thieves... stories, etc). I think it is rather convenient this way. I should also be adding bibliographies listing the books and where to find them, and I plan to retexture all the bookshelves to add little signs reading their theme, with a simple color code as well.

I thought I'd add items in the shelves as well but it seems to be more complicated to achieve than I'd thought due to physics: everything collapses beyond logic and it's all a mess. The place should still be cozy, and if I can I'll try to add some nice paintings to decorate the walls.





Wednesday, July 3, 2013

EBMv2 - Lore books listing

For better organization I have listed (what I think are) all the titles of TES books I should be adding in EBMv2. This way we can create all the covers more efficiently. I classifed the books in categories so I could divide the whole into some handful of books and progress step by step, with a lot of testing in between to make sure all the books display nicely ingame. Also, some books should share similar templates to look like part of a same collection by a same publisher (ie: Tribunal Temple) so I sort these ones together as well.

The list of books is found here, it can be viewed by anyone but only those willing to lend a hand in creating textures will be able to edit it. If you wish to help, show me a sample of what you can do (illustration, texturing...) and provide me with a valid email so I give you editing rights =)

A tutorial about book creation can be found here as well. Though I don't require that helpers create the books from A to Z, only textures, or illustrations if they feel up to it.