Jump to content

SceneNavi - A simple Ocarina of Time level editor


xdaniel
 Share

Recommended Posts

The upcoming Beta 3 so far:

  • Support for ROMs with z64tables hack
  • ROM loader error handling changed; now allows access to exception details for reporting
  • Human-readable actor names now read from ActorNames.xml instead of individual actor definitions
  • XML data files rearranged; removed AddressTranslations.xml and address translator class, added more versatile hashtable reader class, also used by actor names

...and, super new and super WIP...

  • Preliminary collision parsing and rendering; editing of collision polygons (polygon type ID only?), polygon types and waterboxes is planned

Posted Image
 

  • Like 3
Link to comment
Share on other sites

More collision WIP:

 

Posted Image

 

Collision polygons are now mouse-selectable like actors, although that'll still need some fine-tuning. It's also reading the polygon type definitions now, at least in raw form, meaning just the pure 32-bit integer without breaking that down into terrain type, special effects, exit trigger, what have you - that'll come later in some way.

 

That said, for those who used it, how did you think about SharpOcarina's polygon type editor? What was good about it, what was bad? How do you think the GUI for editing polygon type definitions should work?

 

And another question, how should the collision model be rendered? Should everything be translucent white like in the screenshot, or should all polygons that use a certain polygon type have the same color? Maybe based on the polygon type's ground type (dirt, sand, stone, etc)?

 

  • Like 1
Link to comment
Share on other sites

Well, Sharp Ocarina polygon type editor is fine. I think the ability to work directly with the hex string was great - even if I know most people wouldn't agree.

My ideas for improvement would be to add a few more predefined options for the terrain types like Sliding/Ice, Bottomless Pit and Climbdown Ladder. Maybe adding the option to assign a name to your polygon types instead of having to memorize the index number.

 

About the collision view, I vote for the second option: Each polygon type using a different color. I think the colors doesn't need to obey any scheme - if it's not too hard to implement, you could let the user assign the color they prefer from a color dialog box.

Link to comment
Share on other sites

While SharpOcarina's polygon type editor was nice, it would be useful to add some text at least to the ground type box, like 0 - Earth/dirt, 1 - Sand, 2 - Stone instead of numbers only.

I agree with Strati that more predefined options would be nice, but I recommend to keep the option to work with the raw data too (I found it great too), as it can be useful.

 

As for the collision view, an option to toggle between white and (possibly user-assigned) colors would be nice.

Link to comment
Share on other sites

This is looking great. Finally something to replace that unholy abomination that is UoT.

 

That being said...any chance of supporting individual room files?

 

Also, I think it'd be nice to have an option to show actor rotations in hexadecimal. They're a lot easier to manipulate in that form. For example, in decimal, 135 degrees is 24576. In hexadecimal, it's 0x6000. Much easier to remember.  Actually, come to think of it, display in degrees might not be a terrible idea either, though that might be harder.

  • Like 1
Link to comment
Share on other sites

Hm, not sure about having user-definable descriptions or colors, but more presets I can add, as well as descriptions for ex. the ground type options. Speaking of which: I added some alternative collision highlighting, which colors polygons according to their polygon type's ground type. I tried to make it somewhat... sensical and representative of the floor - ex. sand being a sandy brown, stone being a kind of gray, etc. - but maybe I could make those colors external, ex. loaded from another XML file, so that users could at least select which color which ground type should be. Gah, hope that explanation makes sense, it's past 4 AM here, I was out grilling and drinking a bit with friends in the evening... I'm tired :P

 

Now... individual room files I'm not sure about either. A lot of data gets loaded from the ROM, and recoding it to load an external file and not rely on information from ROM is probably a lot of work. I'll think about it, tho. As for actor rotation, making that hexadecimal might be a good idea; just tried it and it does seem easier to work with (0x4000 = 90 degrees, 0x8000 = 180, etc). Thinking I'll change it, anyone any other opinions/ideas to consider about this, tho?

 

Anything I might've forgotten to address, I'll do so later... meaning during daytime, should get to bed soon-ish.

 

Also...

 

A snapshot of work, so to speak, by this point from half an hour ago. Kinda wondering if anyone would be interested in seeing me code, like streaming my desktop or so, too?

 

Posted Image

 

 

Link to comment
Share on other sites

I like the collision highlighting idea representing the color of what it would (presumably) ordinarily be (in this way we can fix 121 so it doesn't sound like wet mud where ever we step, haha.

 

I think the idea of seeing you code seems like it would be fun and inspiring in some ways. Just Shout when you're getting read to code.

Link to comment
Share on other sites

Simplified the XML files some more, object names are version-independant now and naming works based on their number instead of their file's start address. Makes maintenance much easier.

 

Also, I might be streaming me coding later, around 7 or 8 PM CEST, or in about 4 hours. I'll edit this, as well as shout if and when I'll do - the URL is http://www.justin.tv/xdanieldzd. I might also stream whatever music I'll listen to, just as a warning of sorts :P

 

Link to comment
Share on other sites

Stream is live but not yet really rolling, give me another ~20 minutes or so until after dinner :P

 

Again, http://www.justin.tv/xdanieldzd

 

Alright, stream over for now! It should've been saved, so if anyone wants to have a look (or watch the whole 2 hours :P), check out the channel page or whatever it's called on justin.tv.

 

Another quick edit, the track list (not in order of playback, that was shuffled):

 

 

    [*]Yuka Iguchi - Grow Slowly

    [*]ChouCho - Yasashisa no Riyuu

    [*]Saori Kodama - Mikansei Stride

    [*]Konomi Suzuki - DAYS of DASH

    [*]Asuka Ookura - Prime number ~Kimi to Deaeru Hi~

    [*]Hitagi Senjougahara (CV: Chiwa Saito) - Futakotome

    [*]Nagi Yanagi - Yuki Toki

    [*]Saori Hayami, Nao Touyama - Hello Alone

    [*]Ryoko Shintani - Wonderful World

    [*]supercell - Kimi no Shira nai Monogatari

    [*]yana - Fall In The Dark

    [*]Kana Akutsu, Hiroomi Igarashi, Maika Takai - Boku no Kimi e no Kakushikoto

    [*]Kalafina - Magia

    [*]ELISA - Real Force

    [*]Minami Kuribayashi - ZERO!!

 

Edited by xdaniel
Link to comment
Share on other sites

...oh, right, I should probably also say what I actually worked on?

  • Collision polygons can be assigned polygon type IDs
  • Polygon types can be edited via their raw data, as well as separate controls for certain properties (ground type so far)
  • Changes to collision polygons and polygon types are saved

Posted Image

 

EDIT: Timelapse of the livestream:

 

 

 

Edited by xdaniel
  • Like 1
Link to comment
Share on other sites

I cannot thank you enough for the live stream, it was really interesting, even if I know nothing about programing.

I found you were really fast in adding these features!

 

I don't know if you saw my shout yesterday, but I recognized MAGIA; I really love this song, you have great taste I must say.

 

Will you release a test version with the collision features soon?

If SceneNavi could edit custom maps, it could now solve my problem as it is (addressed in "What programs are you in need of").

 

Thank you for reading!

Link to comment
Share on other sites

I saw your shout half an hour or so late, after you'd already gone, so I guess you didn't see my reply. Although I had just confirmed that, yeah, Magia was one of the songs played, anyway :)

 

There's still more stuff to add, fix and/or make sure works correctly before the next version, but I'll hopefully get one out by the weekend or so.

 

Oh, and it does support custom maps, there's been a screenshot or two of the SharpOcarina demo scene in SceneNavi in this thread before :P

Edited by xdaniel
Link to comment
Share on other sites

Oh, totally forgot about this!

Yes, it works great, althought textures are very buggy in my custom maps in SceneNavi. I'm using version v10 beta 2, by the way.

 

I thought it was a bug that only the first path was being rendered, but I just found out that you have to select a path for it to be rendered. Wouldn't it be better to have all paths being shown by default? Althought it is only my personal preference, so don't worry to much about it.

 

Thank you for reading!

Link to comment
Share on other sites

By the way, about collision types, while I was testing with implementing exits in my maps I think I have found some data in the format that was still undocumented and could be a nice addition to the polygon definitions.

 

I'll be sending you a PM with details, xdaniel.

Link to comment
Share on other sites

The error handling in Beta 3's ROM loader will be able to give you more details about an exception, which in turn you can post here for me to see where exactly the error occured. That said, it does work for sure with unaltered 1) MQ Debug and 2) decompressed OoT ROMs - if it doesn't do so for you, it's probably a, in some way, "bad" ROM. It does not work with compressed OoT ROMs or Majora's Mask.

 

Also nice to hear that it works on Mono, although I cannot guarantee that it'll work 100% perfectly.

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.