Sketchy502 / SDV-Summary

An application to display a summary of the player from a Stardew Valley save file.
206 stars 21 forks source link

How to extract game assets? #2

Closed klusark closed 6 years ago

klusark commented 8 years ago

I wanted to help contribute to the project and I got it running locally, however I get errors about missing assets. Do you have a script that I could use to extract the assets from the game into the directories you expect, or did you just do it manually?

Laukei commented 8 years ago

Hey klusark! We used xnb extraction tools to extract assets and organised them somewhat arbitrarily based on what we needed. Some portions of the image generation process also use images from other sources, such as the base for the farms which we dumped from the game itself using GeDoSaTo, and the cliffs which are cut out of the bare map and re-inserted mid-way through the map generation. We're unsure of the legality of sharing most of these which is why they're not in the repository, so I'm not sure what the best way of proceeding is - we didn't really imagine anyone bar us would want to use this repo!

klusark commented 8 years ago

Ok. I'll see if I can create some scripts to extract it enough in order to get a development setup going. It's probably better to not distribute any game files directly.

Laukei commented 8 years ago

I took a tree of my working directory and trimmed out the stuff I think is redundant or just local clutter, which left me with this. Most of the assets in ./static/assets/ aren't required, but some of them are, and I'm not sure which are which, so I just clone the ./assets/ folder from the root directory. I hope this helps!

|   
+---assets
|   +---bases
|   |       fall_base.png
|   |       fall_overlay_0.png
|   |       fall_overlay_1.png
|   |       fall_overlay_2.png
|   |       fall_overlay_3.png
|   |       minimap_base.png
|   |       spring_base.png
|   |       spring_overlay_0.png
|   |       spring_overlay_1.png
|   |       spring_overlay_2.png
|   |       spring_overlay_3.png
|   |       summer_base.png
|   |       summer_overlay_0.png
|   |       summer_overlay_1.png
|   |       summer_overlay_2.png
|   |       summer_overlay_3.png
|   |       winter_base.png
|   |       winter_overlay_0.png
|   |       winter_overlay_1.png
|   |       winter_overlay_2.png
|   |       winter_overlay_3.png
|   |       
|   +---child
|   |       Baby.png
|   |       Baby_cot.png
|   |       Baby_cot_dark.png
|   |       Baby_dark.png
|   |       Baby_floor.png
|   |       Baby_floor_dark.png
|   |       Toddler.png
|   |       Toddler_dark.png
|   |       Toddler_girl.png
|   |       Toddler_girl_dark.png
|   |       
|   +---farm
|   |   |   craftables.png
|   |   |   crops.png
|   |   |   Fence1.png
|   |   |   Fence2.png
|   |   |   Fence3.png
|   |   |   Fence5.png
|   |   |   flooring.png
|   |   |   fruitTrees.png
|   |   |   hoeDirt.png
|   |   |   hoeDirtsnow.png
|   |   |   objects.png
|   |   |   stone_asdf.png
|   |   |   stone_basic.png
|   |   |   
|   |   +---buildings
|   |   |       Barn.png
|   |   |       Barn2.png
|   |   |       Barn3.png
|   |   |       Big Barn.png
|   |   |       Big Coop.png
|   |   |       Coop.png
|   |   |       Deluxe Barn.png
|   |   |       Deluxe Coop.png
|   |   |       greenhouse.png
|   |   |       houses.png
|   |   |       Silo.png
|   |   |       Slime Hutch.png
|   |   |       Stable.png
|   |   |       Well.png
|   |   |       
|   |   +---grass
|   |   |       grass.png
|   |   |       
|   |   \---trees
|   |           mushroom_tree.png
|   |           tree1_fall.png
|   |           tree1_spring.png
|   |           tree1_summer.png
|   |           tree1_winter.png
|   |           tree2_fall.png
|   |           tree2_spring.png
|   |           tree2_summer.png
|   |           tree2_winter.png
|   |           tree3_fall.png
|   |           tree3_spring.png
|   |           tree3_summer.png
|   |           tree3_winter.png
|   |           
|   +---partners
|   |       Abigail.png
|   |       Alex.png
|   |       Elliott.png
|   |       Haley.png
|   |       Harvey.png
|   |       Leah.png
|   |       Maru.png
|   |       Penny.png
|   |       Sam.png
|   |       Sebastian.png
|   |       
|   +---pets
|   |       cat.png
|   |       dog.png
|   |       
|   \---player
|           accessories.png
|           female_arms.png
|           female_base.png
|           female_boots.png
|           female_legs.png
|           hair.png
|           hats.png
|           male_arms.png
|           male_base.png
|           male_boots.png
|           male_legs.png
|           shirts.png
|           shoeColors.png
|           skinColors.png
|           
+---sdv-uploader
|       setup.py
|       uploader-alpha.zip
|       uploader.py
|       
+---static
|   |   bootstrap.min.css
|   |   bootstrap.min.js
|   |   logo.png
|   |   
|   +---assets
|   |   +---child
|   |   |       Baby.png
|   |   |       Baby_cot.png
|   |   |       Baby_cot_dark.png
|   |   |       Baby_dark.png
|   |   |       Baby_floor.png
|   |   |       Baby_floor_dark.png
|   |   |       Toddler.png
|   |   |       Toddler_dark.png
|   |   |       Toddler_girl.png
|   |   |       Toddler_girl_dark.png
|   |   |       
|   |   +---monsters
|   |   |       armored_bug.gif
|   |   |       armored_bug.png
|   |   |       bat.png
|   |   |       big_slime.png
|   |   |       bug.png
|   |   |       duggy.png
|   |   |       dust_spirit.png
|   |   |       fly.png
|   |   |       frost_bat.png
|   |   |       frost_jelly.png
|   |   |       ghost.png
|   |   |       green_slime.png
|   |   |       grub.png
|   |   |       lava_bat.png
|   |   |       lava_crab.png
|   |   |       metal_head.png
|   |   |       mummy.png
|   |   |       purple_slime.png
|   |   |       red_slime.png
|   |   |       rock_crab.png
|   |   |       serpent.png
|   |   |       shadow_brute.png
|   |   |       skeleton.png
|   |   |       squid_kid.png
|   |   |       stone_golem.png
|   |   |       transparent_slime.png
|   |   |       void_spirit.png
|   |   |       yellow_slime.png
|   |   |       
|   |   +---npcs
|   |   |       Abigail.png
|   |   |       Alex.png
|   |   |       Caroline.png
|   |   |       Clint.png
|   |   |       Demetrius.png
|   |   |       Dwarf.png
|   |   |       Elliott.png
|   |   |       Emily.png
|   |   |       Evelyn.png
|   |   |       George.png
|   |   |       Gus.png
|   |   |       Haley.png
|   |   |       Harvey.png
|   |   |       Jas.png
|   |   |       Jodi.png
|   |   |       Kent.png
|   |   |       Krobus.png
|   |   |       Leah.png
|   |   |       Lewis.png
|   |   |       Linus.png
|   |   |       Marnie.png
|   |   |       Maru.png
|   |   |       Pam.png
|   |   |       Penny.png
|   |   |       Pierre.png
|   |   |       Robin.png
|   |   |       Sam.png
|   |   |       Sandy.png
|   |   |       Sebastian.png
|   |   |       Shane.png
|   |   |       Vincent.png
|   |   |       Willy.png
|   |   |       Wizard.png
|   |   |       
|   |   +---npc_icon
|   |   |       Abigail.png
|   |   |       Alex.png
|   |   |       Caroline.png
|   |   |       Clint.png
|   |   |       Demetrius.png
|   |   |       Dwarf.png
|   |   |       Elliott.png
|   |   |       Emily.png
|   |   |       Evelyn.png
|   |   |       George.png
|   |   |       Gus.png
|   |   |       Haley.png
|   |   |       Harvey.png
|   |   |       Jas.png
|   |   |       Jodi.png
|   |   |       Kent.png
|   |   |       Krobus.png
|   |   |       Leah.png
|   |   |       Lewis.png
|   |   |       Linus.png
|   |   |       Marnie.png
|   |   |       Maru.png
|   |   |       Pam.png
|   |   |       Penny.png
|   |   |       Pierre.png
|   |   |       Robin.png
|   |   |       Sam.png
|   |   |       Sandy.png
|   |   |       Sebastian.png
|   |   |       Shane.png
|   |   |       Vincent.png
|   |   |       Willy.png
|   |   |       Wizard.png
|   |   |       
|   |   +---partners
|   |   |       Abigail.png
|   |   |       Alex.png
|   |   |       Elliott.png
|   |   |       Haley.png
|   |   |       Harvey.png
|   |   |       Leah.png
|   |   |       Maru.png
|   |   |       Penny.png
|   |   |       Sam.png
|   |   |       Sebastian.png
|   |   |       
|   |   +---pets
|   |   |       cat.png
|   |   |       dog.png
|   |   |       
|   |   +---player
|   |   |       accessories.png
|   |   |       female_base.png
|   |   |       female_boots.png
|   |   |       female_legs.png
|   |   |       hair.png
|   |   |       hats.png
|   |   |       male_base.png
|   |   |       male_boots.png
|   |   |       male_legs.png
|   |   |       shirts.png
|   |   |       shoeColors.png
|   |   |       skinColors.png
|   |   |       
|   |   \---professions
|   |           Acrobat.png
|   |           Agriculturist.png
|   |           Angler.png
|   |           Artisan.png
|   |           Blacksmith.png
|   |           Botanist.png
|   |           Brute.png
|   |           Coopmaster.png
|   |           Defender.png
|   |           Desperado.png
|   |           Excavator.png
|   |           Fighter.png
|   |           Fisher.png
|   |           Forester.png
|   |           Gatherer.png
|   |           Gemologist.png
|   |           Geologist.png
|   |           Lumberjack.png
|   |           Luremaster.png
|   |           Mariner.png
|   |           Miner.png
|   |           Pirate.png
|   |           Prospector.png
|   |           rancher.png
|   |           Scout.png
|   |           Shepherd.png
|   |           Tapper.png
|   |           tiller.png
|   |           Tracker.png
|   |           Trapper.png
|   |           
|   +---css
|   |   |   bg.png
|   |   |   frame.png
|   |   |   photogallery.css
|   |   |   popBox.png
|   |   |   style.css
|   |   |   textBox.png
|   |   |   
|   |   \---bulletin
|   |           bulletin.png
|   |           cross.png
|   |           letterBG.png
|   |           paper-full.png
|   |           paper.png
|   |           
|   +---icon
|   |       android-chrome-36x36.png
|   |       android-chrome-48x48.png
|   |       android-chrome-72x72.png
|   |       android-chrome-96x96.png
|   |       apple-touch-icon-114x114.png
|   |       apple-touch-icon-120x120.png
|   |       apple-touch-icon-57x57.png
|   |       apple-touch-icon-60x60.png
|   |       apple-touch-icon-72x72.png
|   |       apple-touch-icon-76x76.png
|   |       apple-touch-icon-precomposed.png
|   |       apple-touch-icon.png
|   |       browserconfig.xml
|   |       favicon-16x16.png
|   |       favicon-32x32.png
|   |       favicon-96x96.png
|   |       favicon.ico
|   |       manifest.json
|   |       mstile-150x150.png
|   |       mstile-310x150.png
|   |       mstile-70x70.png
|   |       safari-pinned-tab.svg
|   |       
|   +---images
|   |   \---skills
|   |           point_active.png
|   |           point_inactive.png
|   |           profession_active.png
|   |           profession_inactive.png
|   |           
|   +---js
|   |       ajaxRequest.js
|   |       photogallery.js
|   |       
|   +---placeholders
|   |       avatar.png
|   |       fall.png
|   |       minimap.png
|   |       portrait.png
|   |       spring.png
|   |       summer.png
|   |       winter.png
|   |       
|   \---saves
|           1ATcXA.zip
|           1ATcXg.zip
|           
+---templates
|       account.html
|       admin.html
|       adminpanel.html
|       all.html
|       analytics.html
|       base.html
|       blog.html
|       blogcontent.html
|       error.html
|       faq.html
|       index.html
|       login.html
|       profile.html
|       recents.html
|       signup.html
|       titlebar.html
|       
\---uploads
JiFish commented 8 years ago

Any news about this? A script to extract assets would be fantastic for people hoping to tinker with this locally.

Sketchy502 commented 8 years ago

Hey JiFish,

There are plans to add a way to organise and process assets provided that the raw, extracted game assets are supplied. We don't want to get into extracting the assets as it is simple enough with readily available tools.

At the moment we are focusing on other areas but hopefully we can get something sorted soon.

Laukei commented 6 years ago

I think https://github.com/LeonBlade/xnbcli basically performs this, and I don't think we have any realistic plans to develop this functionality ourselves