This is a simple and effective way of creating a varying sense of scale within a world. It is quite elegant, so long as the camera doesn't start going through things, which it tends to do.
Result: In open areas, the camera switches to birds eye view. In confined areas, the camera switches to over the shoulder/3rd person view.
Method:
Create a trigger volume around the confined area. Create another trigger volume around the open area.
Attach and hard bind the camera to the player start.
Plug it all into kismet as shown below.
The matinees are telling the camera to move to a new position.
Key these according to how fast you want your transition to be.
The camera will always transition smoothly when this is setup correctly. Be sure to set your TriggerVolume nodes' Max Trigger Count to 0 (infinite) in Kismet.
Kismet:
Begin Object Class=SeqEvent_LevelLoaded Name=SeqEvent_LevelLoaded_0
MaxWidth=136
OutputLinks(0)=(Links=((LinkedOp=SeqAct_ToggleHUD'SeqAct_ToggleHUD_0',InputLinkIdx=1),(LinkedOp=SeqAct_Interp'SeqAct_Interp_0')),DrawY=277)
OutputLinks(1)=(DrawY=298)
OutputLinks(2)=(DrawY=319)
ObjInstanceVersion=3
ParentSequence=Sequence'Main_Sequence'
ObjPosX=488
ObjPosY=208
DrawWidth=137
Name="SeqEvent_LevelLoaded_0"
ObjectArchetype=SeqEvent_LevelLoaded'Engine.Default__SeqEvent_LevelLoaded'
End Object
Begin Object Class=SeqAct_AttachToActor Name=SeqAct_AttachToActor_0
bUseRelativeOffset=True
RelativeOffset=(X=-5.000000,Y=20.000000,Z=50.000000)
InputLinks(0)=(DrawY=498)
OutputLinks(0)=(DrawY=498)
VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_2'),DrawX=862)
VariableLinks(1)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_1'),DrawX=939)
ObjInstanceVersion=2
ParentSequence=Sequence'Main_Sequence'
ObjPosX=824
ObjPosY=464
DrawWidth=170
DrawHeight=61
Name="SeqAct_AttachToActor_0"
ObjectArchetype=SeqAct_AttachToActor'Engine.Default__SeqAct_AttachToActor'
End Object
Begin Object Class=SeqAct_Interp Name=SeqAct_Interp_0
bLooping=True
InputLinks(0)=(DrawY=198)
InputLinks(1)=(DrawY=220)
InputLinks(2)=(DrawY=242)
InputLinks(3)=(DrawY=264)
InputLinks(4)=(DrawY=286)
OutputLinks(0)=(DrawY=214,OverrideDelta=31)
OutputLinks(1)=(DrawY=270,OverrideDelta=87)
VariableLinks(0)=(LinkedVariables=(InterpData'InterpData_0'),DrawX=970,OverrideDelta=35)
VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkedVariables=(SeqVar_Object'SeqVar_Object_1'),LinkDesc="Cam1",MinVars=0,DrawX=1020,OverrideDelta=82)
ObjInstanceVersion=2
ParentSequence=Sequence'Main_Sequence'
ObjPosX=920
ObjPosY=160
DrawWidth=154
DrawHeight=157
Name="SeqAct_Interp_0"
ObjectArchetype=SeqAct_Interp'Engine.Default__SeqAct_Interp'
End Object
Begin Object Class=InterpData Name=InterpData_0
Begin Object Class=InterpGroupDirector Name=InterpGroupDirector_0
Begin Object Class=InterpTrackDirector Name=InterpTrackDirector_0
CutTrack(0)=(TargetCamGroup="Cam1")
Name="InterpTrackDirector_0"
ObjectArchetype=InterpTrackDirector'Engine.Default__InterpTrackDirector'
End Object
InterpTracks(0)=InterpTrackDirector'InterpTrackDirector_0'
GroupColor=(B=150,G=0,R=188,A=255)
Name="InterpGroupDirector_0"
ObjectArchetype=InterpGroupDirector'Engine.Default__InterpGroupDirector'
End Object
Begin Object Class=InterpGroup Name=InterpGroup_1
Begin Object Class=InterpTrackMove Name=InterpTrackMove_1
PosTrack=(Points=((InterpMode=CIM_CurveAutoClamped)))
EulerTrack=(Points=((InterpMode=CIM_CurveAutoClamped)))
LookupTrack=(Points=())
MoveFrame=IMF_RelativeToInitial
Name="InterpTrackMove_1"
ObjectArchetype=InterpTrackMove'Engine.Default__InterpTrackMove'
End Object
Begin Object Class=InterpTrackFloatProp Name=InterpTrackFloatProp_1
PropertyName="FOVAngle"
TrackTitle="FOVAngle"
Name="InterpTrackFloatProp_1"
ObjectArchetype=InterpTrackFloatProp'Engine.Default__InterpTrackFloatProp'
End Object
InterpTracks(0)=InterpTrackMove'InterpTrackMove_1'
InterpTracks(1)=InterpTrackFloatProp'InterpTrackFloatProp_1'
GroupName="Cam1"
GroupColor=(B=228,G=58,R=0,A=255)
Name="InterpGroup_1"
ObjectArchetype=InterpGroup'Engine.Default__InterpGroup'
End Object
Begin Object Class=InterpCurveEdSetup Name=InterpCurveEdSetup_0
Name="InterpCurveEdSetup_0"
ObjectArchetype=InterpCurveEdSetup'Engine.Default__InterpCurveEdSetup'
End Object
InterpGroups(0)=InterpGroupDirector'InterpGroupDirector_0'
InterpGroups(1)=InterpGroup'InterpGroup_1'
CurveEdSetup=InterpCurveEdSetup'InterpCurveEdSetup_0'
SelectedFilter=InterpFilter'Engine.Default__InterpData:FilterAll'
EdSectionStart=0.000000
EdSectionEnd=4.696188
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=880
ObjPosY=344
DrawWidth=32
DrawHeight=32
Name="InterpData_0"
ObjectArchetype=InterpData'Engine.Default__InterpData'
End Object
Begin Object Class=SeqVar_Object Name=SeqVar_Object_1
ObjValue=CameraActor'CameraActor_0'
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=1024
ObjPosY=520
DrawWidth=32
DrawHeight=32
Name="SeqVar_Object_1"
ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
End Object
Begin Object Class=SeqAct_ToggleHUD Name=SeqAct_ToggleHUD_0
InputLinks(0)=(DrawY=397)
InputLinks(1)=(DrawY=418)
InputLinks(2)=(DrawY=439)
OutputLinks(0)=(DrawY=418)
VariableLinks(0)=(LinkedVariables=(SeqVar_Player'SeqVar_Player_1'),DrawX=739)
ObjInstanceVersion=3
ParentSequence=Sequence'Main_Sequence'
ObjPosX=696
ObjPosY=360
DrawWidth=86
DrawHeight=109
Name="SeqAct_ToggleHUD_0"
ObjectArchetype=SeqAct_ToggleHUD'Engine.Default__SeqAct_ToggleHUD'
End Object
Begin Object Class=SeqEvent_PlayerSpawned Name=SeqEvent_PlayerSpawned_0
MaxWidth=156
OutputLinks(0)=(Links=((LinkedOp=SeqAct_AttachToActor'SeqAct_AttachToActor_0')),DrawY=570)
VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_2'),DrawX=528)
VariableLinks(1)=(DrawX=598)
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=480
ObjPosY=504
DrawWidth=98
DrawHeight=144
Name="SeqEvent_PlayerSpawned_0"
ObjectArchetype=SeqEvent_PlayerSpawned'Engine.Default__SeqEvent_PlayerSpawned'
End Object
Begin Object Class=SeqVar_Object Name=SeqVar_Object_2
ObjValue=PlayerStart'PlayerStart_0'
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=736
ObjPosY=696
DrawWidth=32
DrawHeight=32
Name="SeqVar_Object_2"
ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
End Object
Begin Object Class=SeqVar_Player Name=SeqVar_Player_1
bAllPlayers=False
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=728
ObjPosY=584
DrawWidth=32
DrawHeight=32
Name="SeqVar_Player_1"
ObjectArchetype=SeqVar_Player'Engine.Default__SeqVar_Player'
End Object
Begin Object Class=SeqAct_Interp Name=SeqAct_Interp_1
InputLinks(0)=(DrawY=862)
InputLinks(1)=(DrawY=884)
InputLinks(2)=(DrawY=906)
InputLinks(3)=(DrawY=928)
InputLinks(4)=(DrawY=950)
OutputLinks(0)=(Links=((LinkedOp=SeqAct_Interp'SeqAct_Interp_0'),(LinkedOp=SeqAct_Interp'SeqAct_Interp_1',InputLinkIdx=2)),DrawY=878,OverrideDelta=31)
OutputLinks(1)=(Links=((LinkedOp=SeqAct_Interp'SeqAct_Interp_2')),DrawY=934,OverrideDelta=87)
VariableLinks(0)=(LinkedVariables=(InterpData'InterpData_1'),DrawX=874,OverrideDelta=35)
VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkedVariables=(SeqVar_Object'SeqVar_Object_3'),LinkDesc="Cam1",MinVars=0,DrawX=924,OverrideDelta=82)
ObjInstanceVersion=2
ParentSequence=Sequence'Main_Sequence'
ObjPosX=824
ObjPosY=824
DrawWidth=154
DrawHeight=157
Name="SeqAct_Interp_1"
ObjectArchetype=SeqAct_Interp'Engine.Default__SeqAct_Interp'
End Object
Begin Object Class=InterpData Name=InterpData_1
Begin Object Class=InterpGroupDirector Name=InterpGroupDirector_1
Begin Object Class=InterpTrackDirector Name=InterpTrackDirector_1
CutTrack(0)=(TargetCamGroup="Cam1")
Name="InterpTrackDirector_1"
ObjectArchetype=InterpTrackDirector'Engine.Default__InterpTrackDirector'
End Object
InterpTracks(0)=InterpTrackDirector'InterpTrackDirector_1'
GroupColor=(B=88,G=0,R=220,A=255)
Name="InterpGroupDirector_1"
ObjectArchetype=InterpGroupDirector'Engine.Default__InterpGroupDirector'
End Object
Begin Object Class=InterpGroup Name=InterpGroup_1
Begin Object Class=InterpTrackMove Name=InterpTrackMove_1
PosTrack=(Points=((InterpMode=CIM_CurveAutoClamped),(InVal=5.000000,OutVal=(X=-835.445557,Y=-313.052002,Z=221.000000),InterpMode=CIM_CurveAutoClamped)))
EulerTrack=(Points=((InterpMode=CIM_CurveAutoClamped),(InVal=5.000000,OutVal=(X=0.000000,Y=-13.183594,Z=29.355469),InterpMode=CIM_CurveAutoClamped)))
LookupTrack=(Points=(,(Time=5.000000)))
MoveFrame=IMF_RelativeToInitial
Name="InterpTrackMove_1"
ObjectArchetype=InterpTrackMove'Engine.Default__InterpTrackMove'
End Object
Begin Object Class=InterpTrackFloatProp Name=InterpTrackFloatProp_1
PropertyName="FOVAngle"
TrackTitle="FOVAngle"
Name="InterpTrackFloatProp_1"
ObjectArchetype=InterpTrackFloatProp'Engine.Default__InterpTrackFloatProp'
End Object
InterpTracks(0)=InterpTrackMove'InterpTrackMove_1'
InterpTracks(1)=InterpTrackFloatProp'InterpTrackFloatProp_1'
GroupName="Cam1"
GroupColor=(B=0,G=157,R=181,A=255)
Name="InterpGroup_1"
ObjectArchetype=InterpGroup'Engine.Default__InterpGroup'
End Object
Begin Object Class=InterpCurveEdSetup Name=InterpCurveEdSetup_1
Name="InterpCurveEdSetup_1"
ObjectArchetype=InterpCurveEdSetup'Engine.Default__InterpCurveEdSetup'
End Object
InterpGroups(0)=InterpGroupDirector'InterpGroupDirector_1'
InterpGroups(1)=InterpGroup'InterpGroup_1'
CurveEdSetup=InterpCurveEdSetup'InterpCurveEdSetup_1'
SelectedFilter=InterpFilter'Engine.Default__InterpData:FilterAll'
EdSectionStart=0.000000
EdSectionEnd=5.000000
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=824
ObjPosY=1032
DrawWidth=32
DrawHeight=32
Name="InterpData_1"
ObjectArchetype=InterpData'Engine.Default__InterpData'
End Object
Begin Object Class=SeqEvent_Touch Name=SeqEvent_Touch_0
Originator=TriggerVolume'TriggerVolume_0'
MaxTriggerCount=0
MaxWidth=165
OutputLinks(0)=(Links=((LinkedOp=SeqAct_Interp'SeqAct_Interp_1'),(LinkedOp=SeqAct_Interp'SeqAct_Interp_0',InputLinkIdx=2),(LinkedOp=SeqAct_Interp'SeqAct_Interp_2',InputLinkIdx=2)),DrawY=861)
OutputLinks(1)=(DrawY=882)
OutputLinks(2)=(DrawY=903)
VariableLinks(0)=(LinkedVariables=(SeqVar_Player'SeqVar_Player_1'),DrawX=602)
ObjInstanceVersion=2
ParentSequence=Sequence'Main_Sequence'
ObjPosX=520
ObjPosY=792
ObjName="TriggerVolume_0 Touch"
DrawWidth=127
DrawHeight=176
Name="SeqEvent_Touch_0"
ObjectArchetype=SeqEvent_Touch'Engine.Default__SeqEvent_Touch'
End Object
Begin Object Class=SeqVar_Object Name=SeqVar_Object_3
ObjValue=CameraActor'CameraActor_0'
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=920
ObjPosY=1032
DrawWidth=32
DrawHeight=32
Name="SeqVar_Object_3"
ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
End Object
Begin Object Class=SeqAct_Interp Name=SeqAct_Interp_2
InputLinks(0)=(DrawY=670)
InputLinks(1)=(DrawY=692)
InputLinks(2)=(DrawY=714)
InputLinks(3)=(DrawY=736)
InputLinks(4)=(DrawY=758)
OutputLinks(0)=(Links=((LinkedOp=SeqAct_Interp'SeqAct_Interp_0'),(LinkedOp=SeqAct_Interp'SeqAct_Interp_2',InputLinkIdx=2)),DrawY=686,OverrideDelta=31)
OutputLinks(1)=(DrawY=742,OverrideDelta=87)
VariableLinks(0)=(LinkedVariables=(InterpData'InterpData_2'),DrawX=1370,OverrideDelta=35)
VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkedVariables=(SeqVar_Object'SeqVar_Object_4'),LinkDesc="Cam1",MinVars=0,DrawX=1420,OverrideDelta=82)
ObjInstanceVersion=2
ParentSequence=Sequence'Main_Sequence'
ObjPosX=1320
ObjPosY=632
DrawWidth=154
DrawHeight=157
Name="SeqAct_Interp_2"
ObjectArchetype=SeqAct_Interp'Engine.Default__SeqAct_Interp'
End Object
Begin Object Class=InterpData Name=InterpData_2
Begin Object Class=InterpGroupDirector Name=InterpGroupDirector_0
Begin Object Class=InterpTrackDirector Name=InterpTrackDirector_0
CutTrack(0)=(TargetCamGroup="Cam1")
Name="InterpTrackDirector_0"
ObjectArchetype=InterpTrackDirector'Engine.Default__InterpTrackDirector'
End Object
InterpTracks(0)=InterpTrackDirector'InterpTrackDirector_0'
GroupColor=(B=0,G=230,R=42,A=255)
Name="InterpGroupDirector_0"
ObjectArchetype=InterpGroupDirector'Engine.Default__InterpGroupDirector'
End Object
Begin Object Class=InterpGroup Name=InterpGroup_3
Begin Object Class=InterpTrackMove Name=InterpTrackMove_3
PosTrack=(Points=((InterpMode=CIM_CurveAutoClamped),(InVal=1.998811,OutVal=(X=39.617676,Y=72.681595,Z=52.000000),InterpMode=CIM_CurveAutoClamped)))
EulerTrack=(Points=((InterpMode=CIM_CurveAutoClamped),(InVal=1.998811,OutVal=(X=0.000000,Y=-10.898438,Z=-9.492188),InterpMode=CIM_CurveAutoClamped)))
LookupTrack=(Points=(,(Time=1.998811)))
MoveFrame=IMF_RelativeToInitial
Name="InterpTrackMove_3"
ObjectArchetype=InterpTrackMove'Engine.Default__InterpTrackMove'
End Object
Begin Object Class=InterpTrackFloatProp Name=InterpTrackFloatProp_3
PropertyName="FOVAngle"
TrackTitle="FOVAngle"
Name="InterpTrackFloatProp_3"
ObjectArchetype=InterpTrackFloatProp'Engine.Default__InterpTrackFloatProp'
End Object
InterpTracks(0)=InterpTrackMove'InterpTrackMove_3'
InterpTracks(1)=InterpTrackFloatProp'InterpTrackFloatProp_3'
GroupName="Cam1"
GroupColor=(B=112,G=210,R=0,A=255)
Name="InterpGroup_3"
ObjectArchetype=InterpGroup'Engine.Default__InterpGroup'
End Object
Begin Object Class=InterpCurveEdSetup Name=InterpCurveEdSetup_0
Name="InterpCurveEdSetup_0"
ObjectArchetype=InterpCurveEdSetup'Engine.Default__InterpCurveEdSetup'
End Object
InterpLength=2.004744
InterpGroups(0)=InterpGroupDirector'InterpGroupDirector_0'
InterpGroups(1)=InterpGroup'InterpGroup_3'
CurveEdSetup=InterpCurveEdSetup'InterpCurveEdSetup_0'
SelectedFilter=InterpFilter'Engine.Default__InterpData:FilterAll'
EdSectionStart=0.000000
EdSectionEnd=2.004744
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=1336
ObjPosY=872
DrawWidth=32
DrawHeight=32
Name="InterpData_2"
ObjectArchetype=InterpData'Engine.Default__InterpData'
End Object
Begin Object Class=SeqEvent_Touch Name=SeqEvent_Touch_1
Originator=TriggerVolume'TriggerVolume_1'
MaxTriggerCount=0
MaxWidth=165
OutputLinks(0)=(Links=((LinkedOp=SeqAct_Interp'SeqAct_Interp_1',InputLinkIdx=1),(LinkedOp=SeqAct_Interp'SeqAct_Interp_0',InputLinkIdx=2)),DrawY=709)
OutputLinks(1)=(DrawY=730)
OutputLinks(2)=(DrawY=751)
VariableLinks(0)=(LinkedVariables=(SeqVar_Player'SeqVar_Player_1'),DrawX=1146)
ObjInstanceVersion=2
ParentSequence=Sequence'Main_Sequence'
ObjPosX=1064
ObjPosY=640
ObjName="TriggerVolume_1 Touch"
DrawWidth=127
DrawHeight=176
Name="SeqEvent_Touch_1"
ObjectArchetype=SeqEvent_Touch'Engine.Default__SeqEvent_Touch'
End Object
Begin Object Class=SeqVar_Object Name=SeqVar_Object_4
ObjValue=CameraActor'CameraActor_0'
ObjInstanceVersion=1
ParentSequence=Sequence'Main_Sequence'
ObjPosX=1420
ObjPosY=789
DrawWidth=32
DrawHeight=32
Name="SeqVar_Object_4"
ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object'
End Object