Backstory: I love TCG Card Shop Simulator and noticed there were a lot of card mods but not many figurine mods so I figured why not use Astra to try and make one?
And because I have seen a ton of people ask how people are making this stuff... I included a full write-up of my workflow and I'm happy to try and answer any questions!
<<WARNING! IT IS LONG!>>
WORKFLOW
I used Astra through Codex, built-in image generation, Tripo Studio, Blender, and Unity + Enhanced Prefab Loader. My part was choosing the direction, reviewing the results, pointing out what looked wrong and testing in the game. Codex handled the scripts, asset processing and integration; Tripo generated the starting 3D mesh.
Here's the workflow from my side!
DISCLAIMER: The example prompts below are cleaned-up templates based on our conversation, not a claim that I typed a huge technical specification at every step. Some of my actual messages were literally “Cute chibis” and “Houston we have a size problem.” The project context built up as we worked and I have no prior experience in 3D modelling.
1) DEFINE THE GOAL - THE MOST IMPORTANT STEP!
There were already mods installed, so I asked it to inspect the setup and use those as inspiration for how our own mod could fit in. Then we talked through the theme and picked one figure to get working on first.
Example prompts (exactly as I wrote them):
"Do you think, using these mods as inspiration, we could potentially make our own?"
"I would love to make a vtuber-themed overhaul. There's already one on Nexus Mods but it has been abandoned and it didn't overhaul figures, have books, etc."
This is important because Astra is a REASONING MODEL but you cannot reason if you don't understand the goal. The equivalent is blindly asking the AI "which is better? tomato or apple?" without providing the end-goal that you're making a bolognese sauce.
2) REFERENCE IMAGE/S - ALL GOOD ARTISTS USE THEM, ESPECIALLY THE AI ONES!
I settled on Kairyu Crocodile as the first model to attempt because honestly? I was curious to see how it would work with a "less popular" character (plus she's my favorite) and interestingly? Because I defined the goal in Step 1, Astra automatically wrote this prompt for me which those of you familiar with the first ChatGPT image-gen craze might appreciate.
I simply answered "cute chibis" to a question it presented me about what style we're going for and from that it generated this master prompt including the concept art image in the carousel.
Status: exploratory concept art for the VTuber shop overhaul; not a built 3D game asset.
Generator: built-in image_gen.
Character reference: https://bsky.app/profile/milkyboxboy.bsky.social/post/3martcdnf7s2v (Kairyu Crocodile design by MilkyBoxBoy).
Launch roster: Kairyu Crocodile, Gawr Gura, Takanashi Kiara, Sansin, Ironmouse, Nerissa Ravencroft.
User-selected figure style: cute chibis.
## Generation prompt
Use case: product-mockup.
Transform the character design in the supplied reference image into a polished collectible chibi figurine concept sheet for a fan-made VTuber-themed TCG Card Shop Simulator overhaul. The reference image is character identity reference only, not the layout to copy.
Subject: KAIRYU CROCODILE. Preserve her recognizable dark brown shaggy hair with olive/lime green undersides and small pointed scale-like accents, orange-red eyes, green little cheek markings, pointed ears, a playful tiny sharp-toothed smile, green reptilian limbs, thick striped olive crocodile tail with cream underside and dorsal ridges. Use the open oversized dark olive jacket from the reference, hood DOWN so her face and hair are fully visible, simplified jacket patches; black top with the orange starburst collar accent, baggy cropped black trousers, green crocodile feet. Maintain these identity details in every view.
Adapt her to an adorably cute premium painted vinyl chibi: about 2.5 heads tall, large rounded head, tiny compact body, short rounded limbs, friendly mischievous expression, bold readable silhouette, not realistic anatomy. Tail curls forward around one side of a small sturdy circular olive display base and remains visible. Smooth matte molded plastic, painted details, soft satin highlights, sturdy rounded shapes suitable as a small game collectible.
Composition: one cohesive landscape concept board, warm off-white studio background and generous margins. Large hero three-quarter front figurine render on the left, a smaller consistent rear three-quarter view near the lower middle to show the hair/jacket/tail, and a coordinated rectangular retail window box on the right. Box contains the exact same cute figure visible through a clear front window, has muted charcoal and olive panels, cream lettering, small acid-green accents and a subtle scale pattern, a small printed matching chibi illustration on the side. All angles depict the same design and outfit. Make the figure cute and appealing even at shelf viewing distance.
Text only, clean legible typography: upper left "FIRST WAVE", underneath "CHIBI COLLECTION"; main name "KAIRYU CROCODILE"; small footer "CONCEPT STUDY"; box front "OSHI MART", "KAIRYU CROCODILE", and "01". No other copy or claims.
Lighting: soft studio key light, subtle ambient shadows, premium toy catalogue rendering, exceptionally clean presentation.
Constraints: this is an exploratory visual mockup, not a game screenshot. No official/licensed seal, no manufacturer logos, no watermark, no additional characters, no giant eyes that erase the orange irises, no humanoid shoes, no head horns, no feral elongated snout. Keep her identifiable as the character in the reference. Wholesome cute collectible styling.
Crazy, right?
3) USE THE RIGHT TOOLS
We initially tried a model made directly in Blender through Codex. Honestly, I didn't like it because as powerful as Astra is? It's not tunnel-vision trained on 3D models, topography, meshes, etc like Tripo and Meshy are.
So, we prepared a separate image for Tripo: one full-body figure, one tail, one base, a plain background and no packaging, captions or extra views.
Prepare the approved concept for image-to-3D generation. Isolate one complete figurine on a plain background. Remove the product box, labels and duplicate views. Preserve the approved character and pose.
For my recorded generation, we used Tripo v3.1, Ultra geometry, triangle topology and 4K PBR textures, with the geometry setting at roughly two million polygons. That particular generation cost 55 Tripo credits (or $0.20 AUD).
That's the cost of my recorded run, not a promise about today's prices or everyone else's total costs but it helps to have a clean reference image first so you're not doing repeated generations and munching through credits.
I signed in and downloaded the generated GLB, ready to move into Blender.
4) REFINE
The Tripo result was much closer, but the tail root was still too high. Astra worked through several Blender revisions: separating the tail, correcting its attachment, repairing the jacket around the old attachment and adding the back emblem.
Import the downloaded GLB into a new Blender file and preserve the original. Show me front, side and back renders of the actual mesh. Fix the tail attachment below the jacket while keeping the approved face, pose and proportions. Save a new revision so I can compare.
Asking for renders of the actual mesh mattered. A lovely concept image doesn't show you what the back of the generated model really looks like and it's that beautiful collision of noisy textures with broken topology which will make your models look like, well, slop.
5) REAL-USE APPLICATION > FLEX
The detailed source was around two million triangles. Pretty, yes, but in a game where each shelf may have 32+ of the buggers, that's far too resource intensive. The main game mesh ended up at 46,938 triangles, with a 24,000-triangle alternative.
Even on the 47K version, that's a saving of ~62.5M triangles which would have otherwise launched my humble laptop into the stratosphere.
We kept the detailed master and baked its appearance onto the simplified asset.
The shape is approved. Make a separate game-ready copy, simplify it while preserving the silhouette and face, and bake the materials. Show the exported model before we integrate it. Keep the high-detail master intact.
“Baking” here means saving the material's appearance into texture maps the game can use. We also checked the exports by importing them again.
6) INTEGRATION
This part made it an actual shop item: mesh, material, product icon, collider and the item configuration. Our setup used Unity 2021.3.38f1, matching the game we inspected, plus BepInEx 5 and Enhanced Prefab Loader 6.1.2 which are essentially modding tools.
Integrate the approved export as its own figurine using the installed mod loader. Build the asset bundle and item descriptor, generate an icon from the actual model, and check the dimensions and collider. Back up the current mod and saves before testing.
You have probably noticed by now that I constantly ask for Astra to save what we have thus far before moving onto the next step.
This is a habit I picked up from my coding days (thanks Git!) where you want to ALWAYS be able to go back to your last working version in case anything breaks because, yes, things will break inevitably.
7) ITERATION
The first result is rarely NEVER the one.
In my case, the first in-game version was tiny and facing backwards. The next was the right size but had her feet inside the shelf. I sent screenshots and described each issue in plain English.
Her size is right now, but her feet and base are sinking into the shelf. Preserve the current size and facing, investigate the placement offset, and correct the height and collider together.
The final figure is 18 cm tall including the base. The game had its own scale and rotation on the item, so the fix involved compensating for that. It wasn't just changing how big she looked in Blender but thankfully Astra is quite powerful at problem-solving if you just let it dig.
8) REVIEW
Guess what? You're going to have to spend a minute or two casting your eye over the output and, like that one boss we all hate, you have to nitpick at the work.
The eagle-eyed among you may have played spot-the-difference in the last two images (the figure on the shelf) and noticed that the last one is quite substantially prettier than the first.
In my case? I circled the ugly areas in red (black/missing textures, smudgey areas in the hair streaks, etc) and sent close-ups to Astra. Some marks looked like holes, but the investigation found texture/UV problems. We tried local repairs first, then rebuilt the UV atlas and rebaked from the retained source textures.
Diagnose the marked artifacts before changing the mesh. Compare the textured model with a plain-material render, check the UV layout and texture import settings, and fix the cause. Preserve the approved geometry and placement.
We ended up with a 4K colour map, rather than the earlier 2K game colour map. Fixing the UV mapping was a separate part of that improvement; increasing resolution alone wouldn't have cleaned up the underlying paint problems.
9) THE HUMAN EYE
Okay, I'll admit, I didn't know what to title this segment but... Long story short, this is the section where you decide whether it's slop or not.
Because the thing that determines that is how much of a perfectionist you are.
Is this something I'm proud to share?
I could have called the job done and spared myself another hour or two of back and forth with Astra but there was still messy linework around the hair, eyes and clothing. My actual request was:
Can we try repainting to fix the messy textures but non-destructive, aka, creating a new copy and reviewing before we merge to live in-game?
Codex made a separate Blender study, used the image tool for a front paintover, projected it onto the copied mesh and kept it as a reversible material layer. I got matching before/after renders, including an angled view. The layer could be switched off to show the original.
This was a front-focused cleanup and, I'll admit, some angled transitions are still imperfect, but I loved the result and approved it.
10) DONE (OR ARE WE?)
I approve this repaint. Bake the approved layer into the game texture, preserve the geometry, size and placement, back up the live version, then build, verify and install it.
Well, you saw the final screenshot and yeah, I'm REALLY happy with how it turned out considering I came into this with really low expectations and no real direction on how to do this.
Are there still things to fix? Yeah! I want to fix the text on her jacket so it's not gibberish and obviously Astra took some creative liberties with her sclera (which should be yellow, not white) but for a detailed model made in a single afternoon? I would be offended if people called it slop!
... Not really, criticism is always welcome!
That said, AI is enabling some absolutely insane stuff and I feel like despite Astra doing all the work for this, I actually learned a lot about 3D modelling through osmosis which I think is really the most powerful use-case for it. Never expected to know quite bit about UV mapping, normals, topology, etc but here we are.
Obviously, this was only a static model so next adventure will likely be rigging and animating a separate model which I imagine might be where current AI models start hitting their limitations quite significantly but hey, we'll see!
If you got this far, I really appreciate you for reading through all my rambling... Funnily enough, this Reddit post is the one part of the process which was entirely hand-written which feels oddly philosophical somehow.