So anyway, firing off animations in dialogues is easy, but there are multiple ways of doing it. The easiest way is to just specify an animation for the
play_custom_animation is easy. Just add the script and hit refresh, then input the tag of the character you want to animate for sTarget, the name of the animation (which can be found on the animations tab), whether you want it to loop (1) or not (0), and the number of seconds before the animation plays when the conversation hits that node. This allows you to set off an animation right at the start of a node, say of someone talking, or near the end, as they get hit by an arrow or somesuch. This gives the dialogue the feeling that it is an actual conversation happening in real-time rather than a series of lines of text.
play_animation is slightly more effort, but gives you even more control than play_custom_animation. The sTarget works in the same way, just the creature's tag, but instead of loop you have a duration setting, a speed setting (where 1.0 is normal speed, 0.5 is half speed, etc.) and a delay setting. This means you can cut an animation off before it has finished playing, which I used to take the first half of the 'tired' animation (knuckling his forehead) and cut off the second part (yawning). Without the yawn, knuckling his forehead makes it look like he feels ill, which is the effect I was looking to achieve.
The problem with play_animation is that instead of using a string for the animation and taking it's name from the animation tab, it calls it directly by its integer value. To find these values, go to the script editor, and click on the 'globals' tab in the script assist on the right hand side. If you then search 'animation' it will filter the results, and finding the integer for each animation is as simple as clicking on it and reading the script preview box. Slightly more effort, but if you need to control the speed of an animation or cut it off before the end, it is invaluable.
Well, that's all from me. Scripting time!]]>
Speaking of which, the next milestone is scripting, as in both story scripting and logic scripting. I'll probably be carrying on with the mage tower level, scripting that up for Samuel the bard to wax lyrical about the world narrative. It makes sense, seeing as I designed and made that level, and I wrote a lot of the world narrative, so it'll all fit together nicely.
Of course, that's not set in stone - we'll be discussing exactly what's happening next meeting. This milestone is being headed by me, being the team's sort of scripting specialist, and I don't forsee any real problems on the logical scripting side, not for the kind of things we want to accomplish. The story scripting will be harder, as it needs to be spot on for our narrative-based NPCs especially, but we have several good writers in the team, so this shouldn't be a massive headache either.
Alright, that's enough from me, see you all next meeting!
Because our project is about how narrative and gameplay elements each affect a player, we're going to need a good backstory for the game world we're creating. Not least because one of the characters, the Bard NPC, is going to have world narrative exposition as their main 'selling point' to the player. What we decided is to attack this in three stages. Firstly, Lloyd, Luke and I will write some fairly generic info for a medieval/fantasy world. We decided on medieval/fantasy both because the Neverwinter Nights 2 engine is specifically set to handle that kind of world, and most western RPG's tend to fall into that category anyway. Equally, we need to create our own narrative instead of using a well-known one to avoid any preconceptions our test players might have about the world we might choose.
Once that's done, we'll come together and do some research on what makes good narrative, rather than just what we personally like about each narrative. Then, using the data collected and the backstories we've written, we should be able to splice together some good stuff. Once that's out of the way, we can concentrate on fleshing out the narrative for the NPC's themselves, and write up a first-draft of how we went about making these narratives, for use in our final documentation at the end of the project. Little by little is the best way to do this kind of thing, and then we can show it to lecturers and get feedback from it, too.
Alright, back to the grindstone! :D
Anyway, today is our team meeting, so I'll be reporting in as usual. Lots to do, but we seem to have a handle on it, and I believe on the agenda for this week is a way of making us more organised than ever. Gantt charts gooooooo! ;P