Spriter/C2 update 11/2 bug fix for performance mode

Discussion and feedback on Construct 2

Post » Fri Oct 07, 2016 12:40 am

@lucid, a few questions. Apologies if these have been covered before:

1. First time starting a layout, spriter objects intitialise fine and I can set character maps using the "on initialised" trigger, but when restarting layouts or moving to another layout the trigger doesn't fire. So not sure how to set character maps when moving to another layout.

2. Does the new directdraw mode significantly reduce CPU usage? My CPU usage is very high. Each enemy has 40+ animations of 10 frames each and there are upto 10 enemies on screen at once. Enemy variations are managed via character maps so there is only one SCML object.

3. If the individual sprites are no longer separate objects in directdraw mode how would I go about setting frame specific hit boxes? I would like to avoid having to set hit boxes outside of spriter (i.e. in C2) for specific animation frames.

Thanks,
B
10
Posts: 21
Reputation: 390

Post » Sat Oct 08, 2016 11:46 am

@stricky

For number two, if you have a lot of animations (I have more than what you stated in your post), don't use charactermaps for that particular sprite object as it will lag due to high CPU usage. Instead, put all of the sprites for each character in their own individual folder using the same uniform naming methodology for each file, as taught in the Spriter tutorial.
Duplicate one and use it as the origin folder for the scml.
Once you finished the animations in the scml, simply replace the content of the origin folder with other folders, click reload and then generate the new atlas spritesheet. And simply do that for each variant that you have. Use the altas spritesheets in C2.
If you previously use charactermaps for each components of the enemies like I do, then separate them into different categories of folders and then assemble all the different spriter object back in C2 using a blank C2 sprite object as the master. Once again, do not use charactermaps for sprites with massive amount of animations that you want to generate a good variety and number of.
It will be a lot of work at first but performance gain in less CPU usage is ridiculous. Charactermaps are meant for simple animations and stand-in sprites.
B
36
S
18
G
11
Posts: 248
Reputation: 8,694

Post » Sat Oct 08, 2016 12:57 pm

@Sethmaster, so does the method you describe result in a different SCML file/Spriter object for each enemy type in C2?
Or do I end up with one SCML file and somehow point to a different atlas spritesheet in C2 to change the enemy type?

Would appreciate some guidance on how to implement if it's the latter.
B
10
Posts: 21
Reputation: 390

Post » Sat Oct 08, 2016 1:15 pm

Have read through most of this thread but don't see a simple solution to the very basic problem raised by @Colludium and @Stricky. How do we get the "on initialised" SCML event to fire when changing layouts? It works fine when starting the first layout but doesn't fire when switching layouts.
I have tried using wait, on loader layout complete, timers, global variables, to properly set character maps when changing layouts, but nothing seems to work. Can anyone shed some light on the best way of achieving this.
B
3
Posts: 3
Reputation: 181

Post » Sat Oct 08, 2016 2:47 pm

stricky wrote:@Sethmaster, so does the method you describe result in a different SCML file/Spriter object for each enemy type in C2?
Or do I end up with one SCML file and somehow point to a different atlas spritesheet in C2 to change the enemy type?

Would appreciate some guidance on how to implement if it's the latter.


The first. It's pretty easy to do once you have a good idea on how to do it and pretty easy to maintain and update. Remember to use families and C2 folders for incredible easy time to organize your objects.

archer007 wrote:Have read through most of this thread but don't see a simple solution to the very basic problem raised by @Colludium and @Stricky. How do we get the "on initialised" SCML event to fire when changing layouts? It works fine when starting the first layout but doesn't fire when switching layouts.
I have tried using wait, on loader layout complete, timers, global variables, to properly set character maps when changing layouts, but nothing seems to work. Can anyone shed some light on the best way of achieving this.


Use an event sheet and layout to hold the scml objects you intended to use and write functions to launch them. On initialised SCML event should be stored there too. Include the event sheet on every event sheet you intend to use the spriters on. Just use on start on layout condition to create the scml objects which will launch the corresponding events. To be honest, I used a lot of different event sheets and layouts to store different spriter objects for organization and ease of updating reasons.

Also, you can take some time to read both the Spriter and Construct 2 manuals for tips and tricks to improve your workflow.
B
36
S
18
G
11
Posts: 248
Reputation: 8,694

Post » Wed Oct 12, 2016 2:26 pm

Hi guys,

I've got a question for Spriter experts (maybe @lucid ?).
Because of network issues (too many requests) I need to reduce the number of assets in some of my games. The problem with spriter is that it's using many small assets (one character is often more than 20 images). Is there a way to make a sprite sheet with the spriter elements rather than 1 element = 1 C2 object? Maybe 1 entity = 1 sprite sheet or something like that?

Thanks a lot ! :)
Image
B
14
S
4
G
1
Posts: 268
Reputation: 1,794

Post » Wed Oct 12, 2016 2:32 pm

B
57
S
15
G
8
Posts: 365
Reputation: 7,884

Post » Wed Oct 12, 2016 3:07 pm

Does spriter characters have any ragdoll mode?

Can you edit bones within a game? Could you for example create a rock climbing game where you move the limbs of a spriter character individually in game?
Follow my progress on Twitter
or in this thread Archer Devlog
B
23
S
8
G
11
Posts: 582
Reputation: 7,413

Post » Wed Oct 12, 2016 3:21 pm

@mudmask Wow! I wasn't really optimistic about it being possible, but I got it to work really easily! Thanks a lot! And good job BrashMonkey! :)
Image
B
14
S
4
G
1
Posts: 268
Reputation: 1,794

Post » Thu Oct 13, 2016 3:10 am

HI guys,

I have a long Spriter object which starts outside of the C2 layout and stretches down.

The problem is that if I place the Spriter object outside of the C2 layout, it doesn't appear.

If I place it inside the layout, it appears no problem, but doesn't solve my issue.

Is there any way to work around this?

Thank you for your help!

PS. I managed to get this working, by changing the "Animation Export Box Size" - I don't however understand why this makes a difference, as I'm not exporting a sequential animation.

If anybody could shed some light on this, that would be awesome :)
B
27
S
14
G
8
Posts: 105
Reputation: 7,250

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: Yahoo [Bot] and 16 guests