Results 1 to 5 of 5

Thread: NPC Idle Actions

  1. #1

    Default NPC Idle Actions

    I'd like to expand the Idle Actions system to more NPC's, but the devs time is spread very thin. This system has been implemented for quite a while. We were thinking that maybe players might like to contribute and create more actions for NPC's. Currently, there is a small amount of NPC's that have idle actions (Kion and Aughundell mainly). Let me explain my vision and some tools I will be implementing very soon to allow player contributed content. This will be an experiment, I'm not sure if there will be any interest, but I hope so.

    I'd like to start out by having a player repository so that they can upload and download player submitted idle action files for any NPC in the world (via web page). Players can then upload their own idle action files or download the files from other players. Could be a fun way to check content that could be added to game. Devs would check out the available files, occassionaly too. If they like something, then it would be added to the game, with credits to you (comment tag in the file name). Once implemented in game, then all will see these actions.

    Note that the files are played locally. They usually will never be in synch to other players. Also note, you don't want to create animations that interact with other NPC's. If a player greets an NPC, they stop their routine for 15s (by default, but it's adjustable). These delays, when you greet an NPC, is why you shouldn't try to create a synchronized performance amongst multiple NPC's. I've tried that once, it just doesn't work out.

    I have a very rough draft of how to use/create/edit Idle Animation files. It will be tweaked over time. Soon there will be an upload feature. Soon the uploaded files (along with player names) will be displayed along with a download link.

    For now, there is a new link at http://istariareference.com/idleaction (not available from main site yet). Again, this is a very rough draft. This page will be tweaked over time. For now, if you have some free time or bored, consider creating some animations for specific NPC's. You'll be able to share it with community in the future.

    There's some commands for devs that can reload the idle action files (without having to restart the game). I'm checking if they can be added to the current game patch. If not, I'll zip up a file for resources_override, that'll let you do that. Please standby for another day or two before this happens.


    If you view some of the Idle Action files (open with a text editor, such as notepad), then you might see how it works and understand a bit more. Once you study some of the current files, then all of the notes at http://istariareference.com/idleaction might make more sense ^_^

    A good example of Idle Actions is when you teleport to Kion. Krianos (beside the arrival pad) will speak and peform some animations if you watch a while.
    Death points are temporary, Glory is forever!
    Need game info? Try Istaria Reference or Istaria Lexica Wiki

  2. #2

    Default Re: NPC Idle Actions

    Huh, this is a really neat idea! A way of making new "animations" without actual animations... very interesting. I'll have to give that link of yours a good read tomorrow and see if I can come up with anything over the next few days.

    Nice work, Cega! Can't wait to see what kind of changes this will bring. Would certainly make towns a little more lively if more actions were used, like Aughundell is (I think that's the first city where I noticed these new NPC behaviors used quite often).

    "Our ancestors came down from the heavens and proudly reigned over the land they had created."

  3. #3
    Member
    Join Date
    Mar 2010
    Location
    It depends which server board I think is which.
    Posts
    1,601

    Default Re: NPC Idle Actions

    That's such a great idea, Cega! I've some ideas already to work on, hmmm...

  4. #4

    Default Re: NPC Idle Actions

    A new Commands_Player.def has just been patched out by Deforian, that has some new commands.

    Beware, many players might have a copy of this file in your /resources_override folder. You might have this from another mod, or just so you can do some other commands you might've learned about on forums or internet in general. So be sure to double check you don't have this file in your resources_override. If you do, then this recently patched file will not do anything. If you do have one, then you can look at /resources/Commands_Player.def to compare any possible copies in your /resources_override folder. The new commands are at the bottom of this file. You could just manually add the below entries to your file in the resources_override (if you have one). If you don't have one, then the previous statement doesn't apply to you.

    Code:
    		//---- New commands added 2015.08.11
    		//idleAnimReload
    		{
    			string name = "idleAnimReload"
    			string abbrev = ""
    			string usage = ""
    			string description = "Reload the Idle Anim def file"
    			int numParams = 0
    			int minParams = 0
    		}
    		//idleAnimReload
    		{
    			string name = "idleAnimReset"
    			string abbrev = ""
    			string usage = ""
    			string description = "Reset the Idle Anim to begining"
    			int numParams = 0
    			int minParams = 0
    		}
    		//testAnimDefer
    		{
    			string name = "testAnimDefer"
    			string abbrev = "tad"
    			string usage = "<state name> [list blend factor, 0-1]"
    			string description = "Sets the current animator to the specified animation state, deferring if already busy."
    			int numParams = 2
    			int minParams = 1
    		}
    		//playSound
    		{
    			string name = "playSound"
    			string abbrev = "playSnd"
    			string usage = "<sound name>"
    			string description = "Plays back the specified sound."
    			int numParams = 1
    			int minParams = 1
    		}
    		//aghConvert
    		{
    			string name = "aghConvert"
    			string abbrev = "agh"
    			string usage = "<filename>"
    			string description = "Converts an image to AGH format"
    			int numParams = 1
    			int minParams = 0
    		}
    		//aghDDS
    		{
    			string name = "aghDDS"
    			string abbrev = "agd"
    			string usage = "<filename>"
    			string description = "Converts an image to AGH format with DDS compression"
    			int numParams = 1
    			int minParams = 0
    		}
    		//Set Time
    		{
    			string name = "setTime"
    			string abbrev = "st"
    			string usage = "<INT32 new current time, INT32 new length of day>"
    			string description = "Set the time of the day."
    			int numParams = 2
    			int minParams = 2
    		}
    The first four commands are specifically to help with Idle Actions. The /aghConvert, /aghDDS and /setTime aren't related, but players should have these for general purpose.

    /idleAnimReload - reloads all idle anim files from disk. This would also restart any PlayOnce sequences. If npc is currently walking he will return to starting location.

    /idleAminReset - resets the idle animation sequence from beginning (does not restart any PlayOnce sequences). If npc is currently walking he will return to starting location).

    Take note, that you normally want to test idle animation files in your resources_override folder. These commands will look for files that reside anywhere in /resources_override first, this is desirable as it's likely where your test files reside.

    While using these two commands, be sure you are targetting the appropriate npc.

    The reason why these two commands are so important is that you do NOT need to restart the game, every time you edit an Idle Action file (<firstname><lastname>.def). Whenever you edit these files, just issue one of the two commands and it will be refreshed immediately, without needing to restart the game. This lets you maximize the time you have, in your day, to tweak your files. Otherwise you'll get frustrated by having to restart the game for every little thing you change. Tip, add these commands to a hotkey.
    ---------------------------------------------------------

    /testAnimDefer <animation name> (/tad also works, likely easier to to remember/use). Target NPC and type /tad <animation> to see the npc perform the animation. Note, not all races have the same animations. One race might not have an animation that another race has. Some genders (male/female) also don't always share the same emotes. A good example of Male/Female is only females have the Karate (Special) emote/animation. Officer Amonsu, by Kion Vault performs this. Amonsu is female.


    Crash course on where to find valid animation names that a NPC can perform.

    Look in /resources/definitions/characters. You'll see different race folders there.

    The most common animations will reside in race_anim_standard.def (ie human_m_anim_standard.def or human_f_anim_standard.def). Look for entries of string name = "something".

    string name = "warcry"
    string name = "death"
    string name = "crackneck_emote"
    string name = "somethingonshoe_emote"
    etc

    With NPC targeted (or self) type /tad warcry or /tad death, etc. The NPC will perform that action. If it doesn't then you might've typed an animation from a specific race, but the targeted NPC does not have that animation.

    You are not limited to peforming standard emotes and animations. You can actually use combat animations too. Look in the other .def files in this folder.

    human_m_anim_combat_1hs_special.def
    human_m_anim_magic.def
    etc

    Same thing, look for string name = "something"

    Human Male examples:
    string name = "1hp_magic_combat_directional01_prepare"
    string name = "brewstirring00_release"
    string name = "fishing00_release"
    string name = "h2h_headbuttspecial"

    Again, /tad fishing00_release, etc will peform the animation, while targeting an NPC.

    If you look at the emote file (emote buttons on your client) they are slightly different, but still use commands from the race_anim_standard.def files.

    The emote files will be race_emote.def , ie human_m_emote.def
    When you look at files with the word "emote" in it, you'll want to look for

    string animState = "please_emote_s"
    string animState = "drink_emote_s"


    Beware that any animations with _s means it also plays a sound. There should be two of each emote
    please_emote (no sound)
    please_emote_s (with sound)
    drink_emote (no sound)
    drink_emote_s (with sound)
    ---------------------------------------------------------
    /playSound <sound name> This is similar to /tad except for sound files.

    You can find sound names in the /resources/sound folder. View some of the .def files that and most subfolders

    ie
    /resources/sound/Sound_Misc.def
    /resources/sound/characters/<race>/Sound_<race>.def
    /resources/sound/combat/Sound_Combat.def
    /resources/sound/spell/Sound_Magic.def
    etc

    Just like animations, look for string name = "something"
    string name = "resurrect_other"
    string name = "dragon_ancient_ascension"
    string name = "dragona_u_death_n"
    string name = "dragona_u_bite_n"

    You'd type /playsound dragona_u_bite_n , etc to hear the sound (maybe twice to get cached)

    NOTE: Not all sounds are cached! This means sometimes you will not hear anything the first time you type /playsound name. But it will then be cached and play the 2nd and subsequent times. A pre-cached file will have bool preCache = true in the sound_<name>.def file. Those will always play the first time. If a sound is missing this bool, then it will never play the first time.

    This is where another very handy command /rep comes into play. This simply repeats anything you've recently typed in the chat bar. So instead of typing the same long /playsound name again, just do /rep (repeat). In fact, I have a hotkey of nothing but text command: /rep just for this reason.

    -------------------

    One last tip for Idle Action files. I generally begin a sequence with a long delay. This initial delay serves two purposes.

    1) It gives time for players with Loading screen time to see the NPC start it. Without that delay, that might miss the beginning.
    2) It is the delay in between loops. Without a long delay, the macro will loop back to back, non stop. That initial lengthy delay gives time for the NPC to stop and relax a bit, in between loops. I generally avoid the long delay at the end of the macro. If you told a NPC to walk around, then a delay at the end, will prevent him/her from walking back to their starting location, until that delay is satisfied. NPC will always walk back to their starting position when macro is done.
    Last edited by Cegaiel; August 16th, 2015 at 02:32 AM.
    Death points are temporary, Glory is forever!
    Need game info? Try Istaria Reference or Istaria Lexica Wiki

  5. #5

    Default Re: NPC Idle Actions

    I finally had some free time to finish up the database linked pages. It's still rough, but functional to where you can upload and download player submitted files. I'll try to make it more "pretty" later.

    We'd like to add more actions/animation sequences across the world, to many npc's. Remember, any file uploaded might possibly be added to the game (credits will be given to you in a comment tag in the file, when added to the game). It doesn't have to be fancy. Sometimes, something simple and subtle as a couple of moves, is just as powerful as a long animation sequence.

    As usual, there won't be a link from the main page to this (maybe in future). Only forum viewers will find the link to http://istariareference.com/idleaction/ . From there, you will see a "Upload/Download Files" link.

    Looking forward to seeing your creativity!
    Death points are temporary, Glory is forever!
    Need game info? Try Istaria Reference or Istaria Lexica Wiki

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Sounds for Saris actions
    By Karya in forum Suggestions
    Replies: 14
    Last Post: May 29th, 2008, 05:02 PM
  2. Allowable actions while flying
    By Creme in forum Suggestions
    Replies: 13
    Last Post: May 1st, 2008, 02:19 PM
  3. Changes in Gathering actions. .. ?
    By SkSlyr in forum Suggestions
    Replies: 8
    Last Post: April 6th, 2008, 08:04 PM
  4. Idle Animations - Advance .def stuffs
    By Swythe Quirksettle in forum Suggestions
    Replies: 1
    Last Post: August 14th, 2005, 09:31 AM
  5. New emotional actions (quick)
    By furian in forum Suggestions
    Replies: 1
    Last Post: December 18th, 2004, 05:20 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •