3D Stages are Here! a fairly comprehensive guide

Started by SuperFromND, November 25, 2023, 07:34:44 PM

Previous topic - Next topic

SuperFromND


As I'm sure some of you are aware by now, Ikemen GO recently started experimenting with support for 3D-model-based stages. If you're reading this, then that means 3D stage support has now been made available in the nightly builds! This is something I'm very excited about (if the sheer length of this post is any indication) and I'm eagerly anticipating to see what bonkers things the community can create with it. However, I also imagine many of you aren't very familiar with anything 3D, so I figured it'd be a great idea to share some of my knowledge and advice with Blender, hence this guide.

This guide is intended to help people get to grips with this new way of making stages, covering both how 3D stages work in Ikemen and a crash-course on how to use Blender to create them from scratch. My explanations on Blender are not going to be as comprehensive as many others available online, but hopefully it's good enough to get you folks started!

Table of Contents
  • Background Information
  • Limitations
  • Getting Started
  • How to Blender
    • Object Mode
    • Edit Mode
    • Materials
    • Textures
    • UV Mapping
    • Modifiers
    • Animation
    • Vertex Colors
    • Armatures
  • Preparing for Ikemen
  • Alpha/Transparency Sorting
  • Baking Animations
  • Skyboxes
  • Baking Lightmaps
  • Exporting to GLTF
  • Using GLTFs in stages
  • Troubleshooting & Common Blender Questions
  • Miscellaneous Tips
  • Further Reading
  • Special Thanks

Background Information
Since the dawn of M.U.G.E.N, stages have been made using two formats: a .DEF file, and a .SFF file. The .SFF contains 2D graphics data, while the .DEF specifies stage boundaries and dictates where these graphics are to be placed in a 2D space. While you could always use parallax to give stages a sense of depth, and some very clever tricks have been devised over the years to give the illusion of 3D, stages have always ultimately remained as two-dimensional images.



Recently, Ikemen GO introduced the ability to use a 3D model instead of placing 2D graphics. Rather than an SFF, these 3D models use a file format called GLTF (extension either .gltf or .glb); this format is relatively new, but it's completely open-source, standardized, and easy to create and export to using programs like Blender. GLTF is already being adopted by many other projects, such as the Godot game engine, and its nature means you can have the entirety of a model - mesh, textures, animations, everything - all in one file, just like a .SFF would have for 2D graphics, making it ideal for stage distribution.

3D stages come with quite a few inherent benefits. On top of just looking really nice, 3D stages are not restricted to one particular resolution, and can look nice and crisp whether you play at 480p or 4K. Depending on the scene, 3D stages can also potentially offer massive reductions in file size compared to a 2D-conversion-of-a-3D-stage; I was able to make a conversion of a Marvel vs. Capcom 2 stage that can fit on a floppy disk! Naturally, this also opens up a whole planet of possible new stage ports from other games that wouldn't have been easy or possible otherwise; I've already experimented with porting areas from a few different Dreamcast and GameCube/Wii games, and I'm sure others will follow suit porting from other games shortly after this guide goes live.

Limitations
Ikemen's implementation of GLTF is fairly simple at the moment, and lacks support for some common elements that might be found in other implementations, namely:

  • ]There is no direct support for light objects or environment maps. However, you can get around this by pre-rendering (or "baking") your lights beforehand and creating a skybox respectively; we'll touch on this later.] Update 11/12/2024: Lights and environment maps are both supported! I'd still recommend baking lights if possible/applicable!
  • Related to the above, Ikemen does not currently use any part of a material other than the color map, so no roughness, metallic, specular, normal, emission, etc. are displayed.
  • Armature deformations/weights are not supported. This means that, while models with armatures will be drawn, they won't animate and will most likely default to their base pose. Update 12/26/2023: Armatures are now supported in the latest nightly builds!
  • Volumes/volumetrics of any kind are not supported, which means that things like fog will have to be simulated with a bunch of transparent planes.
  • Currently, only PNG, JPG, and uncompressed DDS textures are supported. Draco compression is also not supported.

It's entirely possible these limitations can be addressed in the future. If you happen to know 3D graphics programming and how to program in Go, and want to help improve our 3D support in Ikemen, consider visiting our Github and making a pull request!

Getting Started
As of the writing of this guide, the latest stable version of Ikemen GO is version 0.99. Future stable versions should include 3D stage support, but for now, you'll need to download the latest nightly builds of Ikemen GO to get support for 3D stages.

QuoteNote: The nightly build changes every day whenever code changes are made to Ikemen, so it's not as stable or as widely-tested as release versions like 0.99 and features may change or break at any time. Please keep this in mind when making 3D stages with it!

If you're looking for 3D stages to try this out with (or you just want examples to test), I've created a few stages you can download here. Most notably, I've created an original stage titled Third Heights and I'm releasing it under MIT, same as Ikemen GO itself. This stage is also included in recent versions of Ikemen GO, so if you've downloaded a recent version of nightly, you might already have it!

Other members on MFG have also released 3D stages, such as these Melty Blood: Type Lumina conversions by Eiton and this CvS London conversion by Violin Ken.

For creating 3D models; there's quite a lot of programs out there to create and edit with. Here's what I recommend:

  • Blender: A well-known free and open-source 3D modelling program. This is what I'm going to be using for this guide, and it's most likely what you'll want to use unless you happen to have a copy and experience with other programs like Maya or 3Ds Max. I'm using version 3.4 here, but the general workflow should be more or less the same across all versions past 2.8. [Editor's note: Blender 4.0 released right in the middle of me writing this guide, so if the UI looks slightly different for you than what I'm showing here, that's why!]
  • Rodzilla's Material Maker: Also free and open-source, this program makes it easy to create procedural, seamless textures for use with 3D models. I used it to create the textures in my original stage, Third Heights.
  • If you don't want to make your own textures from scratch, ambientCG.com has thousands of textures available as CC0/public domain, mostly photorealistic ones. Ditto for polyhaven.com. I'd still recommend making your own if you can though!
  • Either GIMP, PhotoShop, Paint.net, or some other image editing program. Not strictly necessary, but it's very handy to have on hand for editing textures. (Blender has its own image editing tools built in, but I find them to be clunky personally.)

If you're wanting to rip and convert a stage from an existing game, that is beyond the scope of this guide and I won't be covering it here since it varies wildly from game to game and requires some pretty intricate technical knowledge. You'll want to check The Models Resource or search for ripping tools/modding communities for the game or the system(s) it was released on for info on that.

How To Blender
If you already know how to use Blender, you can skip ahead to the section Preparing for Ikemen, as the next several sections are going to cover the basics of how to do basic, common things in Blender.
For the rest of you... get ready for the mother of crash courses.

QuoteNote: Due to MFG post size limitations, I'm not able to include the How to Blender sections in this post. I've split them into two replies to this thread. Click the respective section to be taken to the reply containing it:

Preparing for Ikemen
Spoiler (click to show)

Okay, now that I've given all the newcomers a crash course on how to use Blender (or at least a subset of it), I can FINALLY start talking about the fun stuff specifically for Ikemen. As will become evident in a second, from this point on I'm assuming you have decent knowledge of how Blender works, beyond what I've covered here already.

First off, make sure that the origin of the world (coordinates {0, 0, 0}, where the grid axis lines all intersect) is aligned with where you want the fighters to be standing. If you need to adjust the position of the scene, hit A to select everything, then G to move it into place. This part is pretty crucial, so make sure to take your time and get it right!

Next, make sure the scene itself is oriented properly. If you press Numpad 1, you'll be looking in the direction that Ikemen's 3D camera will be looking towards. Make sure your scene looks correct when viewed from this direction, rotating the mesh if necessary I recommend pressing A, then R, then Z to lock rotation to the Z axis, then rotating it until it looks how you'd like.

Finally, and this isn't as important (as you can adjust the scale of the model in the .DEF later), I'd also recommend scaling the stage to a reasonable size when possible. "Reasonable" is subjective here, but as a general rule of thumb: a default cube should be roughly the height of a fighter relative to your stage. This isn't a hard and fast rule, but it's something I like to do for consistency's sake across various stage models and to make it easier to adjust stage size. The procedure's pretty similar to rotating and moving: A to select all, S to scale up and down, hopefully you get the idea.

Here's an example of what it should look like when its aligned properly and scaled to a reasonble degree:



Baking Animations
Spoiler (click to show)

For the most part, animations should just work as-is, but I've ran into some interpolation issues when exporting animations involving keyframes beyond the start or end of Blender's animation frame range. Here's a few tips I have that might help you out.

One quick fix to most animation problems is to bake the keyframes of an object's animation. Note that baking an animation is not really reversible, so I'd recommend animating everything how you'd like before baking.

There's two ways to do this: the first is to go to the Animation workspace, select your keyframes, and then press Shift+Alt+O to sample the keyframes. This essentially "bakes" their animation data by creating a keyframe on every single frame (indicated by blue dots).


The other way is to Bake Action, which is the better option in my opinion since you get a lot more control over how the baked animation is made.  Select the object(s) whose animations you want to bake, then go to Objects -> Animation -> Bake Action. This brings up a menu that looks like this:



The main things I would recommend enabling here are Visual Keying (keyframe the object exactly as it appears in your scene), and Clear Constraints and Clear Parents if your object has any.

Another thing you might want to try is, in Blender's export settings, go to Animation -> Rest & Ranges -> Negative Frames and set it to Crop. This seems to fix "jitter" that can happen when an animation loops back to the beginning.



Skyboxes
Spoiler (click to show)

As mentioned above, Ikemen does not support environment maps. This means, if we don't want a pure black background, we must simulate an environment map using an old-school approach: the skybox (or skysphere if you want to be fancy and use a sphere, but most people still call it a skybox either way). A skybox is a big mesh (usually a cube for performance reasons, but a sphere works great too) that goes around your entire scene and typically has flipped normals, allowing you to look through it on the outside.



To create a skybox, press Shift+A to create a new cube or sphere, then switch to Edit Mode and scale it up to fit over the entirety of the scene. Now press Alt+N (or use the F3 search menu) and look for an option called Flip; click it to flip the mesh's normal direction. Assign it a new material, give it a sky texture, unwrap it so it looks nice, and then here's the important part: in the Material Properties panel, scroll down until you see the Settings section. In there should be a checkmark toggle labelled "Backface Culling"; enable it and you should now have a functioning skybox!

Alpha/Transparency Sorting
Spoiler (click to show)

This one is pretty technical, but if your model has a bunch of transparent overlapping planes (common for things like tree branches), you can get strange artifacts around the edges. This is because Ikemen renders 3D meshes in exactly the order they are stored in the model file, and therefore rendering alpha objects before rendering something that's supposed to be "behind" it to the camera's point of view can cause problems.



Many game engines can sort this out by themselves (look up "order-independent transparency" if you want to know the nerdy details), but Ikemen GO does not, so we need to sort meshes manually. Unfortunately, versions of Blender prior to 5.2 (not yet released as of this writing) have the baffling decision to use object creation order when exporting to .gltf, rather than using the much more intuitive object name order (in other words, alphabetical order; the order you see on the scene outline).

Luckily this is set to change in Blender 5.2 thanks to a code change, but in the meantime I've also backported this change to Blender 5.1.1's version of the exporter. You can find the patched file here (installation instructions included at the top of the file).

Once you've installed that patch, you can now simply rename all the relevant objects in such a way that, when going from top to bottom, they're rendered in the right order. For example, if you have a skybox object (see below), renaming it to something like AAA_Sky will force it to be the very first thing rendered. If there's something thats's way in the foreground and relies on alpha transparency to work (for example many games use an alpha texture to fake glowing effects), you can rename it to something like ZZZ_Glow to force it to render last.

One more thing while I'm here talking about alpha: if an object contains two planes that both need to be transparent and overlap eachother (such as this bush object), then this can also cause a similar problem.



To solve this, you can select the object, switch to Edit Mode, hover over the plane that's closer to the "front", press L to select the entire plane, and then press P to separate the selection into its own object.



Conveniently, Blender will name this new object with a .001 suffix, meaning it will render in the correct order as well. You can repeat this process for cases where there's more than two planes if you need to.



Optimizations
Spoiler (click to show)

Performance is something I value quite a bit, and user-made 3D content in other games have a reputation for not being optimized very well at all (see: VRchat), so I wanted to share some tips for optimizing your scenes for Ikemen, whether to improve performance or cut down on file size. I strongly recommend taking these into consideration if you want to create 3D stages, as the better optimized your stages are, the more people that can actually use them on lower-end hardware. You can use a site like gltf.report to analyze your exported file and see what portions contribute to file size and performance.

One big one is to combine your textures into what's called a texture atlas: basically one gigantic texture (or rather material, thus muitple textures) that all of your meshes use at once. This performs much better since the engine (not just Ikemen, but *any* 3D engine) doesn't have to sift through tons of different materials one-by-one. Blender doesn't have a native way of doing this, but there's an add-on that I've used for doing this, and it's really easy to use. After installing it, just press N, head to its respective tab in the sidebar, then click Generate Material List, then Save Atlas To.... Your mileage may vary depending on the scene, though it usually works fine.

Another one is texture resolutions: Don't be afraid to lower the resolution! Textures are by far the largest contributor to file size, so reducing the texture size is pretty much always worth a try, especially if the perceived difference in quality is minimal. I would recommend removing your roughness and metallic maps before exporting as well, since Ikemen doesn't actually read them at this point in time; thus, including them with an exported model will do nothing other than increase its file size with no real benefit.

If you're using a lightmap and your exported file comes out absolutely gigantic, you may want to strongly consider exporting the lightmap's texture and converting it into a JPG file. This will create some minor visual artifacts, but it will also DRAMATICALLY reduce file size on busier lightmaps. (Case in point: I had a roughly 100MB lightmap file in PNG format that, after converting to JPG, only took up less than eight MB!) Blender itself can do this format conversion automatically on export by going to Data -> Material -> Images and setting the texture export format to JPG.

Another tip: the actual mesh geometry itself is pretty tiny already in terms of file size, but it's probably a good idea to try removing any geometry that would not be visible to begin with: the backside of objects that are always facing the camera and the faces of a skybox behind the camera are good candidates for this. This has the added bonus of giving you some precious UV space for baking lightmaps. Speaking of which...

Baking Lightmaps
Spoiler (click to show)

I want to stress: this part is entirely optional, and as you're about to find out, potentially very tedious and time-consuming to do, but worth it for the improved visual quality in my personal opinion (a great saying I heard in the 3D community and also just a good tip for art in general is "90% of art is in the lighting"). I would only recommend doing this if you are patient and are savvy enough with Blender that you know how to use the node editor and how UV maps work.



Baking your lights means to pre-render your lights onto a new texture map, which is then applied back onto the models, giving you the visual benefits of lighting without having to require the computer to actually calculate said light in real time, which saves a ton on performance. This technique is very common in games, used in everything from Half Life Alyx to Quake to Mario Kart. It's also the only way to get lighting detail out of Ikemen right now, as there's no support for light objects directly at this point in time. Unfortunately, as you're about to find out, it's a pain to do in Blender.

The following instructions are an abbreviated version of this article on Blender Knowledgebase, which is where I learned how to bake lightmaps. If you run into issues, check that page.

So first, you'll need to open the Node Editor tab and add a new Image Texture node to an object's material, with the node not being connected to anything else. Create a new image (the name doesn't matter but I usually call it "Lights" or "Lightmap"), and set the resolution of the texture to a high power of two (I usually use 8192x8192 as that's a good compromise between quality and performance). In the Object Data properties (that's the green triangle tab), create a second UV map and connect that second UV map to the Image Texture node using a UV Map node. Make sure to also select said second UV map if it isn't already, as this will become important in a second.



Now you need to add that same Image Texture node to every single material whose lighting you want to bake, along with creating a second UV map for each object whose lighting you want to bake. You can make this process slightly less tedious by converting all your materials into an atlas (see Optimizations), but it'll probably still take quite some time.

Once you've done that, select all the objects you want to bake, switch to the UV Editing workspace, and enter Edit Mode. Press A to select the entirety of the meshes for all the selected objects, then press U to bring up the UV menu. Select Lightmap Pack and set the image size to the same size as your new texture from earlier. The margin value is kinda hard to explain and you might have to trial-and-error it depending on your meshes, but I generally go for 0.15 to 0.2.



Once your lightmap UV is set up, you must now head back to the Node Editor. Make sure the Image Texture node with the lightmap texture is selected, then go to the Render Properties tab (the gray camera icon) and change your render engine to Cycles. Make sure to set the Device to GPU Compute (as this will dramatically reduce the time it takes to bake), and make sure to disable the Denoise options, as not doing so will result in weird artifacts on the edges of every face of your baked lightmap (I found this out the hard way).



Now that ALL of that preamble is done, save a backup file of your Blender scene, then you can finally scroll down to the Bake section and click Bake. Depending on your hardware, the size of the lightmap texture, and the number of objects/materials you're baking... this could take quite a while. My original Third Heights stage took roughly 8 minutes on an RTX 3060 Ti to bake an 8192x8192 lightmap, so if that gives you any idea of how long it'll take on your scenes, there you go.

Once it's done, you'll then need to set the lightmap UV map to the rendered UV map (meaning the little white camera icon should be enabled for it) for every object, connect the Image Texture node to the Material Output (or Principled BSDF, but preferrably Material Output), and then you should be able to export the model with your shiny new baked lightmap. If it still defaults to the old UV map and your exported scene looks like a garbled mess, you might need to delete the old UV map entirely to get it to export properly; I'm still a bit confused on this myself, frankly.

Exporting to GLTF
Spoiler (click to show)

So now that our model's all prepared and ready to go, it's time to export your creation! To do that, go to File in the menubar at the top of the screen, then under Export, click GLTF 2.0 (.gltf/glb).



A window will pop up asking where you want to save, and on the right will be some parameters you can adjust if desired. If your scene uses Modifiers, make sure to go to Data -> Mesh -> Apply Modifiers and enable it. Aside from that, the default settings are plenty good for most scenes, so navigate to where you'd like to export the file and click Save. The resulting file should, by default, be a self-contained .glb.

QuoteNote: I glossed over it in order to reduce confusion, but GLTF actually has two separate formats it can export in; .GLBs are a "binary" format, meaning that it can contain everything it needs in one file. .GLTF also supports exporting all the model and texture data as separate files, which I do not recommend as it makes distributing a 3D stage much more cumbersome and messy.

It's a good idea to verify everything looks how you'd like first by viewing your exported model file. If you're on Windows 10, you can view the .glb file directly using the built-in 3D Viewer application. Otherwise, you can use web-based tools such as this one from Khronos Group or the aforementioned gltf.report.

Using GLTFs in stages
Spoiler (click to show)

So now we finally have our model file, it's time to put it to use! I'm not going to go into detail on how stage .DEFs in general are written, as there are countless guides for that already both here on Mugen Fighters Guild and elsewhere online; for the most part, it's identical to how you'd usually make a stage. However, I will highlight the new stuff needed for 3D stages to display.

The first new parameter is called fov, and it goes under the [Camera] section. This controls the field-of-view of the 3D model. I personally set mine to 30 as that's what Blender uses by default for its camera, but you might want to experiment a bit.

[Camera]

; (insert other camera parameters here)

fov = 30


The next one is in the [BGdef] section, where you would define the SFF file the stage uses. The SFF is still required to be included by spec (although the contents of the SFF don't really matter much; I recommend using it to make a stage portrait). You can use the parameter model to specify the filename of the model, in a similar way to spr for the SFF:

[BGdef]
;Filename of 3D model file
;Supported file types are gltf and glb. Texture types supported are PNG and JPEG, no DDS.
;Make sure the world origin of the model is at the camera starting point!
model = stage3d.glb

;Filename of SFF file, required by spec
spr = stage3d.sff


Finally, to actually use the model in a stage, a brand-new [Model] section has been defined, with the following format:

; Model element definition; this is similar to the [BG] blocks in 2D stages
[Model]

; X, Y, and Z coordinates of the model
; X = horizontal, Y = vertical, Z = depth
offset = 0, -0.25, -1

; Scale of the model
scale = 0.5, 0.5, 0.5


You may need to tweak the position and scale quite a bit to get it looking correct; a pro tip from me is to use Shift+F4 in Ikemen GO to reload the stage's files without having to restart the entire game, making it easier to test changes.  I recommend creating a temporary plane at {0, 0, 0} and rotating it 90 degrees on the X axis (so that its facing towards the camera) to make it easier to set your offset values correctly.

If your stage was aligned correctly in Blender, you shouldn't need to adjust the X offset much at all. The Y offset I usually keep somewhere around -0.2. As for Z offset, I usually set its value between -0.75 and -1.5, though you might need to dial this value in if you notice your model/characters are moving "faster" than they should. Also, quick note: do not set the Z offset to 0, as otherwise the model's geometry will not move at all. Likewise, setting it to a positive value (above 0) will cause the geometry to move inversely to your characters.

Once all of that is done though, congratulations: You now have a 3D stage in Ikemen! :)



Troubleshooting & Common Blender Questions
Spoiler (click to show)

This part compiles a bunch of common questions I've been asked when helping out others with Blender stuff, and is probably of good value to you folks too!

How do I get transparent textures to display right?
Go to the Node Editor workspace and make sure the Image Texture's Alpha output is connected to the Principled BSDF shader's Alpha input. Then, go to the Material Properties of the material with the transparent texture, and make sure to set Blend Mode to Alpha Clip. You might also need to toggle Backface Culling depending on the model.



How come my model's faces look weird and 'inside-out'-y?
This usually means your model has its normals flipped or otherwise not set correctly. The fastest way to fix it is by selecting the entire mesh in Edit Mode, pressing Alt+N to bring up the Normals menu, and then clicking Recalculate Outside. Blender has a built-in Viewport Overlay option (it's in the down-arrow button next to the icon with the two circles) to display normal orientation as well; blue is facing outside and red is facing inside.



What are some good sizes/model stats for a stage?
In terms of file size: all of the stages I've made so far rarely exceed a .glb size of 20 megabytes. Whether or not that's feasible for your stage depends on what it is and how much detail you want to include; admittedly mine are rather simple in terms of composition, but still. If you feel like your stage's file size is too large, try some of my Optimization tips above.

In terms of geometry/tri counts: I usually try to keep my stages around the 10,000 to 30,000 tris range. That puts it somewhere between a late Gamecube and early Xbox 360 game in terms of mesh detail; this might not sound like much, but a general rule of thumb is that textures carry much more detail than the underlying mesh itself does, so higher poly counts won't really give you much benefit after a certain point.

Speaking of textures, unless you're using a lightmap, my textures for stages don't usually exceed a resolution of 1024x1024. This makes sense as I imagine that most people playing Ikemen are probably not playing at a high-enough resolution for 1024x1024 to seem 'low-quality' (especially since the texture isn't going to be seen at its native size, but rather distorted onto a 3D mesh, thus you'd only be seeing a fraction of its actual resolution).

Why is my 3D stage rendering as solid black?
This can be a few different things. First, make sure you're using a version of Ikemen GO that actually supports 3D models (as of this writing, that means specifically the nightly builds, not 0.99). Secondly, make sure that your graphics drivers are up to date (particularlty for those of you using older graphics cards or chipsets). Thirdly, if it's a stage/model that you've created:

  • Make sure that, when exporting from Blender, your image texture is connected to the Principled BSDF node's Base Color input, which is in turn connected to Material Output. Any other BSDF input, such as Emission, won't render anything in Ikemen.
  • Make sure that your stage's position and scale are appropriately set in either Blender or Ikemen GO, preferably the former.
  • Make sure your model's normals are facing the correct direction.
  • Make sure that your .def file is correctly pointing to the filename of the .glb file you exported, and make sure said .glb is in the correct file location.
  • If you added vertex colors to an object, check and make sure they aren't all set to black; for some reason that's what Blender defaults to for the default vertex color.

It's also been observed that those using Windows 11 have had 3D stages not render unless you go into Ikemen GO's properties and set its Compatiability Mode to Windows 10 and/or explicitly set the GPU to use. If you're running Windows 11, give that a try as well!

I'm getting a huge error about nil pointers! What did I do wrong?
As of right now Ikemen GO will crash if a model includes an object that has no materials assigned to it. Make sure that all your objects have at least one material!


Another common cause is when authors erroneously remove or otherwise not include an SFF in addition to the GLTF file. This will cause Ikemen GO to crash due to a missing SFF, so make sure to include one! I'd recommend using the opportunity to make a stage portrait (sprite 9000, 1 in the SFF; you can check Ikemen's included stages as reference for what it should look like).

Miscellaneous Tips
Spoiler (click to show)

This part is pretty much just some useful tips I've accumulated that might be good to know. I haven't organized this section, so prepare for subject whiplash!

  • Pressing Shift+Tilde toggles a mode that lets you control the viewport camera using WASD-style controls like a traditional 3D game. This can be useful for inspecting a scene more easily than the usual camera controls in Blender.
  • If you're working on a cartoony, vibrant scene (or importing from an existing game) and notice it looks kinda washed out compared to how Ikemen renders it, try going to Render Properties -> Color Management -> View Transform and set it to sRGB instead of the default of Filmic. Filmic is intended for photorealistic scenes, and sRGB is what used to be the standard before Filmic came along. This shouldn't affect the actual exported model's look; just Blender's preview of it.
  • If you're struggling with UVs, a shortcut you can take is to select the faces whose UV you want to change in Edit Mode, then use Project from View to project the UVs from the viewport back to the UV editor. Depending on the context, this can be a MASSIVE time saver.
  • If you press Ctrl+A, you can apply the current position, rotation, and scale of the object to the mesh directly. This will also reset the pivot point of the object. If you're getting weird looking results when animating a mesh, try using this first!
  • Pressing N brings up a sidebar menu in the viewport which has some useful parameters. If you have the Material Combiner add-on installed, this is where you can go to use that addon, which I recommend doing when preparing your scene for exporting!
  • If you need to select a continuous line of faces in Edit Mode, try Alt+Left Clicking to select an entire loop of edges or faces. This can save you quite a lot of time!
  • The Edit Mode key for extruding a face is E, but you can also press Alt+E to get a menu to extrude along a face's normals or to extrude all faces individually. Also very handy!
  • If you're editing a trio of parameters all at once (such as an object's scale), you can click-and-drag across all three of the number sliders and edit all three of them simultaneously.
  • When you're transforming an object (whether that be rotating, moving, or scaling), you can actually type a value during the transform if you want to quickly dial in an exact value. For example, S -> 0.01 will scale down an object to exactly 1/100th of its size.

Further reading
This post is really only scratching the surface; 3D modelling is an entire skillset in its own right and I can't possibly cover every little detail in one post. As such, here's some great links to learn more about Blender and 3D models in general:


Special Thanks
  • Eiton, for implementing 3D stage support in the first place.
  • Violin Ken and PotS, for proofreading this guide and giving me some feedback.
  • The Blender Foundation for giving us such an incredible 3D tool for free, and making it open source.
  • This also applies to its community. Thanks for giving me the resources to get started on 3D stuff myself!

Creator of the Ikemen GO Command List Generator and its successor, Iguana.
I also make 3D stage ports for Ikemen GO. You can find my stages here. :heart:

SuperFromND

#1
And here's the How to Blender section I wasn't able to include in the original post (continued in reply #3):
How to Blender (cont.)
Spoiler (click to show)

If you're totally new to Blender, in addition to what I've written here, I would highly recommend either Blender's 2.8 Fundamental series or BornCG's Let's Learn Blender for rundowns and tutorials that cover more and are almost certainly better written than what I've got here. Throughout the next several sections, I'll be walking through the process of creating a basic stage.

First, let's rattle off some basic, useful controls in Blender that you'll be using all the time:

  • Left click selects objects, and right click brings up a context menu.
  • Hold Middle click to rotate the camera around the pivot point. Add the Shift key to move around the camera. For those on laptops or otherwise lack a middle mouse button, you can use the icons in the top-right to manipulate the camera instead.
  • G lets you move an object around, S scales an object, and R rotates an object. In the case of R, pressing it a second time toggles between rotating relative to where you're looking at it from and rotating it track-ball style. Once you're done, Left click to apply your change and Right click to cancel it.
  • Pressing X, Y, or Z lets you lock movement to that particular axis. Add the Shift key and you can lock multiple axises at once. For example, G -> X -> Shift+Z locks movement to the horizontal plane.
  • Tab switches you between Object Mode and Edit Mode.
  • Numpad keys 1-9 will orient the view onto a particular axis. Numpad 5 will toggle between orthographic view and perspective view, and Numpad 0 toggles the render camera view (not useful for our purposes).
  • Numpad Period moves the pivot point to the currently selected object; whether that be the actual object or a particular vertex/line/face you have selected.
  • A selects everything in the area the mouse is currently hovered over. Usually this selects all objects in the scene, but it depends on context.
  • Shift+A brings up a menu to add objects to the scene. We aren't going to use it in this rundown, but it's very useful to know!
  • F3 brings up a search bar for all kinds of functions, usually relevant to whatever you're currently doing. If you're struggling to find a specific option or setting, try to use this!

That was a lot of words just now, but I promise it really isn't that bad once you get used to it. If you're completely new to Blender, I'd recommend spending some time just messing around and getting acquainted.

Object Mode
Spoiler (click to show)

Blender works off the concept of "modes", and there are two main ones you'll be using.
Object Mode is what you start in by default. In Object Mode, you can manipulate "objects", which can be meshes, lights, cameras, and other things like that. Let's create a platform for our fighters to stand on.

Now, when you start Blender, by default you already get three objects: a Camera, a Light, and a Cube. It'll look like this:



Since it's already there, we're going to manipulate the cube into a platform. Left click the cube to select it; you'll see it gets a bright orange outline and be highlighted in the Outliner on the top-right of the screen. Press G and you should now be able to move the cube around.

We want our platform to be nice and evenly aligned to where the fighters are going to be standing (the grid, or positions [0 ,0 ,0]), so press Z to lock the cube's movement to just the vertical axis (you'll see a blue line appear to indicate this). Move the cube down until it is below the grid and Left click to apply your movement. Don't worry if it's not exactly positioned, you can adjust the values more precisely using the Object Properties pane.



On the middle-to-lower-right side of the screen is a bunch of small tabs of various colors; the orange box with four lines is the Object Properties panel, which you can use to change the exact values of the position, rotation, and scale of a specific object. Click on the Location Z value and set it to -1, and the top of the cube will be exactly aligned to the bottom of the grid.



So now we have a platform, but it's pretty small! Let's fix that by editing the cube.

Edit Mode
Spoiler (click to show)

Edit Mode is the other main mode in Blender, and it lets you manipulate the vertexes, edges, and faces of objects.

With our cube selected, press Tab and you'll switch to Edit Mode. You should see all eight corners (the vertexes) change to orange, and the entire mesh should be tinted slightly orange as well. We're going to use Edit Mode to make our cube into a wide rectangle, which is far more practical for battles to occur on.

This is the first part where you'll need to be specifically mindful of Ikemen: you'll need to orient your scene in the correct direction. Press Numpad 1 to align the viewport; you should see a red line going horizontally and a blue line going vertically. This is the direction that Ikemen will default to when rendering a 3D stage, so it's best to make your scene with this direction in mind.



Now that we're oriented, make sure that the cube is still selected (you can press A to select all of the cube's verticies if you need to), then press S to begin scaling the cube, in a similar way to how we moved it in Object Mode. This time, we're going to lock scaling in the horizontal axis, so press X to restrict scaling to that axis, then drag out the cube to a decent length and Left click to confirm. A little box will appear in the bottom-left with the values of your change if you want to dial it in, I recommend a value of 4.0, but feel free to adjust it to your liking.



At this point, you should have a rectangle that's wide on the red X axis, and whose top face is aligned to the bottom of the grid. Now it's time to make it look pretty by giving it a material.

Materials
Spoiler (click to show)

Materials are what tell Blender (and by extension Ikemen) what a given object should look like: what color it is, how "rough" its surface is, what direction light should travel on its surface, whether or not it's metallic, and some other niche prorperties beyond the scope of this guide.

A material consists of one or more textures, a 2D image wrapped around the model like a decal. To define which parts of the texture go where, your model needs to be unwrapped;which is to say its faces (or collections of faces, which Blender calls an island) need to be assigned to different areas of the texture. The way in which these areas are laid out is called a UV map; most of the time, models only have one of these for a given object.

Before you do anything, first go to the top-right of the viewport (the part of the screen that shows your 3D scene) and look for the four ball buttons. Currently, we're viewing our scene in Solid mode, which will show every object in a gray color. In order to see our materials, click the icon with the black-and-white checkerboard ball to switch to Material Preview mode. (Pro tip: you can also pressZ to get a quick menu to switch between these preview modes, which is quite handy!) Your cube should turn from grey to white when doing this.

Over on the right panel where Object Properties was located earlier, there's a red checkerboard ball icon, click it to bring up the Material Properties tab. The cube should already have a material by default, but if for whatever reason it doesn't, click the + button to create a new "material slot", then click the "+ New" button to actually create a new material.



Now you should see a giant wall of sliders and numbers to mess around with. This looks initimidating, but in practice you'll only be using a subset of these options; the rest are for niche edge cases and funkier materials that aren't important for us. For right now, let's just worry about the most important option, which is Base Color.

By default, the cube is colored white. If you click on the white rectangle next to Base Color, a color picker will appear. You can use this to set the color of the material, evenly across its entire surface.



That's cool and all, and sometimes that's all you need, but obviously a material isn't usually one solid color. Time to talk about textures.

Textures
Spoiler (click to show)

Textures are exactly what they sound like: 2D images that are used to define the colors on the surface of a material. Currently, Ikemen supports PNG and JPEG textures;. PNG is recommended for its high quality and alpha channel support.

Modern game rendering techniques typically follow a format called physically based rendering or PBR; I'll spare you the nerdy details as to why (see this article courtesy of Adobe if you're curious and/or want something long to read and pass time), but this means a material will usually have three textures:

  • Base Color is called a lot of different names depending on who you ask, but I'm gonna call it the Color Map for the rest of this guide. Some other common names for it include the Albedo Map, the Diffuse Map, and (confusingly) the Texture Map. Whatever you call it, this the main texture that defines the actual colors on the surface of the material, and the one you want to focus on looking right first.
  • Roughness defines how rough a surface is, with lower values giving you a glossier look for things like plastic and glass, and higher values giving you a harder look for substances like concrete. This map is grayscale, where black is interpreted as 0, white is interpreted as 1, and grays are inbetween.
  • Metallic defines whether a surface is metal or not, and thus reflects light differently than normal, non-metal materials. Like Roughness, this map is also grayscale, but it's sometimes just a single value if there's no reason to have certain areas of the texture be metal or not-metal.

Like I said earlier, Ikemen only supports the Color Map at the moment, and if you don't plan on baking lights (see Baking Lightmaps) then you should only worry about that one (as including the other maps will do little more than unnecessarily bloat your exported model's file size).

There's a lot of different ways textures are created; sometimes they're taken from a library of premade ones (whether that be a public library like ambientCG or an internal one used by a given company), sometimes they're generated procedurally using tools like Substance Designer or Material Maker (see Getting Started), sometimes they're generated from a higher-quality model in tools like Zbrush, sometimes they're painted onto the model directly... the list goes on and on.

For the sake of pacing (and my own sanity), let's just assume you already have texture files ready to go.

You might have already noticed the colored dots next to each of the parameters in the Material Properties tab. These dots are actually part of something in Blender called nodes, which allow you to fine-tune the specifics of how a material's shading works. I won't get into detail on nodes here as they aren't especially important for this guide, but the reason I mention this is because we need to use them very slightly for applying a texture.

Next to the Base Color, you should see a yellow dot. Click it and a menu will appear with a bunch of options; select Image Texture. The cube should turn black, and our solid color will now be replaced with some new buttons. Click Open and select the texture you'd like to use. Your texture should now appear!



The process is pretty much identical for roughness and metallic maps: click dot, select Image Texture, load texture, done.



So we now have a whole material on our platform, hooray! But... it looks a bit stretched and kinda silly, doesn't it? It's time to learn how to UV map.

Creator of the Ikemen GO Command List Generator and its successor, Iguana.
I also make 3D stage ports for Ikemen GO. You can find my stages here. :heart:

SuperFromND

#2
(continued from above):
UV Mapping
Spoiler (click to show)

oh god im gonna have to explain UV mapping now
Okay, here goes. So remember earlier when I said that textures wrap around like a decal? Well, imagine taking a decal for a round object and then unwrapping it until it's flattened out into a square. Or in other words (and because I like the idea of using this image to explain it), think like the wrappers on Christmas chocolate, such as this:



That image on the left would be the full texture, and the little chocolate on the right is the finished, textured model. Imagine if you drew lines where Santa's face, clothes, hat, arms, legs, etc. start and end on the 3D object, and then unwrapped it back to a flat image; the resulting lines are roughly what a UV map looks like.

...okay, this analogy isn't quite working as well as I'd like. Perhaps doing is better than talking here, so let's unwrap our platform. At the top of the Blender window, you'll see a bunch of different workspace tabs. Click UV Editing to bring up that workspace. You should see the workspace change to show two panels: on the right is the viewport showing our scene, and on the left is our UV Editor.



If you're not already in Edit Mode, press Tab or Z to switch to it. You should see what looks like a wireframe appear in the UV editor, in the shape of a cross. This is actually the UV of the cube that we started with! As you can probably notice, our cube has since turned into a rectangle, but the UV hasn't updated to account for it, which is why our texture looks all stretched and weird.

In order to fix that, we need to tell Blender where the seams of the mesh are. If you think about your mesh like it's a papercraft, the seams would be where you'd originally cut on the paper before folding it in. In this case, we should make one seam horizontally across the long side of the rectangle and three seams on the square corners, creating a kind of Omega-symbol-shape.

In the viewport half of the screen, look at the top-left for three buttons: one with a square and a single dot, one with a square and a line, and one with a filled-in square. Click the one with a square and a line, and you'll now be able to select individual edges of the mesh. Now select one of the edges of the long part of our mesh and press U to bring up the UV Mapping menu. From this menu, select Mark Seam and the edge should turn red.



Now pan over to either end of the platform. Select the edge connected to the seam that we just made, then hold Shift and select the edge connected to that, then the edge connected to that, creating either a C-shape with the top end connecting to the seam from earlier, then press U and Mark Seam again.



Repeat this a third time on the other side. Your mesh should now look like this:



Now that our seams are in place, press A to select the entire mesh, then press U to bring up the menu one more time, and finally click Unwrap. If all of that was done correctly, you should now have a new UV consisting of four long rectangles and two squares appended at the end, like a really wide sideways T shape. Your textures should now look much cleaner on the mesh!



If you want, you can tweak the UV's position and scaling further; manipulating UVs is done pretty much the same as manipulating geometry in Edit Mode, just without a third dimension to worry about.
There's a lot more to UVs than this, of course (shoutouts to Ian Hubert for kickstarting my habit of using "Project from View" all the time), but this is the gist of how they work.

And with that, congratulations! You just created your first object in Blender! I'm proud of you. Give yourself a pat on the back, and then maybe take a quick break.

That's pretty much the basics of how to create objects in Blender. If you want, you can start creating more objects for your stage. The next few sections are not step-by-step tutorials, but they explain some other, very useful fundamental parts of using Blender for making more complex geometry.

Modifiers
Spoiler (click to show)

Modifiers are something you can apply to an object to, well, modify the model's geometry in a variety of ways. They're pretty much the 3D equivalent of a filter in programs like Photoshop, and they are very useful in a wide variety of ways.

To add a modifier, click on an object and then look to the right side of the screen. Next to where the Object Properties tab was, there should be a blue wrench icon; this is the Modifiers tab.



Click the big + button and you'll get a menu to select modifiers from. There's quite a lot of different modifiers, each one useful for different things. For brevity's sake, here's the ones I use the most:

Subdivision Surface
This divides and then smoothens the mesh, creating a higher-polygon model. You can adjust the Levels value to do multiple iterations of division, creating even more smooth meshes. Be careful not to go too high though, as extremely high-poly meshes can slow down Blender exponentially (not to mention anyone else who wants to view your model).



Mirror
This mirrors the mesh on a selected axis (or multiple axises). This is very useful in a wide variety of situations, particularly if you're modelling something and wanting to keep it symmetrical (such as a building or a car). I would also recommend enabling Clipping and Merge to save on redundant geometry.



Array
This duplicates the mesh a given number of times along a given offset. Also very useful in a wide variety of situations!



The cool thing with modifiers is that they allow for what Blender folks call a non-destructive workflow, which is to say that these modifiers are applied in real-time to the mesh as you edit it; you can adjust your model in real time and see how the modifiers affect it, while keeping the actual underlying mesh itself low-poly and thus easier to edit. If you actually want to apply the modifier to the mesh, you can do so by hovering over the modifier in question and pressing Ctrl+A.

Animation
Spoiler (click to show)

Animating a 3D model is a big part of making scenes come alive and look pretty. By my own admission, animating in Blender is a bit clunky, but I'll try my best to explain it. You may have noticed the big timeline at the bottom of the scene already. This timeline shows you the selected object's keyframes: the key points in time where your model's in an explicitly defined position, rotation, or whatever other property you're animating, represented as little orange dots.



Let's make a simple animation of a cube jumping up and down. If you press the I key, you'll bring up the Insert Keyframe menu. Click on Location and Blender will create a keyframe wherever the timeline's cursor (the blue bar with a number on top) is located.




Now move the timeline cursor to the end of the timeline (the fastest way to do this is to click the button with a triangle pointing right at a line). Press I and insert a second location keyframe.



We now have two keyframes set with our start and end positions for the cube. Now we need to make one more keyframe: the one where the cube is at the height of its jump. Move the timeline cursor to the middle of the timeline, but don't create a keyframe just yet!

We need to first move the cube vertically; to do that, make sure you're in Object Mode, then press G followed by Z to lock movement to the vertical axis. Move the cube upwards, then left-click to apply. Now you can press I to create a third keyframe.



If you click the Play button at the top of the timeline, you should now see your cube moving up and down. It'll move in a linear fashion by default, but you can change this by changing two things: the keyframes' easing and the easing curve.

To change both of these, select the keyframe(s) you want to edit and then right click to bring up a menu (you can also use the shortcuts T for interpolation and Ctrl+E for easing). The two important sub-menus here are Easing Typeand Interpolation Type.



The fastest way to make a bouncing motion, at least for me, is to hover over the timeline and press A to select all three keyframes. Go to the Interpolation Type menu and click one of the options under Easing (by strength); I recommend Sinosidual or Quadratic, but feel free to experiment and see what looks good to you.

Then, for easing, select just the first keyframe, go to Easing Type, and set it to Ease Out. The second and third keyframe should already be set to Ease In by default, but you might want to explicitly set those keyframes to it anyways just in case. If you hit Play now, your cube should have a much smoother jumping motion!

You can animate more than just location, of course: rotation and scaling can be animated in exactly the same way. If you want to get more advanced with your animation's motion, Blender has a dedicated Animation workspace which gives you more fine-grained control over individual axises of motion, but explaining it in detail is beyond the scope of this section.

Vertex Colors
Spoiler (click to show)

Vertex colors are something I don't really use in my models much, but they are supported by Ikemen GO, so I figured they were worth a section anyways.

Vertex colors are an optional property you can use to tint your models a given color on a per-vertex basis, which are then applied and blended on top of textures. These used to be really common as a technique for shading models in early 3D games (as calculating lights dynamically is quite expensive to do), but are more-or-less obsolete in modern times thanks to stronger computers and techniques like lightmap-baking becoming commonplace. Still, if you're working with models from older games, knowing how they work is pretty important for accurately replicating that old-school look. They might also be useful for creating gradients without having to use a dedicated texture, saving on file size.



By default, models created within Blender do not include vertex colors, but it's easy enough to add them to an object. Near where the Object Properties and Modifiers tabs are, there's a green triangle tab. This is the Object Data tab, which contains quite a lot of things, mostly not relevant for us. Scroll down until you see a section named Color Properties; click it and you'll get an empty menu. Click the + button next to it and you'll get a popup asking you for some settings. The default settings are fine, but you can adjust the Color setting to set a default color value for every vertex if you like (I highly recommend setting it to pure white (#FFF) if it isn't already).



In order to actually see your vertex colors in the 3D viewport, there's two ways to do it. To see only vertex colors, go to the top of the viewport and change the preview mode to Solid and, in the dropdown menu next to it, set the Color to Attribute.



The second way is by editing the material in the Node Editor. You can use the Color Attribute node and plug both it and the texture into a Color Mix node set to Multiply to preview how the two mix together. It should look like this:



Armatures
Spoiler (click to show)

QuoteNote: Support for armatures was added on December 26th, 2023. If your nightly version of Ikemen GO was downloaded before then, update to get support for armatures!
Armatures are a way to control objects by mapping them to a virtual set of bones and then manipulating said bones digitally, like some kind of puppeteer. They are most commonly used to animate 3D characters, but they're also useful for situations where you want to animate parts of a mesh in a smooth way, such as flags or hanging chains.



I made this quick and dirty arm claw model that we'll use as an example of how to make a simple armature for a model.



To create an armature, create a new object as usual (either Shift+A or click the Add menu in Object mode) and select Armature, then Single Bone. You might need to switch to wireframe mode or toggle "In Front" in the Viewport Display settings in the Object Data tab of the armature to see it better.

Bones can be edited in Edit mode similarly to meshes; G to move, S to scale, R to rotate, E to extrude, etc. Each individual bone carries a name along with it, and these names are very important as they're used to tell Blender what parts of a mesh should correspond to what bone, so be sure to name them sensibly (and preferrably in all-lowercase). Multiple bones that are part of the same "part", such as multiple bones for an arm, are usually named something like "arm.001", "arm.002", and so on. In my case, my arm model has four distinct parts, so I created four bones: base, arm.001, arm.002, and arm.003.



Now we need to assign the mesh the same labels that we gave to our bones. Blender offers a system called Vertex Groups for this purpose; go to the Object Data tab of your model object and you should see the Vertex Groups section near the top. Go into Edit Mode, then click the + to create a new vertex group. Give it the same name as the area you want to be affected by the bone (in my case, "base"), then select all the faces in that area, and click "Assign". Repeat this for all the areas you'd like to assign.



Once you've done that, we're ready to assign the armature to the model. Switch to Object Mode, then click on the mesh, and then Shift click the armature (this might be easier to do in the Outliner at the top-right of Blender than in the actual viewport). Press Ctrl-P and you should see an "Armature Deform" option. Click it and your mesh will be assigned as a parent to the armature.



If you've done all of this right, you should now have a functional armature! If you click on your armature, you can enter a new mode called Pose Mode and click on a bone to start posing your new armature. If you press N, it'll bring up a menu with some useful options for posing; most notably, Auto IK (IK stands for Inverse Kinematics, which is a bit complicated to explain but it's basically a way of controlling other bones while only moving one, very useful for arms and legs such as our example). If you intend to recreate this arm claw model, I'd recommend clicking on the base bone and locking its movement and rotation using the lock icons, which will make it easier to pose with Auto IK enabled (otherwise the base bone would also start rotating and it'd look weird and wrong).



And of course, like everything else, armatures and bones can be animated and keyframed the same way as other objects in Blender. There's even more funky stuff you can do with armatures, but this should give you an idea of what they can do.

Layers
Spoiler (click to show)

More recent nightly builds of Ikemen GO have the ability to display 3D objects in front of the fighters, just like 2D stages. This is done by using scene layers; by default, all Blender objects are placed onto "Scene 0", i.e. the first scene in the file.
To add an extra scene, look for the Scene tab in the top-right of Blender, and then click the piece of paper to add a second scene.



Blender will give you a few options; I generally recommend using Full Copy if your stage is already finished and you just want to move some objects to the foreground. (This is probably the easiest workflow particularly when you're making stages from scratch, since it can be hard to judge exactly where objects are when you have to switch between scene layers).

Custom Properties
Spoiler (click to show)

3D objects support what are known as custom properties. These are, as the name suggests, extra data that Ikemen can use to modify how the object is rendered. To add a custom property, select an object and go to the Object panel, then scroll down to the very bottom. You should see a tab called "Custom Properties". Click it and you'll see an Add button; clicking it will add a custom property with the default name prop.

QuoteNote: Blender has a Custom Properties tab underneath multiple sections including Object, Object Data, and Materials. Ikemen GO will NOT read custon properties unless they are underneath the Object section. Make sure you're adding custom properties to the correct area!



This default property is a "float" type, meaning it can only hold a number. The majority of custom properties in Ikemen right now are of either boolean (true or false) or string (a word or sentence) type. To change the property's type, click the gear next to its name:



And then click the Type dropdown menu, and set it to whatever you need:



There's quite a few different custom properties Ikemen GO currently supports, most of which are rather niche (Rakiel compiled a list of other properties on this thread here, if you're interested. The most useful custom property in my opinion is trans, a string property which can be used to set an object's blending behavior. It can accept ADD for additive blending, SUB for subtractive, and MUL for multiply blending. All three of these are commonly seen in commercial games, so it's very useful to have here.



Oh, one more thing: If your stage uses custom properties, make sure to enable them when exporting to glTF/glB in Blender:




Sorry for the inconvenience!

Creator of the Ikemen GO Command List Generator and its successor, Iguana.
I also make 3D stage ports for Ikemen GO. You can find my stages here. :heart:

DrPyspy

Fantastic guide! I can't wait to dive in and try this out ;D

Noside

I remember giving a shot in Blender long time ago, ain't that easy, you have to be creative when it comes to custom/original/new from scratch creating stages for Mugen.

JolarValenflower

I like 3D Stage
Games like Blazblue, Persona 4 Arena Ulitmax, Under Night in Brith
https://discord.com/invite/vrcS6k7yWz

I Hate R-Bismut NSFW Artist

MatreroG

I'm not deeply familiar with Blender, but this guide is worth studying and doing some testing.
Thanxs for the tutorial.
Others stages and news:
>> https://www.youtube.com/c/MatreroG
Any donation will be well received
>> https://www.paypal.me/MatreroG
>> https://www.buymeacoffee.com/matrerog

alexlexus

nMo new generation of mugen exposure

CaioGamesMUGEN

even tho i don't make stages, this looks pretty good! can't wait to see 3d stage ports from other games soon.
me when

Destroyal

I want to make some animations using, sprites 2D to the background, like cameos watching the fight; how can I do this at the stages?

SuperFromND

#10
Quote from: Destroyal on December 12, 2023, 09:59:50 PM
I want to make some animations using, sprites 2D to the background, like cameos watching the fight; how can I do this at the stages?

Neither Ikemen nor GLTF itself support animated textures at the moment, so the next best thing would be to make a bunch of planes with all the animation frames you want, and then scaling each of them using animation keyframes set to Constant, like a slideshow.

Creator of the Ikemen GO Command List Generator and its successor, Iguana.
I also make 3D stage ports for Ikemen GO. You can find my stages here. :heart:

Destroyal

Ah okay, some tutorials about that? I don't even know how to start with this.

Tabris666

are they really 3D??
i wonder this since from what i have seen is just a 2D stage and nothing out of the world since can be done (has been done) on mugen 1.1
for example can i just paste a 3d map on the engine and will run it? it use the general map format of obj or something different?
let's be honest most of the so called 3D aren't really 3D stages on ikemen in fact i tested the so called 3D stages on mugen 1.1 and worked without issues so how is it even a feature if the stages can be used on regular 1.1
this reminds me of netplay implementation "is unique and is the first time  it has been done on mugen" well nope paintown did it,you could set up hamachi to play online with 1.1 (kinda tricky and risky to do but can be done) in fact i laughed when they said "is similar to lunaport for 2D fighter maker" yet it isn't even close (press join...wait 40 minutes...nothing is shown....wait an hourstill nothing...give up on testing ikemen go online....how did it even work??)
some kind of reminder "pre rendering on blender and creating the sprites there doesn't make it 3D point being donkey kong for snes isn't a 3D game"
"Thousands of humans falling over like dominoes... ahhh... that sight was so beautiful! I thought my brain was gonna melt..!"

YugaCurry

Quote from: Tabris666 on January 26, 2024, 01:01:30 AM
are they really 3D??
i wonder this since from what i have seen is just a 2D stage and nothing out of the world since can be done (has been done) on mugen 1.1
for example can i just paste a 3d map on the engine and will run it? it use the general map format of obj or something different?
let's be honest most of the so called 3D aren't really 3D stages on ikemen in fact i tested the so called 3D stages on mugen 1.1 and worked without issues so how is it even a feature if the stages can be used on regular 1.1
this reminds me of netplay implementation "is unique and is the first time  it has been done on mugen" well nope paintown did it,you could set up hamachi to play online with 1.1 (kinda tricky and risky to do but can be done) in fact i laughed when they said "is similar to lunaport for 2D fighter maker" yet it isn't even close (press join...wait 40 minutes...nothing is shown....wait an hourstill nothing...give up on testing ikemen go online....how did it even work??)
some kind of reminder "pre rendering on blender and creating the sprites there doesn't make it 3D point being donkey kong for snes isn't a 3D game"

Whole lotta rambling. Check this channel : https://www.youtube.com/c/violinken

PlasmoidThunder

Nice bait, but reading literally anything in the OP would've answered your question.

Quote from: Iced on July 24, 2013, 01:25:14 AM
Oh, I want a diagram. I fucking love diagrams.

Foobs

Quote from: Tabris666 on January 26, 2024, 01:01:30 AM
This is a "serious" thread. If you keep trying to derail it or others like it for the sake of console warring you'll be banned.

SuperFromND

Just updated this guide to add a new section explaining armatures, since support was added some time ago. It's right after the Vertex Colors section. Enjoy! <3

Creator of the Ikemen GO Command List Generator and its successor, Iguana.
I also make 3D stage ports for Ikemen GO. You can find my stages here. :heart:

OldGamer

How come the Moderators are not set a Ping on this very wonderful Guide. for STICKY WE NEED IT :O

SuperFromND

Quote from: OldGamer on March 18, 2024, 02:51:20 PM
How come the Moderators are not set a Ping on this very wonderful Guide. for STICKY WE NEED IT :O

I guess they saw your pleas because it's pinned now. :)

Creator of the Ikemen GO Command List Generator and its successor, Iguana.
I also make 3D stage ports for Ikemen GO. You can find my stages here. :heart:

Sh1nRa358

does this mean we can use stereoscopic dlls to now view mugen in stereoscopic 3d now too?
-What you know,
                    Can blind you from the truth.