Announcement

Collapse
No announcement yet.

Things broken since Feb: Pause Menu, Mobile Placeable Pawn

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

    Things broken since Feb: Pause Menu, Mobile Placeable Pawn

    Anyone have any idea when Epic is going to fix these issues? I've been forced back to the Dec UDK in order to ship.

    If anyone has any insight, I'd greatly appreciate it.

    So far, noone has been able to help. Has everyone moved to Unity or something for iOS?

    #2
    Originally posted by Graveljaw View Post
    So far, noone has been able to help. Has everyone moved to Unity or something for iOS?
    Uhm no what should be wrong with the Mobile Pawn mine seemed to work like a charm? Then again I only used it to control the camera so the issue must be elsewhere. The broken dynamic shadows and the missing step in the UDN certification docs ****** me off... but I guess worse things can happen.

    Comment


      #3
      @Graveljaw, what exactly are the problems your having with Mobile placeable Pawn and the pause Menu? and for the record I don't think many users go from UDK to Unity, I don't think I could say the same the other way around.

      @XilenceX, Dynamic shadows have always worked, the trouble is many users don't know UDKs lighting system and settings very well, so when dynamic shadows are skipping around and looking ugly or not even visible they say its broken....there's many settings in ini configs and each light has properties that control dynamic shadows, shadow influence and many more things that contribute to the overall dynamic shadow direction, plus certain lights like dominant directional lights break dynamic shadows on mobile.

      Comment


        #4
        @IamDouglas, 2 separate issues, but here it goes.

        Kismet - Tilt controlled Mobile Placeable Pawn:
        This only happens on the device and NOT in the previewer...I'd been using the placeable pawn, setup based on Epic's example in which the pawn is controlled by the tilting the device. With anything after the Feb UDK, the pawn will work for a short while (~ 5-10 seconds) before it just gets stuck in a particular direction and the app becomes very unresponsive and difficult to close. This also happens with a fresh install and deploy of the basic Jazz demo (thumb controlled). You can play for a few seconds before the pawn will just go in a single direction. The input gets unresponsive and the app is difficult to exit. - this is why I believe its in the pawn, not the mobile motion access.

        The pause input might be specific to Feb UDK as I did not notice this in any of the later UDKs.

        If it helps, I'd been using the Dec UDK for quite some time and its the last time I've been able to use the tilt controls with the mobile placeable pawn. Has there been any significant changes to any of these areas? Pawn, (tilt control) Haven't had much luck finding any relevant documentation.

        Comment


          #5
          @Graveljaw try this out using the JazzMiniGame as a test at first, The controls may not be exactly what your looking for..but its a basic model WIP and I haven't had time to optimize it at all, I need to know if it still becomes unresponsive on your system.

          You need to paste the code below into a text file and save it as SeqEvent_GyroscopeController.uc and place it in Development/src/gameframework/classes folder and do a full recompile.

          Code:
          class SeqEvent_GyroscopeController extends SeqEvent_MobileMotion;
          
          var float Forwards_And_Backwards, Left_And_Right, Up_And_Down; 
          var() float	DeadZoneLeft;
          var() float	DeadZoneRight;
          var() float	DeadZoneForwards;
          var() float	DeadZoneBackwards;
          var() float	DeadZoneCenter;
          
          event Activated()
          {
          	local WorldInfo WorldInfo;
          	local PlayerController PlayerController;
          	local LocalPlayer LocalPlayer;
          	local Vector MobileAccel;
          	local MobilePlayerInput MPI;
          
          	Super.Activated();
          
          	WorldInfo = class'WorldInfo'.static.GetWorldInfo();
          	if (WorldInfo != None)
          	{
          		PlayerController = WorldInfo.GetALocalPlayerController();
          		if (PlayerController != None)
          		{
          			MPI = MobilePlayerInput(PlayerController.PlayerInput);
          			LocalPlayer = LocalPlayer(PlayerController.Player);
          
          			if (LocalPlayer != None && MPI != None)
          			{
          				if (MPI.aTilt.Z < DeadZoneLeft)
          				{
          					MobileAccel.Y = MPI.aTilt.Z;
          				}
          			else
          			if (MPI.aTilt.Z > DeadZoneRight)
          				{
          					MobileAccel.Y = MPI.aTilt.Z;
          
          				}
          
          			if (MPI.aTilt.X < DeadZoneForwards)
          				{
          					MobileAccel.X = MPI.aTilt.X;
          					
          				}else
          			if (MPI.aTilt.X > DeadZoneBackwards)
          				{
          					MobileAccel.X = MPI.aTilt.X -MPI.aTilt.X *2;
          				}
          
          			if (MPI.aTilt.X < DeadZoneCenter)
          				{
          					MobileAccel.X = 0;	
          				}
          		
          				MobileAccel.Z = 0;
          
          				Forwards_And_Backwards = MobileAccel.X;
          				Left_And_Right = MobileAccel.Y;
          				Up_And_Down = MobileAccel.Z;
          			}
          		}
          	}
          
          }
          
          defaultproperties
          {
          	ObjName="Mobile Gyroscope Controller [New]"
          	ObjCategory="Input"
          	DeadZoneLeft=-2000.0f
          	DeadZoneRight=2000.0f
          	DeadZoneForwards=9000.0f
          	DeadZoneBackwards=13000.0f
          	DeadZoneCenter=1000.0f
          
          	OutputLinks(0)=(LinkDesc="Input Active")
          	VariableLinks.Empty
          	VariableLinks(0)=(ExpectedType=class'SeqVar_Float',LinkDesc="Forwards_And_Backwards",bWriteable=false,PropertyName=Forwards_And_Backwards)
          	VariableLinks(1)=(ExpectedType=class'SeqVar_Float',LinkDesc="Left_And_Right",bWriteable=false,PropertyName=Left_And_Right)
          }
          Once compiled open UDK, load JazzMiniGame map, in kismet copy and paste the code below: (Note:the new node can also be found in event->input),Also Disable the Mobile Look Node on the Movement part in kismet.

          Code:
          Begin Object Class=SequenceFrame Name=SequenceFrame_31
             SizeX=1110
             SizeY=451
             bDrawBox=True
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=616
             ObjPosY=5752
             ObjComment="GyroscopeControls"
             DrawWidth=1110
             DrawHeight=451
             Name="SequenceFrame_31"
             ObjectArchetype=SequenceFrame'Engine.Default__SequenceFrame'
          End Object
          Begin Object Class=SeqVar_Object Name=SeqVar_Object_15
             ObjValue=MobilePlaceablePawn'MobilePlaceablePawn_1'
             VarName="Pawn"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1376
             ObjPosY=5952
             ObjComment="Jazz Character"
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Object_15"
             ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
          End Object
          Begin Object Class=SeqAct_SetVectorComponents Name=SeqAct_SetVectorComponents_1
             InputLinks(0)=(DrawY=5882,OverrideDelta=11)
             OutputLinks(0)=(Links=((LinkedOp=SeqAct_SetVelocity'SeqAct_SetVelocity_1')),DrawY=5882,OverrideDelta=11)
             VariableLinks(0)=(LinkedVariables=(SeqVar_Vector'SeqVar_Vector_2'),DrawX=1169,OverrideDelta=97)
             VariableLinks(1)=(LinkedVariables=(SeqVar_Named'SeqVar_Named_114'),DrawX=1074,OverrideDelta=22)
             VariableLinks(2)=(LinkedVariables=(SeqVar_Named'SeqVar_Named_116'),DrawX=1099,OverrideDelta=47)
             VariableLinks(3)=(LinkedVariables=(SeqVar_Float'SeqVar_Float_40'),DrawX=1124,OverrideDelta=72)
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1048
             ObjPosY=5848
             DrawWidth=168
             DrawHeight=77
             Name="SeqAct_SetVectorComponents_1"
             ObjectArchetype=SeqAct_SetVectorComponents'Engine.Default__SeqAct_SetVectorComponents'
          End Object
          Begin Object Class=SeqAct_SetVelocity Name=SeqAct_SetVelocity_1
             InputLinks(0)=(DrawY=5882,OverrideDelta=11)
             OutputLinks(0)=(DrawY=5882,OverrideDelta=11)
             VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_15'),DrawX=1478,OverrideDelta=16)
             VariableLinks(1)=(LinkedVariables=(SeqVar_Named'SeqVar_Named_92'),DrawX=1542,OverrideDelta=76)
             VariableLinks(2)=(LinkedVariables=(SeqVar_Float'SeqVar_Float_0'),DrawX=1611,OverrideDelta=145)
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1440
             ObjPosY=5848
             DrawWidth=214
             DrawHeight=77
             Name="SeqAct_SetVelocity_1"
             ObjectArchetype=SeqAct_SetVelocity'Engine.Default__SeqAct_SetVelocity'
          End Object
          Begin Object Class=SeqVar_Named Name=SeqVar_Named_114
             ExpectedType=Class'Engine.SeqVar_Float'
             FindVarName="Forwards_Backwards"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1088
             ObjPosY=6024
             ObjColor=(B=255,G=0,R=0,A=255)
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Named_114"
             ObjectArchetype=SeqVar_Named'Engine.Default__SeqVar_Named'
          End Object
          Begin Object Class=SeqVar_Named Name=SeqVar_Named_116
             ExpectedType=Class'Engine.SeqVar_Float'
             FindVarName="Left_Right"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1144
             ObjPosY=6064
             ObjColor=(B=255,G=0,R=0,A=255)
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Named_116"
             ObjectArchetype=SeqVar_Named'Engine.Default__SeqVar_Named'
          End Object
          Begin Object Class=SeqVar_Float Name=SeqVar_Float_40
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1192
             ObjPosY=6112
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Float_40"
             ObjectArchetype=SeqVar_Float'Engine.Default__SeqVar_Float'
          End Object
          Begin Object Class=SeqVar_Vector Name=SeqVar_Vector_2
             VarName="VelocityDir"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1016
             ObjPosY=5944
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Vector_2"
             ObjectArchetype=SeqVar_Vector'Engine.Default__SeqVar_Vector'
          End Object
          Begin Object Class=SeqVar_Named Name=SeqVar_Named_92
             ExpectedType=Class'Engine.SeqVar_Vector'
             FindVarName="VelocityDir"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1520
             ObjPosY=5944
             ObjColor=(B=0,G=128,R=128,A=255)
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Named_92"
             ObjectArchetype=SeqVar_Named'Engine.Default__SeqVar_Named'
          End Object
          Begin Object Class=SeqVar_Float Name=SeqVar_Float_25
             VarName="Forwards_Backwards"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=672
             ObjPosY=5984
             bOutputObjCommentToScreen=True
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Float_25"
             ObjectArchetype=SeqVar_Float'Engine.Default__SeqVar_Float'
          End Object
          Begin Object Class=SeqVar_Float Name=SeqVar_Float_24
             VarName="Left_Right"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=808
             ObjPosY=5984
             bOutputObjCommentToScreen=True
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Float_24"
             ObjectArchetype=SeqVar_Float'Engine.Default__SeqVar_Float'
          End Object
          Begin Object Class=SeqVar_Float Name=SeqVar_Float_0
             VarName="Velocity"
             ObjInstanceVersion=1
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=1616
             ObjPosY=5944
             DrawWidth=32
             DrawHeight=32
             Name="SeqVar_Float_0"
             ObjectArchetype=SeqVar_Float'Engine.Default__SeqVar_Float'
          End Object
          Begin Object Class=SeqEvent_GyroscopeController Name=SeqEvent_GyroscopeController_1
             MaxWidth=238
             OutputLinks(0)=(Links=((LinkedOp=SeqAct_SetVectorComponents'SeqAct_SetVectorComponents_1')),DrawY=5850,OverrideDelta=11)
             VariableLinks(0)=(LinkedVariables=(SeqVar_Float'SeqVar_Float_25'),DrawX=757,OverrideDelta=26)
             VariableLinks(1)=(LinkedVariables=(SeqVar_Float'SeqVar_Float_24'),DrawX=858,OverrideDelta=145)
             ObjInstanceVersion=2
             ParentSequence=Sequence'Main_Sequence'
             ObjPosX=680
             ObjPosY=5784
             DrawWidth=168
             DrawHeight=144
             Name="SeqEvent_GyroscopeController_1"
             ObjectArchetype=SeqEvent_GyroscopeController'GameFramework.Default__SeqEvent_GyroscopeController'
          End Object
          Now test it using the mobile previewer...

          The DeadZones are adjustable in the GyroscopeController Properties, basically the DeadZones are amounts you need to exceed when tilting the device to travel in that direction.

          let me know how this goes and if it works, I know its a long way round but you need to test this to help figure out whats wrong with the Mobile Motion Access, although Mobile Motion Access still works fine at my end, it might be the setup thats changed but i'm no kismet expert to be honest?

          I'm still not sure what problem your having with pause, maybe you can elaborate further.

          Comment


            #6
            Nice.

            So far I quickly tried this in the Dec UDK and noticed that it appears to work when the screen is perpendicular to the ground. I'd like to see if I can make this work with the screen facing upward as it seems like a simpler piece of script than the kismet I've been using. Ideally, it'd also rotate the pawn in the proper direction too Haven't had time to mess with it yet, but I'm curious about making this work with some concept of gravity as well; something I currently hack in with a trace and -z velocity.

            The pause issue seemed to have more to do with the Feb UDK. I've been back on Dec just so I could be productive, having wiped every other UDK off of my system.

            Comment


              #7
              Yeah the device orientation is important, but i figured most users would be playing in an upright position, but that said the dead zones can be tweaked to what ever you want with more conditions.

              It's strange how easy it can become when you can see inside a nodes inner workings, its a shame all kismet nodes are native so we can't see how they work, but most things are able to be worked around.

              I wanted the gyroscope node to be an all in one drag and drop tilting player controller for kismet, with all the settings configurable within the node itself, with face rotation being an option to enable/disable, but hey I haven't had the time and i'm in full production on a work project at the minute. But i'm glad its inspired you to try and implement your own features, gravity would be an interesting one.

              If I get the chance I will overhaul it, add the new features and make it less of a hack, if it gets done it will sure beat the very long kismet sequences needed to achieve this. And hopefully it will come in handy for others.

              Comment

              Working...
              X