Jump to content
ℹ️ Intermittent Download History issues ×

niston

Premium Member
  • Posts

    1249
  • Joined

  • Last visited

Everything posted by niston

  1. I think the only real way to get it done properly is with 3DSMax. I've encountered a similar problem with custom NIFs that were made in CK, they sometimes had either wonky collision or none at all. I wonder tho if it were possible to use a collision box below some water without collision? Then again, player can not swim in water w/o collision - as became evident during your experiment with the unique water. :sad: Altering the terrain in the lock to raise it above the water line crossed my mind. But if I do that, then things in the lock will run aground when the lock is empty. And if I keep my movable water over the raised terrain when the lock is empty, then that movable water won't match the height of the adjacent cell's water, leading to much more gruesome visual artifacts than the water under water creates.
  2. Well, imho its choosing between dynamic environment or FPS. I choose dynamic environment (and slight visual glitches, because Bethesda) over FPS at any time, but others opinion might differ. The impact of broken precombines also depends on where that is. For example, downtown w/o precombines might be too much for an older computer, whereas broken precombines in a cell out in the wilderness with nothing much going on, the performance impact will be almost negligible. What precombines technically mean is, instead of making many draw calls for each individual object displayed on the screen, objects are combined at design time (hence precombined) into single, larger objects. This results in less drawing calls for the GPU to process. It is thus an optimization technique (spending processing time on generating the precombines during development, for saving processing time during execution of the game). Here's an interesting, more detailed read: https://bethesda.net/community/topic/86381/understanding-precombines-previs-and-why-mods-that-disable-them-can-cripple-game-performance You can disable precombines either by ini setting, which affects the whole game. Or they can be broken/disabled on a cell level, which then only affects the area covered by the cell. This is a good thing for example to let people scrap to their heart's content in settlements, but keep precombines (and previs, another optimization thing) intact for the rest of the map. Scrap patches often work like that. The downside of using precombines is, as objects are now precombined into single, larger objects, the individual objects that make up the precombine can obviously no longer be addressed. So if you'd like to scrap that mound of dirt in the driveway, you'll be scrapping the driveway, the house and half the trees in the backyard as well (silly example, but you get the point). The fact that the objects no longer exist individually also complicates scrapping very much. When scrapping individual objects, the game is able to tell what you are scrapping and use the appropriate receipe to give scrap components. This is no longer the case with precombines, as a precombine is by definition a whole bunch of objects lumped together into a single thing. A Dirtmounddrivewayhouseclusteroftreesblob - to stay with the silly example. What's the scrap value of that? The engine can't know as it doesn't know what the precombine is made of (else the whole precombination thing would be without merit). There are even more problems with using regenerated precombines and previs in mods, as previs is calculated for areas larger than a single cell. If you have two mods supplying new precombine/previs data for the same area (even tho the mods don't alter the same cells) might result in inresolvable conflict. And the precombine/previs data is often huge, blowing up a mod by tens of megabytes. All in all, the precombines thing is more of a nasty compromise than a solution. It mostly works ok and appeases the FPS crowd, but it also makes modding somewhat more difficult and ultimately limits environment dynamics, as described earlier. Breaking precombines shouldnt create CTD issues by itself (unless simply overwhelming your rig). But very often, the cause of CTDs in a certain area is some mod deleting records for that area, then another mod trying to access those deleted records. This sort of problem can usually be rectified with a few clicks in FO4Edit, to undelete/disable references (and to remove ITMs while at it). Note that mods may and do often contain dirty/wild edits (unintended by the author) or modify more than they announce. For example I have here some mod that supposedly adds new workshop objects, but then alters stuff in a lot of cells all over the Commonwealth as well. Or that other settlement mod that adds the promised settlement, while hideously altering terrain for half the map. FO4Edit is your friend!
  3. I use WSFW/WS+ and Spring Cleaning. The WS+ undo function mostly works fine. Sometimes it doesn't, giving totally unexpected or no results at all. Saving on a regular basis is still good advice.
  4. You have tried the space bar to toggle between mouse and gamepad interaction with the preview window, right?
  5. Hmm, I tried making an interaction condition like this that would prevent player from entering a furniture, by running IsPlayerRef == 0.00 on Subject (IIRC). It didn't work at all for me.
  6. Ye, having water under water looks quite strange from above and even stranger from below. Also, in the water lock, there is a spot near the upper door where you can walk on the ground and use the weapon while submerged *shrug* I'll maybe see about fading the additional water planes when the level is low. I'd love for somebody with 3DSMax to make me a NIF, but such people seem hard to get by these days. For reference, I first tried using the unique water piece with the cutout that is used for the upper door. But it's not long enough to cover the lock's chamber, so requires at least one extra water plane anyways, negating any benefits of using it. Btw the script Beth uses for the movable water in Weston is an absolute marvel of technology complexity. You can translate up to 128 water planes independently in any direction, at any speed to any angle, using multiple stages. And you can register objects to get notified when the water level changes. I checked it out the other day and was like "this looks like a german engineered car." :laugh: Also I wonder why they use said registration system instead of events for notification purposes. Maybe it was ported/reused from an older game that didn't have events? Also, thread not hijacked as this all is somewhat relevant. Only the thread's title might not entirely match it's contents now.
  7. You can also look at existing mods, loading them into FO4Edit to see whats in them.
  8. One problem I do have with the water is the irregular shape required for the water lock, due to the doors being not straight. Also, the water tiles I found are mostly square, and not oblong. Right now, I got a large square section (of which most is hidden under terrain) to fill out the locks' chamber and some two smaller square sections rotated in place at the downstream door. I'm not happy with this as it creates visual artifacts and has beforementioned weird collision, but I think the only real solution would be to make a custom water NIF which I cannot do. @DieFem, first I was thinking of a simple remote to switch the lock between HighOpenLowClosed and LowOpenHighClosed. But I think something xmarker based could be done. Maybe like this: You drive with the boat up to one of the gates. There is a trigger box so the guidance system ultimately knows on which side of the lock you are. Also, on triggering, it could message the player "Guidance System Locked" or whatever. An extra button on the boat's control panel could then inform the guidance system to start the transition process from whatever side you arrive to the other side. Basically taking control of the boat and translating it along xmarkers into the lock, then triggering the switchover, and then translating out the other side, finally giving boat controls back to player. Like some sort of tractor beam. Another approach could be to to send the boat's "navigation computer" script a list of navigation markers once it's within range. The navigation script could then (after player hits a button to start the process) translate the boat along those markers, into the lock. upon reaching the last marker, the lock would switch over. once switchover is completed, a new list of markers is sent to the boat and it translates along them, out of the lock. That later system could perhaps be more generic and useful in other places as well? Oh yeah, of course, the system would have to switch the lock into proper position first, if you arrive at the side that's currently closed.
  9. Unfortunately, I don't think so. I set keyframed on my moving water planes and still get the steppy collision when swimming in it while it moves (if that's what you meant). Also, water planes have extremely funky collision with each other, or rather when intersecting with/overlapping each other. Btw, re the doors, I wrote a class (DoorController) that can be attached to MovableStatic versions of doors. There's also a GateController which coordinates two DoorControllers (for left and right halfes of the gate). It works based on normal and actuated angles, all user's go to do is call .Open() or .Close() and listen to Open/Close events. Let me know if you want to take a look at it. @DieFem: I was think I'll just make a remote control in the form of a (self-replenishing) Aid item or something suchlike. Or a version could maybe be built directly into the boat, as an extra button, not sure yet. But maybe some sort of guidance system would be nice, regarding the problem of the boat going through/under terrain/objects etc. There is a LockController which governs operation of the entire lock and knows operating state at all times - It could send suitable events to a guidance thingy. I think the supposed guidance thingy could, on activation, probably acquire the activating boat in front of either gate (by triggerbox) and translate it (or it's FloatingPlatformHelper) to some marker reference, request the lock to go into appropriate state (HighOpenLowClosed or LowOpenHighClosed) and then translate the boat further into the lock, etc. Haven't thought this out yet. Anyway, here's a fun fact - All the controllers (except for the individual DoorControllers, which are built into the doors) are literally wiring boxes in the game world: If you scrap them, the lock won't work anymore. I could have hidden them inside the walls or attached the scripts somewhere else, but I dig the fact that they are visible and that these boxes do in fact perform some task.
  10. Ah, I meant more like, how are they implemented. Didn't find a script for them and the ones in game sure do not have a script attached either, so I take it they are native objects. But... you're working on a driveable boat mod? Now that is just perfect! How could we integrate your boat with my functional water lock (WIP) in Ragoda's "Sluice of Heaven" settlement? Because I was thinking "how cool would it be if you could drive a boat through the water lock and switch the lock right from the boat by remote control?"
  11. Interesting proposition. If I had a trigger box/volume somewhere, could I somehow get all FloatingPlatformHelpers that are inside the volume? Wondering if this could be used to make boats inside the water lock (from the video linked above) float up when flooding the lock, etc. How do they even work? I looked at one of them briefly but couldnt make much sense of it. Are they some sort of native object, or are they scripted things as well? Google shows literally a single, somewhat useful hit at the nexus, when trying "FloatingPlatformHelper" as a search term.
  12. Hi, thanks for your reply. I got it to work. For future reference, one essential piece of information was missing: https://www.creationkit.com/index.php?title=SetMotionType_-_ObjectReference Programmer needs to SetMotionType(Motion_Keyframed) on the MovableStatics, or it won't work! Will look into the RotationHelperFree anyways. Thanks again :D NB: If using a MovableStatic, the collision box will move along, too. For example, https://www.youtube.com/watch?v=9k68AhAtcYQ you can walk or stand on the gates while they are moving and you won't fall off.
  13. So, it's getting weirder and weirder.... When I use exactly this on my MovableStatic: TranslateTo(-58816.000000, -11320.000000, 1408.000000, 0.000000, 0.000000, 178.854187, 0.0, 2.000000) Then it takes quite some time until the OnTranslationComplete Event is fired. As if the object would be moving.... However, the MovableStatic doesn't actually move one iota. Until just before the OnTranslationComplete event occurs, that is. The MovableStatic will then instantly rotate to the destination angle. So, instead of rotating smoothly, the MovableStatic just teleports between angles as if I had used Wait(sometime) and then SetAngle(blah). This is exactly the issue that was mentioned in https://forums.nexusmods.com/index.php?/topic/6564401-papyrus-local-rotation/?p=59298986 Except that I am indeed using a MovableStatic which I have created exactly as described above, by getting the NIF from a Static and putting it into a newly created MovableStatic. But I'm getting behaviour from TranslateTo() as if I had used it with a Static. WTF is going on here... Would I be better off writing a timer/setangle based solution perhaps? Altho I wanted to avoid that, and it completely and totally escapes me why in the f*** I should even have to mess about.
  14. Im doing this to slowly rotate a MovableStatic in place. So, only AngleZ is changing: TranslateTo(fPositionX, fPositionY, fPositionZ, fAngleX, fAngleY, fTargetAngleZOpen, RotationSpeed, RotationSpeed) It works (the MovableStatic rotates to the desired angle), but the rotation happens instantly. Even though I have set the afMaxRotationSpeed parameter to 0.2, so I would expect it to rotate with 0.2 degrees per second maximum angular velocity, as per https://www.creationkit.com/index.php?title=TranslateTo_-_ObjectReference. Why does this not work as expected?
  15. Meanwhile, I found this out: Transfer Settlements comes with an F4SE Plugin "Terminal+", and there's a script for it called "TerminalEx". It has some interesting functions: I will try fiddling with them some time. Most are somewhat obvious, but I wonder what valid asValueType strings there are. Couldn't find the source code and looking at the dll for strings didn't turn up anything useful. They're probably defined in the game anyways. Could it possibly be datatype names like Int, String, Bool etc? Does CDante still read here?
  16. I've come across this problem several times: All of a sudden, settlers cannot be assigned to anything anymore. They say "ok" or "got it", may even run up to the object that they were assigned to, but then don't actually assign. It's an extremely hideous bug: It won't always become immediately apparent (not until you actually try to assign a settler), it'll affect all of the settlers in the game and the only remedy that I know of is to reload an older save where the bug was not present, potentially resulting in hours and hours of lost progress. So my observations: 1) When I used some mod that made heavy use of timers by starting up a gazillion of them and having them all fire and restart in very rapid succession, I would repeatably and reliably get the bug. 2) The other day, I dun goofed in one of my own scripts, resulting in the script unintentionally and repeatedly restarting just one single timer, at an extremely short interval. And lo and behold, there was the bug again! So I strongly suspect the bug to be related to script timers. Has somebody perhaps made similar observations? On a side note, I have an idea for a background checker that would immediately alert the player of the presence of the bug. Basically, an utility settlement in some indoor cell that has a single settler and work object in it. A script would periodically (and based on certain events) try to assign the settler to the work object and wait for the assigned event from the workshop script. On timeout, show warning message to player.
  17. I'm looking at a mod where the navmesh is hanging mid-air (the landscape was edited), and I wonder: How to move/drop navmesh vertices to the ground? Also, is there a trick to outdoor navmeshing or is it just the veritable PITA it seems to be? Half the vertices/triangles are often covered by the landscape and can't even be selected, etc. For example, I tried to edit/fix the navmesh in Heritage area of the Commonwealth GECK mod, but large portions of the navmesh there are below ground and I can't select the triangles to mark them as preferred. EDIT: I think I found one answer: There's a button "drop vertices" in the navmesh toolbar. Still eludes me how to get em above ground if they're burried however.
  18. Aahh, var arrays, the stuff of nightmares :) I'm tempted to try it out.
  19. Yeah, it's pretty bleak, isn't it. I tried to hack my way out of the situation using a FormList in the post that ElPolloAzul linked, only to hit another wall behind the wall. Here's some hoping: Does anybody know if the 128 elements limit is enforced by the papyrus compiler, or is indeed an engine/VM limit? If the former, does caprica enforce it? But in the end, I guess EPA's idea of having what amounts to a linked list is probably the only remedy. Too bad there are no generics in papyrus, either! NB: As I understood, the limit only applies to arrays declared/elements added by script; Arrays returned by the game can and sometimes will have in excess of 128 entries. Also I think F4SE has some functions to create arrays of arbitrary size.
  20. Thanks for chiming in, the blue chicken :smile: I did come across the papyrus computer club mod and thought it to be intriguing. I shall have a closer look at it, I guess... So, a linked list of arrays... That might work... But for now, I rewrote my container tracker to just use an array. I think I will see if I can make it use F4SE's GetInventoryItems(), should F4SE be present. I guess it all comes down to how many stupid hoops one is prepared to jump through, to get the most trivial things done in this truly awful programming environment. Re strings, I'm a little surprised nobody wrote a string handling plugin for F4SE yet.
  21. Alright, thanks for the answer! I got the perk part to work. Next question is how to disable (or get rid of) the ENTER option? I want to keep the TRANSFER option and the container preview as well, so overriding or blocking default activation won't do no good.
  22. OK thanks for answering Pra, I will try this. Would be fine if it works on the player :)
×
×
  • Create New...