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

Home  Search Register  Login Member ListRecent Posts
  
 
»Forums Index »Halo Custom Edition (Bungie/Gearbox) »Halo CE General Discussion »[Utility] Bonobo - Halo 2/3/ODST Animation Extraction

Page 3 of 5 Go to page: · 1 · 2 · [3] · 4 · 5 · Prev · Next
Author Topic: [Utility] Bonobo - Halo 2/3/ODST Animation Extraction (141 messages, Page 3 of 5)
Moderators: Dennis

LaikaGlove
Joined: May 20, 2019


Posted: May 22, 2019 09:24 PM    Msg. 71 of 141       
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.


epicplayer
Joined: May 21, 2019


Posted: May 23, 2019 04:45 AM    Msg. 72 of 141       
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.


LaikaGlove
Joined: May 20, 2019


Posted: May 23, 2019 06:55 AM    Msg. 73 of 141       
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?


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 23, 2019 10:46 AM    Msg. 74 of 141       
-snip- Hamster is really dropping the ball in this thread. Twice now I've replied something stupid.
Edited by DeadHamster on May 23, 2019 at 10:47 AM


Vaporeon
Joined: Aug 24, 2015

Vap~


Posted: May 23, 2019 01:04 PM    Msg. 75 of 141       
Oh never mind, I found the source!


LaikaGlove
Joined: May 20, 2019


Posted: May 23, 2019 01:12 PM    Msg. 76 of 141       
Quote: --- Original message by: Vaporeon
Oh never mind, I found the source!

yeah but not really though.


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 23, 2019 01:15 PM    Msg. 77 of 141       
Quote: --- Original message by: Vaporeon
Oh never mind, I found the source!


Cool. Were you going to maintain and update it? Because if not you probably just pissed off the guy that was.

What is the source code going to give you? The ability to incorporate it into another program or to add future titles like Halo Reach (ps he's already doing that). The program already works, it extracts animations. We already knew how to open the mapfiles and read the tags. That's not some secret knowledge. So what is gained from this is the information into how the animations work. Which is great information because now we can.....make an animation extractor. Oh wait, that's what this already is.

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?



Edit PS if that's the same copy I was looking at yesterday it's already outdated and parts are obfuscated. So gg, twat
Edited by DeadHamster on May 23, 2019 at 01:17 PM


Kavawuvi
Joined: May 24, 2018

Brrrrrrring Ha!


Posted: May 23, 2019 01:20 PM    Msg. 78 of 141       
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


LaikaGlove
Joined: May 20, 2019


Posted: May 23, 2019 01:23 PM    Msg. 79 of 141       
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


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 23, 2019 01:27 PM    Msg. 80 of 141       
Quote: --- Original message by: Kavawuvi
He seems pretty happy to me.
Edited by Kavawuvi on May 23, 2019 at 01:21 PM


He just released a User Interface with no code and didn't realize it. So maybe you're right, they do say ignorance is bliss.


BioGoji1989
Joined: Dec 24, 2017

Professional Idiot


Posted: May 23, 2019 01:33 PM    Msg. 81 of 141       
Okay, this looks nice, but why is Halo 2 Vista excluded from the list of games this can extract animations from?


Vaporeon
Joined: Aug 24, 2015

Vap~


Posted: May 23, 2019 01:39 PM    Msg. 82 of 141       
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.


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 23, 2019 01:46 PM    Msg. 83 of 141       
I think it's stupid that it's obfuscated and that it wasn't just released from the start. I made that pretty clear earlier on. But if he says he's going to then, again, we just gotta appreciate it and wait. We by all means shouldn't even have this, it literally came out of nowhere. If he came out and said "Nah the source isn't gonna get released", then yeah all bets are off screw that. But he says he wants to fix it first, he's already released like 4-5 updates and is talking about more. Let it get fixed so we don't have 6 different versions floating around.

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?


What animation is in Halo 2 Vista that isn't in Halo 2 Xbox?
Edited by DeadHamster on May 23, 2019 at 01:47 PM


BioGoji1989
Joined: Dec 24, 2017

Professional Idiot


Posted: May 23, 2019 01:52 PM    Msg. 84 of 141       
Quote: --- Original message by: DeadHamster

I think it's stupid that it's obfuscated and that it wasn't just released from the start. I made that pretty clear earlier on. But if he says he's going to then, again, we just gotta appreciate it and wait. We by all means shouldn't even have this, it literally came out of nowhere. If he came out and said "Nah the source isn't gonna get released", then yeah all bets are off screw that. But he says he wants to fix it first, he's already released like 4-5 updates and is talking about more. Let it get fixed so we don't have 6 different versions floating around.

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?


What animation is in Halo 2 Vista that isn't in Halo 2 Xbox?
Edited by DeadHamster on May 23, 2019 at 01:47 PM


Actually, it's that I have Halo 2 Vista installed on my PC (with Project Cartographer), and so I have the .map files right here on my computer, since going to Galaxy Verge just gives my Virus warnings constantly. So, really, it's a matter of convenience, not specific animations.


LaikaGlove
Joined: May 20, 2019


Posted: May 23, 2019 02:55 PM    Msg. 85 of 141       
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.


OKEY
Joined: May 23, 2019


Posted: May 23, 2019 07:13 PM    Msg. 86 of 141       
Lit


R93_Sniper
Joined: Feb 13, 2011

When in Doubt, RUN!


Posted: May 23, 2019 09:58 PM    Msg. 87 of 141       
Any plans for Reach or 4 support? Assasination animations are lit and i'd love that


OKEY
Joined: May 23, 2019


Posted: May 24, 2019 02:09 AM    Msg. 88 of 141       
Quote: --- Original message by: LaikaGlove
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....


Ye he plans to
Edited by OKEY on May 24, 2019 at 02:10 AM
Edited by OKEY on May 24, 2019 at 02:11 AM


Masters1337
Joined: Mar 5, 2006

halonaminator's unfortunate idol


Posted: May 24, 2019 02:45 AM    Msg. 89 of 141       
Relax about the source code guys. LaikaGlove and I have each others cell phone numbers, so if he ever disappears you have me to annoy him about the source code. It's not like he will one day disappear and be unreachable.


BioGoji1989
Joined: Dec 24, 2017

Professional Idiot


Posted: May 24, 2019 06:29 AM    Msg. 90 of 141       
Quote: --- Original message by: LaikaGlove

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.


Ah. I was unaware of that.


Spartan314
Joined: Aug 21, 2010

Former biped rigger & FP animator


Posted: May 24, 2019 06:31 AM    Msg. 91 of 141       
Quote: --- Original message by: Vaporeon
I didn't even read it to be honest, I wanted to see what the response would be.

You're welcome for letting you use us for your high school psychology experiment.


epicplayer
Joined: May 21, 2019


Posted: May 25, 2019 02:15 PM    Msg. 92 of 141       
Quote: --- Original message by: LaikaGlove

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?


Here's 2 videos showing some messed up root motion for turning anims:

https://www.youtube.com/watch?v=iSVYyF0rTNg
https://www.youtube.com/watch?v=QW9KVaTKs84


Bungie LLC
Joined: Dec 29, 2013

friendly neighborhood contrarian funposter


Posted: May 27, 2019 04:21 PM    Msg. 93 of 141       
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).


LaikaGlove
Joined: May 20, 2019


Posted: May 27, 2019 07:04 PM    Msg. 94 of 141       
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.


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 27, 2019 07:38 PM    Msg. 95 of 141       
Moses wrote a python script to convert Collision Tags to Gbx Model tags

Source is here, Python. Makes use of his reclaimer library.

So if someone wrote up an exporter to a tag format, that gets it ingame. And if it needs to be exported to 3DS max, there's already way to do that too.


SgtFlex
Joined: May 28, 2019


Posted: May 28, 2019 03:32 AM    Msg. 96 of 141       
I don't know if this is the right place to post, but...

Is there a guide to getting started on this sort of thing? I know it's a dumb question, but I've spent most of my night figuring out what a .map file is, how to use adjutant, and how to use Bonobo, and how to use 3DSMax. To give some context, I'm trying to get the sentinel model and animations for use as an NPC in Gmod.

There's probably something i'm just skipping over completely at this point. Trying to learn all this stuff is burning me out...

I've gotten to the point where I managed to get the sentinel model and it's bitmaps into 3DSMax, but I don't know what to do past there. This is the brick wall I hit, and I assume it's because I did something wrong since all the nodes are missing, and I don't know what to do. Any help is appreciated. I'd love to learn the process of going about this to do more NPC's especially.

https://i.imgur.com/PDlUKA7.png

I can click yes, but I don't think anything happens.
Edited by SgtFlex on May 28, 2019 at 03:34 AM


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 28, 2019 05:05 AM    Msg. 97 of 141       
Tutorial

That gets the animations into 3DS max. Getting them into Gmod is your job, or the job of a different forum. Doubt anyone here will know more than what's in the video above.


Edit: Just to clarify after I re-read this; I don't know anything about Gmod nor do I imagine others here knowing anything about it. If you have questions about how the import/export process works with Bonobo/Adjutant, Ask away! Happy to help with anything related to Halo Modding. But you shouldn't expect anyone here to know how to get the Raw Data from 3DS max into Gmod. Wrong forum for that part.



Edited by DeadHamster on May 28, 2019 at 07:45 AM


epicplayer
Joined: May 21, 2019


Posted: May 28, 2019 07:49 AM    Msg. 98 of 141       
Quote: --- Original message by: DeadHamster

I don't know anything about Gmod nor do I imagine others here knowing anything about it.

Edited by DeadHamster on May 28, 2019 at 07:45 AM


Funnily enough, I used these tools to port Halo stuff to Gmod in the first place lol.


SgtFlex
Joined: May 28, 2019


Posted: May 28, 2019 11:19 AM    Msg. 99 of 141       
Quote: --- Original message by: DeadHamster

Tutorial

That gets the animations into 3DS max. Getting them into Gmod is your job, or the job of a different forum. Doubt anyone here will know more than what's in the video above.


Edit: Just to clarify after I re-read this; I don't know anything about Gmod nor do I imagine others here knowing anything about it. If you have questions about how the import/export process works with Bonobo/Adjutant, Ask away! Happy to help with anything related to Halo Modding. But you shouldn't expect anyone here to know how to get the Raw Data from 3DS max into Gmod. Wrong forum for that part.



Edited by DeadHamster on May 28, 2019 at 07:45 AM


This is a lot of help, thank you. I don't really need help with the gmod part, and if I do, I'll ask in another forum. I was just trying to give some context in case it mattered


Pabeung
Joined: Dec 18, 2018

Oify


Posted: May 28, 2019 08:17 PM    Msg. 100 of 141       
I don't wanna start doing stuff all over again, this is trash. Halo sucks, it's not the game but the people who plays it. Dota 2 is the best.


DeadHamster
Joined: Jun 8, 2014

https://discord.gg/Neu4EJM


Posted: May 28, 2019 11:15 PM    Msg. 101 of 141       
Quote: --- Original message by: Pabeung
I don't wanna start doing stuff all over again, this is trash. Halo sucks, it's not the game but the people who plays it. Dota 2 is the best.



It must be rough having your entire tagset become obsolete out of nowhere.


MosesofEgypt
Joined: Apr 3, 2013


Posted: May 29, 2019 01:14 AM    Msg. 102 of 141       
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.


def edge_loop_to_fanned_tris(edge_loop):
'''
Generates a list of fanned triangles that represent the
coplanar, convex surface defined by the edge loop.
'''
triangles = [None] * (len(edge_loop) - 2)
v0_i = edge_loop[0]
for j in range(len(edge_loop) - 2):
triangles[j] = (v0_i, edge_loop[j + 1], edge_loop[j + 2])

return triangles


def get_bsp_surface_edge_loops(bsp):
'''
Returns a dictionary of collections of edge loops separated
by the surfaces material index. These edge loops specify
the order to traverse the vertices to trace the outline of
the coplanar, convex surface.
'''
surfaces = bsp.surfaces
edges = bsp.edges

edge_loops = {}
# loop over each surface in the collision.
# NOTE: These are polygonal, not just triangular
for s_i in range(len(surfaces)):
surface = surfaces[s_i]
e_i = surface.first_edge

surface_edges = set()
vert_indices = []
# loop over each edge in the surface and concatenate
# the verts that make up the outline until we run out
while e_i not in surface_edges:
surface_edges.add(e_i)
edge = edges[e_i]
if edge.left_surface == s_i:
e_i = edge.forward_edge
vert_indices.append(edge.start_vertex)
else:
e_i = edge.reverse_edge
vert_indices.append(edge.end_vertex)

edge_loops.setdefault(surface.material, []).append(vert_indices)

return edge_loops



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


The Gravemind
Joined: Jul 26, 2016

I Am The Monument To All Your Sins


Posted: May 29, 2019 08:28 PM    Msg. 103 of 141       
Quote: --- Original message by: DeadHamster
It must be rough having your entire tagset become obsolete out of nowhere.


It really does feel bad man.
Edited by The Gravemind on May 29, 2019 at 08:29 PM


LaikaGlove
Joined: May 20, 2019


Posted: May 30, 2019 08:53 PM    Msg. 104 of 141       
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?


SBB_Michelle
Joined: Nov 4, 2015

This site brings me pain.


Posted: May 30, 2019 09:56 PM    Msg. 105 of 141       
Python

 
Page 3 of 5 Go to page: · 1 · 2 · [3] · 4 · 5 · Prev · Next

 
Previous Older Thread    Next newer Thread







Time: Sun September 15, 2019 1:45 PM 250 ms.
A Halo Maps Website