Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Utilities [WIP][AssetStore] Screenshot Evaluator - Score System for in Game Photography

Discussion in 'Tools In Progress' started by ApolloidGames, Jan 13, 2017.

  1. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Hello,

    I am a relatively new developer on the scene. When I first started using Unity a few years ago, I knew that I wanted to create something different. With Unity already having a solid FPS controller, however, that felt like the easiest place to start. I brainstormed ideas on how to modify the shooting genre, and eventually settled on creating a photography based game as a fun and reasonably unique twist. After significant research into the genre, I was rather surprised at how few resources were available for creating such a game. I hope to offer just that - a resource for getting started with in-game photography.
    logo-1.png

    Snapshot Evaluator is a tool designed to help indie developers easily implement a system of screenshot scoring, similar to those of Afrika, Sea Life Safari, or Pokemon Snap. At its core, the asset will be able to analyze a screenshot taken by a player and output characteristics such as which objects are present, which objects are centered, the proportion taken up by each object, and more. Snapshot Evaluator allows you to easily customize settings for scoring screenshots using custom editors and fully open source code.


    Currently, Snapshot Evaluator exists as a secondary camera and a few scripts that can be easily added to any project. I’ve tried to make it minimally obtrusive, so it currently uses the main player camera to actually take the screenshots. Depending on feedback, I may develop a more complete photography game with realistic camera settings readily available.


    This asset is still in development, and I would love your feedback and suggestions as I move forward.


    Here are a few of the current features:

    -Easy to use custom editor
    -Easily customizable tolerances on parameters
    -Fully commented and open source scripts
    -Identifies and categorizes photographed objects
    -Logs which objects are centered
    -Calculates proportion of snapshot that each object occupies
    -Logs which objects are facing the camera
    -Information about each screenshot is stored until reset by script (even between scenes)
    -(Optionally) Writes screenshots to JPG or PNG format for permanent storage
    -Allows screenshots to be taken at super-sized resolutions (integer multipliers)


    And here are a few in-progress features:

    -Log object actions at time of photograph DONE
    -Full demo scene with accompanying tutorial
    -Primary camera with realistic settings and effects (depending on interest)
    -Distinguish which specific parts of an object are visible (head, claws, tail, etc.) DONE
    -Demo and guide videos


    Below are a few screenshots showing basic functionality with console output, and I’ll hopefully have a video coming soon to show a full preview. The console log displays an example of what can be calculated when a player takes a picture.

    Cappy is the red capsule, Spherey is the pink sphere, and Cubey is the blue cube. The total percentage each prefab occupies in the screenshot is calculated by summing the proportion of each prefab instance.

    0.png
    img0Text.png


    1.png
    img1text.png

    Photography games have been largely left in the dust, and I hope to help reignite interest in the genre. Modern graphics significantly raise the potential of such games, and with your feedback, hopefully, we can put together a solid asset. This is currently my third iteration of such a system, and I can’t wait to hear what you think.

     
    Last edited: Aug 13, 2017
    blueivy, alexanderameye and _M_S_D_ like this.
  2. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Just a quick update after a weekend of work! I’ve implemented the ability to distinguish which specific parts of a gameobject are visible in a screenshot. This feature can easily be switched on and off, and opens up the possibility for potential missions that require a user to take pictures of something specific (e.g. the weapon used by a boss). I've included a couple of screenshots below that show off the functionality in the console.


    I’ve also begun testing with a more complex rig from Mixamo to make sure it works for more than just my primitive shapes. Next on the list is to log if the screenshotted gameobject is performing an action. Assuming that goes well, I should have some videos up relatively soon!


    As always, I would love to hear your feedback and requests. Thanks for reading!

    0.png
    img0text.png
    1.png
    img1text.png
     
  3. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Just another quick update before the weekend! The asset now detects what GameObjects are doing when they are photographed, and I've made some UI improvements so you don't have to read the console to see information about a screenshot. Below is an example of the new UI for viewing screenshots.
    ss1.png
    In summary, when you take a picture, you can now track:
    -Which objects are pictured
    -How much of the screen each object occupies
    -Which objects are facing the camera
    -Which objects are centered
    -Key points on an object
    -Animation performed by an object

    Everything is assigned a score and summed to generate an overall score for a picture. You can easily tune parameters as you please to tweak how the scoring behavior works. Below are some of the parameters that you can currently modify on the scoring camera.
    ss2.png

    And here is an example of key point and animation testing parameters on an object:
    ss4.png

    These editors are very much a work-in-progress, and next on my to-do list is to combine them into an easier to use window. I would be happy to answer any questions that you may have, and I welcome any suggestions for additional information to track upon taking a picture. Thank you for reading!
     
  4. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Wow, I've been looking for an asset like this for a while, but surprisingly no one has tried to do it until now. Can't wait to see it released!

    Looks like you've hit on most of what a person would need to create a Pokemon Snap style game. My only suggestion right now would be marketing-related. When you release, perhaps also sell it as an in-game screenshot creation tool as well, and have a setup that just takes shots and saves them as JPG or PNG. Add the line "Screenshot Evaluator works like a regular screenshot capture tool as well, so you don't have to buy other assets for that!" to your asset description, just to give it a bit broader appeal, you know?
     
  5. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Thank you so much for the advice - I think that's a wonderful idea! :)

    I've been extremely bogged down with work lately, but I did make a major revision to the interface of the asset. Previously, all information was contained in the Inspector, and having a ton of photographable GameObjects made it very cumbersome if you wanted to make changes. Now, everything has been moved to an easy-to-use custom window!
    Window1.png

    The window consists of two tabs, one for general settings (above), and one for objects:
    Window2.png

    I've tried to make everything super easy to use and adjust to your needs. For example, you can visually decide what should qualify an object as "facing" the camera using a slider to set the angle.
    facingCamera.gif

    Or, you could play with settings for determining whether or not an object is centered.
    centering.gif

    Hopefully, the GIFs give some idea of how tweaking the asset will work - I hope to have much more complete videos up as soon as I can get a break from work.
     
  6. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Just wanted to give a quick update that I am still actively working on this project! All of the main features of the asset are complete, and I'm in the (grueling) process of optimizing code and writing documentation. I would love to answer any questions that you may have about asset functionality.

    If you would be interested in helping me beta test Snapshot Evaluator, please send me a PM! I'm aiming for a release sometime this summer.

    Thank you for your interest!
     
  7. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    1,383
    Good luck with the release! I have one question, not really related to your asset, but still ;)

    How did you make this awesome looking divider thingy in the inspector?

     
  8. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Thank you!

    The divider is a little bit of a cheat, but it gets the job done ;). In my custom editor script for that class, the divider is made by simply giving an empty TextArea the default horizontal slider skin.

    Code (CSharp):
    1. EditorGUILayout.TextArea("", GUI.skin.horizontalSlider);
     
  9. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    This is great news. Best of luck to you! I'm willing to help with beta testing, though I'm a Unity hobbyist, so if you'd like feedback from someone who isn't expert with game development, add me to your list!
     
  10. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    1,383
    aah sneaky! I'm gonna use it maybe to give my inspector a more organized look. thanks!
     
  11. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Thank you! You're exactly the type of person that I'm looking for :). I'll be in touch with you as I get closer to release!
     
  12. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Hey Jayto, hope you're well and development on Snapshot Evaluator is coming along smoothly :) I have a feature suggestion that occurred to me this week: the ability to tell if an object is obscured behind something else. So, for example, if the target is behind a tree we can deduct points from the photo depending on how much of the character is obscured.
     
  13. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Hey Ayk,

    Thank you for your suggestion! The way that I currently have the asset setup actually does something to this effect.

    Under the hood, the asset works by assigning a "Color ID" to each photographable GameObject in the scene. The score camera then views the scene through a shader that only sees these colors for calculation.

    When a screenshot is taken, the proportion of the screen occupied by each unique color is calculated and mapped to each respective photographable object. If the object is blocked by something like a tree, then that part of the object is not seen by the score camera, and thus the proportion of the screen is less than if the object were just sitting in the open.

    Here's a quick example of a fat rhinoceros through the lens of the player camera, and the score camera. This is the same exact view in both screenshots.

    Player View:
    ss_Colored.png

    Score Camera View:
    ss_ScoreCamera.png

    So, because the tree blocks some of the rhino from the camera, the score will be less than if the rhino were directly in front of the camera.

    I think that achieves about what you're describing :). Please let me know if you have any questions!

    Thank you again for all of your feedback :).
     
    ayk likes this.
  14. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Yes, that is exactly what I was looking for. You've thought of everything! Can't wait to see Screenshot Evaluator get released :)
     
  15. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    I finally had a break from work and have made a few major improvements to Snapshot Evaluator!

    1. Snapshot Serialization
    I took Ayk's suggestion about marketing the asset additionally as an in-game screenshot creation tool and decided to completely revisit how screenshots were being saved. Previously, screenshots were saved in a static list for later reference between scenes. This worked fine for a while, but certainly wasn't the best way to go about it. Now, everything is saved using JSON serialization. There is a key for long-term storage of screenshot information, and one to just store the latest session.

    Snapshot information is now much more accessible in the editor, so I added a tab to view them:
    SnapshotWindow.png

    When you click on an image, you can now view scoring information as well as output that image into a .png or .jpg file. An optional file prefix allows you to add a prefix to a filename for easy categorization. (Most of the information about each object is in-progress at this point.)
    SnapshotPopup.png

    2. Demo Scene
    As you may have noticed, Cubey, Spherey and Cappy have retired and been replaced by a whole plethora of fun animals. They all perform several silly animations and run around the island for testing purposes. This entire scene will be included with the asset as a demo, along with a guide for how I created it.
    Demo.gif

    I think that's all for now - still on track for a release this summer! :) As always, please don't hesitate to let me know of any questions or suggestions that you may have.
     
    ayk and alexanderameye like this.
  16. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Nice! Can't wait to see it released. Keep up the great work. Will saving pngs and jpgs work in a build as well? That might be a great way to let players save their favourite photos for use as wallpapers and on social media, etc.
     
  17. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Yep! Screenshots are saved as bytes and easily transformed into jpgs or pngs by calling the appropriate method, even in builds. The asset was planned for desktop games, but I built my demo scene for Android and everything still functioned!

    Within the next week or so, I should have a basic setup/overview video to show some of the process!
     
    ayk likes this.
  18. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Crazy question occurred to me last night: will this also work in 2D mode, or is it just 3D-only?
     
  19. rrahim

    rrahim

    Joined:
    Nov 30, 2015
    Posts:
    206
    This is EXACTLY what I've been looking for!
    Can't wait to see this asset be released, will definitely pick this up.

    I had planned to write a system from scratch to do this, but I'm glad to see an asset which will save me time.
    Good job!
     
  20. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Just to clarify my question, I'm wondering if the system will work with sprites, or if it's purely for use with polygonal geometry.
     
  21. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Glad to hear it! I have a quick overview video filmed that shows some basic functionality like creating a new photographable object - I'll get it posted here over the weekend.

    I am not very familiar with creating 2D games in Unity, but I think it would actually be able to work by slightly modifying the sprite shader. I'll add it to my list of things to try before release :).
     
    rrahim likes this.
  22. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    I've posted a first look video on Youtube to show how far the asset has come along! Please let me know if you have any suggestions - I should have a lot more videos coming soon. Also, let me know what you think of the new icon!
    logo-1.png



    Hope you enjoy! :)
     
    ayk, rrahim and alexanderameye like this.
  23. rrahim

    rrahim

    Joined:
    Nov 30, 2015
    Posts:
    206
    Look awesome so far.
    I plan on placing a render texture for the screenshot camera in an actual camera model's view finder screen.
     
    ApolloidGames likes this.
  24. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Looking good! Can't wait to see it released :)
     
    ApolloidGames likes this.
  25. rrahim

    rrahim

    Joined:
    Nov 30, 2015
    Posts:
    206
    I'm curious about how development on this asset is going.
    Any updates?
     
  26. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    I've unfortunately been very busy with work lately and haven't had much chance to work on the asset. I have been working on documentation and hope to jump back in within the next few weeks. Apologies for the delay in updates!
     
    ayk likes this.
  27. rrahim

    rrahim

    Joined:
    Nov 30, 2015
    Posts:
    206
    Cool. Good luck with getting things sorted out.
     
  28. conchors

    conchors

    Joined:
    Jan 27, 2017
    Posts:
    2
    Is the in-progress version of this available anywhere? this would be a great help in my current project, finished or no.
     
  29. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Sorry, the in-progress version is not yet available. :(
     
  30. ayk

    ayk

    Joined:
    Nov 14, 2013
    Posts:
    58
    Keep on trucking Apolloid. You're making a beautiful and unique product.
     
  31. rrahim

    rrahim

    Joined:
    Nov 30, 2015
    Posts:
    206
    Hey, how are things with this project?
    I've reached the point where I'm ready to implement a system like this, and I really like what you've shown so far.

    Is there any time frame for release?
    If not, is it possible to purchase an early access some how?
     
  32. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Hey! I've actually just picked up working on the project again, and am currently putting together some video guides for a beta release. The asset won't be fully complete, but I'm aiming to send out a few early test versions by the end of June. :)
     
    ayk and rrahim like this.
  33. rrahim

    rrahim

    Joined:
    Nov 30, 2015
    Posts:
    206
    Excellent!
    I would love to Beta test if possible.
     
  34. maragakis

    maragakis

    Joined:
    Jun 2, 2018
    Posts:
    1
    would love to get my hands on an early test release - looking to use this in a vr game and just want to test feasibility.
     
  35. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Snapshot Evaluator will finally be entering beta on July 8th! The beta version will be the complete version of the asset as it currently stands and will include the demo scene as well as rough-draft documentation and a video tutorial for implementing Snapshot Evaluator into an existing game. I've tested the asset fairly heavily on my own, but your feedback will be immensely helpful in preparing the asset for a full release.

    If you would like to receive a copy, please send an email to beta@apolloidgames.com with a brief description of how you plan to utilize the asset. Together, hopefully, we can create something magical! :)
     
    rrahim likes this.
  36. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    logo-1.png
    BETA v0.9.0
    Snapshot Evaluator Beta Version 0.9.0 is releasing today and I will be sending out copies a little later today to my brave volunteers. If you're just now seeing this and are interested in participating, please send me an email at: beta@apolloidgames.com with a brief description of your project.

    It should be said that this version is not complete. You may experience bugs and frustrations (and if you do please tell me). BACK UP YOUR PROJECT BEFORE IMPORTING THE ASSET.

    The asset was created Unity 5.5.2, and tested in Unity 2018.1, so it should at least work between those versions.

    Please watch the following video before getting started - it's only 10 minutes long and should give you a rundown on the basics of the asset. Let's get this polished together!

     
    Last edited: Jul 8, 2018
    ayk, limo and rrahim like this.
  37. manurocker95

    manurocker95

    Joined:
    Jun 14, 2016
    Posts:
    194
    Is this still a thing?
     
  38. ApolloidGames

    ApolloidGames

    Joined:
    Mar 10, 2015
    Posts:
    18
    Hey! It's still technically a thing, but I haven't worked on it in quite some time. I believe it will still work in the latest version of Unity as long as you're not using the HD render pipeline. I'd be happy to send you (or anyone else) a beta invite if you'd like to try it. Just shoot an email over to beta@apolloidgames.com
     
  39. unity_Fox-Lucky7

    unity_Fox-Lucky7

    Joined:
    Jan 14, 2019
    Posts:
    1
    Hi, this is a wonderfull tool. I currently work with unreal engine and i would like to implement something similar in UE.
    Do you mind sharing some tipps/Info with me?
    Thank you.
     
  40. Minimilian

    Minimilian

    Joined:
    Jan 19, 2021
    Posts:
    23
    Hey there :)

    I just dropped you a line, I'm writing also here just to increase the chances that you'll get notified XD
    I absolutely love the concept and I'd like to see how you made it. I might have a use in mind, also. :)

    Thanks! :)
     
  41. Divinitize1

    Divinitize1

    Joined:
    May 27, 2019
    Posts:
    99
    Hey Although im pretty sure this project is dead and not being worked on, I have spent the better part of 2 weeks+ finding viable solutions to do EXACTLY what this does, i have emailed you twice, but Im not sure if you're recieving them as your website links to a page not found type thing. Just thought id try here, id love to try a beta copy of this if its still a thing. Many thanks
     
  42. UnityTestingFrostPixel

    UnityTestingFrostPixel

    Joined:
    May 22, 2019
    Posts:
    6
    Is this dead? I'd love to try with this!
     
  43. UnityTestingFrostPixel

    UnityTestingFrostPixel

    Joined:
    May 22, 2019
    Posts:
    6
    Hey @Divinitize1, did you ever find another working solution?