Jump to content

scorrp10

Premium Member
  • Posts

    1309
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by scorrp10

  1. Even that is considered dialogue. Just not player-driven kind. Except instead of using voice files, it might be pointing at SoundDescriptor forms. For example, if you load up CK, and locate quest: CreatureDialogueDog In 'Combat' tab, it has 2 categories: Hit and Death, and if you open response of the 'Hit' category, it points at "NPCDogInjured" sound file. And looking at that sound descriptor, it has 3 possible .wav files, chosen at random. And in the Misc section of that quest, the 'Hello' section. However, there is indeed a different system existing. SoundDescriptor 'NPCDogBardSD' is used by ImpactData NPCDogBarkImpact. Which is used by NPCDogBarkImpactSet, which uses NPCDogBarkImpact against pretty much any material. which is used by NPCDogBarkFootstep (tagged NPCDogBark), which is part of NPCDogFootWalkFootstepSet, which is assigned to various 'dog torso' armor addons. That FootstepSet aside from the usual FootBack/FootFront, also has Attack, AttackPower, IdleScratch, IdleShake, IdleWhine, AggroWarning 'Footsteps' My understanding is that "Footstep Tag" is what is used in a specific animation idle to indicate a moment to generate a sound. So if you create your own footstep set with same tags, potentially reusing some of the vanilla 'footsteps', but pointing at your own sounds for others, and your custom dog also belongs to DogRace and thus uses DogProject behavior graph, but has a custom body Armor Addon with a custom FootstepSet assigned, that might work...
  2. There is a 'CrDogVoice' VoiceType that is being used by pretty much all dogs in the game. If you look u; use info for that voice type, it is used by a couple dialogue quests - so you can look at those and see how they are structured. You can pretty much create identical quests for your custom dog, but you will need to edit dialogue conditions to check for your custom voice type rather than CrDogVoice.
  3. I dunno... the very definition of the word "Jagged". implies asymmetry...
  4. The source looks trustworthy. I would try. This pretty much looks equivalent to Linux softlink. (ln -s)
  5. You can try creating directory junctions. https://learn.microsoft.com/en-us/sysinternals/downloads/junction
  6. Working on it, everything properly converted to 3BA, parted out for modularity, weighted, adapted to sliders, etc. A total of 52 meshes, + color variants. This will need a bit of texture work (better leather textures on some belts and such, proper environment masks/cubemaps etc, and the .esp will need an overhaul. I am actually away for this weekend, so not going to be able to progress on it, but might be able to get it out sometime next week.
  7. No, remove the FE002EC9 under 'Temporary' in the left pane. Just right-click and choose 'Remove' from menu.
  8. Ok, so LaWF places an object reference in a cell 37EE8, and this reference ID is FE002EC9. Your .esp contains an overload record of that reference, though judging by color, it is identical to the one in LaWF. You should be able to just delete this record from your .esp (just right-click it and choose 'Remove') However, xEdit says that your version of this record is 'Referenced by (1)' - so what is referencing it? I suppose if you try to delete this record from your .esp, whatever references it will be left hanging.
  9. Getting your feet wet with dialogue can be pretty daunting. However, there are quite a few good tutorials on YouTube on how to do it. This is a good resource: https://wiki.beyondskyrim.org/wiki/Arcane_University:Dialogue_Systems_for_Writers As well as this: https://ck.uesp.net/wiki/Category:Dialogue Often enough, the reason a dialogue is not working is simply because its quest has not started. I.e. I was creating a small quest involving Birna, a shopkeeper in Winterhold, and my lines would not show up for her. Turned out, even though the quest was flagged 'run at game start', it was not actually running, and after a 'startquest' console command, I spoke to her again, and she had the lines. Consider triggering your quest start either via StoryManager (i.e. upon entering Riften LocationChange event) In another case, I set up a trigger area near entrance of a certain dungeon, and linked my quest start to player entering this trigger area. The dialogue priority and triggering is still a bit of a dark area for me. I.e. on one quest, I added a bunch of responses for the 'Idle' topic in the Misc section. And when the follower NPC is just by herself sandboxing in an area, and I stand around, she will speak those idles. But when she is actively following me, she does not, even though her follow package is flagged to 'Allow Idle Chatter'. Oh, and ALWAYS rename your TIF script fragments. I.e. if you are working on a mod in CK, and your masters are only Skyrim.esm and Update.esm, then your active plugin is going to be loaded at index 02, and the default names for TIF scripts will be TIF__02xxxxxx. (i.e. TIF__02020480). But guess what other scripts follow that same naming pattern? All of Dawnguard dialogue!!! And those fragments go into your Data\Scripts, where they will overload vanilla Dawnguard dialogue scripts in the .bsa if there happens to be an ID conflict. So when I add a script fragment to a TopicInfo, and CK assigns it a default name like TIF__0304DF56, and say, this is for a mod called 'LilyFollower', I use Rename option to change it to 'TIF_LilyFollower_0304DF56'.
  10. That kinda sounds like you don't have the FaceFXWrapper in the right place - cause that is the utility that makes a .lip from a .wav As I said, it could be an MO2 thing. This video has some info about setting things up under MO2. Whatever works - in my case, this is a quest for my follower, and I have her loaded as a quest alias. GetIsId should work just as well. What version of CK are you running and do you have the fixes I mentioned? I think the 'Load' option comes from the 'Platform Extended' fixes. Generally, in absence of that, there are a couple other methodologies. First one is via Record. (Temp file) Open 'Edit Response' window, make sure only one voice type is listed. Click Record. (If you are recording the voice yourself, this is where you can just say the line into mic.) In Record window, click 'Done' You now have a newly created 'Temp.wav' file in your Data\Sound\Voice If you are using pre-made .wav files, this is where you replace that Temp.wav with your own. In the Edit Response window, click Save. At this point, CK will use FaceFXWrapper to generate the Data\Sound\Voice\Temp.lip file. Then it will copy these Temp files to proper mod\voicetype subdirectory and rename them. The second one is the rename method. In this case, I already have the mod\voicetype folder created under Voice, and I put the premade .wav files I am going to use in there. Open Edit Response window, make sure only one voice type is listed. Highlight the name in Voice Filename window, Ctrl+C Go into the folder, locate the needed .wav file, click on its name twice to start renaming it, and Ctrl+V Now, in Edit Response window click the listed voice type, click 'From WAV' radio button, and 'Generate LIP File' button should become active. Click it to generate the .lip file. Just an extra note: I never managed to get the 'Preview' button in 'Edit Response' window to work. Even though CK definitely can play audio - i.e. Sound Descriptors.
  11. I can only go step by step about how I do it. That said, I use Vortex and work directly in the SSE file structure. This might differ under MO2. First, make sure you got the goods: You want CK with the fixes (Platform Extended) Not sure if still needed if you got the above, but I also have the the tbb.dll, tbbmalloc.dll and winhttp.dll From Creation Kit Fixes, as well as the FaceFXWrapper 0.4 from same place - which goes into Tools\Audio under your SSE directory. You also need to download the file here, FonixData.cdf, and it goes into Data\Sound\Voice\Processing under SSE. And you need Unfuzer CPP Edition utility. Read the instructions, it is pretty easy to use. Suppose that the plugin file I am working on is "MyFollower.esp", and for the follower, I created a custom voice type called "CustomVoiceType" When I right-click on a responses list and choose 'New', it gives me a 'New Response' window. At this point, I just type in the text of the response, and click OK. It closes the New Response and opens the TopicInfo window. Now, I add a condition that explicitly indicates the response speaker (Usually GetIsAliasRef checking it is the follower Alias) Next, I double-click the text of the response to open the 'Edit Response' window. At this point, with condition in place, there should be only one VoiceType in the list (the follower's voice type) At the bottom, where it says 'Load', click 'Browse. It always seems to go to SSE directory, so it is best to pin the folder where you have prepared wav files, to Quick Access. Go there and select the wav file you wish to use. CK automatically copies this wav to the proper directory, renames it, and generates a .lip file from it. If I now go to SSE \Data\Sound\Voice\MyFollower.esp\CustomVoiceType, I can see the .wav and .lip files with the name indicated in 'Voice Filename' in the Edit Response. Click OK, this response is done. Once you did a bunch of dialogue, and wish to test it out, you run Unfuzer, point it at the directory where all the generated .wav and .lip files are, and click 'Refuze'. It will combine .wav and .lip pairs into .fuz files. Now you can try it in the game.
  12. Again, if an item fills a quest alias or has some special scripting attached to it, it usually applies to a specific Reference to that item. The one that is pre-placed in the world somewhere - or potentially spawned via a quest script. AddItem will just create a new Reference from the base record (the ID you find in Weapons), which is not a quest Alias, and has no scripting for it. It is same way if you look up base ID of Serana, and use player.placeatme to summon her, you are going to get an inert copy. She may sandbox around and have some generic dialogue, but talking to her will not let you advance any of the Dawnguard storyline, since that one is attached to one specific copy of Serana that is originally placed in Dimhollow.
  13. I see, so that armor set includes color variants via texture sets. I take it you decided to use my first method (combining meshes in outfit studio) Unfortunately, this can easily play havoc with alternate texture set assignment order in CK. Here is a primer: Assume you have a file Top.nif containing two meshes: top CBBE Internally, top mesh is assigned black textures. In CK, in the ArmorAddon definitions, you have one called TopBlackAA, which points at Top.nif, and assigns no alternate texture sets, so it is black. But you also have TopWhiteAA, which points at the same Top.nif, but if you click Edit button, you can see it has an alt texture assignment: CBBE top TopWhiteTS Where TopWhiteTS is a TextureSet, and also note that in CK, the order of meshes is reversed. But texture sets are assigned to an ordered slot. So, important part - TopWhiteTS is in the 2nd slot. If you edit Top.nif in outfit studio, and add mesh called pants, the list now looks like this: top CBBE pants If you now try opening that ArmorAddon in CK, you will see this: pants CBBE TopWhiteTS top TopWhiteTS is still applied to 2nd slot, which is now CBBE. And CBBE is the body, so it uses Skin shader, and its texture assignment will be overridden but the Skin TextureSet used by the body of the wearer. While top and pants have no alt texture set assigned. So, your options are: 1. Use the 2nd option from my original response (that is, combine top and pants ArmorAddons in same Armor form) or 2. Got through all the 'variation' ArmorAddons and correct their alt TextureSet assignments, so it looks like: pants PantsWhiteTS CBBE top TopWhiteTS (You would need to look at a pants ArmorAddon, see which alt texture sets they use, and assign accordingly)
  14. For Global, if in a script you have GlobalVariable Property Follower_Approval Auto Float Points = 5.0 and it is filled with proper FormID in the script properties One option is: Follower_Approval.SetValue(Follower_Approval.GetValue() + Points) Not sure if this function is SKSE - and how old - but you can also: Follower_Approval.Mod(Points) I have seen a number of ways of handling such things. Set up a faction, add player to it, and value is player's rank in that faction. Set up a chest in some inaccessible location, and add stuff to it. Item counts represent values.
  15. Ok... a proper 3BA adapt will take some work... and that skirt begs for proper SMP. Lets see if I can knock something together.
  16. Ok, the LL version is for LE.... and a pretty badly done one, too. The one at Schaken claims to be SSE...
  17. You would do well to list the mods not being recognized, your game version and maybe the exact message you get.(screenshot) I suspect what SKSE is disabling are outdated .dll plugins. I have recently updated my game to 1130, and after I updated SKSE and Address Library, I started getting message that my .dll plugins were outdated and being disabled. So I had to update those mods to latest version.
  18. If you have a mod that adds a weapon that player can craft, then you can use additem console command or a mod like AddItem or QUI to get it, no problem. However, understand that these methods take a Base form of the item, and create a new Instance of that item (called a Reference). I.e. there is only one Base record for the Iron Sword, and every Iron Sword in the game is an Instance (Reference) of that base record. Things like grindstone improvement and enchantments are applied to a specific reference. However, what is even more, is that advanced unique items are usually linked into quests as aliases of specific references, and those aliases have scripts and such. Simply spawning an instance of such item in your inventory will create a Reference that is not connected to anything, and is basically "dead".
  19. Look specifically for 'Skyrim dancing SHADOW rose armor.' It is definitely available on Lovers Lab, which is 18+ and you do need to create a login there to download.
  20. Adding a keyword dynamically is rather esoteric stuff. No way to get it solved via, say, a global variable or a token item added to a holding chest, or some such?
  21. I do not have ability to examine your file right now, but best way to learn this is by example. Have you extracted any house meshes from Skyrim's own .bsa files and compared their .nif structure to yours?
  22. Just FYI, the wings and halo from first pic are not part of this set. Also, under download link there, it says: Secondary use and distribution is prohibited. But if you google "skyrim dancing shadow rose armor" you might find a CBBE conversion ... elsewhere.
  23. Yes, you definitely can combine them in Outfit Studio. First load the top, then in File menu, use "Add Project" to load the bottom part. Then in the mesh section, for each mesh that belongs to pants, go to Partitions tab, and change their partitions to Body (32), then save it, open it in Bodyslide (might need to restart Bodyslide) and build. Another option is to do it via CK. Load up the mod, go to its Armor section, find the pants part, and check which ArmorAddon it uses and which slot it goes into. Then locate the top armor form, and in its list of addons, add the pants addon, and in the slots list, add the slot for the pants.
  24. Have you actually physically checked Data/SKSE/Plugins in your SSE game directory? Cause SE version of JContainers is named JContainers64.dll. So you might have removed that, but still have the old JContainers.dll file there.
  25. You can definitely decompile the fragment script for that quest in order to see what it does. I see no issue, as long as you don't try to include your own replacement script in the mod. You can use "GetStage" condition on a quest to determine if a quest is at or before or has progressed past a certain stage. GetStageDone specifically tells you if a certain stage has been visited. I.e. GetStage might return 100, but that is no guarantee that quest ever been at stage 60. As to monitoring a quest: highly dependent on what sort of effect are you going for. Is it something that a player is supposed to experience immediately, regardless of where a player currently is - or player will not notice the effect until visiting a specific location? Also, looking at the monitored quest flow. As in, exactly what happens in that quest when it reaches that stage? If it changes state of a certain object adds an item somewhere, removes an item etc. You could put your monitoring quest on a 'RegisterForSingleUpdate' loop to check the quest stage every 5-10 min. Or ,if the effect is only observed when player enters some place, you could check that quest only on player location change. Or, you could fill an alias with an object that HR quest somehow changes at that stage, and monitor for that change.
×
×
  • Create New...