Announcement

Collapse
No announcement yet.

❀ DoN's Dynamic Mesh Effects ❀

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by DanimalsOnParade View Post
    I know you only support Windows, but do you have an idea if it's possible to make the plugin work with Feature Level ES 3.0?
    Does HTML5 support Render Targets in Unreal? That's really the only dependency I can think of.

    The plugin doesn't impose any rendering limitations on you as it is effectively a "runtime mask generator" that doesn't know/care about what shader model the target materials will use. I've listed only Windows as that's the only platform the marketplace version of the plugin has been tested on. For my project (which uses an older code base from which this plugin was made!) I'm running it it on Linux as well.

    PS: Check the logs as well, there may be a tell-tale clue in there

    Leave a comment:


  • replied
    Originally posted by VSZ View Post
    @DanimalsOnParade
    You just need to include the plugin's module as a dependency in your project's build.cs file (eg: YourProject.Build.cs)

    Like so:
    Code:
    // Your engine dependencies (example)
    PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine"});
    
    // Your plugin dependencies:
    PublicDependencyModuleNames.AddRange(new string[] { "DonMeshPainting"});
    After that you will be able to use the headers simply as:
    Code:
    #include "DonMeshPaintingHelper.h"
    That header should be sufficient for an end-user to access the API.

    Any other questions, let me know!
    That seems to have worked, thanks! I also got it to work with using a delegate in C++ to call an event in Blueprint.

    I know you only support Windows, but do you have an idea if it's possible to make the plugin work with Feature Level ES 3.0? I've got an idea for a nice "companion app" with painting in an HTML5 game that would hook into the existing backend for the full game. My little test project compiles and packages for HTML5 just fine but no paint is applied to the model when testing in a browser (Chrome and Firefox). Testing in the editor and win64 builds work / paint just fine.

    WebGL 2.0 is supposed to be on feature parity with OpenGL ES 3.0. There's not a Preview Level for ES3.0 in the Editor yet, but testing on ES3.1 works perfectly whereas ES2.0 fails. Not sure if that helps but the disconnect is somewhere between OpenGL ES 3.0 and 3.1.

    I would love to be able to add this companion app, but I understand if you can't get it to work since you only support Windows.

    Leave a comment:


  • replied
    @DanimalsOnParade
    You just need to include the plugin's module as a dependency in your project's build.cs file (eg: YourProject.Build.cs)

    Like so:
    Code:
    // Your engine dependencies (example)
    PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine"});
    
    // Your plugin dependencies:
    PublicDependencyModuleNames.AddRange(new string[] { "DonMeshPainting"});
    After that you will be able to use the headers simply as:
    Code:
    #include "DonMeshPaintingHelper.h"
    That header should be sufficient for an end-user to access the API.

    Any other questions, let me know!
    Last edited by VSZ; 08-31-2017, 01:53 AM.

    Leave a comment:


  • replied
    I picked up the 4.16 version from the Marketplace so that I can test while I wait for 4.17 but I'm having trouble figuring out how to use the C++ API. What exactly should I #include in my C++ files?

    Code:
    #include "DonMeshPaintingHelper.h"
    Throws errors saying that it can't find that file.

    Code:
    #include "../Plugins/Marketplace/DonMeshPainting/Source/DonMeshPainting/Classes/DonMeshPaintingHelper.h"
    Throws an error saying it can't find the DonMeshPaintingHelper.generated.h.

    I have access to the Blueprint nodes so I think it's installed and enabled correctly. Sorry if I just blindly missed some important piece on the Knowledge Base about installation / C++ setup!

    Leave a comment:


  • replied
    Hey, I've seen other sellers report anywhere between 2-3 weeks for their updates to be processed (mine was sent on 20th of August).

    For this plugin I sent them three updates in all (4.17, 4.16, 4.15) so there's probably more testing work for them here than the other updates too.,,

    In any case I"ll reach out to them in while I'd also sent new images for the marketplace gallery that I was really keen on seeing out there!

    Leave a comment:


  • replied
    Any updates on the 4.17 update?

    Leave a comment:


  • replied
    Awesome, thanks for the tips! Still waiting... Epic please!

    Leave a comment:


  • replied
    Btw, since you mentioned decals/text I'm assuming you've read the known limitations kb page on them already. To quickly recap:
    • Seamless projection of decals/text is only supported for planar world-space/local-space painting.
    • For 3D mesh-space projection, only circular brush strokes are seamless; decal/text projection is entirely UV island dependent, making careful UV1 (lightmap) preparation a must.
    Now most gampeplay situations can get around that, but for a free-mode paint app like yours, this is a very important limitation to be aware of because yours users can presumably paint anywhere.

    Well worth noting!

    Leave a comment:


  • replied
    Originally posted by DanimalsOnParade View Post
    I don't want the normal map detail getting baked into the diffuse.
    It all depends on how you build your baker, virtually any desired combination should be possible with the right setup.

    Recommend looking up the "Unwrap UVs for Render Node" and playing around with an orthographic scene capture so you get an idea of the technique.

    Originally posted by DanimalsOnParade View Post
    Speaking of normal maps, painting only color onto a mesh won't overwrite any detail created by a normal map (or any of the other things like specular, roughness, emissive), correct? The normal map will still be fully visible and rendered properly?
    No such worries, you're in complete control of the effects and what channels they influence.

    You're in control because what the users paint is always just a mask not the effect. The advantage of this is that you can read the mask and blend in virtually anything you like - be it peeling off damage textures beneath (for impact damage), or for painting just one diffuse channel (paint app usecase like yours) even multiple channels (diffuse/normal/what-not) for those who need it.[/QUOTE]

    Originally posted by DanimalsOnParade View Post
    Woo, I'm excited!
    Glad to hear!

    Leave a comment:


  • replied
    Originally posted by VSZ View Post
    Now If all you want to do is bake the materials (as seen by the player) onto one-texture-per-material, that should be doable at runtime.
    This is all I want to do. Take the newly painted color strokes, decals, and UMG tattoos and bake them down onto the diffuse texture and bake separate roughness, specular, etc masks down onto their existing textures. I don't want the normal map detail getting baked into the diffuse.

    Speaking of normal maps, painting only color onto a mesh won't overwrite any detail created by a normal map (or any of the other things like specular, roughness, emissive), correct? The normal map will still be fully visible and rendered properly? I ask because it's hard to tell if your winged character in the YouTube videos has a normal map or not.

    Woo, I'm excited!

    Leave a comment:


  • replied
    Originally posted by DanimalsOnParade View Post
    I don't mind managing that on my own as long as it is possible.
    Unreal does has official documentation on this topic (Rendering Mesh,To Textures, Render to Texture Toolset Setup), however the catch here is whether it works in packaged games because they're baking every possible map (diffuse/normal/etc) using visualization buffers (possibly an editor-only feature, not sure). Now If all you want to do is bake the materials (as seen by the player) onto one-texture-per-material, that should be doable at runtime.

    Originally posted by DanimalsOnParade View Post
    There's an updated sample project for 4.17 somewhere, correct? If so, where would I find it?
    The sample project link on the marketplace page will be updated to the new one as soon the updates go live. I'm guessing they have a long list of updates to process so it could take a while, but hopefully not too long!

    Leave a comment:


  • replied
    Sorry for the delay in following up.

    The saving out the paint strokes as bytes definitely sounds like it will take up less space and network bandwidth. Thank you for your work on the update!

    Originally posted by VSZ View Post
    ... Now if you really want to bake your materials as textures, the prescribed technique is to plug Unreal's "Unwrap UVs for Render" node to the WPO of your target materials and then render that out with a strategically placed scene capture component. You'll have to manage that on your own though.
    What you're saying is that it is still possible. I'll definitely need the capability to bake the material down onto the *existing* diffuse texture since I'll most likely be handing off the textures to different 3D applications other than UE4 for other things. WPO here stands for World Position Offset, correct? I don't mind managing that on my own as long as it is possible.

    There's an updated sample project for 4.17 somewhere, correct? If so, where would I find it?

    Looking forward to 4.17 being approved and on the market to purchase, thanks!

    Leave a comment:


  • replied
    ^ Thank you These new features should be available for 4.15 and 4.16 users too, I've submitted updates for those as well!

    Leave a comment:


  • replied
    Wow thats great! Now it's a must buy for me Really awesome!

    Leave a comment:


  • replied
    4.17 Update submitted

    New goodies in this upcoming update:

    Saving & Loading
    • Easily save all your effects at any time by calling just one node - "Save Mesh Paint As Bytes"
    • Load them back on any machine with the "Load Mesh Paint As Bytes"
    • Fully compatible with your existing save systems

    [MENTION=266600]rYuxq[/MENTION] - I'm happy to say that your request of save feature has now been fulfilled

    [MENTION=386290]DanimalsOnParade[/MENTION] - With this update you should be able to store the saved paint on a webserver (as binary data) for your sharing functionality

    Exporting Paint Masks as PNG
    • Visualize painted masks or decals projected onto your UV maps
    • Note:- This only contains masks/decals painted by the player. This does not bake the entire material itself.


    Misc
    • Fast Path for Static meshes: You can now use the Don Mesh Paint UV0 node for simple Collision-UV based projection (thus avoiding the more expensive seamless workflow)
    • (requires Project->Physics Settings-> Support UV From Hit Results to be enabled)
    • Dedicated Server testing (via Editor) now fixed for the Sample project. You can now turn on the dedicated server checkbox in the editor to test this.


    Video overview



    This update will be released on the marketplace after the changes have been processed by the marketplace team.

    ~~~

    So, with full Multiplayer support, Save/Load support and a rich set of features for FX and gameplay, this plugin can benefit a great plethora of usecases/projects.

    As always, feedback is welcome!

    Leave a comment:

Working...
X