A Community discussion forum for Halo Custom Edition, Halo 2 Vista, Portal and Halo Machinima

Home  Search Register  Login Member ListRecent Posts
  
 
Viewing User Profile for: LaikaGlove
About Contact
Joined: May 20, 2019 05:49 PM
Last Post: Jun 10, 2019 08:11 AM
Last Visit: Jun 12, 2019 06:53 PM
Website:  
Location:
Occupation:
Interests:
Your Age:
What Games do you play:


Send Private Message
Post Statistics
LaikaGlove has contributed to 35 posts out of 469070 total posts (.01%) in 36 days (.97 posts per day).

20 Most recent posts:

The source code to read animations like this has been available for almost two years now right here:
https://github.com/HaloMods/HaloContentToolScripts/blob/master/Halo2/h2_anim_extractor_batch2_9.ms

If you think you can do better, then by all means go for it.
Edited by LaikaGlove on Jun 10, 2019 at 08:45 AM
Edited by LaikaGlove on Jun 10, 2019 at 08:45 AM


Quote: --- Original message by: Vaporeon
Quote: --- Original message by: LaikaGlove
Someone pointed out an issue where the obfuscator I used injected code to stop the app from working after the trial period.

This wasn't intentional and I wasn't aware the obfuscation did that, so I'll try and get a fix out later.


Thanks for the good laugh.

Dude, what is your deal?


First post updated with a new download, sorry about that people.


Someone pointed out an issue where the obfuscator I used injected code to stop the app from working after the trial period.

This wasn't intentional and I wasn't aware the obfuscation did that, so I'll try and get a fix out later.


Quote: --- Original message by: MosesofEgypt
Python 3 to be specific. If you're interested, here's my repositories.
https://bitbucket.org/Moses_of_Egypt/

MEK is the Moses Editing Kit, which contains my replacements for Guerilla and HEK+, a lovely wrapper for Tool, and a bunch of converters. Mozzarilla is the replacement Guerilla, Refinery is the replacement HEK+, Binilla is what most of Mozzarilla is built on, Supyr Struct is a binary structure handling library, and Reclaimer is my library for interfacing with all things Halo.

If anything, Reclaimer is probably what you'd be interested in browsing through. One of the things it contains is definitions for every tag structure(including most of the hidden fields and their purposes). If you're interested in talking with all of us in an active Discord server, here's ours:

https://discord.gg/D7APNj7


Tag Loading in Bonobo is already driven by code I generated from tag definitions extracted from the h1 and 2 HEK tools. That's how the tag viewer reads the tags for those games (ie. double click a tag in the treeview to view its contents).

Thanks though, I may take a look at your stuff later.


Quote: --- Original message by: MosesofEgypt

Quote: --- Original message by: LaikaGlove
Quote: --- Original message by: Bungie LLC
snip


For Halo 1 & 2 Bonobo has the tag definitions so you can view the collision tags. It's definitely possible to write something to extract straight to a halo 1 collision tag, but extracting straight to jms is a little trickier. I also don't have those tags mapped out for the later games so that would have to be done as well.

A couple of the hurdles for extracting straight to jms are:
- The vertex positions exist in the collision model, but they aren't oriented with the bones so I'd have to look into the math for translating those points to reorient them with the bones.
- The triangles are totally lost and only exist in the form of an edge tree, which I couldn't figure out how to reconstruct back in the day. There's likely an algorithm to do this that I wasn't aware of at the time though.



Took these from my collision converter, cleaned them up a bit, and made them a little more generic. You can use one for getting the edge loops to traverse the vertices to outline the collision surfaces, and you can use the other to turn those edge loops into triangles. Use them as you see fit.


- snip -



As for the rotations though, I can't provide anything so succinct, as mine relies on my Matrix module and classes, as well as a decent understanding on how to apply quaternion transforms.
Edited by MosesofEgypt on May 29, 2019 at 01:27 AM


Interesting, thanks!

I may take a crack at collision extraction eventually then, I have a decent foundation for doing the quaternion transforms since animation extraction kind of relies heavily on that.

What language is that btw?


Quote: --- Original message by: Bungie LLC
I've an unrelated question, but I figured I'd ask in this thread specifically, since my chances here are better than anywhere else.

What is known about model collision geometry from (at least) second and third generation Halo titles, and how feasible is it to get it into a usable state?

If there's even a shred of hope for collision geometry processing/extraction, I would unironically be willing to commission it's development.

As it stands, we currently have the ability to acquire both render models and animations from up to third-generation halo games. As I've already stated previously in this thread, the only missing piece required for a near-seamless content porting pipeline from newer halo games into custom edition is an application in the same vein as Adjutant or Bonobo that handles collision geometry.

I'm interested to hear your thoughts on this. If, for whatever reason, you'd like to get in touch with me directly, you can reach me on either Steam or Discord (Seraphim#4203).


For Halo 1 & 2 Bonobo has the tag definitions so you can view the collision tags. It's definitely possible to write something to extract straight to a halo 1 collision tag, but extracting straight to jms is a little trickier. I also don't have those tags mapped out for the later games so that would have to be done as well.

A couple of the hurdles for extracting straight to jms are:
- The vertex positions exist in the collision model, but they aren't oriented with the bones so I'd have to look into the math for translating those points to reorient them with the bones.
- The triangles are totally lost and only exist in the form of an edge tree, which I couldn't figure out how to reconstruct back in the day. There's likely an algorithm to do this that I wasn't aware of at the time though.


Quote: --- Original message by: Vaporeon
I didn't even read it to be honest, I wanted to see what the response would be.
Literally who cares about obfuscated Windows .NET crap these days? What's the point.

Hopefully my response was adequate then. I have no idea what you're trying to say with the second sentence though.

Quote: --- Original message by: BioGoji1989
Okay, this looks nice, but why is Halo 2 Vista excluded from the list of games this can extract animations from?

I didn't implement extraction for Halo 2 Vista because the maps are slightly different and I still need to figure out how I want to support tag versioning for Halo 2 onward. H2 Xbox has some changes to certain tag definitions from H2 Vista and all the later games support "versioning" of the tag definition blocks/structs.


Quote: --- Original message by: Kavawuvi

Quote: --- Original message by: DeadHamster
I'm all for the release of source code, by the creator of the content. Not by some salty little kid who's upset. So again. Were you going to be updating and maintaining this? Or did you just want to throw your little tantrum because somebody didn't release their source code right away?

He seems pretty happy to me.
Edited by Kavawuvi on May 23, 2019 at 01:21 PM

I'm happy I anticipated this and obfuscated the code. His "source" doesn't have any code in it and won't do anything. It's just class names and files with no method contents.

I'll release the source on my own time, please be patient. If the source is released early, maybe I'll have no reason to continue working on it.
Edited by LaikaGlove on May 23, 2019 at 01:24 PM


Quote: --- Original message by: Vaporeon
Oh never mind, I found the source!

yeah but not really though.


Quote: --- Original message by: epicplayer
Quote: --- Original message by: LaikaGlove

Those animations use dx,dy,dyaw frame info, which is the same as the turn-left and turn-right animations. The turn-left and turn-right animations seem fine and their frame info is calculated in the same exact way, not sure why it would work on some but not others. Tell me if you see any other animations that are like that.

EDIT: I just compared my extracted flood combat elite's "combat rifle surprise_back" animations from Bonobo and CtrlAltDestr0y's h2 animation importer maxscript and they're exactly the same. I'm still not convinced there's an issue with them.
Edited by LaikaGlove on May 22, 2019 at 08:27 PM


To be specific: I imported my H3 Elite flood model from a .AMF file using default parameters, and those turning animations definitely have something wrong with them. I'll try to post a video of it in a few hours.

I've already looked at them and I agree that they do look weird. However, I can't find any other animations with that same frame info that look off. Can you?


Quote: --- Original message by: DeadHamster
Quote: --- Original message by: LaikaGlove

The problem with that grip animation is that there's only a single frame, which isn't possible in 3ds max. The Animation_Source_Importer script is subtracting 1 from the frame count on line 329 when it sets the frame interval.



Moses has an updated animation importer (1.06) that has some more frame importing options. I'm sure he has it hosted somewhere but I mirrored it Here for anyone that needs it.

Laika Did you make any adjustments to the one you uploaded that are important?


Yeah, mine is a totally different script I wrote from scratch that imports from the source files (jma/jmm/jmo/etc.). The one you linked imports from a compiled tag.


Quote: --- Original message by: epicplayer
Quote: --- Original message by: LaikaGlove

There's no problem with the JMT animations from what I can see...


It's definitly broken on the "turn and attack" animations for the flood as an example.

Those animations use dx,dy,dyaw frame info, which is the same as the turn-left and turn-right animations. The turn-left and turn-right animations seem fine and their frame info is calculated in the same exact way, not sure why it would work on some but not others. Tell me if you see any other animations that are like that.

EDIT: I just compared my extracted flood combat elite's "combat rifle surprise_back" animations from Bonobo and CtrlAltDestr0y's h2 animation importer maxscript and they're exactly the same. I'm still not convinced there's an issue with them.
Edited by LaikaGlove on May 22, 2019 at 08:27 PM


Quote: --- Original message by: epicplayer

It seems like the .JMR animations can't be imported into Max, I get this error message:

-- Runtime error: animationRange cannot be set to a zero-length interval.

to be specific I'm importing the H3 Elite flood's "combat any grip" anim.

EDIT there also seems to be a problem with .JMT turning animations too, their root motion is messed up.
Edited by epicplayer on May 22, 2019 at 07:12 PM

The problem with that grip animation is that there's only a single frame, which isn't possible in 3ds max. The Animation_Source_Importer script is subtracting 1 from the frame count on line 329 when it sets the frame interval. If you remove that subtraction that particular animation should work, but all animations will have an extra frame at the end when you import (not sure if that matters though).

There's no problem with the JMT animations from what I can see...


Small update on implementing extraction for Halo Reach:

It looks like the raw animation data hasn't changed much in reach from what I can tell, so it looks like adding support should be fairly easy. The hardest (or most time consuming) part will likely be mapping out the changes to the animation tag definitions since it looks like there's been some major changes there.


Quote: --- Original message by: epicplayer
Quote: --- Original message by: LaikaGlove

If you export the sparrow model as jms and reimport it with nodes instead of bones, you don't see that issue happening.

This might be what's happening with the flood animations as well, however I'm not sure what the solution would be...

Edited by LaikaGlove on May 21, 2019 at 06:07 PM


I just exported a model as .jms from adjutant, but your jms import script isnt working when I try importing it to Max.

Once I select my jms model to be imported I get this error:
-- Unable to convert: Undefined to type: Integer


Like I told Alpu on the last page, Adjutant doesn't export jms correctly. I think it's mostly models with more than a single region that it screws up on. You're better off extracting to .amf, exporting from 3ds max with blitzkrieg/bluestreak, then using my script to import the resulting jms.

OR you could use the .amf importer Michelle fixed that Bungie LLC linked to in a post above if you're just trying to import with regular nodes instead of bones.


Quote: --- Original message by: Tachikoma
The node limit was updated to 63 with patch 1.10


Is that right? I don't see that in the patch notes...

I encountered the bug in sapien while testing Bonobo, but obviously that was never patched.

There's another bug where if you have an IK point like the left hand marker for a gun, the child nodes are ignored so they kind of move around independently from the IK point. It's most noticeable on elites since they have long fingers.
Edited by LaikaGlove on May 21, 2019 at 10:11 PM


So with people porting some content to CE, has anyone encountered the bug when you have a biped with > 40 bones?

This was always a major halo 1 engine limitation that I encountered back in the day and caused many headaches for me.


Quote: --- Original message by: DeadHamster
Trying to open any of the maps posted in the screenshot above. None of them respond, the windows remain blank and no filepath shows up in the title bar.

<a href="https://i.imgur.com/TEAavRZ.png" target="_blank">https://i.imgur.com/TEAavRZ.png</a>


I just went through each map and opened them all successfully (except campaign and shared), perhaps your map files are corrupt?

In other news I've isolated the ODST issue, I'll publish a fix in the first post shortly after I do a bit more testing.

EDIT: Alright new download link posted in first post.
Edited by LaikaGlove on May 21, 2019 at 07:26 PM


Quote: --- Original message by: DeadHamster

On further inspection for ODST I can extract some but not all. Jackal Hunter Marine are no good, Ghost Phantom Olifaunt Wraith and Banshee are fine, mongoose is not. Shotgun is fine, Needler is not. Always the "same" error.


For Halo 3 it just doesn't open the map or display anything.

https://i.imgur.com/9Irhlf0.png
Edited by DeadHamster on May 21, 2019 at 06:42 PM


I'm looking into the issue with ODST right now, for Halo 3 are you trying to open campaign.map or shared.map directly or is it a regular map? If so which one?

If you're trying to open campaign or shared directly then you're going to have a bad time because there's no tag index for those, they're just resource cache's.
Edited by LaikaGlove on May 21, 2019 at 06:57 PM


Time: Mon June 24, 2019 6:07 AM 359 ms.
A Halo Maps Website