The Infinity Blade Forums Have Moved

We've launched brand new Infinity Blade forums with improved features and revamped layout. We've also included a complete archive of the previous posts. Come check out the new Infinity Blade forums.
See more
See less

Matinees not repeating?

  • Filter
  • Time
  • Show
Clear All
new posts

  • Matinees not repeating?

    So, I have a set of matinees hooked up to a switch, which is hooked up to a use trigger event. What is supposed to happen is that every time the player hits the switch, one of the four matinees plays, then the next time he hits it, the next matinee plays, etc. etc.

    Once he hits the switch for the fifth time, the first matinee is supposed to trigger again. I know the switch action is working properly (having tested with announcements that play properly), but the matinees don't play.

    Kismet Screencap

    Here is a screen cap of this portion of my kismet. You can't see all the matinees, but they are set up the same way, just with different data inside. I'm thinking there's something in that properties window at the bottom I have to change, but I don't know what.

    Any help?

  • #2
    Toggle the "Rewind on Play" option for each of those matinees. Should work correctly then.


    • #3's better than before, but no, it's still not working.

      What is happening now is that every use of the trigger after the 4th, instead of no animation playing at all, it just keeps repeating the 4th matinee.


      • #4
        Because you need to run a validation check of some sort for after the 4th matinee gets played so that it resets to the first one. So on the "completed" input node of your 4th matinee, you need to set a boolean variable. Something like Is4thMatineePlayed... then toggle it to true after 4th matinee completes, and then have a boolean comparison of this variable checked before it hits the "switch" node. (And you might want to clarify what your switch node conditions are by taking a screencap of its properties like you did with the matinees...). And then once the first matinee is executed, set that boolean back to false. That way you get the looping behavior you desire.


        • #5
          Alright, so I have to set up a bool and compare it...but where exactly do I connect the nodes of the comparison? Here's the screencap of the switch properties.



          • #6
            In your boolean comparison node, I would recommend plugging the "bool" input node to the boolean variable, not the "result" output node.

            After Matinee #4 completes, use the "Toggle" kismet node to change the boolean value by linking "completed" to "Turn On". Conversely, "Turn Off" sets the boolean to FALSE... you will need to toggle this off after the FIRST matinee completes.

            This time around you might want to modify your kismet switch node slightly, since you're doing this comparison check now. If "FourthMatineeHasPlayed", then just connect straight to matinee number one. Otherwise, use switch to compare between the remaining three matinees.

            From there, I recommend you continue playing around with your kismet until you get it working and customized to your liking. Good luck!


            • #7
              So, something like this?


              Cause it still isn't working properly. Whether I have the bool start as true or false didn't make a difference either, it still just repeats the 4th matinee over and over for every use of the trigger after the 4th.


              • #8
                Perhaps this will work for you:

                I've only tested this with Play Announcements. The Matinees I have in the screenshot are untested dummies, but it seems like the system should work with your Matinees. For the Index node of the Switch, an Int variable is plugged in. I have it set for 0 initially, though it probably should be set to 1, since that's what the first Link index would actually be. The Switch should automatically progress to the next Matinee each time it's triggered. At the same time, the Switch automatically updates the Int variable plugged into the Index node. When it finishes playing the fourth Matinee, the action Set Variable - Int gets triggered. In the properties, I have it set to reset the Int Variable to 1. This manually resets the Switch, so that next time the Switch is triggered, it should play the first Matinee.

                As I said before, I only tested this with Play Announcements, but it works for me without having to enable Looping in the properties for the Switch. As long as your fourth Matinee completes playback, this setup should forcibly reset your Switch to achieve the desired behavior.

                EDIT: I just tried it with a dummy Matinee connected to the fourth Link, and it worked properly. After testing that, I disconnected the Set Variable - Int action and verified that the Switch no longer resets itself after firing the fourth Link. At this point, I'm pretty confident this setup should resolve your problem.


                • #9
                  Unless I'm missing a setting in the properties somewhere, no, it doesn't work. the 5th use won't do anything at all, and then uses 6, 7 and 8 are all playing the 4th matinee.

                  I'm thinking at this point I need to come up with another thing for this puzzle instead of this statue turning thing.


                  • #10
                    I wonder if there's somehow something wrong with the fourth Matinee. If something is wrong and the Matinee never thinks it's finished playing, the Index variable will never get updated. How about rewiring the fourth Link so that the Index variable is reset before the fourth Matinee plays? That way, even if the fourth Matinee is having a problem, the Link Index is already reset, so the next activation of the Switch should use Link 1, instead of staying stuck on Link 4.

                    If that doesn't work, try setting your Switch up with only three Links, so that the fourth Matinee isn't connected at all. Since the Switch properly updates after playing the first three Matinees, it seems like a Switch with only three Links ought to work properly. If you do that, you can try checking the Looping property of the Switch to see if it loops properly, or you can modify the setup I posted earlier so that the Index variable is updated after the third Matinee completes.

                    If it works, then there's something wrong with your fourth Matinee. If it doesn't work, then maybe it will be necessary to add some Breakpoints to see what's happening as Kismet executes.


                    • #11
                      I think the problem is with my first matinee. Even doing both of your suggestions, the same thing happens, where the first press of the switch for the second cycle doesn't play any matinee at all, and then each of the other presses afterwards play the last one that is linked up (in this case, the third).


                      • #12
                        It's hard to imagine something being wrong with the first Matinee if the Switch can successfully move on to the second Matinee afterward. If you think the first Matinee itself might be a problem, how about connecting your Matinees to the Switch in reverse order, so that the first Matinee gets plugged into the fourth Link?

                        Something else I'm curious about is confirmation about whether or not the fourth Matinee is completing playback. Perhaps you should add some Play Announcements. You could put a Play Announcement before each Matinee that says something to the effect of "Matinee XX starting playback", and put a Play Announcement on the Completed node of each Matinee that says something to the effect of "Matinee XX finishing playback". If the Matinees aren't ending playback properly, the absence of the completion message will be a clue.


                        • #13
                          Well, the announcement plays at the end, but what I found is that the set value for the INT isn't running (I put an announcement at the end of that to check it as well). Maybe I'm missing a really obvious setting there?

                          EDIT: Ok, by making a second int and plugging it into the value node of the set int action, I get the announcement to play, but the animations still don't work right. Now I'm very confused. I'm sure it's something super basic and obvious that I'm missing because I'm such a noob.


                          • #14
                            I'm really not sure what's going on. To try to reproduce your issue, I created a Switch with four Links that causes a brick to rotate 90 degrees each time the trigger is touched, and it's working perfectly. Using the 'Looping' checkbox on the Switch, I don't even need to manually reset the Switch after the first cycle. If you like, I can upload a copy of the level somewhere so that you can see it in action and inspect the Kismet involved.

                            Edit: Here's a sample level with a rotating brick. I'm using a Weapon Factory as a trigger. Each time it is touched, the brick just beyond it rotates 90 degrees, followed by a message announcing that the relevant Link is complete.

                            RotatingBrick.udk at MegaUpload


                            • #15
                              My UDK crashes whenever I try to open your Rotating Brick map. I'm using the September build, so yeah, that might be why. I have a trigger "use" event with an actual trigger to activate the switch, not a "touch" event with a weapon factory. I have the switch set to looping, and I have the use event set to have a max trigger count of 0 and a trigger delay of 5. My matinees are 3.5 seconds long. I just put the delay in so that the matinee has a chance to finish before they can trigger the next one.