• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
Question by eirikamb · Jul 06, 2016 at 09:02 PM · c#animationcutscene

Best way to create cutscene without buying from the asset store?

I am working on a project and i want a cutscene which is about 20-30 seconds long.. And I will have many, the longest I guess will be for about 1-2 minutes... Is there a way to create cutscenes and not make an giant animation? Or is it best to make a giant animation? The cutscene will include the world and running and jumping so t me it seems easiest to not have to create an animation ad animate that you walk

Comment

People who like this

0 Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Cherno · Jul 06, 2016 at 09:38 PM 0
Share

I'd write a custom cutscene manager, it shouldn't be too difficult. Start with delcaring a custom class which holds any info about what a GameObject does during a cutscene: at which point of time it does something, where it moves to (and additional waypoints and how long it waits in between), at which speed it moves, same for rotation, etc. Create an array of your custom class, the elements will be the "keys" of your timeline. Then, in Update(), just use a timer to keep track of the cutscene time. Each frame, check all elements in the array wether they have reached the time to do something, and if yes, make them do whatever they should do.

1 Reply

· Add your reply
  • Sort: 
avatar image

Answer by ScaniX · Jul 06, 2016 at 10:38 PM

I did something like that as well. I have a main class DialogSystem (weird name as it was initially only intended to do the messages). You can call Add() with implementations of an interface (DialogStep in my case) which has methods like: Update(), IsAsynchronous(), IsFinished(), CanBeSkipped(), StepOver() (to finalize some values in case the whole step is skipped before it was even started).

The DialogSystem has a queue of all added steps and gets a new one if all synchronous steps are finished. In its Update() method it calls Update() on all current steps (zero or one synchronous and zero or more asynchronous).

I have several implementations, like:

WalkTo: Moves the player across some waypoints to a destination.

Transition: Has a callback that is called with a float from 0 to 1 to animate just anything.

Callback: For a oneshot thing like turning something on/off

I use this for a lot of things inside of the game. In case of a real cutscene the first step is always to show the cutscene camera overlay (black bars) and disable player input. And the last one undos those steps to give the control back to the player.

If the cutscene gets complicated it can be quite troublesome to get the timing right, because you will have to check it out in play mode again and again as there is no time slider like in the Unity animation (unless you make one yourself), but what I did to improve this situation is to add a method to be able to skip to a specific step in my animation, so I won't have to play it from the beginning while testing.

Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Cinematic Camera Shake 2 Answers

Animator not showing animation 1 Answer

C# Make Child Not Animate Looped Animation 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges