Project: Paper2D

Can’t stop laughing! A month later and after opening my heart to forum it took you 2 minutes flat to fix one of issues I had reported. When I come over to visit your offices I am taking out for drinks. I am dying to get to know you better. <3

Haha, it took a bit longer than two minutes. I’d actually checked in fix before you posted today; you replied while I was looking back in thread to find report post and I didn’t see your reply until after that.

Cheers,

I was able to reproduce , although it looks like collision is wrong on sprite instances too, not just in flipbook, so it’s probably not flipbook specific. I’ll have a look.

Cheers,

I’ve checked in a fix for incorrect collision bounding box generation when sprites were rotated in source texture: /EpicGames/UnrealEngine/commit/58ca71fd6a7dff866f66c1b6b4dac6ba5442ccc4

It also bumps Paper2D serialization version, so any existing rotated sprites with bad collision will be fixed up on load.

Cheers,

Hi Inverness,

I totally agree that these sorts of capabilities are important and useful but I’ve been holding off on doing major keyframing/etc… changes in flipbook editor because either of two features may completely obsolete them:

  • Sequencer
  • Skeletal sprite animation

No news on either front at moment, just wanted to let you know it’s certainly on my radar. Also worth mentioning that in any event, we’ll keep flipbooks around and/or provide an asset conversion path in editor.

Cheers,

I really love fact that you always take time to read about our concerns :slight_smile:
I think Skeletal Sprites are really important for a 2D game, and I have been waiting for it for a long time… In meantime I’m prototyping my game using 3D sidescroller with orthographic view, so I have been stucked thinking about how skeletal sprites will work, will they use animation blueprints just like 3D games but using sprites and flipbooks?, I don’t want to work on something that will not work on future.
Thanks for all your work, I love Paper2D :slight_smile:

There are some details to be worked out regarding actual component / asset types, but idea would be to leverage all of work that has gone into 3D animation system and Persona; using sprites attached to a skeletal hierarchy, playing regular animation sequences (giving us anim notifies and metadata curves; though there’d need to be a ‘frame switch’ track type allowing changing out sprite parts), allowing creation of anim blueprints, etc… Once those systems are in place, it should be feasible to import from Spriter and Spine as well.

Note: Skeletal sprite animation is still backlogged, so when or if it comes is not determined yet!

Cheers,

These two were added in:

CL# 2459827 (/EpicGames/UnrealEngine/commit/a3fc65b3181073a022c55cc01094cf9cbff11a47)
Flipbook Editor: Added key frame menu options to act on associated sprite:
- Find in Content Browser
- Open sprite for editing
- Replace sprite with a different one
Flipbook Editor: Added current keyframe # in section header

And:

CL# 2461425 (/EpicGames/UnrealEngine/commit/009f9efbbf41e6630c002966b1e2664226a1d17f)
Paper2D: Generalize socket selection/editing code from sprite editor and allowed sockets to be seen in flipbook editor as well
- Added a shadow to in-viewport display of socket name
- Added a show menu with basics to flipbook editor
- Sockets from sprite keyframes are now visible in flipbook editor (can be toggled in show menu)

You still can’t edit sockets in flipbook editor but you can at least see where they are and get a sense of how they animate.

Cheers,

For anyone who was having issues with reimporting sprite sheets, I’ve checked in a fix in /EpicGames/UnrealEngine/commit/1310aaef6d7a11b8e3caf9921455a1038576a4e4, but you can also work around issue by opening Textures folder and using right-click reimport on individual texture pages before reimporting sprite sheet asset. seems to solve issue in repro case I was given.

Cheers,

Just to let you know fix about preview images not showing, works but only if i click on image itself . So every time i close and re open editor i have to redo whole clicking thing all over again. Now it is not so bad as beginning because if figured out a way to speed up process. If i Ctrl+A all of them and right click then everything re- appears as intended.

Another few things i would like to remind you are:

1)We can not see any lighting when we use front camera. We can always switch to perspective but for a 2D game it is a lot easier to play around with lit materials when in “Front”.
2)Every time we open up our projects and camera is set to “Front” system reverts to “wire frame” even if we had saved something else when we exited Unreal.
3)Thumbnails for newly created blueprints are always blank.They only show default category icon.
4)If you save a screenshot to be able to see what you are doing and you change a sprite inside blueprint (delete or select another one to replace it ) then it reverts again to default icon.
5)If you directly create a blueprint from a sprite then system does not auto import its name and you have to manually type it.

Happy bug killing!

I was wondering, with new 4.8 upcoming, would that make having dynamic sprite paperdolls easier to generate? I posed a question here: Creating an RPG-esque Equipment Paperdoll - Blueprint - Epic Developer Community Forums

Essentially I just need an easier way to switch out whole sprite sheets to new images so that I don’t have to hard code in every single flipbook and sprite, which in 4.7 that is only way I see it being done.

thread is not right place to report random bugs (even Paper2D bugs should be reported on AnswerHub first/primarily).

RE: Thumbnails, they are stored in package, so you will need to resave any sprites that had bad thumbnails before fix, and they will stay fixed after that.

Cheers,

I replied to other thread about how to do it with separate assets for each page.

I am loathe to make general assumptions about identical layout across multiple textures, etc… with assets (e.g., what if you add a new hat in DLC that is in a separate texture, or run out of space in an atlas page and have to go to multiple pages). However, if you are using C++ you can do right now if desired by creating a UPaperSpriteComponent or UPaperFlipbookComponent subclass, and swapping out texture when FSpriteDrawCallRecord is built and sent to render thread (e.g., in SendRenderDynamicData_Concurrent() and CreateSceneProxy(), set DrawCall.BaseTexture to whatever other atlas page you want to use).

Cheers,

Most of them have been reported in answerhub. It was just a friendly reminder in case you are swamped with work and you unintentionally forgot about us. :slight_smile:

I have actually started on your previous suggestion of creating a data-only blueprint, children classes, and then reading values from it into my character blueprint.

I will also look into using c++. Might there be a way to turn into a Blueprint itself? Something that has an input for a texture atlas?

Please do . It’s probably one of most requested tutorials I am seeing regarding Paper2D. :slight_smile:

Edit: is best news I’ve seen all month! " moved card Better tile map collision to In Progress on Paper2D Tasks"

Problem changing source sprite

, guys, how are you changing source sprite of a paper sprite component?

On my construction script i use SetSprite and it works (result pin is true)

then i want to replace that sprite for other on click. I use SetSprite again but it’s not working (result pin is false).

What am i doing wrong?

Check output log for a warning message. My guess would be that you’ve got component mobility set to Static, so you can only change sprite during construction and not afterwards. fix would be to change mobility back to Moveable.

Cheers,

OMG You are right .

I changed mobility value in my PaperSprite blueprint to Moveable and it’s working now.

Thank you very much .

Using Custom or Shrink Wrapped Sprite Collision

Hi there . I’m a professional game developer working on an indie title that is a hybrid 2d/3d game with a perspective camera that is locked to a horizontal plane. I’m using Paper2D for my characters and I’m having trouble getting per sprite custom collision to work. It would be really nice actually if were documented somewhere. docs cover creating collision in editor nicely but nowhere is it explained how to get it working in game on a character. I’m pretty much working entirely in C++ here.

Now digging through these threads I’ve found a couple clues. My character class is based on 2d side scroller template so it inherits a PaperCharacter class. I’m thinking is part of my problem as I found a comment in thread that says you can’t use individual frame Collison on characters with Movement Components. All I want to do is retain capsule Collison for moving character in world as is but be able to get overlap events for collisions with per frame custom colliison with certain objects (melee weapons actually ). I found your comment about calling GetSprite()->GetBodySetup () to access custom sprite Collison and that is returning my custom collision in debugger, but its not in a form i can use yet, how do I turn a UBodySetup into something useful? All of explicit Overlap test functions take a PrimitiveComponent and I can’t see an interface to create one of those per frame frome each sprites body setup. I only have 2 characters on screen at a time so I’m not concerned about expense of physics state changing for every frame of animation. In fact I will probably end up using shrink wrapped option for all my sprites. I get how to setup filters and overlap events but I’m finding path to actually getting per sprite collision working on a character in game to be pretty unclear. I’m hoping there’s a way to do without manually testing each pair of colliders. Thanks for your time.