Search Unity

[Released] PaintCraft (Multiplatform coloring book & drawing app constructor)

Discussion in 'Assets and Asset Store' started by nicloay, May 17, 2016.

  1. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    441
    Greetings, I am thinking of purchasing this asset,
    There are a few question I wanted to inquire.

    Is there layer functionality? (Like Photoshop layers)
    If there is, are there blend modes? (Dodge/Burn/Multiply/Additive/etc)
    Will there be layer masks?
    Does it have a way to save/load the layers and its own file format?

    Does Paintcraft support pressure input? (Apple Pencil, Wacom Tablets, Force touch)?

    Can it export the painted canvas into image formats? (PNG, JPG, etc)
    Will it be able to import/export PSD and its layers?

    Color wheel?

    What are the future plans for this asset?
    Any roadmaps?
    I want to purchase it if it will be developed towards supporting professional app functionalities.

    Thank you!
     
  2. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Hello @Gekigengar
    Thanks for the interest in to this package.
    But unfortunately it doesn't support all of those feature which you mentioned in your question (apart of export to PNG as it supported by unity out of the box).

    About future plans, I can say that I will continue support this package and add new features, but I will not add multi layers and layer masks.
     
  3. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    441
    So does this mean there will be pressure input in the future?
    And how easy it is to implement my own multi-layer solution?
     
  4. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    yes it's possible to add. When someone contact me with direct support and who will be able to test it, I'll add this feature
     
  5. pandemik

    pandemik

    Joined:
    Mar 23, 2017
    Posts:
    6
    Thank you it worked perfectly, I just posted a review.
     
    nicloay likes this.
  6. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9
    hi,
    i have problem that use with touch devices.
    i cannot draw directly by one touch after touching my application's UI made by UGUI (Brush, Color, ...)
    drawing works correctly after touching second.
    do you know this issue?
    how can i solve it?
    thx
     
  7. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Hello @excellency_hong
    Which version of unity do you use, and also do you use latest version of paintcraft?

    Can you try to change StandaloneInputModule to TouchInputModule at EventSystem gameobject on drawing scene.
     
  8. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9
    thank you for your answer.

    i use latest version of paint craft pro
    and i use the unity 2017.3

    i did turn off "standardInputModule" and turn on "TouchInputModule" along to your advise.

    and then be able to draw by one touch.

    but that way, undo is wrong work. be able to undo just a latest history. the error "wrong snapshot data here" occure.
     
  9. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @excellency_hong
    Thanks for details.
    Give me couple of day to fix this bug, I'll send you updates when it's ready.

    And just to confirm do you get this error on device? or in editor.
     
  10. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9

    the error is in editor.

    thanks for rapid response.
     
  11. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @excellency_hong
    So if you use unity remote or make a mobile build everything is correct?
     
  12. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9
    no... on device case is also same wrong with editor case.

    but it is different along to the device as i think.

    on my android device(Samsung Galaxy Tab S3) is working correctly without any modified. but on my touchable laptop(Windows) and my co-worker's android device(Samsung Galaxy Tab S3) has same issue.

    the difference of the android device(Samsung Galaxy Tab S3) is developer mode option is on/off.
     
  13. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9
    well... sorry i mistook.. on the android devices is correctly drawing. but on my windows laptop(touchable) is incorrectly.


    and when i call the Undo Method, the error "wrong snapshot data here" occur still on the android devices. i think, it is relate to touch or mouse control.
    the undo is correctly work in mouse controlling
     
    Last edited: Jan 24, 2018
  14. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
  15. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9

    thanks for your answer.

    the window platform i used is the win32 build.

    anyway.. it is not a important to me. the important is the Undo is incorrectly working on the android device.

    could you fix it up soon? Or, Do you have the way what i solve it myself?

    thank you
     
  16. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Just try to return back standard default inputModule and remove mobile which you added before. I'll check tomorrow again, but last time when i tested package on mobile there was no any issue with that.
     
  17. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
  18. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9
    sorry, i'm late.

    .........

    i made drawing view via the RawImage linked the RenderTexture of the BackLayer without raycast blocks to show drawing.

    perhaps....

    is it the reason about the Undo error i told?
     
  19. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @excellency_hong

    Undo/Redo bug happened because of wrong "is pointer over ui" issue. Could you please redownload package from asset store (version 2.2) it should be fixed there.

    Raw image is ok. I use it for 3D drawing on PRO package, so you it's not a problem to use it for UI elements.
     
  20. excellency_hong

    excellency_hong

    Joined:
    Jan 23, 2018
    Posts:
    9

    thanks!

    reinstall the paintcraft,

    all is well!
     
    nicloay likes this.
  21. ahmadshabbir735

    ahmadshabbir735

    Joined:
    Oct 21, 2017
    Posts:
    3
    Hi , i downloaded your colorus package for unity but my unity version is 5.3 and it has a lot of errors so is there a soluton for that or i have to download the 4th version of it. Thanks :)
     
  22. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Hello, sorry but it's only for version 4. and "colorus" package is obsolete version, i don't use it in paintcraft any way
     
  23. ahmadshabbir735

    ahmadshabbir735

    Joined:
    Oct 21, 2017
    Posts:
    3
    Thanks
     
  24. ahmadshabbir735

    ahmadshabbir735

    Joined:
    Oct 21, 2017
    Posts:
    3
    i have unity 4.0 version and downloaded your "colorus" package and it gives me 33 errors so what do i do?
     
  25. jesterknight

    jesterknight

    Joined:
    Jun 11, 2017
    Posts:
    1
    Hi @nicloay

    I'm looking to purchase your PaintCraft app, I think it will work great in an app I have planned, my main interest is in the pencil/brush tool, I have a couple questions regarding customising the app:

    • Can the line sizes be customised, as when trying out the demo, the current pencil line is to thick, I'm looking to implement a range of realistic pencil sizes, such as 4H,2H, HB, 4B etc...
    • I can't see an Opacity control on the demo, can the opacity of the pencil/brush be changed to create different shading strengths.
    • Can the eraser strength be changed via opacity to make erasing softer and less hard?
    Apologies for all the questions.
    Many Thanks
     
  26. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @jesterknight
    Thanks for your questions.

    By default different tools use different setup, but you have full control to the line behaviour.
    Please check this page https://docs.paintcraft.in/tool-pipeline.html it show the tool setup, you can find there that you can bind line opacity or thickness to the constant or to the lineConfig (which you then can bind to the ui slider or input boxes).
    All of this behaviour available in base and pro version of paintcraft.

    Please let me know if you have further questions.

    Thanks.
    //Nikolay.
     
    jesterknight likes this.
  27. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Dear @ahmadshabbir735,

    sorry this is not "colorus" support thread.
    Please use github issue tracker, or create separated thread here on unity forum.
    I don't know maybe someone already ported that package to 5.x or later version, but as I mention before, this project made on 4.6 version and I don't support it anymore because it use ineffective drawing approach (get, set pixels on texture2D)

    Thanks for understanding.
    //Nikolay.
     
  28. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
  29. santa992

    santa992

    Joined:
    Mar 3, 2017
    Posts:
    6
    Hi @nicloay
    I have 1 question, can i make in paint craft something like your (shader fill animation)
    and how?
     
  30. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Hello @santa992

    There is NO built in implementation for this behavior.
    To implement that you need a deep understanding how paintcraft works. I've implemented that in another project, but it's not related to paintcraft you can check it here https://paintcraft.in/vk2/

    To make it works.
    1. When user click canvas you spawn mesh with region filled texture or plain color (implemented in paintcraft)
    2. On top of that you spawn additional plane with radiall mask animation and previous color.
    3. In the shader of the plane created in step 2 you provide clicked position and discard pixels there (alpha = 0)

    Or you can spawn just one plane (step 1) and do everything at one shader. Benefit with 2 planes is it's much simpler to implement and if player click fast on the same region you just delete plane N2 which reveal previous color and then you spawn again with new animation.

    Hope this helps
     
    caocao417 and santa992 like this.
  31. yogergames

    yogergames

    Joined:
    Oct 4, 2016
    Posts:
    13
    I'm also interested in this functionality, would be awesome if it could be included in the package.
     
  32. zhengying

    zhengying

    Joined:
    Nov 21, 2015
    Posts:
    12
    Hi @nicloay:
    I just purchased your PaintCraft plugin, It's great! thanks for your hard work.

    I want to known when will paint craft support apple pencil? Apple just shipped new ipad for education, this new ipad support Apple Pencil.
     
  33. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
  34. zhengying

    zhengying

    Joined:
    Nov 21, 2015
    Posts:
    12
    Hi @nicloay, you work so fast!!
    many thanks!
     
  35. zhengying

    zhengying

    Joined:
    Nov 21, 2015
    Posts:
    12
    Hi @nicloay Hi How to save result image with outline layer to the file?
    You talked about this topic in this forums long time ago. you said the new version will support this function but I can't see that. please help to see what am I missing?
     
  36. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
  37. zhengying

    zhengying

    Joined:
    Nov 21, 2015
    Posts:
    12
    Hi @nicloay, thanks for your save image tutorial, I can save image properly now,
    But now I want to known How can I save an transparent background image? can I do that ?
    thanks.
     
  38. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @zhengying,
    Sorry I'm not ready provide you complete solution.
    I'm not sure right now but probably it happens because RenderTexture.GetTemporary (in tutorial above) use default format which doesn't have transparency.
     
  39. zhengying

    zhengying

    Joined:
    Nov 21, 2015
    Posts:
    12
    @nicloay
    Yes, you are right, I set transparency back layer, and modify the save picture format ARGB, and change jpg to png. it works well! thanks!
     
    nicloay likes this.
  40. Simon75012

    Simon75012

    Joined:
    Sep 15, 2016
    Posts:
    70
    Hi @nicloay,
    I'd like to allow user to zoom and drag the picture (mobile devices)
    I'm using only bucket tool so it won't be a problem for pencils tools.

    Your "Zoom on Mouse Scroll" is not working on mobiles devices and i manage to drag the picture but the first touch will activate the bucket when i release my finger, and i'm not really happy with my dragging system.

    Is there an easy way to activate those 2 features?

    Thanks.
     
  41. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    Hello @Simon75012 Sorry there is no easy solution.
    I remember that for another project (which doesn't have backward compatibility with paintcraft) I also wrote a separated input controller which controlled camera if there are more than 2 touch positions and forward events to paintcraft in case of single touch.
     
  42. RadiantSilvergun

    RadiantSilvergun

    Joined:
    Dec 27, 2017
    Posts:
    11
    Hi Nicloay. I really love this package, I am building a drawing app for mobile and I have recently upgraded to Xcode 9.3 and Unity 2018.1.0f2. All my code works fine in the Unity simulator but when I run the app on my iPhone the ClearCanvas() function doesn't remove the image. The same code ran fine on xcode 8 and unity 2017. So I think it may be an issue with saving to disk with either the new Unity or Xcode upgrade, it has to be something that leads from CanvasCameraController.ClearRenderTexture(()=>SaveChangesToDisk());
    . Out of interest can you clear your drawings, when the app is compiled using Xcode 9.3 and Unity 2018.1.0f2 when running on an iOS device? As I said it works perfectly on the older versions and in Unity so it is not a problem with my code as far as I can see.
     
  43. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @RadiantSilvergun sorry, but i'm not planning to officially support 2018 version until first LTS (2018.3) release is out. It has a different rendering pipeline and it could lead to your issue as paintcraft use GL.Clear and another methods to work with RenderTexture.
     
  44. RadiantSilvergun

    RadiantSilvergun

    Joined:
    Dec 27, 2017
    Posts:
    11
    @nicloay Thank you for your response, OK I will revert to the older version of Unity until support for the 2018 version is available. I have another question, is it possible to pre-render an image with a PaintCraft canvas? I can animate complex curved drawings using update and transform position, but if I want to draw a complex shape with lots of coordinates I can only animate the drawing, I can't pre-render the image and immediately display as a static image. Is there a way to do this, I would much prefer to pre-render my draw paths using the beautiful brushes from this package for static images.

    Cheers,

    Travis
     
  45. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @RadiantSilvergun, Sorry. I don't understand the questions. Do you want to save final drawing to image and then reuse in the scene, or you want to render something to texture and then use it as paintcraft outline or bg layer?

    Anyway - non of this is supported by default in the package. but both of this is possible, as paintcraft use RenderTexture for rendering. this means that you can copy that texture to another e.g. Texture2D or take data from another Texture2D and then blit it to the paintcraft background texture.

    To get example how to work with textures please open CanvasController.cs class and check DoSaveChangesToDisk() method it save active textures to the disk using temporary texture2d. if you need more details please check unity documentation for Graphics.Blit() Texture2D.ReadPixels() method.

    Hope this helps. let me know if you have further questions.
    Thanks.
    //Nikolay.
     
  46. RadiantSilvergun

    RadiantSilvergun

    Joined:
    Dec 27, 2017
    Posts:
    11
    @nicloay Hi, thank you for your fast response :) Sorry it may be my lack of articulation in describing what I want. I am already aware of the technique of the converting the RenderTexture to a Texture2D and the DoSaveChangesToDisk() function, which I have used to attach a user's drawing to a 3D object for various other purposes, this isn't the issue.

    The issue is, I want to draw a shape, say for instance I have a list of 2D vectors that make up the shape of the letter "a" now I want to draw this shape in 1 frame using a PaintCraftCanvas so that I can draw the shape with your brush engine. The issue is, the standard way to draw a shape in the example is to move the transform position of the DrawController every frame which creates an animation - this is not what I want.

    I want to pre-render in the RenderTexture (or any other way you know of that allows me draw a whole shape with your brushes that output the final result instantly) that whole shape drawn with a PaintCraft canvas in 1 frame, so that I can draw the shape procedurally with say, a while loop and display the example "a" shape to the user instantly. When I try and do this by transforming the location of the DrawController multiple locations in 1 frame from say the Start () function, it simply moves the brush position to the end position but wont draw any of the positions in between as you can only update the transform location once per frame. Is there a way to do draw all the coordinates in one frame i.e. pre-render the whole "a" shape so I can show the programmatically drawn example instantly, without having to animate the "a" character being drawn incrementally over time? Thank you for your help.

    Cheers,

    Travis
     
  47. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @RadiantSilvergun Thanks for more details Travis, sorry first time I misinterpreted the questions at all.

    Can you try please this https://docs.paintcraft.in/qookbook/recordplay-line-input-positions.html
    This script record and play points. This is not what you need, but can you try to adjust it a bit
    In the DoPlay() method. inside the while loop try to remove 'yield return null' here
    Code (csharp):
    1.  i++;
    2.             yield return null;
    3.             yield return null;
    4.         } while (!string.IsNullOrEmpty(line))
    5.  
    Sorry I haven't tried that so not sure whether the swatch pool won't be reseted between loops.

    If it will reset, please try to modify brush pipeline (see this https://docs.paintcraft.in/tool-pipeline.html) and change RenderSwatch filter to RenderSwatchCB (Command Buffer).


    Please let me know whether it works.

    Thanks.
    //Nikolay.
     
  48. RadiantSilvergun

    RadiantSilvergun

    Joined:
    Dec 27, 2017
    Posts:
    11
    @nicloay Thanks so much for this Nikolay.! That's amazing and looks promising, I will try those now :)

    Travis
     
  49. ErayT

    ErayT

    Joined:
    Dec 13, 2013
    Posts:
    20
    I am able to save the backlayer to a file as png. Thus, I want to be able to load it later. I do not know how to load the saved backlayer :S @nicloay, I need help... I want a programatic solution, because I am working on something dynamic.
     
  50. nicloay

    nicloay

    Joined:
    Jul 11, 2012
    Posts:
    473
    @ErayT Please check CanvasController.cs class "LoadFromDiskOrClear()" method
    You will see that
    1. It load imagefrom disk to TmpTexture2d
    2. Copy data from TmpTexture2D to backlayer (Camera.targetTexture which is the link to the backlayer render texture). (copying data on gpu is performed using Graphics.Blit() method)

    Please let me know if you need further details

    Thanks for choosing paintcraft.
    //Nikolay
     
    ErayT likes this.
unityunity