Search Unity

[UPDATED] Amplify Motion - Quality vector based motion blur

Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Dec 5, 2013.

  1. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    That's an interesting application, like you said it really depends on the outline effect used and the desired result.

    An example screenshot of the edges around the motion effect would be really great and it would help us point you in the right direction.

    Thanks
     
  2. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    ** Only 2 days left! **

    Exclusive for Pro and Level 11 subscribers: Product Page
     
  3. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    ** Only 24h left! **


    Exclusive for Pro and Level 11 subscribers: Product Page
     
  4. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Amplify Motion - Quick Start Tutorial, Part 2


    Amplify Motion, only $12.50 for Pro and Level 11 subscribers, only during June: Product Page
     
  5. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    566
    I see you posted that on 9:39 PM, but the Level 11 page has been empty for me for a couple of hours. Also your product page shows the original price. (just saying, I already bought Amplify Motion a while ago)

    edit: Level 11 Discounts are back.
     
    Last edited: Jul 1, 2015
  6. BTables

    BTables

    Joined:
    Jan 18, 2014
    Posts:
    61
    While optimizing my player objects this week, I discovered the Optimize Gameobjects feature of unity which does exactly what I need, reduce the hierarchy of gameobjects greatly. Obviously AmplifyMotion doesn't work with this, I was wondering if anyone has a better workaround than simply disabling it?

    I am too married to Amplify motion to completely go without.

    My main issue is the 3rd person view. Due to the camera and the player moving together, without amplify motion on my player skin it blurs like it is stationary in the scene and the camera is moving past it.

    Is there a way to use basic solid state blurring for an optimized skinned mesh?
     
  7. BTables

    BTables

    Joined:
    Jan 18, 2014
    Posts:
    61
    Figured out a way to do what I wanted.

    Looks like the reason the optimized mesh isn't supported is because AmplifyMotion does all the skinning for the motion render itself, without bones it can't. It looks like the reason it does it itself is so it can batch the job out to another thread.

    I removed all bone and motion and vert calculations, and added a call to the UpdateTransforms method of SkinnedState (runs in main thread) that does a SkinnedMeshRenderer.BakeMesh(m_clonedMesh). This gives an updated mesh that AM can use to render our zeroes to the motion render texture (all the m_motions values stay at 0).

    The effect this has is everything else blurs fine, but optimized skinned meshes just render without any blur at all.

    The difference isn't big right now, I might put some more effort into calculating the relative motion of the camera and the solid version of the skinned mesh so other players blur when the camera moves past them. Will post my results here.
     
  8. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Awesome, it should be available for a couple of hours.
     
  9. Diogo-Teixeira

    Diogo-Teixeira

    Joined:
    Apr 9, 2010
    Posts:
    494
    Yes, that's essentially it. Unfortunately, we don't even have API to retrieve the data we need when optimize is enabled. We do the skinning ourselves for legacy reasons - before BakeMesh was part of the API. Then, when BakeMesh first appeared it ran just as fast as our skinning code and couldn't be called asynchronously. It seems to be faster then C# skinning nowadays (as of Unity 5.1) but still 3x slower than a native path, which we have ready for deployment to run async and barely noticeable.

    I do understand the problem of not supporting "Optimize Game Objects" at all. We should probably just add a fallback path using BakeMesh. I believe, however, that AM using BakeMesh will negate performance benefits gained by enabling optimize. However, we can get the fallback working on the next update if you think that's more useful.

    Regardless, we'll do some more testing on the latest Unity builds to see if we can find a better way.

    BTW, if your plan is to disable it from being used by Amplify Motion, all you have to do is disable "Auto-register Objs" and add the AMObj script to your moving GOs or Prefabs instead. That way you can skip the Skinned meshes that have the Optimize enabled, so they'll be treated like a static object and still get Camera Motion Blur.
     
    Last edited: Jul 1, 2015
  10. BTables

    BTables

    Joined:
    Jan 18, 2014
    Posts:
    61
    Ultimately I want the fastest setting to be as fast as possible. That's optimised gameobjects without AM switched on. Keeping 2 copies of Skinned Prefabs creates too much overhead and is not an option.

    My only option when AM is turned on is to render something into the motion RT in the place of the first person player otherwise the camera blur will heavily blur any Skinned meshes that are moving with the camera yet staying in the same spot on the screen. This looks horrible.

    I'm happy to accept no blur on players. Lack of blur when everything else is blurring is much less noticeable than extra blur on a stationary object.

    Can you think of a quicker way to write 0s to the motion buffer over Skinned meshes other than doing a bakemesh and passing it to the RenderVectors Skinned shader with 0s in m_motion?
    (I realize I can cut out most of the motion shader calculations as I'm writing 0s to it, besides that Ofcourse)
     
  11. BTables

    BTables

    Joined:
    Jan 18, 2014
    Posts:
    61
    Misread what you said about the fall back. If you had a fall back version with bakemesh and actual vectors that would be amazing!
     
  12. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Our apologies for the delay, we have an updated build for you. I will get in touch directly via PM.

    Thanks!
     
  13. Diogo-Teixeira

    Diogo-Teixeira

    Joined:
    Apr 9, 2010
    Posts:
    494
    We took your concerns into consideration and added a fallback to BakeMesh when bones are not detected. We have a new development build ready to go.

    Amplify Motion v1.6.0 dev 001
    - Added support for "Optimize Game Objects" via BakeMesh fallback
    - Fixed skinned mesh not taking base game object motion into account
    - Fixed intermittent solid meshes when attached to kinematic rigidbodies; e.g. characters
    - Fixed Windows Phone 8/8.1
    - Fixed Windows Store App 8/8.1 support

    Ricardo will get in touch with you via PM regarding sending you the build.

    Please let us know if it works for you.

    Cheers
     
  14. Pixeldamage

    Pixeldamage

    Joined:
    Sep 6, 2010
    Posts:
    52
    Hi there. I've downloaded your demo and whilst the results look great in Editor, on mobile the results are coming out completely different (on Samsung S6 Edge). It could be a matter of finding the right settings but with such a long window between changing a setting / building / testing - it's proving difficult to make it worthwhile (and to prove to my producer it's worth buying). I'm working on a sports title and there's quite a lot of camera (first person) and other players (skinned meshes) movement going on. I've minimized the camera moblur but unlike the Editor version - on mobile all the players are completely blurred. What I want is (obviously) nice motion blur, on just the limbs (with the most movement) but I'm not getting the benefit of vector based moblur on mobile atm. Perhaps it's a limitation of working with fewer vector fields? I also tried Standard Quality Level (on mobile) but it killed perf and didn't seem to remedy the situation. SM3 was too much and broke/exceeded shader limits.

    It'd be great if there was a demo app where you supply sliders for the moblur so it'd be faster to pin down appropriate settings.
     
  15. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hello,

    Thank you for evaluating Amplify Motion, we really appreciate it.

    That is odd the results should be pretty similar, it does sound like you might be experiencing some sort of issue. Regarding the values used we strongly recommend trying the WebDemo, checking the Manual or the recently published Video Tutorials.

    In any case there is no need for mobile specific tweaking of motion blur values, results should be consistent with the editor. It might be an issue specific to skinned meshes, I’m going to send you a new build via PM, let me know if that helps with the problem.

    Thanks!
     
  16. Pixeldamage

    Pixeldamage

    Joined:
    Sep 6, 2010
    Posts:
    52
    Thank you for your speedy reply. I've already read the docs/viewed the two videos I found. It's not an issue with getting decent results in editor / browser / PC. Also thanks for sending the package. I've tried the Unity4 package (we're on 4.6.7.f1) but am getting the following error: https://dl.dropboxusercontent.com/u/137479361/amplify access bug.png

    To attempt to remedy this I've:

    unzipped the package file to the desktop prior to double clicking it
    also tried placing the package in the project prior to running it
    deleting all existing Amplify plugins
     
  17. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hi,

    Thanks for getting back to me. Glad to know you found the necessary information, let us know if you find any topic lacking.

    Regarding the update issue, do you experience the same problem in an empty project? Before updating, were you using the latest build available in the Unity Asset Store?

    I recommend closing Unity, deleting the Amplify Motion folder, run and close Unity, open Unity and re-install the Amplify Motion Unity 4 package. That might solve the common file move error, in any case we will try to replicate it on our side.

    Thanks!
     
    Last edited: Jul 9, 2015
  18. Pixeldamage

    Pixeldamage

    Joined:
    Sep 6, 2010
    Posts:
    52
    Update: Ah managed to get the new version working. I think having monodevelop open locked some of the previous files from deleting (everytime I opened Unity the old files came back). Got it working like previously. Will try and get a build running on S6 again.
     
  19. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thank you for the additional information, looking forward to your feedback.

    Thanks!
     
  20. Pixeldamage

    Pixeldamage

    Joined:
    Sep 6, 2010
    Posts:
    52
    OK I've got it on mobile now. We're currently putting together release candidates so I couldn't get a build working within the game but I've got a solo scene duplicated with a FPS touch controller camera. Good thing too because, whilst the problem is the same, it has allowed me to work out that it seems to be a depth based issue. At the start all the players are in the mid-ground and fully moblurred. As I approach them it acts like a DOF effect and parts of the character appear non-blurred in varying degrees (according to both distance and vector/speed). I'd assume this could be related to the depth buffer being different on mobile? We're using 24bit depth buffer toggled on in the Quality Settings. I tried experimenting with the depth on the camera fx but in the editor it only seemed to make the tiniest amount of difference (and it was hard to discern how it could be useful). I even tried extreme values in the thousands. Any tips?
     
  21. OrdinaryDev83

    OrdinaryDev83

    Joined:
    May 8, 2014
    Posts:
    23
    Hello, i've got a little problem, i actually writing my scripts in javascript and, i'd to get the AmplifyMotionEffect Script reference e.g. :
    Code (JavaScript):
    1. var script : AmplifyMotionEffect;
    To modify the motion scale value using a slider ect...
    Thanks you in advance.
    Tom.
     
  22. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hello Tom,

    It appears that you are experiencing a common issue regarding compile order, in this particular case JS compiling before C#. To solve the problem you will need to move "Assets/AmplifyMotion" to "Assets/Plugins/AmplifyMotion".

    Unity Reference: Force Compile Order

    Let us know if this fixes the problem, we would be happy to help if that is not the case.

    Thanks!
     
  23. OrdinaryDev83

    OrdinaryDev83

    Joined:
    May 8, 2014
    Posts:
    23
    Thanks for your anwser, i worked, but, i can't access it by i script because "AmplifyMotionEffect" depends on "AmplifyMotionBase",but the variable "MotionScale" isn't physicaly in "AmplifyMotionEffect" so, to access the motion scale, what should i do?
     
  24. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    If you are using the Trial version you should move "Assets/Plugins/AmplifyMotion/Editor" to "Assets/Editor". We just did a quick test and it seems to be working, let us know if that is not the case on your side we would be happy to help.

    Code (JavaScript):
    1. #pragma strict
    2.  
    3. var script : AmplifyMotionEffect;
    4.  
    5. function Start () {
    6.     script.MotionScale = 1;
    7. }
    8.  
    9. function Update () {
    10.  
    11. }
    Thanks!
     
  25. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    As I mentioned via PM, if possible, we would love to test a sample project on our side. In the meantime I was wondering if the problem you are experiencing could be exclusively linked to Camera Clipping Values and AM Depth Threshold.

    We recently came across a somewhat similar issue. Issue Thread

    Thanks
     
    Last edited: Jul 27, 2015
  26. OrdinaryDev83

    OrdinaryDev83

    Joined:
    May 8, 2014
    Posts:
    23
    Thanks it worked, your plugin is awesome!
     
  27. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Awesome! Let us know if you run into any additional problems.

    Thanks!
     
  28. Howard-Day

    Howard-Day

    Joined:
    Oct 25, 2013
    Posts:
    137
    Hey, guys! I've got an issue with Amplify motion, that I hope you can help me with. Right now, there seem to be two modes available to me when it comes to particles. The first is that the particle's motion is applied to the motion blur, which is great for semi-solid objects, or quickly moving small ones (see sparks, chunks of explosion debris), but it's really not good at all for large clouds of semi-transparent particles ( see explosions, smoke, steam, etc) Now, I have have AM ignore the layer that these are on, but when I do that, I get no motionblur at all in the area they're in - like it's completely masked out. I would like the motionblur to simply ignore the particle effects own motion entirely, and just use the motion vectors of the scene/camera. Is this possible? ...Well, I know it's possible, because if I set up the camera spinning, and hit pause...then disable and re-enable the particle effect, the motion blur looks entirely correct. That is, until I hit play again. :D
    Hope you can help me!
     
  29. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    For anyone experiencing similar issues, make sure that problematic transparent Particles Systems do not have the Amplify Motion Obj Script applied. Instead of relying on the Auto Register Objs option to automatically add the AM Object Script to your dynamic Assets add it to them manually.

    It's a temporary workaround, we are looking into a hassle-free solution, we will update you all soon.



    Thanks!
     
    Last edited: Aug 12, 2015
  30. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,791
    Hey @Amplify_Ricardo , I'm having a bit of trouble making Amplify Motion work on iOS. (iPad 4 specifically)

    I'm using 4.6.8p3, antialiasing on, 32bit buffer, Amplify Motion in Mobile Quality Level. Amplify Motion is the latest downloaded from the asset store (deleted the folder and redownloaded just now to be sure).

    On the editor it seems to work, while on the device it renders black and XCode keeps spamming

    OpenGLES error 0x0502 in /Classes/Unity/GlesHelper.mm:288

    Which is very similar to an issue someone a few pages what had, sadly the solution was never posted :)

    Any ideas?
     
  31. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Thanks for getting in touch, we would be happy to help. Just to confirm, does the problem persist if you disable MSAA?

    It would be really helpful if you could send us a sample project with the problem, would that be a possibility?

    Thanks!
     
  32. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,791
    Without AA it shows me the motion vector buffer in the bottom left of the screen (in half size). Also does the same thing on Android.

    I'll experiment a bit more and if I can't figure it out, I'll try an make a minimal testcase to send you.
     
  33. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Interesting, that is a known issue that we are currently working on. Does it happen on any other devices or just the iPad 4?

    Thank you for your feedback, we really appreciate it.
     
  34. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Please could you advise us how to active Debug Mode Via code?

    upload_2015-9-24_4-26-49.png

    we would like to toggle it?

    upload_2015-9-24_4-27-35.png

    When impacting upon certain objects..

    upload_2015-9-24_4-28-18.png

    Many thanks :)
     
  35. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Thank you for using Amplify Motion, we really appreciate it. As with other options it can be toggled directly via code, in this example we simply set the debug value in the camera script to true or false:

    Code (CSharp):
    1. AmplifyMotionEffect.Instance.DebugMode = true;
    For additional info be sure to check the Amplify Motion manual, section 4. Let us know if you have any additional questions or if you run into any issues.

    Thanks!
     
    twobob likes this.
  36. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    @Amplify_Ricardo Hi, I was very happy with this asset until today. I updated to the latest version and unfortunately I'm having a dreadful experience with it; my framerate plummeted from 50fps to 10fps. It looks like the new support for particles could be the culprit?



    Is there a way to download a previous working version of the asset? This is kind of an emergency. Thank you.

    UPDATE 1:
    I edited this message to remove the part about the component re-enabling itself; I'm just silly, it was my fault (nothing to do with the asset).

    UPDATE 2: Here are my settings, hoping it can help you pinpoint the issue...

     
    Last edited: Oct 11, 2015
  37. Diogo-Teixeira

    Diogo-Teixeira

    Joined:
    Apr 9, 2010
    Posts:
    494
    Hi Seith,

    We're about to release a major update that addresses particle support issues, among a ton of other changes and fixes.

    I don't think the component can toggle itself back on, however. Please make sure you do not add "Amplify Motion Camera" manually. These are managed by the effect.

    I'll send you the latest development build via email in a few minutes.

    We apologize for the inconvenience.
     
  38. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    That's great news! Thank you very much Diogo!

    (Yes, the toggling issue was a mistake of mine, sorry for the false alarm!)
     
  39. Diogo-Teixeira

    Diogo-Teixeira

    Joined:
    Apr 9, 2010
    Posts:
    494
    No worries! I've sent you a build just now. Please let me know if you didn't get it.

    For anyone else having performance issues with Particle Systems, we recommend disabling Auto-reg and, instead, adding "Amplify Motion Object" component to dynamic objects (e.g. prefabs meant for movement, characters, destructive pieces, etc.,.). It is the most effective way to use Amplify Motion for larger projects. For more detailed information please check our "Quick Start Tutorial - Part 2" video.

    We'll have a new build to help with these issues this week (depending on approval time) along with a ton of bug fixes and optimizations.
     
  40. Seith

    Seith

    Joined:
    Nov 3, 2012
    Posts:
    755
    Just for the benefit of everyone out there: support on this asset is truly among the best I've ever seen. To put it simply, it is thoroughly professional.
     
    Howard-Day and hippocoder like this.
  41. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Yeah I chat to these guys from time to time, they're great people!
     
  42. Howard-Day

    Howard-Day

    Joined:
    Oct 25, 2013
    Posts:
    137
    Amplify Creations has always had absolutely excellent customer service. That, and awesome plugins that work better than advertised. :D
     
  43. Karearea

    Karearea

    Joined:
    Sep 3, 2012
    Posts:
    386
    Great update- works really nicely at the top of the stack above Scion with the new HDR support.

    Btw I earlier reported a 'bug' on the Amplify forums regarding transparent objects jittering at high forward speeds, with Amplify Motion object components attached. I managed to fix this by setting the min/max velocity to 20/200.
     
  44. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thanks Seith, very happy to hear it.
     
  45. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Always a pleasure ;)
     
  46. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    We do our best, happy to know it's working. Thanks for all the feedback, developers like you have really helped us improve our products.
     
  47. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Happy to know it's playing well with Scion, do let us know if you run into any issues. Thanks for the tip on the transparent object jittering we will definitely continue to improve it.

    Thanks!
     
  48. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hello everyone!

    We are very happy to announce a major Amplify Motion update. In version 1.6.0 we added a new GPU path for skin deformation that greatly increased the performance of Skinned characters across all platforms; solid non-skinned asset performance has also been greatly increased.

    New HDR support assures compatibility with other High Dynamic Range based plugins such as Amplify Color with its new Filmic Tonemapping or even Scion.

    Among the new features we also took this opportunity to fix and improve possible issues such as MSAA quality, multiple camera handling, improved mobile mode with less visual artifacts, skinned meshes not taking base game object motion into account, intermittent solid meshes when attached to kinematic rigidbodies and much more.

    Visit our blog post or the Asset Store page for the full list of changes.

    Check out our Blog Post for additional info - Amplify Motion 1.6.0
    Fully functional watermarked trial version - Download

    Amplify Motion - Unity Asset Store
     
    Martin_H and hippocoder like this.
  49. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Absolutely awesome.
     
  50. jrhee

    jrhee

    Joined:
    Dec 5, 2013
    Posts:
    74
    Hi,

    Is it possible to get a trail effect for a skinned mesh renderer, similar to the one below?


    I'm playing with the effect settings, but no matter what I try it seems like the object blur remains constrained to within the object's local space. For example, when I take a simple scene with a moving cube, instead of leaving a trail, the cube appears to deform.

    Thanks!
    John