Showing posts with label tutorials. Show all posts
Showing posts with label tutorials. Show all posts

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!





Sunday, June 30, 2013

Tutorial: Skyrim books creation

I have recently learned how to create book covers for Skyrim books and so I thought I'd make a tutorial about it. And why not compile all I know so far about book creation so people don't have to search through scattered posts?

So here it is. It shall be uploaded to the Nexus as well in due time. Click the pic to view pdf file.


Thursday, January 10, 2013

Tutorial: Adding Help Files to Skyrim's Main Menu

Object: Add Help files to Skyrim's main menu.

Difficulty: Very Easy

Time Needed: Besides the time needed to write the files, about two minutes.

What You Will Need:


  • The Creation Kit. The Creation Kit is the modding tool for Skyrim, and can be downloaded from Steam.
  • Some previous understanding of the Creation Kit (preferably).
  • The text for the Help file that you want to add.

There are a number of ways to add guides and Help files to your mod. The most common way is to use a book or a Message Box menu system. With the addition of MCM (Mod Configuration Menu) to the SkyUI,  it is now also possible to add them to your mod's MCM. 

This tutorial focuses on adding Help files directly to Skyrim's normal main menu. When you press 'Esc' ingame, you can save, load, read your journal, review your achievements, etc. There are also Help messages for guiding the player in how to use the game. It is possible to add your own messages to this list. To do this, two things need to be done:

1) Create a new message by navigating to Miscellaneous > Messages in the Object Window, right-clicking in the right-hand panel, and clicking 'New'.
  • Write or copy the text that you want to be read in the Help menu.
  • Make sure that the Messagebox checkbox is checked.
  • I suggest that you follow the naming scheme that the other Help Message have: "Help[Topic]Long".
  • Ensure that there are no Menu Buttons or Conditions. Click 'Ok' to create the Message.

2) Navigate to "Miscellaneous > FormList" in the Object Window and find the "HelpManualPC" FormList. Double-click to edit it. Now go back to the Messages category, select your Help Message, and then drag it into the FormList.



3) Save your plugin. Start Skyrim.exe and select your plugin from the Data Files. Begin the game, load a save, and press 'Esc' to test your modification. Navigate to the 'Help' menu, and look for your message. The Help messages are categorized alphabetically by the Message's name.


There you go! Your Help files have now been added to Skyrim's Main Menu.

Wednesday, August 22, 2012

Need Voice Actors For Your Mod?

Are you creating a quest or follower mod? Do you need voice actors? This post gives a number of tips and links to help you find voice acting talent.

Doing it yourself:
First off, you may simply be able to do it yourself. Now, there's the possibility that your voice may have a different sound or be a different gender than your mod's characters. However, if you voice does fit a character, here are some tips to recording:
  1. Turn off all fans, air conditioners, and cell phones. Get rid of or turn off anything that could add background noise.
  2. Place your microphone at the very least an inch (I suggest 2-3 inches) from your mouth. That is to eliminate the small staticky sounds that may come from a dry mouth or from the mic rubbing against your skin.
  3. Keep a glass of water nearby to make sure that your mouth does not become dry. A dry mouth will make your produce a static-like sound in your recording.
  4. Sit up or stand up. Breathe with deeply, with your stomach expanding rather than your chest. This will provide a good airflow through your vocal chords, and provide your brain with the oxygen it needs.
  5. Sing for a while before recording. It doesn't matter if your singing voice is awful enough to kill cats, sing for a bit.  Doing so will loosen your vocal chords and get your lungs moving right for recording.
  6. Download Audacity. It is a free audio editing and recording program that is powerful enough to be used in professional settings. If you want to you can even learn how to add effects to your voices, but that won't be neccesary for simple voice acting.
  7. Along with the recordings for your lines, record a 5-6 seconds long file that is nothing but silence. Make sure that you do this with the same mic and in the same setting that you used for your line recording. This silence sample will be used later with Audacity to remove background static and noise from your audio files.
  8. Record your lines in the .WAV format. This can be done with Audacity. There are only two audio formats that the Creation Kit (for Skyrim) uses, and those are the .WAV and the .XWM formats. If you have the time, I would suggest converting your files to .XWM. They are not as large as .WAV files, but they will work fine. The decreased file space means that you will be more likely to pack your mod into the 100 mb limit of the Steam Workshop. Use this guide to convert the files. As far as I know, this is the only guide in existence that teaches you how to convert .WAV files to .XWM.

Recruiting others:
  1. The Voice Actors' Guild - The VA Guild is a part of the broader Engineering Guild, which is a modding community createed by the modder Giskard, who is well known for his Skyrim, Fallout 3, and Oblivion mods. I have used them before and they are a great group. Very friendly, quick, and professional. While you're there, you can also download some of the fantastic mods that they have produced.
  2. Post a thread in the Skyrim Nexus, Bethesda, or Steam forums asking for a voice actor. You are less likely to get someone with voice acting experience, but they are likely to be more eager to help.
  3. Take a look at the list of voice actors that helped with the Interesting NPCs mod for Skyrim. The mod author supplied links to their Nexus Pages, so you can contact them if you like their voice or are looking for any voice actor. With this specific group, I would suggest going into Skyrim and listening to their voices. That way you can choose the actor you want based upon their voice. Keep in mind, though, that they do not have to work with you if they do not want to. The likely get plenty of requests and do not have time to help everyone.
Once you have the lines:

Even once you have gone through the work to find voice actors, you will need to add them to the game. Below are a number of tutorials for adding voice files to characters in Skyrim.

  1. Deck16 - Adding a Voice Follower
  2. Creation Kit Wiki - Bethesda Tutorial Dialgoue
  3. Voice Acting: A Complete Guide
  4. Creation Kit Tutorial: Quest Dialogue [1/4]

Friday, June 22, 2012

Tutorial: Creating A Skill

Object: To create a new skill using Papyrus scritps

Difficulty: Very complicated and difficult

Time Needed: A great deal. If you are an unexperienced modder, it will take you even longer. For experienced modders, while actually writing the scripts might not take much time, designing the system, implementing it, and perfecting it until it plays well can still take a long time.

An extended version of this tutorial, along with a fully-functional example woodcutting skill mod are available on the Skyrim Nexus for free.

Things you will need:



  • Creation Kit.
  • A plan for how the skill will work mathematically
  • Scripting and general Skyrim modding experience

Note: You cannot create a new skill that uses the vanilla interface without editing most of the base code of the game. This tutorial explains a workaround tactic for create a system of scripts that let you track the how much the player does a certain item so that you can add perks, quests, or other features that depend on the player reaching a certain level in that skill. This tutorial is not going to follow the normal format (a list of buttons that you need to click and actions that you need to do). Rather, it is going to explain the concept of the skill workaround, and how to design/implement it. The actual implementation and the specific equations will be left to you to develop. In this tutorial, we will be using a Woodcutting skill as an example.

Setting up the XP: You first need to plan out the math of your skill. How you gain XP, how much XP you need to level, whether each level requires more XP, what higher levels give you, etc. These decisions will decide how the skill actually works mathematically and are extremely subject to change. I can't tell you how many times I have tweaked and changed my Unarmed leveling system in Way of the Monk. Once you being testing the skill you will inevitably find ways in which it can be improved or tweaked. What sounds good  in theory may not play well in the real game.

The first thing that you need to determine is the XP system. Even though Skyrim tries to take away the numbers as much as possible so that the game feels more immersive, it does actually use XP. Every time you use one of the skills (by casting a spell, hitting an enemy with a weapon, creating a potion, etc.) your XP is raised by a certain amount. Once it hits a cap, the skill level is then increased and the amount of XP needed to reach the next level is raised. You can study the XP system in Skyrim on the UESP wiki. I would highly recomend that you study the vanilla skills to gain a grasp of how they work. In the Woodcutting skill that I will be using as an example I used the following Papyrus Code:
if WoodcuttingXP.GetValue() >= 100
    WoodcuttingLevel.SetValue()WoodcuttingLevel.GetValue() + 1)
    WoodcuttingXP.SetValue(WoodcuttingXP - 100)
endif
Each time you activate the Woodcutting block, your XP will be raised. In the above code, the IF statement determines that when your XP reaches 100, your skill level is raised by one and your XP is reset.

If you want to have the amount of XP required to level increased every time, then you can do one of two things. 1) Instead of increasing the XP by a set amount every time the Woodcutting Block is activated, you should use a variable that can be decreased every time you level. So, say the variable starts out at a value of 10 and you must use the Woodcutting block 10 times to reach level 2. You should add to the above code a line that decreases that variable from 10 to (for instance) 8. Next time, it will take 12.5 (rounded to 13) uses of the Woodcutting Block to raise your level to 3. You can continue that process as long as you want to make it harder to level each time. Keep in mind, though, that if you simply subtract from the variable each time then the variable will eventually hit 0 and the level will never increase. So I would advise you to either write an IF statement to make sure that it never hits 0, or make sure that it hits 0 at just the right time if you want to have a level cap.

2) The other possibility is to have the amount of XP required to level set as a variable and increase it each time you gain a level. So, say at level 1 you gain 10 XP each time you use the Woodcutting Block and must acquire 100 XP to reach level 2. You can write the code so that when you hit level 2, the amount required to level is raised to (for example) 130. That way, it will take 13 uses of the Woodcutting Block to reach Level 3.

So, which of those methods should you use? It's really up to you. The second method is much more natural and runs much smoother than the first. But the first one makes it easier to modify the speed at which you raise your level with perks/abilities, and can be set up so that it stops level progression after a while.

Rewards: A skill is useless without rewards. You can give the player as fancy of an XP system as you want, but if it doesn't change the gameplay for them, then there is no point in downloading your mod. The vanilla game uses a perk system and a scaling system to reward the player for using a skill. The manner of your rewards depends entirely upon the skill that you are creating. For a Woodcutting Skill, the player might expect to be able to get a perk that increases the amount of firewood that they get each time they use the Woodcutting Block. Another good reward might be the ability to create items with your wood (arrows, bows, Forsworn items, etc.). Decide what type of reward you would like to give to the player.

Perks are the standard method of rewarding the player for raising their level. They are also an incredibly versatile way of giving bonuses to the player. I won't discuss perks in detail, since that's another discussion for another time. I will add, though, that one of the conditions that you can add to perks and their effects is the GetGlobalValue condition. This condition is extremely useful when using a skill system based upon Global Variables. If (for example), you want to specify that a Perk Entry only works when your Woodcutting Level is over 10, you can choose the S GetGlobalValue(WoodcuttingLevel) >= 10 condition information. This condition can also be used on Magic Effects in Spells.

Perk points are a good way of giving the player a choice in how they level. There is a reason why the game developers of Skyrim gave the player the choice of choosing their perks, rather than making the perk rewards mandatory like in Oblivion. It adds replay value and makes the player feel more invested in their character. If you're going to give the player that option, you will most likely end up having to create more perks so that they have some to choose from. While that means more work, it also means a more enjoyable playing experience.

The other type of reward that I mentioned was scaling. Scaling is when your ability to use the skill is improved as your level is increased. In the case of weapons, it means that your damage is increases when your level in that type of weapon is raised. The best way to set this up is to use an equation or perk that includes the skill level divided by a certain amount (e.g. effectiveness = 1 + Level*.01). You can also increase the effectiveness by a finite amount each time you level.

Example, using the equation:

        WoodcuttingEffectiveness.SetValue(1 + (WoodcuttingLevel.GetValue()*0.01))

OR by increasing it by a finite amount:

      WoodcuttingEffectiveness.SetValueInt(WoodCuttingEffectiveness.GetVaueInt() + 1)
This can be done with perks or by code in the leveling script. In the case of the example Woodcutting skill, the player can gain perks that increase the amount of wood that you gain each time you chop at the Chopping Block.



Another standard way of rewarding the player for raising their level is with new abilities or spells. New powers can be hard to make if you are trying to create a new type of effect that suits your skill, but they are a great way of making the player feel like they have accomplished something.

The other standard way of rewarding the player is with items. If you are a 3d artist, know someone who is, or have the permission of a mod author to use their models, you can add new items to reward the player with. Otherwise, you can add new enchantments or allow the crafting of vanilla items that you previously could not craft. Now, to fit the rest of the game, you probably don't want to simply add the item to their inventory once they reach a certain skill level. That breaks immersion and seems totally unnatural or special. It is best to either have a quest or a leveled list to give the item to the player. You can either make a quest for them to find it that you can only start once your skill reaches a certain level, or you can create a leveled list that has a chance to give you the item determined by a global variable. You can learn more about using globals in leveled lists by reading the "Chance None" entry on the wiki page, or by studying the Golden Touch perk in the Creation Kit.

The Coding Process: Now that you have finished the planning process, you need to actually write the code.

First, you need to find an Event that will run the code. This can actually be more challenging than it sounds. In my Way of the Monk mod, the Unarmed leveling script actually used the OnEffectStart Event because it was implemented as a script on a Magic Effect. Why? Because it was the only way to make sure that the script ran when the player successfully hit the enemy. Finding the right event can be tricky, and will likely take some testing. The Event that you use is totally dependent upon the nature of your skill, and it will probably take a lot of testing and inventive designing to find the right one.

For the Woodcutting example skill, finding the event was a bit difficult. I tried creating a unique script that ran on the OnActivate Event, but that ended up only running it whenever the player pressed 'e', rather than each time that they chopped wood. It would also run whenever NPCs used the Chop Block. So, instead, I edited the woodchoppingscript (not the vanilla script for the process) and added in my calculations as a function that ran when the played chopped a piece of wood.


        if WoodCuttingLevel.GetValueInt() <= 3
                WoodcuttingXP.SetValueInt(WoodcuttingXP.GetValueInt() + 1)
                if WoodcuttingXP.GetValueInt() >= 10
                        WoodcuttingLevel.SetValueInt(WoodcuttingLevel.GetValueInt() + 1)               
                        WoodcuttingXP.SetValueInt(WoodcuttingXP.GetValueInt() - 10)        
                        Debug.Notification("Your Woodcutting level has been raised to " + WoodcuttingLevel.GetValueInt())
                        PerkPointsAvailable.SetValueInt(PerkPointsAvailable.GetValueInt() + 1)
                        PerkPointsEarned.SetValueInt(PerkPointsSpent.GetValueInt() + PerkPointsAvailable.GetValueInt())
                endif
        endif

 After this, I created some perks, created a power to let you choose your perks and check your stats, and some notifications to let the player know that they are leveling as they use the Chop Block.

After you have found the Event to use, and have implemented the code, you need to test your mod. Creating the code is the easy part. Refining it takes time. I would highly suggest finding a group of modders to beta-test your skill once you have finished it. A system that seems to work well in the code and in your own testing might not work as pleasantly when others are using it.

Testing: After you have finished your planning, your coding, and your implementation, you must test your mod. I would highly suggest gathering a group of beta testers. You can do this by uploading your mod as a BETA version online. Let players know that what they are downloading is still in beta-mode, and give them an invitation to report any bugs or areas which could be improved.


Example: If you want to see an example of this tutorial in action, then feel free to download the Woodcutting Skill mod. You can also download an extended tutorial for creating a skill in PDF format.

Thursday, May 31, 2012

A Bit of an Update

Some of you might be wondering how much I have progressed. Truth be told, I haven't managed to get much modding in the past while because of a cold and job-hunting for summer work. I have made progress, however, and will write another post with more news soon.

As far as tutorials go, I am planning on releasing a tutorial on how to create a new skill within the next few days. The method that I use for skills can be used for many other types of mods, including quests. However you decide to use it, I hope that it will help you with your modding.

If you want to get regular updates when I post news or tutorials, feel free to subscribe to this blog or to add The Skyrim Modding Blog on circles on Google+.

Friday, May 18, 2012

Writers & Modders Needed - Want to post on our blog?

One of the primary goals for this blog was that it become a central website for Skyrim modding news. To further that goal, I am allowing modders to request to use my blog for their mods. If I give you permission, then you will be given posting permission. With this permission you will be able to post news about your mods, important guides or readmes, announcements of new features or mods, and requests for help or team members. In addition, you will be given your own Page on the sidebar for all of your mods, news, and relevant information.

Because I don't want to be swamped with e-mails, and since I want the modders on this blog to be committed, skilled modders, I do have some restrictions.

Restrictions:



  • Commitment. I need to know that you aren't going to either disappear from this blog or give up halfway through a mod. I understand if you find out that a mod idea is impossible or too difficult, or if real life stuff gets in the way of modding. However, I need to know that you are at least going to try to finish your work, and that you will post at least once a month.
  • Skill. You must have completed at least one mod, and it must have been downloaded at least 1000 times. I am not trying to be mean to small-time modders, but I want merely want to make sure if you join my blog you will bring readers and that you make great mods.
  • Be easy to work with. Be nice to readers, write good posts, respond to comments, etc.

Besides those restrictions, all you need to do is send me (Woverdude) an e-mail with some information about you and what you will post. Include links to a mod(s) that you have made. If you are interested in this, please contact me. I will take a look at your mod(s), maybe download them and try them out. If I like your mods, and think that you'd be a great addition to this blog, then I will e-mail you back and give you posting permission.

Skyrim News and Tutorials:

In addition, I would like the Skyrim Modding Blog to become a hub for Skyrim tips and news. If you keep up with the current Elder Scrolls news and write well, I would love to have you as a news writer. Send me an e-mail with some information about yourself, how closely you watch Elder Scrolls news, and (preferably) an example of some article or post that you have written.

Also, if you are a Skyrim modder who isn't looking for a place to post news, but would like to write tutorials, then contact me. I have already written a number of tutorials, plan on writing more, and have a page for them. If you've never written a tutorial, take a look at those to see how they work. If you want to write tutorials, shoot me an e-mail with some info about yourself and with an example of a tutorial that you have written. If you have not written any tutorials yet, then please write one for me to look at.

A note about posting frequency: I will not have the same restrictions for tutorial and news writers. In terms of frequency, I ask only that you post at least once a month. Also, if you are not going to be available for contacting or writing for more than a couple of weeks, please let me know.

Wednesday, April 11, 2012

Tutorial: Leveled Lists, Part 1 - Adding Items

Object: To add objects to a leveled list

Difficulty: Easy

Time Needed: Less than 5 minutes

Things you will need:
  • Creation Kit. The Creation Kit is the modding tool for Skyrim and can be downloaded for free on Steam.

Note: This is the first part of this tutorial and teaches you what you need to know to add an item to a leveled list. The second part will be more advanced and deal with the types of leveled lists, globals, using leveled lists with containers and NPC's, and other advanced functions.

First off, let me define the function of a leveled list. A leveled list is a list of items that randomly determines which item will be placed into the world, based upon the level of the player. For instance, in the LItemWeaponDaggerBest, you will find a list of items. There are six normal items and one other leveled list. There are also two columns titled "Level" and "Count". The number in the "Level" column determines what minimum level the player must be to get that item, and the number in the "Count" column determines how many of that item the player receives.

For a detailed description of each part of the LeveledItem window, read this wiki page.

In this tutorial, the premise will be that you are creating a new leveled list for all daggers, along with the random chance of finding an enchanted dwarven dagger.

1. Open the Creation Kit and navigate in the Object Window to the Items > LeveledItem category.
2. Create a new Leveled Item.


3. Navigate to the Items > Weapons category and drag the basic, unenchanted dagger of each type into the Leveled Item box.

4. These items have now been added to the list. Now, however, we are also going to add another leveled item to the list.
5. Find the LItemEnchDwarvenDagger and drag it to your new item.

6. The next part is to set the level requirement for each item. When you do this, you need to make sure that the levels are balanced so that the player does not receive overpowered weapons. If the level requirement of the daedric dagger was set to 1, for instance, then the player could find a daedric dagger at the beginning of the game! The best way to find out what level requirement you should give each item is to look at the default leveled items and see how they do it. For this item, we will copy the level requirements for the LItemWeaponDaggerBest leveled list. I will also set the required level for the enchanted dwarven dagger leveled item to 16 so that the player will receive it sometime between when they start finding dwarven daggers, and sometime when they start finding elven daggers.
7. Now you need to decide whether you want to modify the "Count" (the amount of the item given to the player), and if you want to add a "Chance None". Generally only arrows and other bundled items are assigned a Count higher than one. The "Chance None" determines if and how much of a chance there is that the player will not find anything at all. A 50 "Chance None" value will add a 50% that no item will be found, a 20 will add a 20% chance, and so on. Loot leveled items are the most likely to have a chance that no item will be found. I will give this leveled item a 15% chance that the player will not find anything.
8. To test your leveled item, you can use the "Preview Calculated Result" button and the "Preview Level".
9. Your items have been added to the leveled list. Enjoy the outcome. :-)

Part Two:


Part Two (coming soon) will teach you the more advanced functions of leveled lists and their various uses. It will not be written in the step-by-step manner that I have used for previous tutorials, but will be an extended explanation. Check back regularly for sequel.

Tuesday, March 27, 2012

Hint: Creating textures fitting in Skyrim

You have seen mods that either retexture items or add new ones in the game. And maybe you've noticed how some textures stand out like they come from outer space or whatever funky world that is NOT Tamriel. If you've never notice this then I suggest you to either look carefully the exemple or avoid doing any texturing job.

Textures are extremely important. You can screw the modeling, you can screw the level building, but do not screw the texturing! Textures are what you see all the time, if you screw them you screw the game. They are not the only thing that can screw the game of course, but we're talking about textures.

Skyrim was created with a graphic chart including a certain range of colors only to fit the rugged, cold, snowy place. It's not for nothing that we never see bright red big flowers. Even the crimson nirnroots aren't bright red:


So, which picture should be your reference for texturing a crimson nirnroot?



Skyrim uses mostly desaturated colors, almost grey for most of them. Now it's not always easy to figure if your desaturated colors will fit in the game. However note that you shouldn't just take screenshot of the game and use the colors of the screenshots as they are altered by the game engine's post process.
So how to do? Well, simple trick:
  1. Find items in the games that feature the colors you want to use
  2. Get their textures
  3. Pick the colors directly

If you can't find items with such colors, then maybe you shouldn't use them in the first place and go for other colors. If you want to extract textures from the game you will need a specific tool (see here for info and links).

Now if you want to expand a type of items already existing in the game, such as weapons and armors, to create maybe new variations within an existing set, or a new kind of weapon like staves in exemple. I cannot smith a staff in Vanilla Skyrim, it would be cool to smith some glass, elven or ebony staff!
...Okay... But before going wild, OBSERVE the existing weapons!
  1. Look their designs, see what are the smilarities between a dagger and a bow, between a sword and a mace, etc.
  2. Look if they have specific patterns in their textures, specific shapes in their modeling.
  3. When you're able to tell what are the graphic codes of a weapon set, you can start designing.
  4. Then submit your drawing on a forum to get feedback and advice.
  5. Eventually fix it before starting modeling and texturing.

It is very important to not neglect feedback. Unless you're doing a mod just for yourself you should get sure that your audience will like what you propose. Plus if people are aware of what you do you have more chances to get the audience you deserve!

Finally, here's a graphic review I made. I guess a concrete exemple speaks better.

You see the difference? Before and after?
(If not, maybe you shouldn't do any texturing for the moment)

You may also read this great post from Martigen on Bethsoft, gathering advice from Martigen and many other texturers who contributed to the thread. The main focus is texture compression and I found this post extremely interesting, both technical and professional.


Tuesday, March 6, 2012

Tutorial: Writing good TES books



Object:
 Tips to write a book that fits in the world of Skyrim

Difficulty: Medium

Time Needed: Quite some, depending on your skills

Things you will need:

  • Some skills in writing, preferably
  • A little time

What is a TES book?

1. A TES book is a piece of text designed to fit in a game and this is something you must remember. What this means is that writing a TES book is not about writing a real book that can be printed, carried all around, bookmarked, anotated, etc. It is about writing a book that will be:

  • Read on screen
  • Has no numbered pages
  • Can't be bookmarked
  • In which you can't skip pages 10 by 10 but only 1 by 1


2. This means your book can't be too long or reading it won't be the smoothest experience. Among the longest books of the original TES games are those of the Real Barenziah series. Back to Morrowind I would go to Jobasha's Rare Books and read the whole series, totally hooked by the story. Back then it was a great chance pages had numbers in case I had to quit the game for a while and then try to find out where I was in the book, scrolling longly until I hit the right page. Now in Skyrim there are no more numbers on the pages... figure out the mess if you need to find back the page where you stopped in the middle of a long story without spoiling yourself. So what should you do?

  • Limit your word count around 4000 words. 6000~8000 should really be a max for a stand-alone story.
  • If your story is longer than this, split it into several tomes and make it a series.



Write in Tamrielic

1. A TES book should fit in the ES games not only from its design but mostly from its content of course. You don't want to hang around Solitude's Bard's College, open a book there and read a story about an Italian mushroom-eater plumber named Mario trying to find a princess in various castles. If you were to write such a story, please, make it fit in the lore or change your mind!
In exemple you can write the story of Mario, the Breton, and his misadventures in Sadrith Mora, getting totally skooma-high and starting to eat the mushroom homes of the Telvanni. As a Daedra worshiper, Mario seeks for Azura in his delirium and tries to conjure her. Unfortunately only Sheogorath answers and here comes a dark seducer... A great tale among Khajiiti slaves needing to cheer up.

2. Use Tamrielic names. Be it for your characters or for yourself as an author. Mario is a correct name for a Breton or eventually for an Imperial (though Marius would surely be more fitting) but surely not for an Orc or a Khajiit. The ten different races of Tamriel each have their own features regarding naming, try to stick to them as much as possible. Look the names of existing characters of a same race to understand how to compose new ones.
You can look the UESP's name lists or you can also generate lists easily with Tamriel Rebuilt's name generator but beware: it uses names of existing NPCs.

Here goes a little list of facts:
  • Breton - Names often have a Latin origin, mostly (old) French and Italian (François Motierre, Vicente Valtieri). Sometimes it can also sound more English (Cassyr Whitley) or Latin (Socucius Ergala). Breton names feature a first and last name.
  • Imperial - Names have a Latin origin, often ending by "us" or "o" for men (Hieronymus, Crassius, Toutius, Gergio, Falco) and by "a" for women (Camilla, Vilena, Simplicia). Family names often end the same way with "us", "a", "o" (Sextius, Curio, Cosma). Latin words are often a base for most names. Imperial names feature a first and last name.
  • Redguard - Redguard names are a little more tricky as they look like a mix of Breton (Alonzo, Neville), Imperial (Demetrius, Varnado), sometimes almost elvish or sounding quite tribal (Phintias, Shenk, Domba, Karlirah). This reflects well the nomade aspect of Redguard as the race counts many sailors and adventurers. I suggest you to refer to name lists to check if your Redguard name would be fitting. Redguard names usually feature only a first name. In rare cases there is also a last name (Gor Felim, Jim 'gentleman' Stacey).
  • Nord - Names have a germanic or scandinavian origine so you can refer to naming lists found on the web to help you out. Names such as Hadvar, Brindolf or Onmir car fit for men, names such as Svenja, Mathilda or Olga can fit for women. Nords often bear a nickname (Olaf One-Eye, Hjalti Early-Beard, Talos Stormcrown), that reflects who they are in some way. These nicknames may also serve as family/clan names (Battle-Born, Grey-Mane).
  • Altmer - Names often end with "ril", "mil", "nil", "rion", "mo", etc. for men (Carelcalmo, Tusamircil, Sinderion) , and end with "inde", "wen", "we", "lin", etc. for women (Elenwen, Palonirya, Estirdalin). Altmeri names and Bosmeri names share similarities due to their common elvish origins but there are still slight differences. Don't hesitate to refer to name lists if you don't feel comfortable with name creation and combine parts of different existing names. Altmeri names usually feature only a first name. In rare cases there is also a birthplace (Lathenil of Sunhold, Ocato of Firsthold), or in very rare cases, a last name (Mankar Camoran) or eventually a nickname (Rynandor the Bold).
  • Bosmer - Names often end with "gor". "dor", "nor", "goth", "roth", "fin", "lem", etc. for men (Fargoth, Meldor, Thrangirfin), and end with "wen", "el", "il", "iel, etc. for women (Aranwen, Aredhel, Menelin).  Altmeri names and Bosmeri names share similarities due to their common elvish origins but there are still slight differences. Don't hesitate to refer to name lists if you don't feel comfortable with name creation and combine parts of different existing names. Altmeri names feature only a first name.
  • Dunmer - Both first and last names often contain no more than 2 or 3 syllables and are very recognizable by their redundance (Eno Hlaalu, Tholer Saryoni, Nelos Ondrano). I won't list them all here and rather advice you to refer to naming lists, pick syllables, mix them up and come up with a name you like. Male and female names sound different (Sevil, Tovas, Reler VS Dovesi, Arvena, Lathasa). Dunmer names feature a frist and last name.
  • Dunmer (Velothi) - These names often stand out by their complexity and great ammount of syllables and consonants (Ninirrasour, Mabarrabael). Some names though are shorter but the syllables are still recognizable (Hanssour, Maley, Sakin) and some are composed (Erur-Dan, Ulath-Pal). Just as modern Dunmer names, Velothi names are composed with a set of given syllables combined together. Family names are often quite long (Sashmassamsi, Assunbahanammu) and sometimes composed (Dun-Ahhe, Timsar-Dadisun) but share a similar pattern and set of given syllables. Velothi names feature a first and last name.
  • Orc - First names often end with "mul", "muk", "bul", "buk", "zol", "ash", "shum", "zur", etc. for men (Durbul, Morbash, Murzol) and end with "ob", "og", "a", etc. for women (Murob, Umog, Mazoga). Family names are composed with gro+name for males, and gra+name for females. "gro" means "son of" and "gra" means "daughter of", thus the name coming after is usually a first name as well. However, to help their integration in the Imperial society, modern day Orcs tend to use the name of a famous ancestor rather than the name or the genitor. Thus Nash gro-Shurakh will name his daughter Mogra gra-Shurakh in spite of Mogra gra-Nash.
  • Argonian - Names usually either count one word (Huzei, Milos) or are hyphenated (Haj-Ei, Jeelus-Tei) or are translated in Cyrodiilic (Nine-Toes, Only-He-Stands-There) when too hard to pronounce for non-Argonians. Argonian names are usually rather short, counting 2 or 3 syllables. I suggest you to refer to naming lists for inspiration. Argonian names feature only a first name or nickname. Note that the name they use is one received during a secret ritual of passage with the Hist, different from their birthname. We don't know how Argonians out of Black Marsh get their adult name.
  • Khajiit - Male names usually count 1 or 2 syllables and often feature a title, usually hyphenated, like (S'Rava, J'skar, Dro-Basha), etc. These titles have meanings that shouldn't be interpreted litteraly ("Dar" means "thief" but rather implies swift agility or a quick mind). Female names rarely feature a title except "S'" and count 2 or 3 syllables (Ahnassi, Ajira, Kisimba). I suggest you to refer to naming lists for inspiration. Khajiiti names feature only a first name.

3. Avoid using vocabulary unfitting to the world of Tamriel. We've never seen Vodka or Tequila in Tamriel but we've seen Shein, Mazte, Sujamma, Colovian Brandy. There is no cocaine or heroine but there's Moon Sugar. You get the idea. If you want to mention such elements, make sure they exist in the lore and find an equivalent at need.


More tips to come as this post will be updated
(don't hesitate to contribute with your own advice!)

Thursday, February 23, 2012

Tutorial: Creating a new book


Object: Create a new book and implement it ingame

Difficulty: Easy

Time Needed: Less than 5 minutes + writing the content

Things you will need:


  • Creation Kit. The Creation Kit is the modding tool for Skyrim and can be downloaded for free on Steam.
  • Some skills in writing, preferably =D


Creating the new book

1. Open the Creation Kit and load Skyrim.esm.
2. In the Object Window, go to Items>Book and choose a book with a look you like. You can preview the book by right-clicking on its line and clicking on preview. A window will pop up with a small viewport in which you can move the book up and down to view both sides. You could also right-click in the list>New to create a new book but is much easier to edit an already existing book.
Also do not duplicate items! This is a very messy option, just forget about it.

3. Once you've selected the book you like, just double click on it or right-click>Edit. A window will pop up in which you can control what's going to be in your book, what is its title, if it can teach spells or skills, how much it costs... This is quite easy to edit. Still the first thing you should edit is the ID of the book (in red below) to make sure you won't edit an original book by mistake.
I advice you to insert a code in the name so you can find it easily with the filter, like here "EBMTelvanniSweets" where "EBM" stands for "ExtendedBooks Mod" of course.
When you have changed the ID and click OK a window will prompt. Click OK and your new book can be found in the Object Windows.

We'll come back to text formating later, for now let's keep on going.

4. Now you can save your mod and test it. Testing is 50% of game development and you should do it often to be able to know when it started to bug in case it happens.
Don't forget to activate your mod in the Date files option before starting to play.
To access your book though it wasn't placed in the world of Skyrim you can either load any save or go to the test cell by opening the console. To open the console press the key that is just under the ESC key top left of your keyboard. For some it might be the tilde key, for other it can be the ¬ key, depends on keyboard. Just press keys until a grey layer appears down the screen, type coc QASmoke and press enter.

5. When the level is loaded open the console again and type Help "Name of your book" 4 to obtain its ID. Of course type the name of your book between the brackets.
When you have the ID, type player.additem 0200d67 1 (but replace 0200d67 by the ID you get). This will add the book to your inventory so you can read it and enjoy!

If the book appears correctly then you can place it in the world, add it to level lists etc.


Formating the text

To have your text nicely formated in your book, with the title on a first page, well centered, and the content coming on the next page, nicely as well, you have to use various tags that are quite similar to HTML formating. If you haven't any basic skills in web formating don't worry, it's really, really simple!

1. There is one first thing you should remember before starting to add any text in the input field:
Pay a great attention to apostrophs and brackets, it may sound stupid but the font used ingame is very strict on characters. Thus your apostrophs and brackets should be the default ones you get with US/UK qwerty keyboards. In fact avoid any special character in general and anything generated by alt-codes, no thin spaces or such formating.
  • ['] and not [’] (the second one has a slight curve)
  • [" "] and not [“ ”] (the second ones are slightly curved as well)
  • [...] and not […] (the second one is only one character composed with the alt+0133 code in spite of 3 dots)
2. The following tags are the most useful ones that you likely will use in most of your books:
  • [pagebreak] is obviously a page break. It should stand on an empty line, you can't put it at the end or beginning of a paragraph.
  • <p align="center"> centers your text. It isn't really necessary to close the tag with a </p> but you can do it if you want. You can use other alignment values that are "left", "right" and "justify" as it seems, according to the CK wiki, that the "chaotic evil" alignment wasn't implemented.NOTE that this tag changes the paragraph! Paragraphs are seperated by the equivalent of skipping 3 lines. Just so you know.
3. The following tags will help you change the appearance of the text itself.
  • <b></b> bolds the text placed between these tags.
  • <i></i> italicizes the text placed between these tags.
  • <font color="#FFFFFF"></color> changes the color of the font. Replace #FFFFFF by the hexadecimal value of the color of your choice. You can obtain this value on a web color index or in a CG software such as Photoshop in the color box.
  • <font size="20"></font> changes the point size of the font. We haven't figured out yet if 20 is the default size but it seems credible.
  • <font face='$HandwrittenFont'></font> changes the font (in handwritten font here). by default the font used is the one seen in the books so you should use this tag only if you want to switch to another font. The available fonts and their tags can be seen below.

$SkyrimBooks (or  $PrintedFont ) - $HandwrittenBold (or  $HandwrittenFont )
 $DaedricFont - $DragonFont (Upper case only)
$DwemerFont - $FalmerFont (Upper case only) 


4. The following tag allows you to insert images in your book.
  • <img src='img://Textures/Interface/Books/Illuminated_Letters/A_letter.png'> inserts an illuminated letter's picture. You may need to insert size values in the tag after the path to the image. Just add  height='40' width='40' and replace the numbers by the right values. You can replace the A in A_letter.png by any other letter to get the one you want. If you insert this tag within a paragraph the text around should wrap around it. Click here more a tutorial teaching how to add your own images to a book.

Feedback:


If you have any comments/questions, or would like to request a tutorial, then please feel free to leave a comment. I will answer your question as quick as I can. If you request a tutorial, I'll let you know when/if you should expect your request to be fulfilled.