Jump to content

Imperial Manor Seeks Modeler


wizardmirth

Recommended Posts

It is possible to make the mod compatible with Weather - All Natural also without having to use it as a master. So that there would only be one version that supports both vanilla game and All Natural, depending on whether All Natural Base.esm is loaded. With rain outside windows, too. :P

 

Took me a while to figure it out when making a mod of mine, but it was definitely worth the additional work. Supporting two versions would have been way too much for me. Making mods is supposed to be fun, after all, not frustrating. If you need help with including AN support, I could try to do it for you.

 

The way I did it was using OBSE to detect if All Natural Base.esm is loaded and then modify the interior cells accordingly, as well as enable/disable rain boxes outside windows depending on the current weather. Perhaps it would not even be necessary to include the rain box resources in your mod, if Weather - All Natural already supplies them, which it does. But I need to find them first to get their paths.

Edited by PhilippePetain
Link to comment
Share on other sites

  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

An ounce of prevention is worth a ton of cure.

Work clean and only change things you need to.

Do you actually need a version that is dependent on any other mods or can you duplicate whatever of it's resources and release it?

 

For example I was going to use esp mastering from OCO2 for Nagasteim but found I could copy meshes and textures to it's own folders for the Nagasteim Altmeri, Ayleid and Chelorkynd races then get rid of the dependance.

 

The steps I gave you are a wholesale purge and you need to check carefully for whatever valid things may have been deleted.

Link to comment
Share on other sites

I just realized that AN uses a lot of outside resources but also expands and improves on some of them. I was just looking to improve my standard mod with a large "quick-fix" that gets several things at once done and I guess AN was it. Looking again I can see that I can use those resources independently and only keep one version, though I might have to ask for permission to repack some of their extended content in my mod. I will probably work towards doing something like this and welcome anyone with the expertise who would like to help me.

 

But is it possible to support any weather from vanilla to modded, rather than to simply default to some catch-all weather preset? Can this also be done with day & night sky re-textures like new stars at night?

 

As for the rain boxes, is it possible to create a masking mesh that blocks whatever rain is being used? Other then that, I don't see any other way around not using rain boxes. Whenever making any custom house that uses transparent windows, you have to place the rain boxes outside the windows yourself. As far as I know AN does not have any way of automatically placing them for you if your are creating a new mod based on its esm.

 

So my main questions right now are:

 

1. Can we accommodate any and all weather and skies?

2. Is there any way to avoid using rain boxes but still keep it from raining on the inside of the building?

 

Thanks for any help you guys are willing to give. I will accept even any small amount of work or advice and will happily credit you on the next update!

 

Edit: If I can help out in return in any way as well let me know.

Edited by wizardmirth
Link to comment
Share on other sites

1. Yes, that can easily be done if All Natural is also installed
2. No

If you use a custom house model, with vanilla window textures AND holes in the wall behind the window (so that if there were no window, there would be a hole in the wall, NOT wall behind the window), it is easy to have it support Weather - All Natural. But to easily achieve weather features, they can only be active if All Natural is installed. But that can be done without having any All Natural files as a master, thanks to OBSE. It offers commands to modify a cell's behaviour and climate-related things, as well as detect if a plugin is loaded.

So if you use a custom mesh for the house, it woul need to be possible to have both transparent (with no wall behind them) and non-transparent windows. The transparent version would be used with All Natural features enabled (All Natural is loaded) and the non-transparent one without All Natural, like with 'vanilla' interiors. The rain box resources can either be included in your mod, or the ones that come with All Natural can be used, as the rain box feature would only be used when All Natural support is enabled (All Natural is loaded, and so the resources are present) and thus sky can be seen from inside (with transparent windows version of the house mesh).

Maybe it could be enough if the windows just used 'vanilla' textures, as All Natural says it comes with transparent versions of the original window textures. Just the holes in the walls behind windows would be handy. My castle project uses mr_siika's Castle Seaview meshes, and some windows have wall behind them, so it is not possible to make all windows transparent to support All Natural. At least not with my nonexistent skills with making models and such. :sad:

I am really bad at explaning things. But I hope that makes at least a little sense. When the new version is ready, I can see if I could make a version of it that supports both normal game and All Natural. If you do not manage to make one yourself, that is. Not that I would be especially good at this, either.

 

Edit: Took a look at Nagasteim and removed the unnecessary ramble from this post. Glowplug, your Apocrypha looks incredible in the screenshots. Now I definitely need to try the mod. Aww. But where do I find the time with all my projects. I need to finish them before I can play the game properly. :tongue:

Edited by PhilippePetain
Link to comment
Share on other sites

Is it possible to detect multiple weather mods and then have that mod's 'overcast only' (light or heavy) preset follow each of them. So if it's raining light or heavy outside, there will only be light or heavy overcast cloud versions to match them (so it's not actually raining inside). Then light or heavy rain boxes are enabled outside the windows to simulate outside only rain.

 

All I need are the transparent windows and then to detect what weather type is currently going on outside the cell. This should go for vanilla weather as well.

 

Can someone provide an example script that detects for both AN and vanilla weather, and then sets the cell to that version's 'overcast only' (light or heavy) weather and enables either light or heavy rain boxes depending on the current type outside?

Link to comment
Share on other sites

I do not know how it would be possible to determine heavy or light rain, but OBSE offers a command to get the precipitation type for the current weather, to help determine if it is raining. In the unlikely case you have not yet noticed it. I myself just use light rain boxes, check if it is raining, enable them if it is and hope no one with too much eye for detail happens to use the mod.

 

The GetCurrentWeatherID and then GetWeatherClassification commands should help determine whether it is raining. The OBSE command documentation says type 3 is rain and 4 snowing, but when it was raining, it reported the type as 4 to me. Perhaps it was just All Natural. But in case you also run into it, see which one the type is when it rains.

 

The thing I came up with just used All Natural to achieve the different weathers and such, but I suppose with all the OBSE commands, it might be possible to just copy certain aspects of the outside weather to inside weather. But I am not sure. There do not seem to be that many commands available.

 

Lazy me just used AN to get it working by checking if All Natural Base.esm was loaded and then either make the cell behave as exterior or not and set climate to the one AN uses for interiors with windows (or to the one meant for closed interiors for interios without windows). The way I did it, with All Natural, was something like

ref rTemp
...
    If ( IsModLoaded "All Natural Base.esm" )
        SetCellBehavesAsExterior SomeCell 1
        let rTemp := GetFromFromMod "either AN base or the esp" "form id of the AN interior climate"
        SetCellClimate SomeCell rTemp
    Else
        SetCellBehavesAsExterior SomeCell 0
    EndIf

And maybe the rain could work like

ref rTemp
int iTemp
...
    let rTemp := GetCurrentWeatherID
    let iTemp := GetWeatherClassification rTemp
    If ( iTemp == 3 ) && ( RainBoxEnableParent.GetDisabled )
        RainBoxEnableParent.Enable
    ElseIf ( iTemp != 3 ) && ( RainBoxEnableParent.GetDisabled == 0 )
        RainBoxEnableParent.Disable
    EndIf

Something that would probably help determine if it is raining. It might also be worth checking what weather GetCurrentWeatherID returns when called in an interior cell, as I do not remember exactly how I managed to get the current exterior weather anymore. Maybe it was just luck and AN did it for me somehow. :sad:

 

I am not an expert when it comes to weathers (if someone has not yet noticed the obvious from my brainless rambling), so I do not know how it might be possible to try to get the overcast things. Maybe copying sky textures from outside weather somehow if there are any commands to do it. Or use some weather lighting or HDR values to determine it somehow? Maybe? I have no idea. Can the difference be gotten from anywhere else other than sky textures? Or some light values? Or fog?

Edited by PhilippePetain
Link to comment
Share on other sites

  • 2 weeks later...

I'm not ready to do this yet but have saved the info for future reference. Right now my focus is to get the quest finished and have a question: any problem with using leveled lists to spawn 'no low-level processing' unchecked NPCs? The CS warns against it, but I'm trying to "shortcut" a few different features I am trying to implement here.

 

My only snag now is trying to get the (4) NPC staff to check the bodies, loot, and remove - from the NPC bandits when dead and via script and unplayable token (staff Ai package "finds" token - to loot and disable bodies via script on activate). The main problem right now is that they won't check the bodies but just walk around them. Can this have anything to do with the fact that the bandits were spawned from a LL but have no low-level processing turned off?

Link to comment
Share on other sites

Umm... unchecked? It would be handy to know why, exactly, you want to do that. I suppose it should not be too great an issue as long as they will die and get deleted by the game. It is just that more NPCs with the 'no low-level processing' flag causes more... well... work for the game when it needs to update more AI. But a few NPCs should not hurt. In a modded game, there are usually already a massive amount of NPCs with the box unchecked. I use the CSE, and I think the editor does not even let me add actors with the box unchecked to a LL. So I have never done it.

 

You could use a 'use item at' package, maybe? With a bandit as the target (the base record, in the 'any object' frame in target tab, as I think specific reference targets would need to be persistent). Could that work? I have been making a follower system mod these past few weeks, and I made the feature to command a follower to do something work a bit like this with a 'use item at':

 

  • A persistent reference activator with a fancy script on it
  • AI package with 'use item at' target set to the activator and 'must complete'
  • Move the activator to the command target
  • AddScriptPackage on the follower, so that it will use the activator
  • An OnActivate block on the activator either loots, activates, unlocks or pickpockets the target
  • Move the activator elsewhere and have the follower return to its normal state

So if you do not manage to make them activate the bandits with a 'use item at' package or similar, maybe something like that could work? It might take a bit more work, though. But it also works on non-persistent references, as the SetPackageLocation (or something like it) commands of OBSE do not accept non-persistent references as AI package locations. But there would need to be a script that moves the activator and sets its target.

 

Also, if you disable an NPC, it still remains in the world and maybe also in savegame. To get rid of one, it needs to be deleted by the game. If you have multiple rooms in the museum, you could try, instead of disabling them, move them to another interior cell in your mod, one that player will visit and then use ResetInterior (or something like it) on that interior cell, so that when player next time visits it, the game will delete the 'dynamically' sort of created bandits. Or at least this seems to be a workaround I have run into when trying to figure out how it would be possible to try to spawn NPCs using PlaceAtMe and a LL without causing massive amounts of bloating. Also, before the bandits get moved to cell, select one of them in the console (so that form ID is visible) and see if it disappears when you have entered the interior where the bandits were moved and that was reset. If the bandits are deleted, the form ID should also not work anymore.

 

Hopefully that helps a little. :)

Edited by PhilippePetain
Link to comment
Share on other sites

I had to go back and do extensive clean-saved testing from scratch just to be sure, but I think I'm fairly certain now: LL persistent refs cannot spawn "no low-level process" actors when player is not in the same cell or area, and even if they somehow appear haphazard they don't seem to be considered persistent or as reliable in moving between packages. That was the whole point of me trying to do that, to get randomized actors for each play-through, but without the lack of higher processing for packages. This is because

this wave of bandits are advancing on the manor from three different outside locations rather than just spawn at the doorstep.

 

 

So what I've started to do is to remove the randomized lists and hand-place direct actors in their place. This eliminates the randomized results but gives me actors that will now act independent of the player's location, which is more important here. It would be nice to be able to do both though.

 

In other news, I got the "loot and disable" to finally work though that might not have anything to do with whether or not actors were once spawned from a list or not but from further other tweaking in general. I like the 'reset interior' idea but won't the cell(s) still automatically "delete" any dead actors whenever the player's game is set to normally reset cells? By default in three days from the last reset? Or are you saying that this 'delete' must be a scripted event?

Link to comment
Share on other sites

Oh. No. The automatic thing works just fine. It is just that the respawn counter resets when player enters that cell again. So that if player continuously enters it a little before the 'reset time' has passed, the cell will just keep resetting the counter and never have a chance to reset itself. Also some people might have changed the game setting to more than three days, in which case what I described is more likely to happen. If your manor is a player home, player will probably visit it more often, too. So I thought getting rid of the bandits the 'interior' way would probably be easier and more efficient, as it happens immediately.

 

But yes, not everyone visits that place often enough, so the normal reset thing should also work. I just have thought about using PlaceAtMe in a mod of mine, and that is why I want to make sure the placed people get deleted somehow and not hang around in the savegame.

 

How would adding just one package work with bandits? 'Travel to' with the manor as the target. Also, did you use PlaceAtMe or just a spawn point? The spawn points seem to act oddly or are hard to control, it seems. But PlaceAtMe might be dangerous without proper precautions. Hmm. Spawning attacking people has been a challenge for me, too. Still is. :P

 

Edit: And would you by any chance happen to know how to make NPCs use furniture? The non-persistent ones. Like just one random piece of furniture, a chair, for example, and sit on it. I would like to have followers sit when player sits, but I have only managed to make them 'activate' (like as if they were trying to pick up) chairs and benches. It would be nice to have them sit on them. Have you done anything like it in your mod? I am a extremely bad at making AI packages.

Edited by PhilippePetain
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...