VilLynne Posted October 13, 2024 Posted October 13, 2024 (edited) Is it easy to code NAF to be compatible with player face parts so I may use this mod: https://www.nexusmods.com/fallout4/mods/9753 ( I play GOG version 1.10.163 ) [edited for clarity] Edited October 13, 2024 by VilLynne
Evi1Panda Posted October 13, 2024 Author Posted October 13, 2024 (edited) @VilLynne I dont understand what restrictions you're talking about. Edited October 13, 2024 by Evi1Panda
izzyknows Posted October 13, 2024 Posted October 13, 2024 2 hours ago, VilLynne said: Does the new version also have the same restrictions regarding no player head and face bone structure alterations or HD? Well, I cannot get them to play nicely anyway. IF you're on the Next Gen version of the game, missing head issue, downgrade and you wont have the bugs or headaches. If it's something else, then a little more detail would help. 1
Evi1Panda Posted October 13, 2024 Author Posted October 13, 2024 While I was fiddling around with all this all day today, I realized something. Having figured out how the NAF parser works, it became clear what problems actually arise when parsing XML files. There really aren't that many of them. 1. Lack of Root node. Those. xml looks like this <meta title="Theme_SexKinky_NoFurnFM_tagData.xml" version="200811.0" dataSet="key_node"/> <defaults ... /> <key_node attribute1="value1" attribute2="value2"/> It should look like this though <key_nodeData title="Theme_SexKinky_NoFurnFM_tagData.xml" version="200811.0" dataSet="key_node"> <defaults ... /> <key_node attribute1="value1" attribute2="value2"/> </key_nodeData> that is, root-the node in this case is key_nodeData, it should open in the first line and NOT be closed with the symbol />, this symbol can be used if you need to pass parameters in one line. One line in this case is a convention, because It's not the display on the screen, but the < and > symbols that open and close the line. The symbol /> at the end of the line means that the node is closed in the same line and does not have additional nodes inside it, but may have attributes or properties that are written in the same line. By the way, NAF does not parse any properties of the root node. So it doesn’t matter at all what is written there. It might look like this <key_nodeData> - opened a node </key_nodeData> - closed the node In practice NAF is only XML with root nodes "animationData", "raceData", "positionData", "morphSetData", "equipmentSetData", "actionData", "animationGroupData", "furnitureData", "positionTreeData", "tagData", Bridge from version 0.800 "mfgSetData", "overlayData", "protectedEquipmentData" i.e. XML with root node 'meta' will just skip. In general, this is the biggest problem. Because There's just so much XML like this, with the meta node. Obviously AAF parses not by the root node, but by the dataSet attribute. By the way, one of the options is to remake NAF so that it does the same. But I’m not sure whether Pugi XML will work normally without a root node, but it turns out that in these XMLs with a meta root node - the root node opens and closes in one line. Perhaps this is some unusual XML standard, or just bullshit. The good news is that this can be corrected by writing “fixer”. This is good news, because doing it manually is simply boring. 2. The second problem is errors. This is not such a big problem, if the log notifies you about them, then it can be corrected manually. Most often these are some kind of typos in the XML, or incorrect data entered. An excellent example of animations with a cat in animations from Vadermania. Which no one has ever seen, which refer to non-existent objects, but for some reason all the authors of XML patches persistently transfer it from the original mods to their fixes. Or errors from Savage Cabbages, if I remember correctly - where it refers to misspelled hardware addresses. And absolutely all “patch makers” ignore this, although it takes two minutes to edit - open xEdit and look for what the author meant. Again, it’s good that the NAF log indicates all these errors with a warning mark. The bad thing is that in practice, each such error requires an individual solution and cannot be eliminated automatically. There is no so much. 3. The third problem is entirely from the patch makers, or I don’t even know where it came from. positionData contains offset - offsets relative to the starting position. These offsets are specified both in xml positionData and in animationData, they are summed together and added to the animation start point. These records have a format of either several lines for each actor, then this is an array of three or four digits separated by commas offset="0,0,9" or offset="0,0,42,180". Or they can be specified on one line for all actors, separated by a colon. This is usually done for two actors - I’ve never seen it again: offset="0,0.42:0,0.42" or offset="0,0.42,180:0,0,42,0". Where the first three numbers indicate the XYZ offset, and the fourth (optional) indicates the rotation angle along the Z axis. Typically this is used along the Z axis to play animations for the floor on beds, or vice versa with negative values to play animations for beds on the floor . Well, sometimes small shifts in XY are also done to arrange the actors a little more successfully. Angle shifting is used, for example, to turn actors on the bed with their heads in the other direction. So, the problem is that quite often I see a format of three digits, but it ends with 180: offset="0,0,180". I don't know how it works in AAF, Perhaps it parses from the end and first sets the angle offset... But for normal people, everything should be filled from smaller to larger. In general, here we can only look at XML for now, but in theory I can try to notify in the log about the presence of abnormally large offsets. Because in practice, the height of the bed is 42 and a larger offset is simply not necessary. Basically, I'm making an application that will completely solve the first problem. But everything needs to be tested. That’s why I won’t give a release today, although the NAF update itself is ready. I think a couple of days and that's it. By the way, there is another funny nuance. Related to RaceData. All RaceData are made with error #1. However, if you “fix” them, the effect will be rather negative. As long as they are broken, they do not interfere with work. The fact is that races contain the 'requireAnimationReset' attribute, but NAF does not parse this, its attribute for the race is 'requireReset'. Instead of a real value, when parsing NAF will not find the requireReset attribute and will always set it to false. Which is not very good. 3
VilLynne Posted October 13, 2024 Posted October 13, 2024 (edited) On 10/11/2024 at 3:31 PM, Here4SlootyMods said: I created links from my Data\AAF folder to my Data\NAF folder instead of copies and my animations are all working fine (no invisibility/vanishing or anything). Based on the errors, it also seems like your mod management tool isn't prioritizing any of the XML files at all and letting both co-exist chaotically. How did you solve the invisible player problem? I set up UAF to overwrite/supersede XMLs, yet most still have invisible player problem. If anyone has updated XML files for NAF then that would be a helpful file to share? I am currently testing overriding all with AnimationsAddonsAndFixes11.0-Indarello as I read it has fewer bugs, and it seems animations are playing better, yet the player is still usually invisible. I use game version 1.10.163 and Fusion Girl with BodySlide values sometimes < 0 or > 100. Edited October 14, 2024 by VilLynne clarity
Evi1Panda Posted October 14, 2024 Author Posted October 14, 2024 (edited) @VilLynne Player invisibility has nothing to do with XML. Most likely this is a problem with settings of your camera tweak mod instead of custom camera, it should works fine. Try to use camera tweak mod. You can emulate the reasons for this invisibility by slowly moving the camera closer to the player until at one point he disappears. This is exactly what happens. Edited October 14, 2024 by Evi1Panda
Evi1Panda Posted October 14, 2024 Author Posted October 14, 2024 I will post NAF parse detailed schema, to you can understand what exactly xml should contains to be parsed fine. In couple of hours.
VilLynne Posted October 14, 2024 Posted October 14, 2024 (edited) 4 hours ago, Evi1Panda said: @VilLynne Player invisibility has nothing to do with XML. Most likely this is a problem with settings of your camera tweak mod instead of custom camera, it should works fine. Try to use camera tweak mod. You can emulate the reasons for this invisibility by slowly moving the camera closer to the player until at one point he disappears. This is exactly what happens. . I don't use a camera mod, that I am aware of, because the LL "The F'ing Manual" did not mention using camera mods. I just use the arrow keys after the scene starts. So, I need to get a "camera tweak mod" to fix invisibility? And, I hope bodyslide values <0 or >100 do not cause problems. [edit] I installed the mod "In-game Third Person Camera Config"; it hasn't been updated since 2016 so I hope it still works and won't break anything. . Also, is will NAF be compatible with "Oni cute asian face parts" https://www.nexusmods.com/fallout4/mods/9753 . Edited October 14, 2024 by VilLynne
Evi1Panda Posted October 14, 2024 Author Posted October 14, 2024 (edited) NAF XML PARSING STRUCTURE if you're just casual user and your goal is simply to adapt the xml from AAF for use with NAF it seems better for you will be use NAFicator instead of editing xmls manually. Root nodes : "animationData", "raceData", "positionData", "morphSetData", "equipmentSetData", "actionData", "animationGroupData", "furnitureData", "positionTreeData", "tagData", NAF Bridge from 0.800 "mfgSetData", "overlayData", "protectedEquipmentData" So if you need your XML was parsed it can have anyname.xml and should have root-node from list above. I am not absolutely sure, but parse also be works if there is no root node, but have top nodes from this list : "race", "animation", "faceAnim", "position", //NAF Bridge added offset parsing from positionData "morphSet", "equipmentSet", "action", "animationGroup", "group", "tree", "tag", "graph", NAF Bridge from 0.800 "mfgSet", "overlaySet", "condition" but I guess it is bad practice, better use Root node. NAF always parses defaults node. If attribute parsing false then parser goes to defaults node and see there if there is same attribute was parsed, and if it is it will put value from defaults node. For clarity, in "" I will put the type of the value, and default value if it is. If has no default value it is hard require. Of course there is should be real values: form="1234ABCD" - form id of file, for source="MyCoolPlugin.esp", for morphes morph id from looks menu, for actions defined actions id etc... Root node should be single per one xml. defaults node can be only one inside root node. You can add any your own attribute to any node like commentary, it won't be parsed if it is out of schema. Parser takes only that nodes what it was programmed. ex. <defaults loadPriority="0" myCommentary="blablabla"/> It will be okay, parser never request for myCommentary value, and it doesn't break correct xml structure. Also you can be sure everything will be fine if you change source and forms attributes from positionData xmls to file attribute. You will can do espfe file and even remove Idle forms from esp. Sounds programmed in .hkx depends on sounds editorId, not formId so it will work fine anyway. Here is actually NAF parser map. RACE DATA <raceData> <defaults loadPriority="int, 0"/> <!-- in this node can be any attribute --> <!-- can be any count of race nodes --> <race skeleton="string" loadPriority="int, 0" form="string" source="string" requiresReset= "bool, false" requiresForceLoop="bool, false" startEvent="" stopEvent="string, emptystring" graph="string, emptystring"/> </raceData> ANIMATION DATA File attribute is instead of source + form nodes. So if you have file attribute you don't need animation form inside esp (and your esp can be deleted, or can be eslfied). ex. file="Actors\Mirelurk\Animations\CP_Mire_Creature_03.hkx" I am not sure about escape sequences, so better escape it starting from upper case after '\'. <animationData> <defaults /> <!-- in this node can be any attribute --> <!-- offset is a string, but in fact it is int array of 3 floats (XYZ) or 4 (XYZ + Z-Angle). Can be array of arrays with ':' delimiter "0,0,42,180:0,-0.5,42,0" for actor 1 and actor 2. --> <animation id="string" tags="string, emptystring" offset="string"> <!-- can be any count of actor nodes --> <actor file="String" skeleton="string, Human" gender="M/F, empty means any" faceAnim="string,emptystring" loopFaceAnim="bool,false" startEquipmentSet="string,emptystring" stopEquipmentSet="string,emptystring" scale="float,1.0f"> <!-- optional idle node --> <idle source="String" form="String"/> <!-- optional, can be any count of action node or no one --> <action id="String"/> <!-- optional morph node, can be any count or no one --> <morph id="string" to="float"/> </actor> <actor idleSource="String" form="string" skeleton="string, Human" gender="bool, empty means any" faceAnim="string,emptystring" loopFaceAnim="bool,false" startEquipmentSet="string,emptystring" stopEquipmentSet="string,emptystring" scale="float,1.0f"/> </animation> </animationData> POSITION DATA offset in positionData parses just in Bridge's patch. Firstly it parses from defaults node, if there is no, it try to parse it from animationOffset node and uses it as it was in defaults. If offset same for all actors you can set it once "0,0,42,0", if you need offset just for one actor "0,0,42:0,0,0" Can be any count in array delimeted by ':', or any count of animationOffset node. Arrays count should be 1 or same as actors count. Optional attribute. This offsets values sums with offset values set in animationData. Not replace it, sums. <positionData> <defaults offset="float array, 0,0,0,0 as default"/> <!-- in this node can be any attribute --> <!-- animationOffset won't be parsed if offset already was set in defaults --> <animationOffset offset="float array, 0,0,0,0 as default"/> <animationOffset offset="float array, 0,0,0,0 as default"/> <!-- can be any count of position nodes --> <position id="string" tags="string" isHidden="bool,false" startMorphSet="string, emptystring" stopMorphSet="string, emptystring" startEquipmentSet="string, emptystring" stopEquipmentSet="string, emptystring" location="string, emptystring" animation="string, emptystring" animationGroup="string, emptystring" positionTree="string, emptystring"/> </positionData> MORPHSET DATA <morphSetData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of morphSet --> <morphSet id="string"> <!-- can be any count of condition nodes --> <condition isFemale="bool,false" isPlayer="bool,false" name="string,emptystring" skeleton="string,emptystring" hasKeyword="string,emptystring"> <!-- can be any count of morph nodes --> <morph value="string, emptystring" to="float"/> </condition> </morphSet> </morphSetData> EQUIPMENT SET DATA <equipmentSetData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of equipmentSet --> <equipmentSet id="string"> <!-- can be any count of condition nodes --> <condition isFemale="bool,false" isPlayer="bool,false" name="string,emptystring" skeleton="string,emptystring" hasKeyword="string,emptystring"> <!-- can be any count of unEquip,reEquip,addEquipment,removeEquipment nodes, no exception if any attribute is missing --> <unEquip bipedSlot="string"/> <reEquip resetAll="bool" bipedSlot="string"/> <addEquipment form="string" source="string"/> <removeEquipment form="string" source="string"/> </condition> </equipmentSet> </equipmentSetData> ACTION DATA <actionData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of action nodes --> <action id="string"> <!-- can be any count of self, no exception if any attribute is missing --> <self startEquipmentSet="string,emptystring" stopEquipmentSet="string,emptystring"/> </action> </actionData> ANIMATION GROUP DATA <animationGroupData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of animationGroup nodes --> <animationGroup id="string" sequential="bool,false"> <!-- can be any count of stage, any attributes except animation is optional. I don't know for loops, it delims loops string with '-' symbol, and get int32 values from every, it named loopMin and loopMax --> <stage animation="string" loops="string,emptystring" weight="int32"/> </animationGroup> </animationGroupData> FURNITURE DATA <furnitureData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of group nodes --> <group id="string"> <!-- can be any count of furniture nodes no exception if any attribute is missed while parsing, but there will be exception if wouldn't find this form during linking. All attributes is optional... but you should understand source and form is needed in fact. --> <furniture source="string" form="string" keyword="string" startAnimation="string,emptystring" stopAnimation="string,emptystring"/> </furnitureData> POSITION TREE DATA <positionTreeData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of tree nodes --> <tree id="string"> <!-- can be any count of included branch nodes --> <branch id="string,emptystring" positionID="string" time="float, 0.f" forceComplete="bool,false"> <branch id="string,emptystring" positionID="string" time="float, 0.f" forceComplete="bool,false"> </branch> </branch> </tree> </positionTreeData> TAG DATA <tagData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of tag nodes --> <tag replace="bool,false" position="string" tags="string,emptystring"/> </tagData> ___________________________________________________________________________________ BRIDGE MFGSET DATA <mfgSetData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of mfgSet nodes --> <mfgSet id="string"> <!-- can be any count of setting nodes --> <setting morphID="string" intensity="int"/> </mfgSet> </mfgSetData> OVERLAY DATA <overlayData> <defaults /> <!-- in this node can be any attribute --> <!-- can be any count of overlaySet nodes --> <overlaySet id="string"> <condition> <overlayGroup duration="float,0.f" quantity="int,1"> <!-- can be any count of overlay nodes --> <overlay template="string" alpha="int,100" isFemale="bool,true"/> </overlayGroup> </condition> </overlaySet> </overlayData> PROTECTED EQUIPMENT DATA <protectedEquipmentData> <defaults /> <!-- in this node can be any attribute --> <condition> <!-- can be any count of protectKeyword nodes --> <protectKeyword form="string" source="string"/> </condition> </protectedEquipmentData> Edited November 13, 2024 by Evi1Panda 4
Evi1Panda Posted October 14, 2024 Author Posted October 14, 2024 (edited) 1 hour ago, VilLynne said: I don't use a camera mod, that I am aware of, I just use the arrow keys after the scene starts. So, I need to get a "camera tweak mod" to fix it? I'll go look for one. Hopefully FG bodyslide values <0 or >100 aren't causing it. Sorry, I never use it without Camera Tweaks. As I said player disappearing is vanilla camera feature. upd. In my cases it happens rarely, but I remember one user posted about it on Nexus, and he solved it after removing Custom Camera and installing Camera Tweaks. I'am using Camera Tweaks for last 1,5-2 years, so can't tell you how it works without it. But mainly body disappearing when camera is too close to character. I used crutches to prevent it - unbind camera from player before scene start, remove camera collision, force camera to 3d, but it not helped for 100%. I have reliable plan to solve this : wait for inspiration or an accident that will help us do better. Edited October 14, 2024 by Evi1Panda 3
VilLynne Posted October 14, 2024 Posted October 14, 2024 (edited) On 10/14/2024 at 1:24 AM, Evi1Panda said: Sorry, I never use it without Camera Tweaks. As I said player disappearing is vanilla camera feature. upd. In my cases it happens rarely, but I remember one user posted about it on Nexus, and he solved it after removing Custom Camera and installing Camera Tweaks. I'am using Camera Tweaks for last 1,5-2 years, so can't tell you how it works without it. But mainly body disappearing when camera is too close to character. I used crutches to prevent it - unbind camera from player before scene start, remove camera collision, force camera to 3d, but it not helped for 100%. I have reliable plan to solve this : wait for inspiration or an accident that will help us do better. Thank you so much for explaining this. I was missing an essential component because "The LL F'ing Manual" does not cover the neee for camera tweaks (or camera mod of choice). Edited October 17, 2024 by VilLynne 1
Here4SlootyMods Posted October 15, 2024 Posted October 15, 2024 On 10/13/2024 at 3:03 PM, Evi1Panda said: @VilLynne I dont understand what restrictions you're talking about. @Evi1Panda They're not really restrictions and you can ignore it. Basically there's two places you can purchase Fallout 4 that's supported by F4SE. Steam and GOG. GOG.com is still on 1.10.163 (pre-Next Gen) but that's about all that should matter. The store doesn't matter and I think @VilLynne is just saying they're using 1.10.163 (which is the only supported version for NAF and the Bridge anyways). About the source code: I noticed in 0.800 you removed the "ImportNAF" class in src/Data/Global.h. This also removes the "ImportData" function in "ImportNAF" which I think was the only place "AddToMap" was called (at least that I could find), so I don't think you need it anymore but I could be wrong (src/Data/Global.h lines 882 - 925 and src/API/API.h lines 176 - 262 in the 0.800 source code). As for the invisible character, I just tried it and was able to reliably trigger it if my camera was too close (vanilla camera, no Camera Tweaks mod). In addition to all the other stuff that you already do (no collision, force camera to 3D), what about moving the camera away if it's greater than or equal to the minimum distance required to not cause the bug? Thanks for cleaning up the source code that you were posting. All those CMake executables in the build folders were triggering lots of antivirus programs like crazy. 1
Evi1Panda Posted October 16, 2024 Author Posted October 16, 2024 @Here4SlootyMods I tried move camera, but had some troubles. Maybe I should return to this. Yes import class removed, because everything imports now in global class. NAF's native.
Here4SlootyMods Posted October 16, 2024 Posted October 16, 2024 10 hours ago, DarklyNightly said: is this available for next gen? Not yet. 6 hours ago, Evi1Panda said: Yes import class removed, because everything imports now in global class. NAF's native. Then do you still need the AddToMap functions, then? I think they can be removed. 50 minutes ago, Evi1Panda said: Need help with testing it! What about making this a standalone program (like BodySlide) so we don't have to start the game? It's basically just an XML modifier from what I could see.
Evi1Panda Posted October 16, 2024 Author Posted October 16, 2024 (edited) @Here4SlootyMods no, it compare parsed data with ingame forms, is form exist or not. And also it replaces in xmls idle form-source attributes with file attribute pathing to hkx. This data takes from loaded forms. After idles will be parsed you can eslficate idles plugins. But you will still need originals if you will need to remake data... Maybe I shoud do somekind of archive to store allready parsed data... Edited October 16, 2024 by Evi1Panda
dosfox Posted October 17, 2024 Posted October 17, 2024 (edited) Hey @Evi1Panda, Unfortunately i have to go back to AAF. NAF/Bridge is coming along fine. Through NAF gui i can manually generate any number of concurrent animations of any variety with any number of NPCs. My problem is that Autonomy seems unable to generate scene calls that Bridge can understand/parse properly, and Autonomy is the only scene generation mod i want to use. I have spent nearly 250 hours on this playthrough experimenting with every possible combination of NAF/Bridge and Autonomy settings, with unsatisfactory results. Using NAF/Bridge with Autonomy and my usual settings of Heterosex=100% Gay=0% Lesbian 0%, there is a flurry of single pairings initially, then all human sex action stops until moving to a new location. With Hetero=50% Lesbian=50% there are sometimes 2-3 concurrent scenes, but nearly all scenes are FF, and there are long periods of inactivity. There are never any 3P+ scenes. And of course there is the stupid maleNPC with femaleVoice problem. Using AAF, with the right settings Autonomy will generate 6+ concurrent M-F or Creature-F animations constantly, including many 3P+ scenes. Of course there were many position errors and the 3P+ animations would often break or get stuck, but somehow AAF-Autonomy maintained a constant rate of concurrent M-F and Creature-F scenes. Hopefully with all the work done cleaning up the XMLs, AAF might perform with less errors. So unfortunately the only framework which supports all of Autonomy's features is AAF. InvictusBlade has abandoned Autonomy and it doesn't look like anyone else is going to fix either the Alias problem with v2.8 or the numerous bugs the 3.0+ versions have. It is with a very heavy heart that i uninstall NAF and go back to the inferior AAF platform. Thank you for your enthusiastic help and advice, you are doing wonderful work! P.S It would probably be best to delete your link to my XMLs on the OP as i won't be updating them again, and don't want to give people the impression that Autonomy works with NAF. Edited October 17, 2024 by dosfox
Evi1Panda Posted October 17, 2024 Author Posted October 17, 2024 (edited) Do you see in nafbridge papyrus log authonomy requests for theese scenes, you are talking about? Bridge decline it? Or what happening? What reason bridge writes if it declined it? NAF returns the reason why it doesn't start scene. Bridge catch it and send to it log. Bridge also writes scene parameters to log before it starts. I tested scenes with multiple persons its starts fine if animation is exist. Edited October 17, 2024 by Evi1Panda
dosfox Posted October 17, 2024 Posted October 17, 2024 These are logs from last night. There is no problem generating 3P+ scenes with NAF GUI, but Autonomy's calls for 3P+ animations are being ignored. NAF.log aaSUPF4SEDebugPrint.txt
Evi1Panda Posted October 17, 2024 Author Posted October 17, 2024 Spoiler 20241016152320 : BRIDGE : 0.780000 : StartScene requested : Actors : [[companionactorscript < (08029720)>], [teleportactorscript < (AD341458)>]] 20241016152442 : BRIDGE : 0.780000 : StartScene requested : Actors : [[workshopnpcscript < (FF03467C)>], [workshopnpcscript < (FF034684)>]] 20241016152638 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (FF05851F)>], [Actor < (FF05EC4E)>]] 20241016152917 : BRIDGE : 0.780000 : StartScene requested : Actors : [[companionactorscript < (08029720)>], [workshopnpcscript < (FF00FF22)>]] 20241016153221 : BRIDGE : 0.780000 : StartScene requested : Actors : [[workshopnpcscript < (FF0151E7)>], [workshopnpcscript < (FF03467A)>]] 20241016153246 : BRIDGE : 0.780000 : StartScene requested : Actors : [[workshopnpcscript < (FF034678)>], [workshopnpcscript < (FF0151E7)>]] 20241016153309 : BRIDGE : 0.780000 : StartScene requested : Actors : [[workshopnpcscript < (FF024494)>], [workshopnpcscript < (FF00FF22)>]] 20241016153953 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0E)>], [Actor < (AB052D0D)>]] 20241016154022 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D1B)>], [Actor < (AB052D0E)>]] 20241016154045 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D1B)>], [Actor < (AB052D0F)>]] 20241016154132 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0F)>], [Actor < (AB052D1B)>]] 20241016154228 : BRIDGE : 0.780000 : StartScene requested : Actors : [[teleportactorscript < (AB052D17)>], [Actor < (AB052D0C)>]] 20241016154333 : BRIDGE : 0.780000 : StartScene requested : Actors : [[teleportactorscript < (AB052D17)>], [Actor < (AB052D0C)>]] 20241016154359 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0C)>], [teleportactorscript < (AB052D17)>]] 20241016154426 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0F)>], [teleportactorscript < (AB052D1A)>]] 20241016154453 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D13)>], [Actor < (AB052D1B)>]] 20241016154519 : BRIDGE : 0.780000 : StartScene requested : Actors : [[teleportactorscript < (AB052D1A)>], [Actor < (AB052D0F)>]] 20241016154603 : BRIDGE : 0.780000 : StartScene requested : Actors : [[teleportactorscript < (AB052D18)>], [Actor < (AB052D12)>]] 20241016154629 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D1B)>], [Actor < (AB052D13)>]] 20241016154705 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0C)>], [Actor < (AB052D13)>]] 20241016154728 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0C)>], [Actor < (AB052D13)>]] 20241016154751 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D13)>], [Actor < (AB052D0C)>]] 20241016154814 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0C)>], [Actor < (AB052D13)>]] 20241016154849 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D13)>], [Actor < (AB052D0C)>]] 20241016154926 : BRIDGE : 0.780000 : StartScene requested : Actors : [[Actor < (AB052D0C)>], [Actor < (AB052D13)>]] I don't see Authonomy even tried to request scene with more then two actors. I tried last authonomy and I'm sure I saw scenes with multiple actors.
Evi1Panda Posted October 17, 2024 Author Posted October 17, 2024 (edited) @dosfox anyway I'll pay attention to your words, I will check up this later. For now I have too much to do for naficator. I guess it is the thing that make users life awful - needing to setup xml files. And thanks for your tests. Edited October 17, 2024 by Evi1Panda 2
Here4SlootyMods Posted October 17, 2024 Posted October 17, 2024 (edited) @dosfox I don't know much about Autonomy but check back in every once in awhile, we may end up fixing it. For everyone else: post logs if you do run into any problems so we can see exactly what's going on. It helps to know what the bug is if we want to fix the bug. @Evi1Panda A few things: How open are you, to some big changes in the code? 1. I've attached a patch to act like a "proof of concept" that will hopefully make your life easier. First in C++/src/API/API.h you'll see the "ObjectInfo" struct (I'm not good at naming). This struct gets used by the GetObjectWithID function ("Get" seemed too short for a name) because all of the Get* functions are basically the same: return std::shared_ptr<const T>(detail::invokeWithReturn<decltype(GetFunctionHere)*>(NAFAPI_FunctionName, std::shared_ptr<const T>(nullptr), id); My change lets you get rid of all of those Get* functions and replace it with the GetObjectWithID function I added (feel free to change the names). Then you just use it like so: GetObjectWithID<Data::Animation>(id). Then in the future if you want to add something that uses it, you only need to add: template<> constexpr std::string_view ObjectInfo<SOME NEW DATA TYPE HERE>::naf_func = "NAFAPI_SOME_FUNCTION"; Every instance of GetAnimation would need to be changed to GetObjectWithID<Data::Animation> but I think it's worth it for additional code when new stuff gets added. Other things can apply to this which brings me to #2: 2. It looks like you added GetOverlaySet in C++/src/Data/Global.h but not in C++/src/API/API.h. I could be wrong but it looks like it should be there. 3. Why are some function names and signatures repeated (mainly in in C++ src/Data/Global.h and src/API/API.h)? Is this required by F4SE or Papyrus? For example, there's a GetAnimation in both files with the same signature but their definitions are completely different. NAF-0.800.patch.txt Edited October 17, 2024 by Here4SlootyMods 1
VilLynne Posted October 17, 2024 Posted October 17, 2024 (edited) If only we could find a "patch" of corrected /Data/AAF/*.xml files which others have already been working on. This actually seems like something that should be done collectively like open source. I got a migraine just thinking about having to bug fix all those .xml files to work well in /Data/NAF all on my own, and I imagine many others do too. For now, I'll just copy all the mostly broken /Data/AAF/*.xml files and endure any bugs until someone posts a collection of fixed .xml files to either overwrite or replace the old'. I don't mind setting NAF Bridge to play randomly available .xml files of a smaller curated fixed collection; if that exists then it would not need to be exhaustive. If anyone knows of or has any fixed .xml files (full or partial) then it would be so helpful to so many to post a link, or receive some in an email or pm... I did read some posts about NAFicator on nexus mods, but the project is just beginning and it did not ready to take on a bunch of copy/pasted broken /Data/AAF/*.xml files. I can imagine the vast majority of NAF converts are also waiting for an easy link to collection(s) of *.xml files. Edited October 17, 2024 by VilLynne 1
housewalker123 Posted October 17, 2024 Posted October 17, 2024 i dont know where else to post this. after a lot of troubleshooting i managed to get animations working, but FEV Hounds and behemoths stay flaccid
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now