Interactive Movie?

Greetings! I’m currently working on an interactive movie in blender! (examples of interactive movies include “life is strange”, “minecraft: story mode” and “the beast among us”.) I know how to make buttons and all that, and switch the scene and everything, but how do I make it so the buttons don’t appear until a certain point in time? (for example, if the player has to choose a shovel or an axe, how do I make it so he can’t choose until the two items are presented to him?) If you know, that would REALLY be helpful. Also, if you know how to do it without python, that would be even MORE helpful, but I’ll do python if I have to. If you know how to do this, please drop a reply! Many thanks! -Noah

You could run a timer for a set amount of time (constantly adding to an integer property) then when the game property is at a certain value add an overlay scene with the buttons.
Otherwise use the actuator sensor to detect when a certain animation on an object has finished and then present the options when the animation is no longer playing.

You can do both of these with logic or with python.

You can use a property to tell the game whether the player has access to the item in question. That seems to be the simplest and most obvious solution.

What does the question have to do with the subject title?

Could you explain in more detail how I would do the first method? Sorry, I’m just extremely new to the bge. (I’ve only been using it for one day)

(I should also add that the game visuals will all be pre-rendered, so the only thing thats actually 3D will be the buttons.)

You can use a property to tell the game whether the player has access to the item in question. That seems to be the simplest and most obvious solution.

What does the question have to do with the subject title?

I’m not sure I understand what you mean. The game can’t apply logic to items because the items are part of the pre-rendered video file.

Like thatimster said, you can use a timer property, place empties where the buttons are supposed to be and when the time is reached you add the “Buttons” to the empties with the addObject actuator.

There are so many different and possibly better ways you can do this but you just have to see what works for you.

Yeah but I don’t know how to set a timer.

Add property and set the type to “Timer”, it will automatically keep increasing second by second.

But what I need is more of a countdown. Suppose the video starts at 0:00 seconds and then the player has to make a choice about something at 0:05 seconds. How would I make it so that the buttons don’t appear until then?

Add the property to the empties, place the empties at the button location, as soon as you start the game the timer will start, assuming the timer property was added the same time as the video started and you want o to make a choice at 5 seconds, put a property sensor on the same empty to check the timer property and when it reaches 5, add the button object.

Just go into the game engine and try to do as I said, you’ll get the basic idea and I hope you can work your way up from there.

What does the evaluation type need to be?

Whether or not the items are pre-rendered, the user is not. So you set up a property for the user just like you would set up a score for them, only you don’t store it in a player’s character object… you store it in an empty that monitors the entire game.

From what I understand, there will be dynamic user input, so however you plan on dealing with that, the same means can apply to setting up a property (or properties) to signal when the user makes a move or clicks on a button or whatever.

For a timer? A floating point.

Depends,

If you want it to send true exactly at 5 then “Equal”.

wait, nvm figured it out. Thanks so much!