Project: Paper2D

For all paper2D comrades out there i just created a thread showcasing our game SPARTAN in WIP section.

We will be more than happy to see you there and what you have to say about our work in progress!

Spread some Paper2D love out there guys and gals! We need it :slight_smile:

A flipbook has an independent material property and it ignores materials used on individual sprite frames. Change material in flipbook editor to same one used on your frames.

Cheers,

  1. Yes, as of 4.8 all of API for editing tilemaps is runtime accessible in C++ and BPs. In BPs it is focused around working with a tile map component, while C++ can work that way or directly on a UPaperTileMap or UPaperTileMapLayer. distinction is necessary as a tile map component can either point to an owned instance or to a shared reusable asset, and I wanted to avoid BP authors accidentally mutating shared asset. You can also start with a template and then further modify it (MakeTileMapEditable on component will clone it into a unique instance copy that can then be modified).

  2. Not with a single component. entire component will either be rendered or culled, and entire component will be rebuilt at end of any frame where it was modified. general approach should be many smaller tile map components rather than one gargantuan tile map.

Cheers,

Hello ,

Did you find some time to take a look at cpu stall logs that i uploaded a few posts back? I could really use some help to figure out what is going on.

Thank you.

It works now, thanks ! Sorry but I’m a bit new to . Thanks again!

Hi Micheal,

With release of 4.8, do you think you will be releasing ? I have been a user of Unreal in past but recently started a 2d project in a similar view style to and other games, and I’m interested in moving it over to Unreal. However it’d be nice to have a template to jumpstart some of progress to switching over, as some of things are still a bit unclear to me. For example, how is depth handled (like, your tent for instance, how does player go infront when he is at bottom and behind when he is at top, same for a tree, etc). I’m new to Paper2d so any insight would be , or simply a template like I mentioned.

Thanks!!
Lucas

Thank you for Paper 2D !

Dear ,

I’ve been looking through 4.8 release notes, and I just had to stop by and say Wow! Paper 2D is really taking off!

I am amazed at how much you, , and rest of Epic are achieving and so fast too!

My personal favorite new addition is ease of importing sprites where bounds of each image in file get auto detected!

And there’s just so much more, like adding circle collision! oh My!

https://docs.unrealengine.com/latest/images/Support/Builds/ReleaseNotes/2015/4_8/image_53.jpg

Amazing work !


Paper 2D is !

https://www.mediafire.com/convkey/a416/xh2a0w6qocsc9xb6g.jpg

Hi .

Why do you guys remove Importer from UE 4.8? All atlases from TexturePacker can not be imported anymore on our projects.

Is there a way to activate it? or maybe is there a new way to create texture atlases? Temporally i copied/pasted PaperJsonImporter to Paper2D source in 4.8 and apparently is working again but i would want to know if maybe there’s a new way to make sprites.

UPDATE: Yesterday i could re import an atlas from TextureAtlas just copying PaperJsonImporter to source folder but now it’s not working anymore.

UPDATE 2: I deleted PaperJsonImporter folder again and restore all my old assets (from 4.7 importer), opened project again (in 4.8) and oh surprise: new sprite sheet was re imported. I don’t get it, pretty confused right now.

UPDATE 3: Re importing only works 1 time. I right clicked my sprite sheet trying to re import it again but got same /Script/PaperJsonImporter error.

module was not deleted but renamed to PaperSpritesheetImporter to better match what it does (since there are other importers in engine). I haven’t seen any other reports of issues with reimporting, but there wasn’t a redirector added during that rename. Can you try adding following to your DefaultEngine.ini for your game project?

[/Script/Engine.Engine]
+ActiveClassRedirects=(OldClassName=“PaperSpriteSheet”,NewClassName=“/Script/PaperSpritesheetImporter.PaperSpriteSheet”)

See if that fixes issues you are having and let me know.

Cheers,

Hi Lucas,

No idea on any particular timetable for more samples.

RE: walking in front/behind of things:

is relatively easy as long as there is a tile boundary for items (e.g., tent is two tiles high, with a bottom piece you should be in front of, and a top piece you should be behind). Create two layers and place top tile on higher layer, and bottom tile on lower layer, with player depth set in between two. works fine and looks good as long as player can’t walk across boundary between two tiles (you’d see them intersecting tent in that case).

If you want player to be able to be both in front of or behind same tile that is say a tuft of grass for example, depending on player’s vertical height, that is much harder to accomplish. For cases like these, I’d probably make them separate sprites rather than part of a tile map, with slightly varying depths, and also adjust offset of player sprite based on their vertical position.

Cheers,

Hi ,

Dropbox - Error - Simplify your life link is dead now. Can you repost?

Cheers,

thanks so much for your early answer.

I added magic line to my DefaultEngine settings and now i can import/re import atlases again. It’s working like a charm.

But , is happening because i converted to 4.8 a 4.7 project?

Yes and no, it is happening in converted projects because I forgot that line in BaseEngine.ini :slight_smile: I will file a bug and see if it can be added in a future hotfix, but for now workaround is to add it to DefaultEngine.ini in each game project you convert (newly started ones won’t need it).

Cheers,

I am glad we can temporally fix our projects. Great job .

When can We see a 2d state machine with smooth sprite blending like in unity? or paper2d need to have any different cool features?

Hey Micheal,

I’ve been messing around with 4.8.0 and I have to say that I’m hugely impressed with how quick and painless it is to setup sprites, flipbooks, tilemaps and like with Paper2D very nicely done.

I’ve been having a tiny issue with getting tilemap collision to work as intended, whenever a paper character (with character capsule collider) collides with generated tile collision, my paper character (BP_LegendCharacter, which is a child of BP_WorldCharacter which extends PaperCharacter) continually gets pushed back, as if it had acquired some fixed velocity along collision normal(s) upon collision. I’m not entirely sure what could be causing or what a potential solution might be – if I make character kinematic, physics won’t work at all – but at point added velocity (for lack of a better description) I was trying to get a gif or something of behavior so it’d be easier to see but I haven’t had any luck. If I can manage to get one I’ll update post, and if you want a closer look at how I have things setup just let me know and I’ll post images or answer any questions. Do you have any idea what could be causing or any potential solution?

Also at ECGC you mentioned that you were using Box2D for 2D physics. Is what is used for 2D setting on tilemap ( one marked experimental) and to what extent is 2D physics working? How would I set up to try 2D?

Thanks again,

Austin R. Snider

Paper2D Tile Map Component’s Tile Map Asset Property won’t save

Paper 2D Tile Map Component’s Tile Map Asset Property won’t save with Map Level when Paper 2D Tile Map Component in a Blueprint Actor Class or C++ Actor Class other than PaperTileMapActor. When I close UE4 Editor, and reopen level that just saved, tile map asset property becoms non-exist asset, it is completly black.

I found that PaperTileMapActor has a function

 #if WITH_EDITOR
 bool APaperTileMapActor::GetReferencedContentObjects(TArray<UObject*>& Objects) const
 {
     Super::GetReferencedContentObjects(Objects);
 
     if (const UObject* Asset = RenderComponent->AdditionalStatObject())
     {
         Objects.Add(const_cast<UObject*>(Asset));
     }
     return true;
 }
 #endif

RenderComponent is UPaperTileMapComponent.

Is it design decision or a defect that has not been fixed yet? It is almost impossible to use PaperTileMapComponent in a Blueprint Actor Class. In C++ Actor class, it is not big problem. Simply add function GetReferencedContentObjects like APaperTileMapActor class will fixes saving problem.

Hi -

I’m working on programatically generating a tilemap in my project, and I’ve run into a few issues that I could use some advice on:

  1. How can I change collision thickness? It seems like it defaults to 50 and there’s no public api for modifying it.
  2. Is there something specific I need to do for collision to be built for a procedural tile map? I’ve noticed when I play in editor there’s no collision until I select tile map component. Once I do collision seems to work as expected.
  3. Is there a way to enable/disable collision on a tilemap at runtime?

Thanks!

  1. when editing sprite pivot points, it would be handy to load a reference sprite that is rendered behind sprite you are adjusting, so its easier to align sprites in an animation. reference sprite could be rendered in greyscale or with a dimmed color value so it stands out from sprite you are working on. maybe could be another tab similar to “edit collision mode”, or it could just work in any of tabs when you select multiple sprites from sprite list.

  2. it would be nice to be able to paint tile maps from within level editor, as an extra paint mode, because although tile maps are currently treated like a stand alone asset, they are often used as unique level parts that have to fit around separate background elements.

  3. paper flipbook components could have an override texture setting, so you can use same animation on a different, but similar, texture. right now, flipbooks contain sprites, and sprites contain textures. if you want a sprite animation that behaves same, but looks different, (for example: a second player character skin), you would need to use separate sprites, with separate flipbooks, called by separate character logic. but if you could override sprite’s texture when setting flipbook animation, you could use same animation data on multiple similar characters, which would save memory and reduce redundant sprite data.

  4. when you extract sprites, besides “auto” and “grid” modes, there should be a “manual” mode, where you can drag out rectangles to add them to list or alt click on existing rectangles to delete them. or maybe, instead of making “manual” a separate mode, you could just add these controls to auto and grid modes, so you can edit their selections before extracting. maybe auto and grid should just be function buttons, instead of separate modes, because they are just functions that update selection, rather than different modes of interaction.

anyway, paper2D is , keep up great work!

RE: Collision issue, I haven’t seen an issue like that, have you created an AnswerHub thread with more information?

Yeah, setting collision domain to 2D on any Paper2D asset type will use Box2D instead of PhysX, but note: is truly experimental, it does not get any testing from QA, it is only compiled for Windows, and is unlikely to be developed further for foreseeable future. I’d recommend instead using 3D domain plus planar constraints options for basically any game (you can either enable it on a per-component basis or globally for your entire project in Project Settings … Physics).

Cheers,