User Tag List

Page 1 of 20 12311 ... LastLast
Results 1 to 40 of 777

Thread: Project: Paper2D

  1. #1
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002

    Project: Paper2D

    As you may have noticed, there was an unsupported experimental plugin named Paper2D already present in the 4.0 launch.

    I'm very happy to announce that we're going to be taking it from experimental to a supported engine feature over time. The goal of Paper2D is first-class support for making 2D and hybrid 2D/3D games in UE4.

    Anyone who is interested will be able to follow along with the live Perforce->GitHub mirroring, and you can see the current Paper2D Trello Board here (tasks / roadmap / etc...).

    As a disclaimer, anything listed on the roadmap may not actually make it into the engine as planned today; we may run into complications that push out a feature, or we may have reason to stop working on it altogether. Items in our backlog may never see the light of day either, as they are simply ideas we’ve discussed but haven’t yet figured out if or how they would best fit into the engine. While we intend for most items on the roadmap to end up surfacing as estimated, we want to make it clear that there is no guarantee of a feature being added to the engine even if it’s currently listed.

    There is a quick start guide / initial docs thread on the forum which covers more about what is considered fully supported, available as early access, or totally experimental as of the 4.3 release.

    Cheers,
    Michael Noland
    Last edited by Michael Noland; 07-18-2014 at 01:00 AM. Reason: updated as of 4.3 release

  2. #2
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Note: These updates will pertain to the main branch on GitHub unless otherwise stated.

    [Weekly 2D Status 6/30/2014]
    Everything listed here will be in 4.3, but later updates will be about future releases as we have branched for 4.3 today. I've also taken a pass at updating the 2D Trello roadmap to reflect completed work and changed priorities.

    Enabled Paper2D plugin by default in the engine, so it will be usable in content-only games in 4.3

    Editor and documentation work to properly message the state of Paper2D in 4.3
    • Overall Paper2D in 4.3 is an Early access preview - While not considered production-ready, it is a step beyond 'experimental' and is being provided as a preview of things to come
    • Created placeholder editor intro tutorials, etc...
    • Sprites and Flipbooks are Early access
    • 2D collision/physics, terrain splines, atlasing groups, and tile maps are Experimental (hidden behind enable flags where possible)

    Created 2D side scroller game template (BP and C++ variations)

    Productization / usability polish pass
    • Added pixels per unreal unit scaling factor to sprites, with a per-project default setting
    • Visual pass on Sprite Editor
    • Completely revamped Flipbook Editor
    • Flipbook component improvements (play/pause, looping control, reverse, etc…)
    • Renamed Paper2D classes to better match their associated assets and parallel existing engine components
    Last edited by Michael Noland; 07-01-2014 at 12:40 AM. Reason: Added Weekly Status 6/30/2014

  3. #3
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    [reserved for future status updates 2]

  4. #4
    0
    hybrid 2D/3D games in UE4
    Hmmm isn't this also would make Paper2D another solution for HUD? that would be pretty good

  5. #5
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Hi Shadowriver,

    It may be applicable for some uses, but UMG is our proposed solution for editor-centric UI and HUD stuff. We'll be collaborating to share code wherever it makes sense (e.g., text formatting and layout, possibly atlas generation code, etc...), and will probably support things like drawing paper sprites on a UCanvas / AHUD, as well as drawing them as widgets in UMG.

    Cheers,
    Michael Noland

  6. #6
    0
    Infiltrator
    Join Date
    Apr 2014
    Posts
    13
    You are probably not looking for feature requests but some form of 2d skeletal animation support would be awesome, not just flip book / tilesheet style animation.

    On the Trello board, it would be great if you could highlight things that the community could tackle too=)

  7. #7
    0
    Infiltrator
    Join Date
    Mar 2014
    Posts
    10
    This is something I would like to help. How can we tacker who is working on what?

  8. #8
    0
    Supporter
    Join Date
    Mar 2014
    Posts
    6
    I'm interested in this as well.

    Quote Originally Posted by xgalaxy View Post
    You are probably not looking for feature requests but some form of 2d skeletal animation support would be awesome, not just flip book / tilesheet style animation.
    Do check out http://esotericsoftware.com/. I recently integrated their skeletal animation system into a 2D game and I liked it - both the workflow and the runtime integration was pretty seamless.

  9. #9
    0
    Would be cool to have a 2d terrain tool like this http://www.simbryocorp.com/ferr2dterrain/

    - Steven

  10. #10
    0
    Well there probably will be need for all kind of tile mapping tools for different perspectives, i guess those could be seperet plugins

  11. #11
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    @hbrock and @xgalaxy, now that the public overall roadmap is up, I'll try to get the trello board for Paper2D up.

    There are a number of serial dependencies I need to work thru first before others can just jump in without the ground shifting out from underneath them. After that, it will be much easier to grab work from the 'nice to have list' or improve what is there, especially adding features to the sprite editor, etc...

    I'm currently focused on the core bits that are necessary to even consider using Paper2D in a game (namely efficient rendering support with automatic atlas generation and batching).

    @ssfulfe, 2d textured splines is already on my radar, though I haven't seen Ferr2DTerrain before, which seems to go a bit beyond it (slope detection changing the border texture / etc...). I'd love to have features like that, but fundamentals come first I think UbiArt does a similar system for their platforms and terrain as well.

    Cheers,
    Michael Noland

  12. #12
    0
    The Rainbow Warrior



    Join Date
    Mar 2014
    Posts
    2,549

    Red face

    Dear Michael and Everyone,

    James Golding had requested I make a FRect2D class,

    sounds like it will be useful overall, in your endeavors


    It is currently pending on Git hub
    https://github.com/EpicGames/UnrealEngine/pull/129

    Has many intersection testing functions, including isolating 1 axis at a time.

    Also my favorite feature:

    You can build a FRect2D from an arbitrary number of points located anywhere!

    You do not have to know the min and max points of the rectangle in advance!

    example:

    Code:
    FVector2D RandomPoint1;
    FVector2D RandomPoint2;
    FVector2D RandomPoint3;
    
    FRect2D NewRectFromRandomPoints = FRect2D();
    NewRectFromRandomPoints += RandomPoint1;
    NewRectFromRandomPoints += RandomPoint2;
    NewRectFromRandomPoints += RandomPoint3;
    Wherever these random points are in 2D space, an appropriate rectangle will be created from them!

    You can also pass in an array of points similar to FBox (full details on Git hub)

    Congrats on all your awesomeness Michael!

    Rama
    Last edited by Rama; 05-08-2014 at 02:50 AM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  13. #13
    0
    Infiltrator
    Join Date
    Apr 2014
    Posts
    20
    Hi Michael

    Thanks for moving paper 2d to a supported feature. I tried using the plugin yesterday. I could successfully create the sprites and placed a few in the viewport after doing so. The major pain is the placement as it is 3d viewport placing 2d assets is tough maybe only for me. A 2d viewport would help for easier alignment of 2d assets.

  14. #14
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Hi Shomit,

    You can switch the level editor to orthographic mode using the drop-down that says Perspective, and choose Front, Top, or Side orthographic (2D) plan views.

    Cheers,
    Michael Noland

  15. #15
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    You can see the current Paper2D Trello Board here (tasks / roadmap / etc...)

    As a disclaimer, anything listed in the current version may not actually make it into the engine as planned today; we may run into complications that push out a feature, or we may have reason to stop working on it altogether. Items in our backlog may never see the light of day either, as they are simply ideas we’ve discussed but haven’t yet figured out if or how they would best fit into the engine. While we intend for most items on the roadmap to end up surfacing as estimated, we want to make it clear that there is no guarantee of a feature being added to the engine even if it’s currently listed.

    Cheers,
    Michael Noland

  16. #16
    0
    Infiltrator
    Join Date
    Apr 2014
    Posts
    20
    Hi Michael

    Why dont you assemble a team from forum members who are interested in 2D features you can mentor us in the right direction so we can help in the development of 2D features. So we can get Paper 2D features faster . By the way if you consider doing it i am in.

    Thanks
    Shomit

  17. #17
    0
    Infiltrator
    Join Date
    Mar 2014
    Posts
    10
    Quote Originally Posted by Michael Noland View Post
    You can see the current Paper2D Trello Board here (tasks / roadmap / etc...)

    As a disclaimer, anything listed in the current version may not actually make it into the engine as planned today; we may run into complications that push out a feature, or we may have reason to stop working on it altogether. Items in our backlog may never see the light of day either, as they are simply ideas we’ve discussed but haven’t yet figured out if or how they would best fit into the engine. While we intend for most items on the roadmap to end up surfacing as estimated, we want to make it clear that there is no guarantee of a feature being added to the engine even if it’s currently listed.

    Cheers,
    Michael Noland
    I will take a look at the board tonight.

  18. #18
    0
    Hi Michael,

    I'm excited about the development of Paper2D in UE 4 and wanted to offer a feature idea, that may not have been considered already. I believe it would be really useful to be able to import SVG assets from Illustrator or other vector drawing apps into UE4 and then dynamically rasterized into a sprite context when needed. In other words, the SVG file remains an asset in a UE4 project, and only rasterized once when it is used on screen, or updated when a sprite is scaled to a larger size on screen or when multiple resolutions of the sprite are required. From my understanding, sprites are usually more performant in games, but vector graphics can take up far less storage space especially when high or multi resolution images are required, not to mention the creation of sprite sheets/atlases. And of course, sometimes the style of your assets require a more clean vector graphics look anyways. Seems like a waste to have to rasterize vector graphics into PNG files beforehand just to get that look.

    I believe this Vector/Sprite hybrid concept would make a lot of sense for Paper2d in UE4. The key however, is that you're not trying to rasterize vectors into sprites all the time, only when an update is needed. I'm interested to know if there are reasons why you think this would be a bad idea or perhaps just a useless one!!

    Cheers,

    Jason Wilhelm
    Last edited by JasonW; 05-12-2014 at 03:27 PM.

  19. #19
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Hi Jason,

    Using vector art can be quite nice for sharp images at any resolution, but there are certainly some potential downsides to rasterizing it into a cache. For example, imagine that you have multiple instances of the same object, each independently zooming in and out (e.g., a bunch of buttons that can all play their own bounce animation when clicked, or spawning characters or whatever). If you place every unique scale (and possibly rotation) instance in the cache, you can quickly run out of memory and crash if the cache can grow unbounded, or thrash the cache + force a rendering flush if the cache has a maximum size.

    Slate actually handles something like this with a runtime atlas for font characters, rasterizing characters as needed at each scale size used in a frame. This works pretty well in practice, though quickly zooming in and out in a Blueprint can pollute the cache temporarily.

    I agree that it would be quite useful, even if it just rasterizes to the maximum size on load, reducing your download size. I'll add it to the roadmap as a wishlist item.

    Cheers,
    Michael Noland

  20. #20
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    On that note, has anyone worked with SVG before? I had a quick look around for svg libraries and didn't see much with a suitable license, seems like most things use LGPL. This looks interesting https://github.com/memononen/nanosvg but it's not clear how compatible it is (SVG is a pretty complex format and I get antsy whenever someone rolls their own XML parser).

    Cheers,
    Michael Noland

  21. #21
    0
    Quote Originally Posted by Michael Noland View Post
    On that note, has anyone worked with SVG before? I had a quick look around for svg libraries and didn't see much with a suitable license, seems like most things use LGPL. This looks interesting https://github.com/memononen/nanosvg but it's not clear how compatible it is (SVG is a pretty complex format and I get antsy whenever someone rolls their own XML parser).

    Cheers,
    Michael Noland
    I haven't got any experience with any of these libraries, but did look around last month for some with a thought of creating a SVG Slate widget, and about the only two I found that looked interesting were the Nanosvg one, and libsvgtiny. However I don't think either of those libraries support the full SVG format.

  22. #22
    0
    Hi Michael,

    Thanks for adding vector graphics support to the Paper2D wishlist. I can certainly imagine the cache issues you described when dynamically scaling sprites. I'm glad you see some merit in using vector graphics to save storage and perhaps in creating sprites at various resolutions on load.

    I looked around for SVG libraries as well and only found this https://code.google.com/p/fog/ so far. I also read that WebKit supports importing SVG files and converting to an intermediate format before rasterization, not sure if something like that could be used. The NanoSVG library looks really interesting. I'll keep looking for SVG related stuff.

    The main reason I like the SVG format, is that so many authoring tools support it as an export option or can edit them directly. Exporting SVG files directly into UE4 would save lots of time converting to other pixel based formats, especially if you have to go back and modify the original vector graphics at some point, or have to create layers for articulated characters. Anyway, I'm excited about the possibilities!

    Jason Wilhelm
    Last edited by JasonW; 05-13-2014 at 01:01 PM.

  23. #23
    0
    I thought of another interesting feature idea that could be added to Paper2D's Wishlist. It entails, being able to make color adjustments to sprite instances in a scene, such as modifying the hue, saturation, value, color balance or levels of a selected color range. This would allow the developer to vary the color of trees or foliage in a jungle scene for example, without having to load in many assets to create color variety.

    I saw a game developer build their own custom shader to achieve this effect and minimize the number of assets they end up creating for the game. It also went a long way in letting them color grade their game esthetic or match various graphic elements together right in the editor. Anyway, it just seemed like a brilliant solution to a common problem.

    Cheers,

    Jason Wilhelm
    Last edited by JasonW; 05-13-2014 at 01:22 PM.

  24. #24
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Hi Jason,

    That should already be possible. Sprites have a per-instance color that is passed down to the material as the vertex color. The default sprite materials multiply the texture by the color, but you can also implement and apply custom materials that use it for other things (e.g., as a mask or lookup coordinates into another texture).

    Much longer term it might be possible to extend the editor vertex painting to work on sprite instances and add tessellation options to the sprite editor, allowing you to do even more interesting variation without a lot of texture data.

    Cheers,
    Michael Noland

  25. #25
    0
    Here is some info I found on SVG loading and rendering using librsvg:

    http://en.wikipedia.org/wiki/Librsvg

  26. #26
    0
    Ok I was wondering if something like that could be done already! Sounds cool!

  27. #27
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Quote Originally Posted by JasonW View Post
    Here is some info I found on SVG loading and rendering using librsvg:

    http://en.wikipedia.org/wiki/Librsvg
    Librsvg is LGPL. One other thing I found last night was Antigrain (http://agg.sourceforge.net/antigrain.com/index.html), which switched from 3 clause BSD to GPL at 2.5, but it looked like there is a fork of 2.4 still being maintained.

    Cheers,
    Michael Noland

  28. #28
    0
    I'm still wrapping my head around the various Licensing systems. I noticed that Librsvg uses two sub-libraries, livxml for parsing the XML with a MIT license and Cairo for rendering the SVG to a block of memory with a dual license of LGPL and MPL.

    Is the Mozilla MPL licensing too restrictive as well?

    The Antigrain engine looks interesting!

    Jason W.

  29. #29
    0
    Quote Originally Posted by evans View Post
    Do check out http://esotericsoftware.com/. I recently integrated their skeletal animation system into a 2D game and I liked it - both the workflow and the runtime integration was pretty seamless.
    I would like to also register my interest in getting Spine working with Paper2D when you get to the stage of adding skeletal sprite support, I'm currently using it on two of my XNA/MonoGame projects and it's fantastic. It's an amazing little program, very low cost for indies and hands down beats programs like Maya for creating 2D skeletal artwork.

  30. #30
    0
    Quote Originally Posted by Liquidoodle View Post
    I would like to also register my interest in getting Spine working with Paper2D when you get to the stage of adding skeletal sprite support, I'm currently using it on two of my XNA/MonoGame projects and it's fantastic. It's an amazing little program, very low cost for indies and hands down beats programs like Maya for creating 2D skeletal artwork.
    I am also using Spine and have found it very usuful and powerful. I was hoping it will get support. I would imagine the developers would help as they have implemented most of their runtimes.

  31. #31
    0
    Hey Michael,

    I've appreciated the time you've spent on the live streams explaining many technical details of the engine and also the features to come. I can't wait to see an episode featuring your work on Paper2D and UMG! Anyway, just wanted to thank you for all the hard work your putting in to make this a truly great platform for everyone!

  32. #32
    0
    All at Epic, thank you immensely for realising the possible ramifications of lightweight, performant 2D rendering with Blueprints. It could well change the way the world views the creation of interactivity and provide the ultimate easy entry point to Unreal Engine and programming.

    Dream/

    Is it possible to make UE4 build a games that contain only Paper2D, 2D physics and Blueprints/C++? So that's it's as lightweight as possible, and loads to devices super fast, builds rapidly, etc.

    I'd happily suffer a tonne of feature loss to gain that kind of development and loading speed.

    If it was then possible to have a version of Unreal Engine that only did 2D, and was consequently much lighter as a result of the 3D having been stripped from it... that'd be extra awesome.

    /End of Dream.

  33. #33
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Quote Originally Posted by JasonW View Post
    I can't wait to see an episode featuring your work on Paper2D and UMG!
    We'll certainly do a stream on Paper2D some time in the next few months.

    Quote Originally Posted by dissid3ntly View Post
    Is it possible to make UE4 build a games that contain only Paper2D, 2D physics and Blueprints/C++? So that's it's as lightweight as possible, and loads to devices super fast, builds rapidly, etc.
    In order for workflow to be as seamless as possible (e.g., knowledge of how to work in 3D translates smoothly to 2D, working with the same scene components, traces, and queries as you're used to) and to allow hybrid 2D/3D games, you won't be able to jettison the rest of the engine as a whole. However, it should be possible to compile out PhysX and a number of other pieces of middleware to significantly reduce the size of the runtime binaries. I'll give that a shot when I get a chance, but I'm aiming for all of the Box2D work to be independent, so you can pick 2D physics only, 3D physics only, or both (though individual components will only exist in either the 2D physics scene or 3D physics scene).

    Cheers,
    Michael Noland

  34. #34
    0
    Supporter
    Join Date
    Jun 2014
    Posts
    6
    I'm quite interested in this and have not found a real "answer" from the roadmap for Paper2D:
    What is planned in terms of 2D animation? As some mentioned it would be nice to see 2D skeletal animation and especially just things like placing sprites at different positions in frames, having tweening and such things.. maybe also Spriter (a 2D animation tool that has a free version) support.

    Anyway, just hoping this will become something highly useable with a good animation system that can do more than flipping between images (and preferably doesn't require paid third-party software to use)

  35. #35
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Hi Pinkishu,

    Currently we're only planning on improved flipbook animation support in the short term. There are backlogged cards on the roadmap for in-editor hierarchical 2D animation, but any kind of in-editor skeletal keyframing will probably wait until Sequencer (a new track editor for UE4) is further along.

    Cheers,
    Michael Noland

  36. #36
    0
    Hi Michael,

    I've been working with Paper 2D for a few days now, and ran into an issue that I wanted to ask about. In my level I've created two sprite actors and used the sprite editor to crop portions of a single PNG so that one sprite becomes the body of a character and the second becomes the eye. After adding the finished sprites to the scene, I want to make the Eye sprite the child of the Body sprite, so I try to parent them together in the scene outliner, or in the component editor. But in both cases, the sprites will not parent together, even if they appear to be parented in the hierarchy. Shouldn't sprites behave the same way as meshes in the scene when you translate the parent, the child should translate as well.

    Am I missing something, or am I describing a current bug?

    Thanks for your help!

    Jason W.
    Last edited by JasonW; 06-14-2014 at 01:35 AM.

  37. #37
    0
    Is anything expected to break in future releases with projects made in 4.2? If I create bunch of sprites and a flipbook, will that still work in 4.3? Will there be at some point be in editor tools for auto creating sprites from an atlas or possibly importing from a third party tool like texture packer.

  38. #38
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Quote Originally Posted by dokipen View Post
    Is anything expected to break in future releases with projects made in 4.2? If I create bunch of sprites and a flipbook, will that still work in 4.3?
    From 4.3 on, everything should be forwards compatible. For Paper2D content created before 4.3, most things should work, but some stuff will get lost when you upgrade (specifically sprite material overrides, which I modified before adding a custom version number to the plugin). I'll probably also be renaming the classes before 4.3 ships; there will be class redirectors in place so BPs will seamlessly update, but C++ authors referencing the types will need to update their code to refer to the new classes (instructions will be in the upgrade notes).

    Quote Originally Posted by dokipen View Post
    Will there be at some point be in editor tools for auto creating sprites from an atlas or possibly importing from a third party tool like texture packer.
    There are a number of image slicing improvements coming in 4.3, including a source region edit mode to quickly a draw rectangle around a region and an 'Extract Sprites' context menu option for textures that automatically identifies discrete regions in an image and creates sprites for them. We'll be continuing to improve the sprite editing tools.

    We also support importing a spritesheet that was exported from Flash CS6 (json descriptor + png textures). I'd like to add support for other tools as well, if you can point me to example data from texture packer it probably wouldn't be too difficult to add importing for (although if you'd like to copy the PaperJsonImporter module example and submit it as a pull request, that'd be even better ^_^).

    Cheers,
    Michael Noland

  39. #39
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Quote Originally Posted by JasonW View Post
    Hi Michael,

    I've been working with Paper 2D for a few days now, and ran into an issue that I wanted to ask about. In my level I've created two sprite actors and used the sprite editor to crop portions of a single PNG so that one sprite becomes the body of a character and the second becomes the eye. After adding the finished sprites to the scene, I want to make the Eye sprite the child of the Body sprite, so I try to parent them together in the scene outliner, or in the component editor. But in both cases, the sprites will not parent together, even if they appear to be parented in the hierarchy. Shouldn't sprites behave the same way as meshes in the scene when you translate the parent, the child should translate as well.

    Am I missing something, or am I describing a current bug?
    Hi Jason,

    Parenting with sprite components should work exactly like any other component, however I just tried to put together a test case and I can repro the issue you're seeing. I'll let you know when I have a fix.

    Cheers,
    Michael Noland

  40. #40
    0
    Unreal Engine Developer
    Join Date
    Mar 2014
    Posts
    1,002
    Heya,

    I've fixed the issue that caused problems when a sprite is a parent component with attached children (doesn't matter what the child is).

    Paper2D: Fix bug in UPaperRenderComponent::GetSocketTransform that would cause components attached to a sprite to behave as if they weren't attached
    https://github.com/EpicGames/UnrealE...59bfd839f5206e

    If you aren't building from source, you should be able to work around it for now by using a dummy scene component as the real parent, with the visual sprite 'parent' being attached to that as well. It should also work fine as-is if you attach to a socket defined in the parent sprite (the issue was only for the 'none' socket where it was returning Identity instead of ComponentToWorld)

    Cheers,
    Michael Noland

Page 1 of 20 12311 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •