An impossible thing we might have seen one day


airhead

 

Posted

Genius.

This makes me sad. Again.


Elsegame: Champions Online: @BellaStrega ||| Battle.net: Ashleigh#1834 ||| Bioware Social Network: BellaStrega ||| EA Origin: Bella_Strega ||| Steam: BellaStrega ||| The first Guild Wars: Kali Magdalene ||| The Secret World: BelleStarr (Arcadia)

 

Posted

So I was up last night looking over the moving pieces for this, and rather than try to write one big document for it all, I'm going to just post what I can as I can in the thread.

First: I have a dropbox link to OGLE for those that can't find it on the internet, which is probably all of you at this point because the thing seems to be in witness protection.


Also, this guys seems really interested in my google searches now

https://www.dropbox.com/sh/ysy9hon4f3mf4pe/SA_LZrs-1L

That link should have two things in it: a copy of GLintercept (source and exec) and OGLE. GLintercept is basically the OpenGL shim driver. Running and installing that just makes a directory in Program Files with all its jazz, it doesn't really "install" anything per se. The OGLE binary distribution also creates a directory that puts its stuff in there.

Here's how the magic happens. You take the OpenGL32.DLL file from the GLintercept directory and copy that into your City of Heroes game client directory. Then you take the OGLE binary distribution directory - all of it - and copy that into the plugins subdirectory of where ever GLintercept installed itself. The directory should be renamed to be called OGLE if it isn't already (or you will need to make more config file edits). Finally, you take the gliConfig_OGLE.ini file from the OGLE directory and copy that into your game directory, but you rename it gliconfig.ini and you edit it with what you want.

Here's what's important in that file:

1. Directories. There will be some references to the GLintercept directory created when you installed that above. If you didn't change it, the main thing that you might need to fix is on a 64-bt OS it was probably installed into "Program Files (x86)" and the config file just says "Program Files". You'll need to fix that, depending on what OS you run on.

2. There's a line in the config file called "FrameStartKeys. Its the set of keys you have to press simultaneously to "capture" a frame. By default I think its CTRL+SHIFT+F. Change that if you want that (especially since on most people's default keymaps that will cause you character to start sprinting forward at the same time).

3. In the plugin section there's a setting called FileInFrameDir. I like to set that to True. More on what that does in a minute.

For the technically minded, there is a README for OGLE in its distribution directory under \docs.


All this cannot be done while the client is running. You do all this, and then launch the client. You should see more or less no change, although its possible the shim driver might slow down the client a little. I haven't noticed myself. I have seen the rare occasional crash while the plug in is installed so I don't leave it there all the time. To disable OGLE once you set this all up, just rename the OpenGL32.DLL you copied into the client directory to something like OpenGL32.DLL.DISABLED. When you want it, rename again.

When ready, hit your hotkey combination. The game will freeze. This is normal. Upon hitting that key, the next frame the game tries to render will have all of its OpenGL commands being sent to the video adapter intercepted, processed by OGLE, and then spit out into a set of files. That will of course take time. On my system, a zippy Core i7-860 this takes about two to six seconds depending on geometry complexity, but I've seen it take as long as ten seconds. When your client starts moving again, you have captured that frame.

What you get is a directory called something like Frame_006827 in your game client directory. Within that directory is everything GLintercept and OGLE decided to log. You should have a directory called DisplayLists which I suppose contain display list information but I've never really looked at carefully. There should be another directory called Images that actually should contain little bitmap images of all the textures being sent to the renderers. So those things are actually in there.

Some of it is real obvious:




Some are not obvious textures, but I can guess what might be used for:



But character textures use some projections I should probably recognize but don't:



Head, hands, and boobs. According to Rob Liefeld, I've listed those in ascending order by mass.

And of course, sometimes there's:



There's... uh... Wait. I'm sorry, but W-T-F is that, Art Team? Did you guys actually sneak an x-rated x-ray image into the game? Holy ****.


Anyway, the last two things should be two text files: gliInterceptLog.txt and ogle.obj. gliInterceptLog.txt is some light reading. ogle.obj is the money shot (hey, I wasn't the one that put dick textures into the game). Its a waveform-compatible .OBJ of the entire scene.

Now all you have to do is find you character (or whatever you want to capture) in there somewhere, and get that into something you can print, or alternatively import that into the 3D program of your choice and do whatever you want with it. People who know how to use 3D modelling software correctly, as opposed to the random flailing around technique I use can take it from there mostly: the .OBJ format is supported by basically every 3D modelling software not made in North Korea.

For everyone else, I'll cover that next.


PS: I know you guys think I'm making up the dick texture, but I'm not. Do the capture yourself, its so far shown up in every 3D capture I've done. Whatever it is, its burned into the DNA of the game.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

Very interesting. seems to be grabbing background geometry alright, but my toon is just a series of flat planes, which I'm guessing might arise from the Auras, might have to try with them off.

That ***** thing looks like it might be some sort of hair specular map, or something of the like. I didn't get it, but got something like it that is quite obviously hair.


 

Posted

Quote:
Originally Posted by Arcanaville View Post
First: I have a dropbox link to OGLE for those that can't find it on the internet, which is probably all of you at this point because the thing seems to be in witness protection.
...

1. Directories. There will be some references to the GLintercept directory created when you installed that above. If you didn't change it, the main thing that you might need to fix is on a 64-bt OS it was probably installed into "Program Files (x86)" and the config file just says "Program Files". You'll need to fix that, depending on what OS you run on.
I was actually able to find it. Had to use the wayback machine, but got it. No luck so far with it aside from extracting textures, but I didn't think about the directory thing. Adjusted that now. Trying again. No 3D printer for me, but if I can have .objs of my characters that's awesome for me. Thanks for this, Arcana.

edit: So I got it working in that it exported an .obj, but I tried it from the character select and it just got all the planes from the UI and gave me a bunch of tris way off on the side that I assume was my character judging by the polycount. Trying from in-game now.


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

Quote:
Originally Posted by Johnstone View Post
edit: So I got it working in that it exported an .obj, but I tried it from the character select and it just got all the planes from the UI and gave me a bunch of tris way off on the side that I assume was my character judging by the polycount. Trying from in-game now.
That's what I'm getting as well.

Oddly enough, it rips my cape, and some random head pieces lol


Also, no UV maps from the looks of things

the buncha tris are likely auras, using alpha transparency for the various effects, similar to how leaves are on the trees.


 

Posted

Quote:
Originally Posted by Primantiss View Post
That's what I'm getting as well.

Oddly enough, it rips my cape, and some random head pieces lol


Also, no UV maps from the looks of things

the buncha tris are likely auras, using alpha transparency for the various effects, similar to how leaves are on the trees.
Yeah, no, I mean that I got literal triangles that had polycounts of 500-600 tris each. It was all folded in on itself. There was nothing resembling a character at all.

Now I just tried a grab from in-game. But 3ds Max is choking out on me trying to import the obj. My computer is on its last leg already and really isn't happy about this. Maybe I'll try Maya...


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

Well I found various pieces of my toon, but they are not connected and are scattered all across the high heavens lmao.


 

Posted



Well, there's my toon's pieces.

The bad news is, I have to align them all properly.

The good news is, she is T-posed!

Also, UV mapping doesnt seem to work, even if you enable it in the OGLE options ini.. :C Oooh well.

But now is lunch time, I'll work on her more when I return.


 

Posted

This is really cool. A pity it didn't become part of the game.

... y'know, I imagine given this community, if you guys could figure out how to make these for other players at a reasonable price, you could make a decent amount of money on it. I mean, I'd be willing to pay for 3D models of my characters. Figure a bunch of others are too.

Oh who am I kidding, I want action figures of my characters.


You want to know the secret of the world? It's this: Save it, and it'll repay you, every second of every day.
@Dr. Reverend - My DeviantArt Gallery
Crow Call - Gods of the Golden Age

 

Posted

Quote:
Originally Posted by Primantiss View Post
Well, there's my toon's pieces.

The bad news is, I have to align them all properly.

The good news is, she is T-posed!
Yup, that's about what I ended up with when I opened it in Maya. That and the whole fricking environment. And Maya is stupid about zooming so I couldn't even get everything. I exported her pieces but I don't think I ever re-found her hair (I had found it before the rest and figured I'd get back to it after deleting more of the environment... It got lost.

Oh well, now to see if I can open up her other pieces in Max and fix the orientation and ****. After dinner. This is proving to be a ***** of a process. I was planning on doing this for most of my characters... I don't think so anymore.


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

Installed it but it runs my game to crawl.


 

Posted

Got it to work smoothly but .obj files were generated it seems.


 

Posted

Quote:
Originally Posted by VoodooGirl View Post
Got it to work smoothly but .obj files were generated it seems.
Do you mean "no obj files were generated"? If so, that was a problem that I was having and it was because I didn't change Program Files to Program Files (x86) since I'm on 64 bit. If that's not it, don't know what to say.

Hopefully Arcana will pop in and let us know if we're doing something wrong though. It seems like mine and Primantiss' are coming out much different than in Arcana's first post as it looks like there it's actually in a CoH pose not the T-pose.


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

I realized I hadn't forgotten to rename the bin to OGLE and all that. Works fine now. Just importing to Blender and finding that every single LOD version of every model loads with it.

I haven't tried it yet but I will shortly, but I recommend if you are looking to capture your characters - do it in your base. Smaller maps. Less to save/load. Will let you know how it went.


 

Posted

Quote:
Originally Posted by VoodooGirl View Post
I realized I hadn't forgotten to rename the bin to OGLE and all that. Works fine now. Just importing to Blender and finding that every single LOD version of every model loads with it.

I haven't tried it yet but I will shortly, but I recommend if you are looking to capture your characters - do it in your base. Smaller maps. Less to save/load. Will let you know how it went.
Ah, yup, I had done that as well.

And yeah, I did it from where my main was at the time... Night Ward. That was probably a mistake. I'll try in my base then... heh, I'll have to pay my base rent. But yeah, I tried doing it from the character select screen first because I figured that would be the best way to get just the character, but I ended up with just the UI elements, and the character got folded in on itself and relegated to the side as a few triangles with hundreds of faces.


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

Thumbnail, click for full version



Well aligning her was easy enough, might retopo now to get rid of them ugly tris >< but I dunno.. xD


 

Posted

By the way, I used the char select screen, a lot less clutter I had to shift through to find the body parts.


 

Posted

Quote:
Originally Posted by Primantiss View Post
By the way, I used the char select screen, a lot less clutter I had to shift through to find the body parts.
I guess I should try that again... When I tried, the only thing I managed to reliably get was the UI elements.


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

Everything was way, way off centered, and virtually impossible to see unless you zoomed in exactly on it. I had to track em down using the Outliner and told Blender to "Center objects on Cursor". "Cursor" is kind of a mobile pivot point for Blender.

Not sure if 3DSmax/Maya has any like-options, but they should.


 

Posted

Quote:
Originally Posted by Primantiss View Post
Everything was way, way off centered, and virtually impossible to see unless you zoomed in exactly on it. I had to track em down using the Outliner and told Blender to "Center objects on Cursor". "Cursor" is kind of a mobile pivot point for Blender.

Not sure if 3DSmax/Maya has any like-options, but they should.
Yeah, in Max pressing Z will zoom(In Maya, it's F for Focus) in to what's there or what's selected. So after I deleted the UI elements, I hit it and I saw tiny little triangles, nothing that even remotely resembled a character. Maybe I'll try in Maya.


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters

 

Posted

Actually, it occurred to me to use a demorecord file and then use the CoHDemoLauncher.

Under "Demo Doctor" there's an option to not load the map and I will see if that helps in just capturing my character.


 

Posted

The "my character is exploded into disconnected pieces" issue is something I now recall I fixed a while back. I don't remember precisely how, so I'm taking a look at my configs and notes to see. Stay tuned, but in the meantime here's some things to try:

1. Turn off ultramode and reduce graphics settings to low values. Since we're trying to extract the models, it doesn't matter how well the client renders them.

2. Uncomment out the following lines near the bottom of the gliConfig.ini file:

// ExtensionOverride = ("GLExtOverride/GLExtOverride.dll")
// {
// RemoveExtensions = (GL_ARB_vertex_program, GL_ARB_fragment_program);
// }

What you are seeing are almost certainly the result of the game client using vertex programs, and OGLE doesn't capture them, so objects that are processed by vertex programs to deform and position themselves will end up basically at the origin and "straightened out." Which is basically what a lot of people are seeing.

I remember sometimes the devs would release a build of the game, and this would break for me, and then the next build would fix it. The current test client works for me, so I believe it should work or at least can work with the current client.

There are a couple of other issues that I will describe in more detail when I write up my processing post, but I notice in Blender I basically see the scene, albeit often rotated and offset oddly. In Art of Illusion I see what looks like a giant inverted gemstone shape which is I believe the bounding boxes for the scene, and unless you delete those it will be very difficult to see the scene inside. Again: not a 3D modeller, so not sure why the difference in the two apps.

So there's no confusion, when I do this on my test client and import the .OBJ into Blender, I get this:



Zooming out, I get this:



FYI, I'm standing in the parking lot in Talos: my character is standing with arms crossed to the right of center. To the far right in the second image you can see the Freakshow that have been trying to steal a car from the hospital parking lot for the last eight years.


[Guide to Defense] [Scrapper Secondaries Comparison] [Archetype Popularity Analysis]

In one little corner of the universe, there's nothing more irritating than a misfile...
(Please support the best webcomic about a cosmic universal realignment by impaired angelic interference resulting in identity crisis angst. Or I release the pigmy water thieves.)

 

Posted

I've discovered adding OpenGLShaderEdit = ("GLShaderEdit/GLShaderEdit.dll") under Plugins helps me identify which textures go to what mesh.

I put one of my toons in an empty base and a did a brief -demorecord that I looped. I had the demo load and exclude the map so that it is just totally my character. When I launch the demo file, before I CTRL SHIFT F to capture the scene I used CTRL SHIFT S to bring up GLIsciTE.exe.

One box to check off is "Show Shader Usage." As you click on each item in the menu it will blink -in game- what the shader refers to.


 

Posted

Quote:
Originally Posted by planet_J View Post
I would totally be up for that...what would you charge honestly? My Brute main toon would look amazing as a 3D figure.
Seriously, $12,000 is more than I can afford. Break that down into the $50 to $100 range and I'll keep you in pocket money for awhile.


Together we entered a city of strangers, we made it a city of friends, and we leave it a City of Heroes. - Sweet_Sarah
BOYCOTT NCSoft (on Facebook)
https://www.facebook.com/groups/517513781597443/
Governments have fallen to the power of social media. Gaming companies can too.

 

Posted

Well, I uncommented that stuff and now my game is just crashing before it even gets started. I must have done something horribly wrong. I guess I'll come back to it tomorrow and see if I can figure it out.

Commented those lines out again and it loaded up fine. Uncommented them again and back to crashing. Maybe I'll have to try with the beta server. Why can't this just be simple? >.<


@Johnstone & @Johnstone 2
ediblePoly.com
All my characters