Jump to content
  • 0

OBND - Object Bounds from Real Roads


azzendix

Question

3 answers to this question

Recommended Posts

  • 0

I assume that you are looking to port Real Roads in SSE standards, correct (judging from Form 44 I am seeing in the header...)?

 

If that is the case then there is more needed in that picture than just forward the OBND from Update.esm...

 

If you notice in the 2nd "Alternate Texture" record (RoadChunkL02:2) in Update.esm a new snow texture is being used. This is part of the new snow textures/shaders introduced in SSE.

This new texture (LandscapeSnow01Landscape) needs to be assigned to the corresponding "Alternate Texture" of Real Roads (RoadChunkL02:2) and replace the original one.

You must do this to all static records that this new texture layer is introduced by Update.esm.

 

Furthermore, and in order to answer your initial question...yes, the OBND from Update.esm needs to be forwarded. This is essentially the same thing as active-loading Real Rods.esp in the new CK and perform a "Recalc Bounds" for all statics introduced by this mod. Then save your plugin and you are good to go.

 

Oh, and do not forget to optimize and convert the meshes with NIF Optimizer 2.5.

I have long ago ported Real Roads for my personal use and used this procedure I narrated above. Everything works fine. No issues whatsoever.

 

Hope this helps!  ::):

Link to comment
Share on other sites

  • 0

@Astakos

Your answer is perfect! Thank you very much. 

 

---

 

I think this is a good opportunity to learn about xEdit scripting. Here is my script so far.

If someone found this thread later, you can use this script in xEdit to replace old snow shader for Real Roads.esp.

{	
	Change old snow shader(LandscapeSnow01) to new snow shader from SSE(LandscapeSnow01Landscape) 	
}

unit userscript;

function Process(e: IInterface): integer;
  begin
	if GetElementEditValues(e, 'Model\MODS\[1]\New Texture') = 'LandscapeSnow01 [TXST:00000891]' then
	SetElementEditValues(e, 'Model\MODS\[1]\New Texture', 'LandscapeSnow01Landscape [TXST:01002CA0]');
  end;
end.

It works but I think it is not good enough. I have an idea to use loop-for to run process through all indexed path but I don't know how to get size of indexed path. Any idea?

Example pseudo code:

for i:=0 to {max index} do
begin
if GetElementEditValues(e, 'Model\MODS\[i]\New Texture') = 'LandscapeSnow01 [TXST:00000891]' then
SetElementEditValues(e, 'Model\MODS\[i]\New Texture', 'LandscapeSnow01Landscape [TXST:01002CA0]');
end;
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.