Jump to content

Easy Character Art Tutorial


Recommended Posts

  • Developer
This tutorial will teach you how to create the art for a new custom Don't Starve character.

 

This tutorial requires:

- PC version of 'Don't Starve' and 'Don't Starve Mod Tools'

 

Tutorial:

The create a new character, we are going to install a template character mod and then overwrite the image files to create a new character. Let's get started!

 

The first step is to download and install the Easy Character Art Template mod from either the Steam Workshop or the Klei Forums. You can find instructions how to install a mod here

 

Now launch the game and enable the mod.

post-283016-0-45916600-1401490513_thumb.

 

Now make sure that the mod is working properly by creating a new game with the "The Template" character. You should see the word "sample" on his forehead.

post-283016-0-94299200-1401490515_thumb.

post-283016-0-44158800-1401490514_thumb.

 

Now browse to your mods folder and edit any of the images in the "/exported" folder of the mod.

post-283016-0-74753300-1401490516_thumb.

 

You should now see those changes next time you start the game.

 

Happy modding!   :-)

Link to comment
Share on other sites

Is there any possibility of a build template with the skeleton sprites for RoG lightning? I'm sure I could do it myself, but I'm just curious for those who wouldn't be able to.

Why don't you just use krane?

Presuming you're referring to anim/lightning.zip, here you go.

lightning_scml.zip

Link to comment
Share on other sites

Why don't you just use krane?

Presuming you're referring to anim/lightning.zip, here you go.

attachicon.giflightning_scml.zip

I know that (And I've been using Krane a lot lately to look into how Klei make their animations so good). I was asking for people who don't know how to do that stuff, just so it could be easier for them.

Link to comment
Share on other sites

I know that (And I've been using Krane a lot lately to look into how Klei make their animations so good). I was asking for people who don't know how to do that stuff, just so it could be easier for them.

In that case someone could decompile the anims with krane and post the result here :razz:. I get where you're coming from, I just don't see why it should be Cheerio doing this.

Link to comment
Share on other sites

In that case someone could decompile the anims with krane and post the result here :razz:. I get where you're coming from, I just don't see why it should be Cheerio doing this.

Me neither. I forgot why I did. My brain decides to do stuff wihout me realizing I'm doing it.

Link to comment
Share on other sites

Don't play with Spriter,well don't save it if you do.Just overwrite the images with your own.DO NOT change the image names. You will most likely need to delete the sample_dude.zip inside the wilson folder before each test. 

 

Hope this helps!

 

Ah ok, will have to change how the character looks a little.

 

Thanks for the reply :grin:

 

Link to comment
Share on other sites

  • Developer

Don't play with Spriter,well don't save it if you do.Just overwrite the images with your own.DO NOT change the image names. You will most likely need to delete the sample_dude.zip inside the wilson folder before each test. 

 

Hope this helps!

You shouldn't have to delete the zip file with the new mod tools.  At least, it was working fine for me without doing that. Do you still have to do that?

Link to comment
Share on other sites

You will most likely need to delete the sample_dude.zip inside the wilson folder before each test.

You shouldn't have to delete the zip file with the new mod tools.  At least, it was working fine for me without doing that. Do you still have to do that?

Cherrio is right in that you shouldn't have to delete sample_dude.zip.

Link to comment
Share on other sites

  • Developer
Xg2zSMI.jpg

I am assuming you are not supposed to edit the boundary size of the images, or placement inside spriter?

Every time I try to place the head on, the whole animation bugs up :frown:

Currently you'll have to stick with the template image sizes.  However you can try the different character templates, to get what you're looking for. As part of getting new animations in, I'm going to be try and fix that so you can adjust image sizes. The problem right now is that if you change the image sizes in Spriter, all the pivots end up in the wrong spot and the in game animations don't work properly with the data that comes out of Spriter.

If you however made a new creature like the one in the Creature Tutorial along with it's own custom animations, then you should have no problem messing around with image sizes as the pivots for the animation and the build should always match.

Link to comment
Share on other sites

As part of getting new animations in, I'm going to be try and fix that so you can adjust image sizes. The problem right now is that if you change the image sizes in Spriter, all the pivots end up in the wrong spot and the in game animations don't work properly with the data that comes out of Spriter.

The main problem in implementing this is that in Spriter each object (within a timeline key) may have a distinct pivot, while in Don't Starve's animation/build format each build symbol has a single pivot. Since on build.bin <-> .scml conversion build symbols correspond to files, and a Spriter object is only one out of possibly many instances of a file, the multiplicity of pivots is a major issue.

What you'd likely have to do is, for each file, heuristically choose the pivot for one of the objects using this file as the "main" pivot for the build symbol corresponding to the file, and dump the offsets from the other pivots in the translation column of the anims' projection matrices*, but of course that can only be fully done when all anims are being compiled; older anims may fail to work with the new build.

The above is why I didn't change the pivot computation in the scml compiler. There's no good way to do it, as far as I can see.

* More precisely, you'd need to take the offset from the main pivot, flip its sign, multiply by the linear part of the projection matrix (its top left 2x2 block), add the original offset to that, and add the result to the third matrix column.

Link to comment
Share on other sites

The images are much smaller than the original template... will there be enough room for characters with larger features?

 

Example: I'm re-drawing and recompiling my Warfarin character, who has a large hood and hair that points up rather far. I have to resize the images to do so. From past experiences, resizing images and then compiling them ends up pushing the image down. Will this do the same? Will the body begin with the hood at the chin and the bottom of the body below the legs?

 

If so, then that's a pickle, since the wod build seems to be unable to be decompiled, rendering this near-useless to those who want to make character with features that point out. If that isn't the case, then nevermind.

 

I would like to know this before I waste an entire day doing this only to find that it doesn't work.

Link to comment
Share on other sites

  • Developer

The main problem in implementing this is that in Spriter each object (within a timeline key) may have a distinct pivot, while in Don't Starve's animation/build format each build symbol has a single pivot. Since on build.bin <-> .scml conversion build symbols correspond to files, and a Spriter object is only one out of possibly many instances of a file, the multiplicity of pivots is a major issue.

What you'd likely have to do is, for each file, heuristically choose the pivot for one of the objects using this file as the "main" pivot for the build symbol corresponding to the file, and dump the offsets from the other pivots in the translation column of the anims' projection matrices*, but of course that can only be fully done when all anims are being compiled; older anims may fail to work with the new build.

The above is why I didn't change the pivot computation in the scml compiler. There's no good way to do it, as far as I can see.

* More precisely, you'd need to take the offset from the main pivot, flip its sign, multiply by the linear part of the projection matrix (its top left 2x2 block), add the original offset to that, and add the result to the third matrix column.

That's not actually much different then how you would use a bind pose in 3d animation. And I think it's doable by leveraging the fact that in Spriter, the images(folders/files) have their own associated pivot so the idea would be in scml.exe to always apply the inverse pivot of the images to the timeline pivot on every key which means you could still animate the pivots. The animator would have to start from a template and have to make sure to never change the default pivot for any common player symbols but they could do whatever they want with new symbols.

 

I have this kind of up and running right now and I think it will work out. The in game screenshot uses only the animation data from Spriter and not the build, so I could apply this animation to any character including modded characters.

 

post-283016-0-65117200-1401917106_thumb.

post-283016-0-70294600-1401917046_thumb.

Link to comment
Share on other sites

That's not actually much different then how you would use a bind pose in 3d animation. And I think it's doable by leveraging the fact that in Spriter, the images(folders/files) have their own associated pivot so the idea would be in scml.exe to always apply the inverse pivot of the images to the timeline pivot on every key which means you could still animate the pivots. The animator would have to start from a template and have to make sure to never change the default pivot for any common player symbols but they could do whatever they want with new symbols.

 

I have this kind of up and running right now and I think it will work out.

Yes, Spriter does allow specifying a default pivot on a per file basis, used when the pivot is not set at the object level. It's somewhat fragile to rely on it, since Spriter only allows this for convenience of keeping the default value in a centralised location, treating the object level pivot as the "true" location for specifying pivot, so it will heavily rely on the animator being careful to never change the pivot on a per frame basis. But I agree this is likely the best solution to the problem, and the lack of robustness is a side effect of the differences between the input and output formats.

Link to comment
Share on other sites

  • Developer

Yes, Spriter does allow specifying a default pivot on a per file basis, used when the pivot is not set at the object level. It's somewhat fragile to rely on it, since Spriter only allows this for convenience of keeping the default value in a centralised location, treating the object level pivot as the "true" location for specifying pivot, so it will heavily rely on the animator being careful to never change the pivot on a per frame basis. But I agree this is likely the best solution to the problem, and the lack of robustness is a side effect of the differences between the input and output formats.

I believe they should still be able to change the pivot on a per frame basis if he inverse of the file pivot is applied to the timeline pivot. They just can't change the default pivot which makes sense given that the goal is for animations to be shared across different builds.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...