The VG Resource

Full Version: Extracting 3D Models from APKs?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Been searching for a while now and haven't had much luck, so I've made this thread. I'm also generalizing my question for anyone that might come across this in the future because the little I've found has been a huge help. Maybe this will help someone find more.

Basically, I've been trying to get ahold of a few character models from a game called Shironeko Tennis to no avail for the past several days via APK. I'll explain my findings and methods to see if anyone can help me figure this out.

Using AssetStudioGUI, but I've tried other things, including TinyRipper. Hasn't worked well.

I downloaded my APK from APKpure for anyone curious. I also got into the APK by converting it into a .zip.



Main takeaway notes:

1. There's a particular .gz file that causes AssetStudio to freeze if you try to load in the entire APK folder. It's between the META-INF and res folders. I deleted it and was able to load everything else with no trouble after that.

2. I was only able to find any trace of characters by checking "Display all assets" in the options. For some reason, none of the characters are saved as meshes or 2D textures, but rather as GameObjects. A few other games I've tried to look into have been this way too.

3. The bits of characters are encrypted (well, maybe it's not that serious) as .dat files if you try to extract them. I've been looking for ways to translate, but I don't know enough about coding to be able to get these in a place to even view them. This is the biggest roadblock for me, as I could probably sort through the files if they could be opened.

4. There's a consistent asset called "CharacterLoader" under MonoBehaviors. Aside from the name, I believe this is key to piecing characters together. 


Eh?


UPDATE: After figuring out more things with AssetStudio, I've come to two potential conclusions:

1. The character models aren't included in the base game at all.
2. The character models are buried deep within the game's code and aren't able to be picked up by AssetStudio.

The only evidence I have for the former is that after messing around with AssetStudio more, you can extract pretty much every other mesh in the game. I'm leaning towards the latter being the case, as there aren't really any extensions that you can get for this game.

What puzzles me is that it's clear that it isn't impossible, as I've seen models floating around the web-- even seen a handful of models on DeviantArt and Sketchfab from another game in the Shironeko franchise. I have additionally found posts on Reddit suggesting that people have gotten into the models before, but those posts have been deleted.

There's also a huge chance I'm using AssetStudio wrong. I've tried to match results with other people who have done game rips using AssetStudio, and I've mostly been unsuccessful with it. I guess I'll keep looking around more for more information and reach out to some people since most YouTube tutorials haven't been of any help at all.
Are you sure that the game doesn't download assets after a tutorial or the first time you launch it ? Smile
If so that means that you have to dump the files AFTER this has been done, otherwise they won't be there
(11-01-2021, 11:28 AM)Annaelleme Wrote: [ -> ]Are you sure that the game doesn't download assets after a tutorial or the first time you launch it ? Smile
If so that means that you have to dump the files AFTER this has been done, otherwise they won't be there

You know, I actually reached out to someone about this and they suggested the same thing lol. After doing that, I was able to pull the unity.3d files from Nox using a file explorer and ran them through AssetStudio. I actually have some of the characters now, so that's a bonus. All things considered, I feel incredibly dumb for not trying this sooner.

Now I just need to figure out how to batch download the rest of the game for the rest of them. However, I don't speak Japanese, so I'm going to look around and see if there are translations for the game.

Thanks a bunch.


UPDATE 2: Big discovery while playing this game----- As it turns out, not only is there no batch download option to speak of, I also found out that every character model in the game, with no exception, is downloaded on an *appearance by appearance* basis via cache. This means that in order to even get a hold of anything, you need to manually either find or face against the characters that you're interested in getting the models of in-game.

Of course, this process is going to be absolutely tedious for anyone that wants to get a hold of the characters en mass. It might not even be possible unless you've been playing the game since its launch over four years ago or maybe there's some sort of super-secret way to download everything.

THAT SAID

There are a few tricks you can pull within the game that might just score you a specific character model you're looking for. One of those is going through the leaderboards in the Tower after the main tutorial is complete. Viewing the leaderboard allows you to browse various players that often gladly show off their team comps. Simply by viewing these team comps (they can thankfully consist of up to three different characters, improving your chances) will download those models onto your client from your emulator/phone.

I'd say an even greater tool is to use the search function that's used to find friends. For some reason, it's receptive to English and you might be able to snag a character just by searching for someone who shares their name.

More findings:

1. AssetStudio isn't smart enough to export the texture files for characters' faces along with their respective models. It could be my specific version of AssetStudio that's the problem (and might be resolved if you use an older version), but you'll have to additionally export those textures. The easy way to do this is to filter for 2DTextures and use the keyword "facial_" in the search bar. You can export your filtered assets from there.

----------1.2. A side effect of this happening is that the textures on a character's face won't be wrapped properly and require you to fix it. I recommend watching this quick tutorial for Blender if that's where you want to fix it at (https://www.youtube.com/watch?v=nmzAbeUD...bservatory). I learned quite a bit from this, but I never could figure out how to actually apply my changes to the fully rendered model. Maybe if you have more experience with Blender, you can pull it off.

If Blender doesn't work, you can try Unity as I did. It's a lot more user-friendly and allows you to manually mess around with how the texture is tiled and offset after applying it. With a model I recently got done with (the starter character Iris), I had to adjust the x & y tiling to a multiple of 0.25 for the eyes to get the default look. For other characters, it might get you a different expression. I'd look at the original texture for reference if you want something specific when determining the values for its offset.

The mouth is similar. I would personally tile it to 0.12 for x & y, it looks the best, but you'll have to do some serious experimenting for the offset. Again, absolutely use the original texture file for reference. Some characters have their default mouth above their default expression, others are clear to the top or right of the palette. Just look, it'll take some time but it's worth it.


-----

2. Shoes are a separate mesh from the main body altogether due to being an accessory you switch in and out in-game. If you exported all the models, they're located in folders starting with shs_. If you plan on using Blender to combine everything, I would suggest using the CATS plugin to combine the shoes via Custom Model Creation with the main body, flip the shoes to a -90 angle, and then scale them by 90. I would recommend fixing the bones so they align with the shoes and apply proper vertex weights before you finalize combining them though.

Canonically, all characters can use just about any shoe they want, but if you want something specific, you'll have to find it on your own. That includes finding them in-game.

------

3. Be sure to fix up at least the finger and feet bones in Blender if you plan on going straight to Unity. Because Shironeko Tennis is based in Unity, the program is smart enough to link most of the bones on its own, but in my experience, it butchers the fingers and feet as they are. However, if you want something that's practical for animating, you'll probably have to go further than that in Blender.

-------

That's about it for now. Good luck.


UPDATE 3:

Holy crap, finding specific characters is a pain. Especially characters from collabs, which is weird, because you would think they would be the easiest to find. It's also thrice as hard to find a character with a specific outfit.

Another thing about collab characters, there's actually a lot more than I realized. Like, I came because I saw some Prince of Tennis models, but they straight up have Hello Kitty in this game, along with dancing hot dogs in this game.

There's also rep from a large variety of anime that I didn't know about since information is so sparse for this game, like A Certain Magical Index, FateGO, Konosuba, ReZero, Seven Deadly Sins, Gintama, Attack on Titan, The Quintessential Quintuplets, and I lot more I don't recognize. There's also a lot of single reps that are very hard to come across, like Hatsune Miku and the cat from Yo-Kai.

If you're really looking to get as many models as you can, good luck--- seriously.

-----

UPDATE 4:

Another thing you could try, if you aren't getting results through using English usernames, is to put some keywords/prefixes through Google Translate into Japanese and paste them into the search. I've actually been able to score a few specific characters this way that I couldn't find otherwise.

Still, be prepared to scroll for a while. You might get lucky and find players who put the specific character you're looking for as their lead, but most of the time, it's better to just manually check team comps. You're still only searching usernames that match a specific character, not the character themselves.

Also, try looking for players whose leads have either 5star leads or a fanciful backdrop. Otherwise, 99% of the time, players with anything less will probably have one of the free 4star characters and the other two starters as their lead. There's a lot of null accounts in this game of players who abandoned the game after what I'm guessing was a few days of playing and lost interest, so don't waste your time and ignore those.