Spriter/C2 (11/22, test c3 addon) 4/5 bug fix

Discussion and feedback on Construct 2

Post » Fri Dec 16, 2016 3:05 pm

New plugin version!
  • added 'Set ignore global time scale' action.
  • overrides now work even when animation is paused.
  • fixed bug where overrides wouldn't work on sprites in self draw mode.
  • fixed bug where overrides wouldn't work properly during animation blends.
  • fixed a bug where image overrides wouldn't work in several situations.
  • fixed a bug where metadata wouldn't work after a layout restart.
  • fixed a bug where sounds and events would trigger every tick between instant keyframes.
  • fixed several issues with bounding boxes when resized and flipped.
  • added BBoxLeft, BBoxRight, BBoxTop, BBoxBottom expressions to retrieve the edges of the bounding box like default C2 sprites.
  • fixed a bug that would cause hybrid performance mode (self drawing, with some separate objects like collision boxes) to perform much more slowly than performance mode
  • fixed a bug that was preventing certain performance mode optimizations from working in some circumstances

g3nki wrote:Hi everyone. I am currently using the old spriter plugin and would love to upgrade it to the new plugin version with "performance mode". I haven't done too many characters yet and I could easily delete the old ones and replace them. However, I have a big issue, the main character. A lot of logic has been implemented involving his movement pattern in connection with animation-triggers. is it possible to update the previous scml-object of my main character to the new scml in performance mode? if so, what would be the best way to do this?

All help is greatly appreciated. :)

Hello @g3nki, the steps required are here. (Do a control-F (find) in your browser and search for: 'To change' (without quotes) to quickly find the section : To change your existing project to use the new direct drawing mode)

stricky wrote:@lucid, I've emailed you the CAPX files requested and some further details on the issue. Thanks for looking into this.

The issue is fixed. Thank you.

ScrotieFlapWack wrote:Hi,

I wasn't too sure where to post this.

I am using the Spriter plugin I found and downloaded it from here https://www.scirra.com/forum/viewtopic.php?t=75748&start=0

For some reason I cannot get my sprite to show though. I can't see it in the Construct 2 editor and I can't see it when I run my game either. I followed the instructions on saving it in Spriter using the other save options and made a new event sheet and layout to place my Spriter objects, I have dragged and dropped the .SCML file on to my Spriter layout too. The only event I see in the event sheet is an 'Initialize' event.

Hi, I responded to you a while back. Did you get my reply via email?


TheRealDannyyy wrote:Hello @lucid it's me again and I think I've found a bug.

To give you some background on what I would like to achieve.
I would like to manipulate the angle of a single bone, this would make it possible for me to set the angle of a weapon accordingly to the mouse pointer position.

I've done some smaller tests as you can see in the image below and I couldn't get it to work.
I did use your example capx and tried to set the angle of the pistol but it didn't work at all.
I'm not sure if this is an issue related to the new self-drawing method but the "Override ..." doesn't seem to work with the old method.

This issue is pretty critical in terms of game development and currently slows down our progress.
@lucid I hope that you're able to fix or provide a workaround for this issue, thanks in advance!

My test to override the pistol animation and set the angle to mouse pointer position.
Image


Edit: I'm using the latest version and ignored the error messages since the older version is returning a JS error while previewing.
If the bug fix above doesn't work, it looks like you're using the C2 object names possibly? If so, make sure you use the original object names from Spriter before the specialized save and C2 import prepends the entity name. I added a note in the action about this. Please let me know if any of this fixes your issue.

Anonnymitet wrote:Hi. I've been playing around with spriter for my next project and and must say that it is really great. Character maps are so handy for me who likes to create tons of playable characters that shares the same animation. So thank you for this amazing tool :D

One question. I have an animated character and would like to add a hat to this character. Do I have to animate the hat to match the heads animation or can I just place the hat on keyframe 1 and then lock the hat sprite to the head and it just moves with the head which is already animated?

I know that if I had used the bone tool I could just add it to the head bone but I didn't use bones for this character.

EDIT: I've decided to start over and just build the character with bones instead which makes it so much easier.
Glad you got it working, and yes, it's much easier to do something like that with bones. Don't forget you can still animate the hat individually if you want it to slide a little on the head, but not detach.




BBaller1337 wrote:Hey @lucid, how are you doing?

So... to the point, I tried updating the scml plugin to version 7-9-16 from an older verison and it gave a probably not-very-helpful error (https://i.gyazo.com/dd9ec35330569c7afa6 ... 0d0684.png)

I don't want the edittime error problem you had before but didn't see anything about it being fixed, and I also don't want to update to the new performance mode.

So... is it safe to update to the latest plugin even if we were using an older version? Is there anything I should be concerned about? Trying to find out why an older version of a plugin doesn't work seems like a poor use of effort/time, but I also don't want to unknowingly incur some issues by upgrading (which I tested and SEEMS to work, but... I like to play it safe, haha).

Thanks in advance.

EDIT: Aaaand right after this I tried updating an animation (using the latest version of Spriter and the plugin) and got anotherr error

Image

Again, trying to decipher why this is happening seems like a futile task given how many variables there are, though I also can't afford to like, start over. Any ideas I should try or any specific info I can give to help get this sorted out?

EDIT2:

So... while the C2 implementation of Spriter has never really worked well for me, after updating Spriter to r9 and the SCML plugin to version 7-9 and later the latest version, it's straight stopped working.

So I tried different versions of the plugins, looked for an older version of Spriter (to no avail), tried resaving the CAPX, tried deleting the old object in C2 and re-inserting it, tried creating a new Spriter project and importing the old one into it, tried inserting into the example CAPX you created (since it doesn't have as much going on), and finally, tried creating a new Spriter project and inserting it into the CAPX, which is the only thing that actually works, but I really don't want to have to recreate all my animations. (I tried an older animation and just dropping it straight into the project works fine, but it seems like trying to update anything basically bricks it.)

Hi @BBaller1337. I'm sorry, that all sounds frustrating. I hadn't updated that version of the plugin from previously created caps. Please see if this new version fixes your issues. If not feel free to send me your capx to [email protected] and I'll see what I can do.
Spriter Dev
B
101
S
22
G
12
Posts: 3,274
Reputation: 17,079

Post » Fri Dec 16, 2016 3:42 pm

lucid wrote:If the bug fix above doesn't work, it looks like you're using the C2 object names possibly? If so, make sure you use the original object names from Spriter before the specialized save and C2 import prepends the entity name. I added a note in the action about this. Please let me know if any of this fixes your issue.

The fixes seem to work fine within my project. Thanks a lot for that!
ImageImageImage
B
69
S
24
G
78
Posts: 695
Reputation: 45,332

Post » Fri Dec 16, 2016 7:50 pm

@lucid
Is there a way to apply shaders to specific parts of objects when using direct drawing mode?
B
89
S
47
G
25
Posts: 535
Reputation: 21,827

Post » Sat Dec 17, 2016 12:20 am

digitalsoapbox wrote:@lucid
Is there a way to apply shaders to specific parts of objects when using direct drawing mode?

Unfortunately no. That's one of the tradeoffs of direct mode. As far as I can tell it wouldn't be possible to support multiple effects like that with C2's plugin architecture.
Spriter Dev
B
101
S
22
G
12
Posts: 3,274
Reputation: 17,079

Post » Sat Dec 17, 2016 8:46 pm

Just wanted to say how much I love Spriter. I haven't downloaded the upgrade yet, but I've never had a single problem with my version, and it has greatly enhanced my work. Thanks!! Look forward to the upgrade.
B
11
S
2
Posts: 24
Reputation: 686

Post » Mon Dec 19, 2016 7:41 am

@lucid All good, I wrote that post before I e-mailed you and you fixed a bunch of issues. I ended up just trashing and remaking the animations (though I won't lie, since the animations in my game are kinda complicated and there were a lot, it was super tedious lol) and everything worked after that, so from now on it's just a matter of being super, super careful about updating.

Honestly I think I just have bad luck with upgrading in general: it just took me an entire day to upgrade to Windows 10 and my computer nearly broke in the process, and I've had many issues with other things too, haha.

But I know a little trouble comes with any program, so I apologize if I came off as impatient, I truly am hoping the benefits of Spriter in the long-run will outweigh any issues... with your help/support on occasion :). Thanks~

EDIT: Is there doc on all the variables/attributes/fields/whatever they're called of an SCML object? What about actions? Some of them don't have entirely clear purposes or distinctions and it would help to have such doc just to be sure (and so I can make the most out of all the features). For instance, what is objectx and objecty vs. x and y, does BBox____ return the bounding box of the SCML object or the actual animation frame, what are the different sound events for, etc.

Also, for clarification, how exactly does the volume change in Spriter affect C2? Like how is a decrease in volume in Spriter ultimately reflected in C2? Through the audio itself, events, or something else I can't think of?

Just want to make sure that my own volume controls don't end up say, overriding the sound volume of clips... not to mention if an audio file is played at different volumes and the volume change is somehow embedded into the audio (seems unlikely though) this would result in conflicts without having multiple audio files.
B
19
S
10
Posts: 51
Reputation: 1,675

Post » Thu Dec 22, 2016 2:35 pm

Another new version, everyone! This one has an important optimization that may help some of your games:

Download new plugin version
12/22/2016
  • Fixed a bug that caused multiple instances to each send an ajax request for the same file until the first one was complete. This was bypassing an important optimization and the fix should result in less downloading and faster initial startup for games that have multiple instances of the same object


thanks @terransage

@BBaller1337 I will see about updating the main plugin help page in the near future with more detail. But here's answers to your specific questions:

x and y is the position of the scml object itself. This would correspond with where the gridlines meet in Spriter.

objectx, and objecty are the positions of the individual sprites, action points, boxes, or bones within the animation.

BBox___ returns the box for the entire scml object. You can preset the bounding boxes in Spriter using the bounding box icon in Spriter located in the animation list widget. Choose 'calculate'. You should always do this when using direct drawing mode as well to ensure the plugin knows when the object goes off screen.

If you wish to animate volume and panning changes in Spriter, use the
'on sound volume/panning change triggered' conditions in the plugin and the soundVolume/soundPanning expressions to set the volume in the audio plugin. If you use the triggeredSoundTag expression for both there shouldn't be an issue with multiple sounds playing.
Last edited by lucid on Fri Dec 23, 2016 12:28 am, edited 1 time in total.
Spriter Dev
B
101
S
22
G
12
Posts: 3,274
Reputation: 17,079

Post » Thu Dec 22, 2016 9:44 pm

Thanks for the update! That should prove helpful.

Thanks also for the details, I'll look into what you said when I have a chance. =)
B
19
S
10
Posts: 51
Reputation: 1,675

Post » Fri Dec 23, 2016 11:09 am

Thanks for the new update @lucid, it has reduced my sprite initialization time from 10 seconds to 1 second when starting layouts, and I'm seeing a 20-30% improvement in FPS. Excellent work.
B
12
S
2
G
1
Posts: 26
Reputation: 892

Post » Fri Dec 23, 2016 8:19 pm

@stricky. Awesome. Thanks for the info. I was wondering how much of a difference it'd make in real world examples.
Spriter Dev
B
101
S
22
G
12
Posts: 3,274
Reputation: 17,079

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: ChaoticNewtroll and 10 guests