Announcement

Collapse
No announcement yet.

*FIXED*disabling bots from activating touch trigger? (simulate light dist. culling)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    *FIXED*disabling bots from activating touch trigger? (simulate light dist. culling)

    [EDIT] This issue now solved please help someone else
    Hi all

    Been trying to put in a trigger to cull some dynamic lights.
    Have set up a touch trigger with a radius of 1536uu and created a new touch event reference to this trigger in kismet. Also connected it to some toggleable point lights which turn on when the trigger is touched and turn off when the trigger is untouched. Obviously dynamic lighting is wasted on bots and I am trying to have these lights triggered only by the person playing the game, not other players or bots.

    The problem I am having is that despite my best efforts it seems the bots are still activating the trigger.

    Things I have tried:
    -Making player 0 the instigator
    -Adding UTBot and AIController to "IgnoredClassProximity" in the touch triggers properties.
    -Setting "BClientSideOnly" to true in the touch triggers properties
    -Setting up a LOS trigger (would prefer not to go this way anyhow)

    The problem I am having is the toggleable light is constantly flickering on and off. I am unsure if this is due to my large collision hull for the trigger (is the middle hollow?) or because the trigger is reacting to bots touching and untouching it. As the problem only seems to occur with bots added I believe it is the latter, but I am uncertain

    If anyone has any ideas on how to get this working for the human player on the machine only, please pass them on.

    Thanks to anyone who can help

    #2
    the instigator is and output so what you need to do is creat a var that the instegater can be stored in then haveing a comparison check to see if its the player tuching it. so it would be
    Triger---Conparison---What ever you want to happen
    | | |
    objvar---| Player

    some thing like that.
    Also the 3dbuzz.com's tutoral on how to make a topdown game in ut has this being used at a few points so if you dont understand what im saying you might want to give that a look

    Comment


      #3
      In many of the "event" nodes, there is a "bPlayerOnly" option, if you check that, the bots should activate the trigger.

      Comment


        #4
        Hi Sad Aust and odedge. Thanks very much for your suggestions

        Ive tried them both. The kismet seems to work fine with just me, but as soon as I add bots, the sequence just seems to lock up. This is probably due to me doing something wrong with my comparison at a guess. Ive taken a screenshot in the hope someone will be able to see my blunder and help out. Thanks again

        [SHOT]http://i254.photobucket.com/albums/hh82/FragTastic1/TechProbs/KismetWoesNeedBotActivationDisabled.jpg[/SHOT]

        (click image for 1440x900 version)

        Comment


          #5
          I wish my Kismet knowledge was better as I am also having my fair share of issues with it on my current map. This looks like it's for a multilayer map, so there will be more than one player or are you trying to make it a SP map?

          Either way, can you explain exactly what you want the Kismet to do and not do?

          Comment


            #6
            yes odedge its for pentecost a normal UT map, so multiplayer.
            Basically I want the dynamic lights to be culled when the player is not near them as their is 50 of them in the level. I have got the culling working fine Unfortunately though the bots also trigger the lights to be lit\unlit. I basically only want the human player to trigger the dynamic lights. If I can achieve this I will only have 4-6 running at a time. At the moment however with bots triggering it as well, this number is getting a lot closer to the original 50 as any building they move thru they trigger the lights.

            The compare objects i have in place seems to be stopping them triggering the lights which is great. However the sequence seems to lock up when this happens. (if lights are on they stay on. if lights are off they stay off) So Im guessing I have to do something more with the other half of my compare objects node, but I have no idea what.

            Just tried a trigger volume instead and hooking it up a few different ways. But Im stuck with the same prob. Either I can get it so both me and bots trigger it by taking out the compare objects node. Or I can stop the bots triggering\untriggering it with the compare objects node, however it seems when a bot moves thru it, it locks up the whole sequence and if lights are on they stay on permanently and if they are off they stay off permanently... So although it seems to prevent the bots from triggering it, it also locks up the whole sequence and further triggering doesnt occur by me or bots

            ticking "bPlayerOnly" in the trigger or trigger volumes properties also seems to do nothing

            Thanks for your attn to the matter and for any info you may or may not have odedge

            Comment


              #7
              Well, I have a lot of info I don't have, but that won't help you. Out of curiosity, how did you get the light to cull (with a volume?).

              Also, are the triggering lights purely cosmetic or do they effect game play (I presume they effect game play as they can inform a player that another player is in a given area). If they effect game play, then both bots and humans should trigger them

              Also, is the map so wide open that if a lot of these lights were triggered at the same time, it causes lag? Or is it just Kismet being overworked (if that's possible)?

              Have you also tried a blank variable for the B inputs, the one with the "???" inside it. I am guessing the player variables only related to human players. But then again, I haven't used those Compare Objects outside of a tutorial.

              Comment


                #8
                in your volume options (right click) will be a trigger volume along with blocking volumes yada yada yada. Will show up as a green brush in editor once you add the volume then just select it in viewport and right click in kismet to add "event involving triggervolume"

                Lights are purely cosmetic odedge mate. In fact theyre also backed up with static lighting anyhow, in case people disable dynamic lighting. It was always necessary to back them up with static lighting even before they put in the extra options like disable dynamic lighting in 2.x versions of ut3. I had a problem with 1.x version of ut3 with someone who had world and texture settings to 1 and were left in darkness in a beta release of carnage cathedral, because it culled the dynamic lighting at this setting lol. In that beta the dynamic lighting was the complete lighting for certain areas. So lesson was learnt early and well

                If I havent explained how to get a trigger volume clearly enough tell me and ill be a bit more concise about it

                Anyone else who has any ideas on my orig problem please let me know, Im still stuck Surely someone has wanted to add a distance culling option to dynamic lighting before and realized it was pointless when the bots were triggering it?

                Comment


                  #9
                  Originally posted by FragTastic View Post
                  in your volume options (right click) will be a trigger volume along with blocking volumes yada yada yada. Will show up as a green brush in editor once you add the volume then just select it in viewport and right click in kismet to add "event involving triggervolume"
                  I know what a trigger volume is and have used it. But when you used the term "cull", to me, that means the lights won't be displayed even if they are turned on and the engine can see them.. I thought you used a CullDistanceVolume and was asking to make sure.

                  I know this is beyond my current knowledge, but did you try to make a simple trigger volume (or trigger actor), then set up to turn the lights on when a player activates the trigger, but turn them off when the trigger isn't activated. The "bPlayerOnly" option should work.

                  That is, unless you need them to stay on until the trigger is activated again.

                  Comment


                    #10
                    Sorry for the misleading term mate
                    I did try a simple trigger, its above in my kismet shot. Ive actually spent about 12 hours trying various bits and pieces but nothing has worked. I didnt think a cull distance volume can be applied to lighting. If its that easy Ill be kicking myself hard lol. TY for suggestion either way.

                    So no the lights dont need to stay on till trigger is activated again. I basically want them to untrigger as soon as the human (and human only) player moves out of the trigger or trigger volumes activation radius.

                    All I basically want to achieve is that these lights only activate\deactivate when the player is in a certain radius. In exactly the same way a culling volume does with meshes. Thats why I said culling coz thats basically exactly what I want to achieve. Something that deactivates the dynamic lights once the player is a certain distance away from them, like a culling volume does with a mesh, with bots basically having no relevance to the deactivation of these lights

                    I think Im actually pretty close. Im thinking that my kismet is falling down when A=!B is triggered in that "compare objects" node in my kismet

                    Comment


                      #11
                      Originally posted by FragTastic View Post
                      All I basically want to achieve is that these lights only activate\deactivate when the player is in a certain radius. In exactly the same way a culling volume does with meshes. Thats why I said culling coz thats basically exactly what I want to achieve. Something that deactivates the dynamic lights once the player is a certain distance away from them, like a culling volume does with a mesh, with bots basically having no relevance to the deactivation of these lights
                      Half of it's easy, but the easy part seems to be hard.

                      Well, you should be able to have either a trigger volume or trigger assigned to a touch even. Have the touched output go into a Toggle node (toggle on input). Then connect the Traget for same node to some Toggleable lights. Then connect the Untouched output on the same Touch event to a different Toggle node (but connect them to the toggle off input). Then set the target to the same toggleable lights as the first Toggle node. For some reason, I can never get one node to toggle the same lights off and on.

                      What should be the easy part (not letting the bots activate these triggers) is escaping as me. You would thing enabling "bPlayersOnly" would work, but it hasn't. So if you can get this part, then you may have a solution.

                      Comment


                        #12
                        if your still haveing problems with it dellet the play var that is under the trigger conected to the instagater and right click on the link and say creat a var it should creat the kind that you need

                        Comment


                          #13
                          Thanks again odedge and sad aust. I now have the issue sorted

                          If anyone else is following this for their own trouble shooting purposes, the changes from the original kismet pic is
                          -I used dynamic trigger volumes (seemed to be better results)

                          -I set up a blank ? mark object variable as sad aust suggested and connected that into the trigger instigator

                          -dynamic trigger volumes set up client side only (as with ordinary triggers in earlier kismet pic- these just seem to work better)

                          -Connected a delay node into the A=!B node of the compare objects. This was connected to the stop node of the delay node. delay was set for 0. This was the step that actually got it all working properly. There must be something in that blank objectvar too, because im sure i tried the delay on the A=!B node before i came to forums on the issue.

                          -Retrigger delay was set to nothing in kismet for all triggers
                          .
                          -Tick BPlayersOnly (but dont expect that to solve the problem on its own... lol)(think this just stops projectiles and the like setting it off as well, so more efficient with less false triggers to set the sequence off)


                          Think thats it

                          Odedge and sad aust thanks again, I will credit you for help in map thread\read me

                          Comment


                            #14
                            Originally posted by FragTastic View Post
                            Thanks again odedge and sad aust. I now have the issue sorted
                            Glad to hear you got it working.

                            -Tick BPlayersOnly (but dont expect that to solve the problem on its own... lol)(think this just stops projectiles and the like setting it off as well, so more efficient with less false triggers to set the sequence off)
                            Hmm, never thought of this variable that way. If it's true, that makes sense.

                            Comment


                              #15
                              Yeah I did It still needs a bit of help with playerspawns and deaths (lights not on when spawned-not turning off post death till retriggered off) but even as is its a vast improvement and leaves me with a worst case scenario with 25% of the lights running. If I can get the death part licked will be down to 8-12%

                              NOTE: This technique was used with a moving point light function, which still counts as a dynamic light even if it is a less expensive one. Im unsure of whether it could be used like a pointlightmovable as i dont know whether this type of light is matinee compatible (pointlighttoggleable) I really hope so coz i love those but they are soooooo expensive on a cpu

                              Comment

                              Working...
                              X