Search the Community
Showing results for tags 'Custom Content'.
-
Ideas for Consideration: Data Management and Feedback
J.E. Sawyer posted a blog entry in Neverwinter Nights 2 Blog
'Sup G's? Sooooo... lately I have been talking with some of the other Obsidz folks about issues that affect the making, use, and distribution of custom content. Chief among these are: * The lack of an official hak editor. * The lack of an official UTF-8 string editor. * The lack of a place where "stand-alone" (unaffiliated with modules and campaigns) haks can live (override and data folders not really being a good home for such things). * The lack of documentation on the order in which things are loaded and from where (with order being very important, as it establishes what files have "last say"). * Data files can be read in from about eight different places in myriad formats. * .haks must be explicitly called out from individual campaigns and modules. * There is no logging of .hak and override content being loaded to see gets read in last and from where. * There is no data screen where campaigns, .haks, and override files can be seen, much less managed. How are important are these things to you? I would like to see at least a few of these addressed. Most notably, I would like to see clear feedback on what data is recognized by the game (preferably at the launcher screen) and a log of when it is loaded. I would also like to make the loading of .haks implicit (automatic) based on where they are placed. I.e. all .haks in the haks folder always get loaded, all .haks in a campaign folder always gets loaded with the .cam (?) file in the folder, and all .haks in a module folder get loaded with the .mod in the same folder. Of course, this would demand a re-structuring of the load order and .mods would always have to be in their own folders. Nathaniel drew the pyramid of load order, which helps with this. I can't draw a pyramid on the train, but try to imagine it. OVERRIDE (.hak, .zip, all other data formats) Module (.hak) Campaign (.hak) Haks (.hak) Data (.zips and other stuff) This is in reverse load order, so core data is loaded first, followed by content in .haks from the haks folder, follower by .haks from the campaign's folder and .haks from the module's folder. Finally, the almighty override takes priority over everything, which really leaves it as a place for testing (which is what it is for) and for people who absolutely can't stand some aspect of a campaign or module they are playing. The suggested benefit of this is that you could have "generic" .haks like Josh's Fancy Spells or Annie's Super Cool Item Pak as .haks in the haks folder that take precedence in all modules and campaigns unless trumped by the specific content in a campaign or module (in which case the assumption is that you downloaded the campaign or module to actually enjoy what the builder had in mind). If you're the sort of person that hates the default sword models (for example) and you want Adonnay's swords in all campaigns, you can dump them in the override with the game warning you at launch that files really should only be in the override folder for testing purposes. There are a bunch of other things associated with this, but Rich "Ask the Community What They Think" Taylor wanted me to get feedback on the big issues before we seriously consider any of this (as it could be a lot of work to re-organize everything). -
Question: Is it possible to use NWN custom creatures (meshes&texture) in NWN 2? Answer: For creatures the changes between NWN1 and NWN2 are really too radical to use the old creatures. It's probably possible to import non-animating models though. Hopefully, we will have some tools out to help with Custom Content soon.
-
Question: Is there any reasonably simple way to change the eye alignment on head models? The eyes on most of the gnome and elf heads are very oddly placed, giving the impression that they are always squinting or looking up. Very distracting in cutscenes- the impression I get from most of the Elves is that of whiny teenagers looking sullenly up at parents while getting yelled at. I get the impression that many of the head models were built in one race and modified to fit one or more others. I am academically curious about whether I'm right about that. I'm willing to put in the work to fix them, but I don't know where to start, and I notice there is a thread further down about someone who is having problems with custom elf heads being cross eyed. I'm wondering if this isn't similar to the twisted skins on Elf heads in NWN1- weird mesh placement? Firefairy Answer: The eyes are unique for each head. They would have to be manually rotated in the original MAX file to be more consistent with general pivot/alignment of the head. Then the entire head would have to be re-exported.
-
(Rich Taylor gives us a peek into 2da caching) Our lead scripter, Charles Mead, informed me that we did not cache 2DAs that were being queried by script. This resulted in ridiculous seek time for looping over large 2DAs. He indicated that Bioware had fixed that in the 1.64 code, so I referenced the 1.67 code drop that we had and saw that they had implemented a system whereby the most recent 2 2DAs that were queried were cached. I took that a bit further and made it so that the # of 2DAs that are cached is a changeable value. The default is 10, but in nwnplayer.ini, an entry of: 2DA Cache Size= under [server Options] will allow users to modify that cache size to suit their needs. There should never be a need to go lower than 10, but someone may want to increase the cache if they are querying a ton of different 2DAs quite frequently. In addition, the function: Clear2DACache() can be used to purge the in-memory 2DA cache. This will force the 2DA to be loaded from disk the next time a script tries to look anything up from it. This change is scheduled for 1.05.
-
Q: Trying to modify the knockdown feat in the feats.2da and here's what I've found. There is both a Cooldown time and also a Uses per day. Cooldown If I set a cooldown time it "works", in a sense you can only use the kd feat every X seconds (whatever you set it as) - but the problem with this, is that it doesn't give any graphical feed back to the users (for example, Rage shows a "greyed out" icon and how long you have to wait till you can reuse it again - if I modify the kd feat it doesn't show up this graphical feedback [just a message in the combat log]). Is there a way to get a "count down timer" on the feat/hotbar so the player has a visual indication of how much time is left (like the rage feat)? do I have to change another column? uses per day With the uses per day, that is settable. But if they use up all the uses, it removes the feat from their character I can store it as a local int and re-grant them the feat on rest, but the feat seems buggy after that (it shows up in the character screen, but the feat doesn't "activate" when you try and use it - also players have to re-equip to their hotbar which isn't a show stopper, but could be very annoying). feat calling a script Also would there be any way for the KD feat to call a script instead of the hard coded function? That way we could change the formula and how it works via scripting instead of using the default rules for it. Ie, when the user hit's the knockdown button to execute script "MyKnockDownScript". thanks! A: 1. There was a bug with cooldown timers showing up, which has been fixed in an upcoming patch. If you want a feat that only has a cooldown (without uses/day), you'll need to put "-1" in the "USESPERDAY" column (not "****"). Otherwise, I had no trouble having uses/day and cooldown on the same feat. 2. I haven't had any problems with uses per day removing feats from the hotbar. If you send me your character .bic and your feat.2da, I might be able to figure out what is happening (contact me for e-mail info). 3. EffectKnockdown() is available to script. We use a 4.5 second duration for the engine-side knockdown. You could easily create a new feat (call it Trip, perhaps) that is an active feat (set "IsActive" to 1) that calls a spell script (put the script spell ID in "SPELLID").
-
Q: With 8-bit alpha, is it possible with the current NWN2 engine to use the alpha to make a surface translucent (as in 50% opacity with an alpha pixel value of 50%)? A: There are two ways to make a surface translucent. One way would be to make a special effect that edits the alpha. In the VFX editor this would be called a "game model effect". Then you'd have to assign the effect to the object via the toolset, or script. The second way would be to export the model that you want the translucent surface on as a "glow object". However this would cause the object to be additive as well.
-
Q: Some of the blocks in a MDB file have a 32-bit field in front of the vertex count field, which we assume is a flag bit vector. In most cases it has a value of 0, but occasionally some bits are set. What do they indicate? A: The bitflags are as follows for skin and rigid packets: const DWORD NWN2_ALPHA_TEST = 1 << 0; const DWORD NWN2_ALPHA_BLEND = 1 << 1; // #### SHOULD NOT BE USED const DWORD NWN2_ADDITIVE_BLEND = 1 << 2; // #### SHOULD NOT BE USED const DWORD NWN2_ENVIRONMENT_MAPPED = 1 << 3; const DWORD NWN2_CUTSCENE_MESH = 1 << 4; const DWORD NWN2_GLOW = 1 << 5; const DWORD NWN2_NO_CAST_SHADOWS = 1 << 6; const DWORD NWN2_PROJECTED_TEXTURES = 1 << 7; Most of them are pretty straightforward. The projected texture flag means that the model will accept UI projected textures such as the spell targeting cursor.
-
Q: Ranges.2da has 2 columns labeled 'PrimaryRange' and 'SecondaryRange' which are apparently only used for perception ranges... Which of these columns affects the seeing range and which hearing (I assume 'Primary' is hearing based on my tests, but I'm not sure)? What values does the PercepRngDefault use? It uses the usual **** entries for default values, but where is that value defined? A: Primary Range is the Spot range (Visual range) Secondary Range is the Listen range (Hearing range) If something is flaged as PercepRngDefault, instead of reading the values from the columns on that row, it looks up the creature's Appearance in Appearance.2da and uses the PERCEPTIONDIST column to find out what row creatures with that appearance are supposed to use. PERCEPTIONDIST in appearances.2da should reference back to a row in ranges.2da from which to read the values in from. If all else fails, a creature will be assigned the values stored in the PercepRngMin row.
-
Q: Currently I am working on a community download pack containg a large variety of foilage placeables (ferns, shrubs, weeds, flowers, small trees etc.). I am using alpha layers in my textures, and currently have tried dxt5 interpolated alpha (this is what format I use for my foilage in other engines such as UT2003/4) and also dxt1 with alpha, but I get no transparency in the toolset. My models and textures are showing up in the toolset just fine, but the engine seems to ignore the alpha on my diffuse, and uses the alpha on my normal for glossyness/shinyness to an extent. I verified this when I omitted the normal map. I have tried assigning the materials to the models in every way I can think of, even left off the normal map so I am at my wits end. What dds format is used on textures with alpha for transparencies? (Exp: SpeedTree tex are using alpha transparency) Is there some setting in the MDB file itself that tells the engine it has transparency, and if so it would be the next gap filled in the work of those who are making the MDB utilites that allow us to get our new models in the toolset if this information was made available? If the setting for transparency in a texture of a model isn't in the MDB file, where is and what values need to be applied to get it working properly? DXT5 is the recommended dds format for alpha-masked transparency textures, though DXT3 and DXT1,1-bit alpha also work. We use DXT5 because it yields cleaner masking and edge quality for things like plant fronds and grass. The mask goes in the alpha channel of the diffuse texture. Any model utilizing transparency needs to be flagged as such before it is exported. Information regarding the public release of our model exporter is not currently available, but we intend to make it available in the near future. You can see a good example here: Click Here
-
Walkmesh and Textures and Music. Oh my!
Rob McGinnis posted a blog entry in Neverwinter Nights 2 Blog
Q: In walkmeshes, each face has a 32-bit flag. We have seen the values 0x0, 0x9, 0x11, 0x21, 0x41 and 0x101. The bottom bit seems to indicate whether the face is walkable or not, but what do the other bits mean? A: The bit assignments for the walkmesh face flags are: bit 0: walk bit ( 1 = walk, 0 = no walk ) bit 1 - 2: reserved bit 3 - 13: material ( used for footstep sounds, etc... I dont know what will happen if more than one of these are set at the same time. I dont recommend it. )... bit 3: dirt bit 4: grass bit 5: stone bit 6: wood bit 7: carpet bit 8: metal bit 9: swamp bit 10: mud bit 11: leaves bit 12: water bit 13: puddles bits 14 - 31: reserved Q: I would like to know how I can import mp3's and such into the game to use as background sound for my module. I have NO idea how to do this, and I haven't been able to find a tutorial that dumbs things down for those of us who don't know what we're doing; most of the sound tutorials seem fairly advanced. All I know is that I need a hak-pak, and that I need to edit a 2da file and convernt my mp3's to bmu's. I don't know how to do this or even how to begin doing this, so if anyone has a good link to a tutorial for us beginners, or can explain it here, I would TREMENDOUSLY appreciate it. Thanks! A: The way it should work in NWN2 is identical to NWN1. There is also a brief tutorial on NWN1 at http://nwn.bioware.com/builders/sounds_bmu.html with links on how to do additional sounds. NWN2 can take and play uncompressed WAV file in the Override, but that would be pretty huge in size. Basically, we use an APP called "Lame" that takes a .Wav file, converts it to MP3 (changing some header information) and rename it back to a .Wav extension. Click Here So automate it some you can make a .bat file (assuming they are using LAME) that will basically convert a WAV file, make it an MP3, rename it a Wav file, then delete the old MP3's with the following commands. lame -S --quiet -t %1.wav %1.mp3 echo BMU V1.0 > "\WavFolder\%1.wav" type %1.mp3 >> \DifferentWaveFolder\%1.wav" del /f /q %1.mp3 Q: How do I use custom terrain-texures from a hak pak? I've tried placing a modified "terrainmaterials.2da"-file with the extra entries plus the corresponding dds-files in a hak pak which I then added to the module. There is no obvious way, however, to select the custom terrain-textures within the toolset. I used "Bioware Hak Pak Editor v 1.0.2.0" Any help will be appreciated. A: If you are trying to load a hak pack up in the toolset, this does not currently work. They are only loaded in when the module is run inside the game. So a Hak Pak will do you no good in the editor. To make it work in the editor you have to place the textures and edited 2DA file in your override folder.