A downloadable tool

Download NowName your own price

Do you want to do batch operations on 3D objects for use in GameMaker (or for other purposes)? Here's a tool which does just that!

Features

  • Import 3D models: D3D / GMMOD (GameMaker), OBJ, FBX, DAE, GLTF/GLB,  3DS, PLY/PLYB, or STL
  • Export 3D models: the same formats as above, or a raw vertex buffer for fast loading (use buffer_load in GameMaker), or a collection of vertex buffers that can be loaded with the provided import scripts
  • Bulk operations: applying transformations, mirroring texture coordinates, rotating the Up axis, and a bunch of other thing
  • Vertex formats: define vertex formats to export models as - in case your game uses a format besides the normal position/normal/texture/color
  • Textures maps: load in textures for models
  • Mesh normals: set flat normals or smooth normals (within a tolerance)
  • Collision shapes: which can be exported alongside the visible models

Notes

Using this tool is pretty simple, but you may wish to know a few things which might not be obvious.

  • The main use of this tool is to do operations in bulk - as such, you can drag model or image files into the program window to have them imported automatically.
  • Textures will automatically be imported alongside obj models whose materials reference them (when the program is able to find them). GameMaker models do not references to texture images, however, so if you want to use one you need to import it manually. Either go to Assets > Textures in the menu at the top of the screen to bring up the texture manager, or drag the image into the program window. You can set the textures in the "Materials" menu.
  • Nobody can ever agree on what the "up" axis should be, or where the origin for texture coordinates belongs, or whether the "d" material attribute means transparency or opacity. The importer will attempt to do the best with what it has, but you may wish to course correct with the respective options.
  • Exporting obj will also export the texture images alongside them.
  • The primary use for this is people who want to tidy up their production pipeline for their GameMaker games, although you can use the models for whatever you want.
  • Windows only. Getting this to work on Linux would be a considerable amount of work which I don't plan on doing, though signs indicate that it probably should work on Wine.

Future stuff

There are a few things I might do in the future. I don't want to make a full 3D model editor, but there are a few other operations that could be useful.

  • Material types: as you can probably see, I've written in some empty space for materials besides the Diffuse texture, but they're not currently part of the shader and you can't do anything with them
  • Texture UV management: this would be a more reasonable feature than a full 3D model editor, although it would still be a considerable amount of work so I'd only do it if a large number of people express interest
  • Texture packing: texture packing

Documentation

can be found here.

Price

As usual, the asset is free as-is. I'll fix simple or game-breaking bugs but more involved support requires payment via either Itch or Patreon. I get the final say in what constitutes "game-breaking."

This project is only officially available through here or (sort of) the Github repository below. If you found it somewhere else, you've probably been scammed and should probably run a virus scan on your computer.

Repository

As usual, if you want the code, it's on Github. Or if you don't want to deal with Github, it's ten dollars. (The rest of the program is free, obviously.)

Credits

Other Relevant Projects

I've made a bunch of other things for 3D in Gamemaker that you might be interested in:

  • Collisions
  • Basic 3D lighting
  • Toon shading
  • Terrain editor
  • 3D model converter
  • Better D3D emulation


StatusReleased
CategoryTool
Rating
Rated 3.7 out of 5 stars
(3 total ratings)
AuthorDragonite
Made withGameMaker
Tags3d-model, converter, editor
Code licenseApache License 2.0
Average sessionAbout a half-hour
LanguagesEnglish
InputsKeyboard, Mouse
LinksSource code, Source code

Download

Download NowName your own price

Click download now to get access to the following files:

penguin-import-scripts.yymps 6 kB
Penguin.zip 9 MB

Development log

View all posts

Comments

Log in with itch.io to leave a comment.

I am trying to get to grips with showing models within gamemaker and following your tutorials. using the penguin render method i think can only draw it on the 0.0.0 position in the world. Is it just meant for demonstration?

I'll have to make my own scripts to draw the meshes moved and rotated?
i'm also briefly trying your d3d scripts, if they could take in the penguin format that'd be amazing

use matrices to transform models

what's the inteded way to use this in a project.
Like adding materials and moving and so on.
Should i just copy/paste/tweak the functions you made myself, or is there something im missing. I dont know if you made some example project anywhere

(1 edit)

I've been having issues with getting material files to load for .objs. Despite being in the same folder as the model, the mtl file just doesn't get loaded and the model has no colour. These are models from a kenney asset pack so I don't think it is an issue with the files themselves. Any thoughts?

I’ll look at it in a little bit, I have a feeling I know why it would have lost the texture images but just in case which model(s) specifically was it?

I tested a bunch from his nature kit

So I tested a bunch of different models and couldn’t replicate the issue. You’re using a relatively recent version of the program (last updated about a month ago) and the material files are named correctly, right?

Yes

So tested it on another computer and the issue still presisted. However loading in a model from kenney's Retro Medieval Kit worked fine, the texutres loading in without issue. Can Penguin just not load colour from mtl files?

Should be able to. Do you have “show vertex colors” in Viewer Settings turned off, by any chance?

Amazing tool, Easy to use and understand.

Keep up the good work 👌

Hello! Just downloaded a newer version than I had and seems like a lot of new features! Thanks!

Any hints on why I can't seem to get vertex color from obj files exported from Crocotile working? (I've figured out the alpha inverting bit)

just learned simply exporting to obj is wiping the vertex color info. I didn't know that. Any tips for doing what I'm trying ? (get vertex colors working in gamemaker?)

(+1)

The obj spec doesn’t officially support vertex color - although there are a few “unofficial” specs, which it seems that Crocotile actually uses. I’ll try to get back to you on that in a few hours.

That would be very appreciated! Thank you!

Okay, it seems to be working. I uploaded a “beta” version of the program (Penguin-beta.zip in the downloads), let me know if it works and I’ll promote it to the regular version.

Actually, I suppose while I’m at it I might as well see if I can get the transparency to play nicely with Crocotile models too.

This is the program I needed, it's great and I'll use it a lot, the only bad thing is that my screen is a small size, like 1280p x 780p. If the program could adapt well to small resolutions it would be 10 out of 10, now it is only 9/10

Yeah, now that the rest of the program is mostly finished I should probably see about working this out at some point.

Ok, you better finish the program and then fix these kinds of things

I’m making this for free. I’ll get to it when I get to it.

I am so glad I found this and your YouTube channel in general since eventually I would like to have 3D objects in my game alongside 2D sprites. The image that you have posted on your GitHub page is exactly what I will be aiming to do since I would like to recreate a Pokémon Gen5 type of look with the flexibility of GMS2 it is going to be really fun.

Just purchased GMS2 Desktop and have already reached parallaxing and a following camera with the Space Rocks tutorial by YoYo in GML.

I would be happy to pay you to be a private tutor for GML if you would be interested.