[UDK] Камера от третьего лица в UDK - Форум Игроделов
Пт, 03 Май 2024, 20:12 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNREAL ENGINE и UDK » МАНУАЛЫ И УРОКИ » [UDK] Камера от третьего лица в UDK (Камера от третьего лица)
[UDK] Камера от третьего лица в UDK
DelianEДата: Ср, 06 Апр 2011, 10:08 | Сообщение # 1
ARTIFICIAL WORLD
 
Сообщений: 772
Награды: 8
Репутация: 308
Статус: Offline

В UDK уже есть отличная камера от третьего лица. Осталось только заставить ее работать.

Сначала создадим класс своей игры. Назовем ее TPSGame.
Укажем что мы будем использовать свой PlayerController класс, а также свой Pawn класс. Дефолтный UTPawn заточен под игру от первого лица. Ставим значение bDelayedStart в false, чтобы игрок не ждал начала матча. Это нужно для однопользовательских игр.

class TPSGame extends GameInfo;

Quote
defaultproperties
{
bDelayedStart=false;
PlayerControllerClass=class'TPSPlayerController'
DefaultPawnClass=class'TPSPawn'
}

Внимание! после того как мы отнаследовались от GameInfo карты от UT3 скорее всего с нашей игрой работать не будут. Можете попробовать отнаследоваться от UTDeathmatch или UTGame.

Далее нужно изменить настройки в DefaultGame.ini.

Quote
[Engine.GameInfo]
DefaultGame=TPSGame
DefaultServerGame=TPSGame
PlayerControllerClassName=TPSPlayerController

Листинг файла TPSPawn.uc. Тут мы используем стандартные ассеты доступные в UDK для того, чтобы получить 3D модель робота.

Quote
class TPSPawn extends GamePawn
config(Game);

simulated function name GetDefaultCameraMode( PlayerController RequestedBy )
{
return 'ThirdPerson';
}

defaultproperties
{
Components.Remove(Sprite)
Begin Object Class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
ModShadowFadeoutTime=0.25
MinTimeBetweenFullUpdates=0.25
AmbientGlow=(R=.01,G=.01,B=.03,A=1)
AmbientShadowColor=(R=0.10,G=0.10,B=0.10)
LightShadowMode=LightShadow_ModulateBetter
ShadowFilterQuality=SFQ_High
bSynthesizeSHLight=TRUE
End Object
Components.Add(MyLightEnvironment)

Begin Object Class=SkeletalMeshComponent Name=InitialSkeletalMesh
CastShadow=true
bCastDynamicShadow=true
bOwnerNoSee=false
LightEnvironment=MyLightEnvironment;
BlockRigidBody=true;
CollideActors=true;
BlockZeroExtent=true;
PhysicsAsset=PhysicsAsset'CH_AnimCorrupt.Mesh.SK_CH_Corrupt_Male_Physics'
AnimSets(0)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_AimOffset'
AnimSets(1)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_BaseMale'
AnimTreeTemplate=AnimTree'CH_AnimHuman_Tree.AT_CH_Human'
SkeletalMesh=SkeletalMesh'CH_LIAM_Cathode.Mesh.SK_CH_LIAM_Cathode'
End Object

Mesh=InitialSkeletalMesh;
Components.Add(InitialSkeletalMesh);
}

Наконец файл TPSPlayerController.uc в котором мы указываем какой класс камеры использовать для камеры игрока.

Quote
class TPSPlayerController extends GamePlayerController
config(Game);

defaultproperties
{
CameraClass=class'TPSPlayerCamera'
}

Теперь собственно класс игровой камеры TPSPlayerCamera.uc. МетодFindBestCameraType возвращает камеру которую мы хотим использовать.

Quote
class TPSPlayerCamera extends GamePlayerCamera;

protected function GameCameraBase FindBestCameraType(Actor CameraTarget)
{
return ThirdPersonCam;
}

defaultproperties
{
ThirdPersonCameraClass=class'TPSThirdPersonCamera'
}

Листинг TPSThirdPersonCamera.uc. Очень веселый листинг. =o)

Quote
class TPSThirdPersonCamera extends GameThirdPersonCamera;

defaultproperties
{
ThirdPersonCamDefaultClass=class'TPSThirdPersonCameraMode_Default'
}

Ну и наконец последний файл TPSThirdPersonCameraMode_Default.uc.

Quote
class TPSThirdPersonCameraMode_Default extends GameThirdPersonCameraMode_Default;

var float FOV;

function float GetDesiredFOV( Pawn ViewedPawn )
{
return FOV;
}

defaultproperties
{
FOV=80.f;
PawnRelativeOffset=(x=30,y=10,z=-40)
BlendTime=0.3
}

Компилим, запускаем и радуемся.

Итак вкратце:
PlayerCamera это всего лишь обертка содержащая в себе все возможные типы камер которые у вас будут использоваться. В методе FindBestCameraType вы сможете выбирать тип камеры который нужно использовать в данный момент.

GameCameraBase (в нашем случае GameThirdPersonCamera) это и есть класс описывающий функциональность камеры. Каждый тип камеры может иметь несколько режимов.

GameThirdPersonCameraMode (в нашем случае GameThirdPersonCameraMode_Default) класс описывающий режим камеры.

 
Сообщение

В UDK уже есть отличная камера от третьего лица. Осталось только заставить ее работать.

Сначала создадим класс своей игры. Назовем ее TPSGame.
Укажем что мы будем использовать свой PlayerController класс, а также свой Pawn класс. Дефолтный UTPawn заточен под игру от первого лица. Ставим значение bDelayedStart в false, чтобы игрок не ждал начала матча. Это нужно для однопользовательских игр.

class TPSGame extends GameInfo;

Quote
defaultproperties
{
bDelayedStart=false;
PlayerControllerClass=class'TPSPlayerController'
DefaultPawnClass=class'TPSPawn'
}

Внимание! после того как мы отнаследовались от GameInfo карты от UT3 скорее всего с нашей игрой работать не будут. Можете попробовать отнаследоваться от UTDeathmatch или UTGame.

Далее нужно изменить настройки в DefaultGame.ini.

Quote
[Engine.GameInfo]
DefaultGame=TPSGame
DefaultServerGame=TPSGame
PlayerControllerClassName=TPSPlayerController

Листинг файла TPSPawn.uc. Тут мы используем стандартные ассеты доступные в UDK для того, чтобы получить 3D модель робота.

Quote
class TPSPawn extends GamePawn
config(Game);

simulated function name GetDefaultCameraMode( PlayerController RequestedBy )
{
return 'ThirdPerson';
}

defaultproperties
{
Components.Remove(Sprite)
Begin Object Class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
ModShadowFadeoutTime=0.25
MinTimeBetweenFullUpdates=0.25
AmbientGlow=(R=.01,G=.01,B=.03,A=1)
AmbientShadowColor=(R=0.10,G=0.10,B=0.10)
LightShadowMode=LightShadow_ModulateBetter
ShadowFilterQuality=SFQ_High
bSynthesizeSHLight=TRUE
End Object
Components.Add(MyLightEnvironment)

Begin Object Class=SkeletalMeshComponent Name=InitialSkeletalMesh
CastShadow=true
bCastDynamicShadow=true
bOwnerNoSee=false
LightEnvironment=MyLightEnvironment;
BlockRigidBody=true;
CollideActors=true;
BlockZeroExtent=true;
PhysicsAsset=PhysicsAsset'CH_AnimCorrupt.Mesh.SK_CH_Corrupt_Male_Physics'
AnimSets(0)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_AimOffset'
AnimSets(1)=AnimSet'CH_AnimHuman.Anims.K_AnimHuman_BaseMale'
AnimTreeTemplate=AnimTree'CH_AnimHuman_Tree.AT_CH_Human'
SkeletalMesh=SkeletalMesh'CH_LIAM_Cathode.Mesh.SK_CH_LIAM_Cathode'
End Object

Mesh=InitialSkeletalMesh;
Components.Add(InitialSkeletalMesh);
}

Наконец файл TPSPlayerController.uc в котором мы указываем какой класс камеры использовать для камеры игрока.

Quote
class TPSPlayerController extends GamePlayerController
config(Game);

defaultproperties
{
CameraClass=class'TPSPlayerCamera'
}

Теперь собственно класс игровой камеры TPSPlayerCamera.uc. МетодFindBestCameraType возвращает камеру которую мы хотим использовать.

Quote
class TPSPlayerCamera extends GamePlayerCamera;

protected function GameCameraBase FindBestCameraType(Actor CameraTarget)
{
return ThirdPersonCam;
}

defaultproperties
{
ThirdPersonCameraClass=class'TPSThirdPersonCamera'
}

Листинг TPSThirdPersonCamera.uc. Очень веселый листинг. =o)

Quote
class TPSThirdPersonCamera extends GameThirdPersonCamera;

defaultproperties
{
ThirdPersonCamDefaultClass=class'TPSThirdPersonCameraMode_Default'
}

Ну и наконец последний файл TPSThirdPersonCameraMode_Default.uc.

Quote
class TPSThirdPersonCameraMode_Default extends GameThirdPersonCameraMode_Default;

var float FOV;

function float GetDesiredFOV( Pawn ViewedPawn )
{
return FOV;
}

defaultproperties
{
FOV=80.f;
PawnRelativeOffset=(x=30,y=10,z=-40)
BlendTime=0.3
}

Компилим, запускаем и радуемся.

Итак вкратце:
PlayerCamera это всего лишь обертка содержащая в себе все возможные типы камер которые у вас будут использоваться. В методе FindBestCameraType вы сможете выбирать тип камеры который нужно использовать в данный момент.

GameCameraBase (в нашем случае GameThirdPersonCamera) это и есть класс описывающий функциональность камеры. Каждый тип камеры может иметь несколько режимов.

GameThirdPersonCameraMode (в нашем случае GameThirdPersonCameraMode_Default) класс описывающий режим камеры.


Автор - DelianE
Дата добавления - 06 Апр 2011 в 10:08
nikitasaДата: Пн, 26 Сен 2011, 18:02 | Сообщение # 2
 
Сообщений: 53
Награды: 0
Репутация: 11
Статус: Offline
эээ... Я них... ничего не понял можеш мне нубу объяснить как это пошагово и что куда?

Жизнь коротка, но игра может быть вечной.
 
Сообщениеэээ... Я них... ничего не понял можеш мне нубу объяснить как это пошагово и что куда?

Автор - nikitasa
Дата добавления - 26 Сен 2011 в 18:02
alexwar117Дата: Пн, 26 Сен 2011, 18:38 | Сообщение # 3
 
Сообщений: 276
Награды: 6
Репутация: 90
Статус: Offline
nikitasa,тебе раз такому надо сначало посмотреть тутор огасоды на тему оружия и потом уже всё поймёш.
 
Сообщениеnikitasa,тебе раз такому надо сначало посмотреть тутор огасоды на тему оружия и потом уже всё поймёш.

Автор - alexwar117
Дата добавления - 26 Сен 2011 в 18:38
nikitasaДата: Вт, 27 Сен 2011, 14:02 | Сообщение # 4
 
Сообщений: 53
Награды: 0
Репутация: 11
Статус: Offline
Хм... надо попробовать.

Добавлено (27.09.2011, 14:02)
---------------------------------------------
Можеш ссылку кинуть?


Жизнь коротка, но игра может быть вечной.
 
СообщениеХм... надо попробовать.

Добавлено (27.09.2011, 14:02)
---------------------------------------------
Можеш ссылку кинуть?


Автор - nikitasa
Дата добавления - 27 Сен 2011 в 14:02
alexwar117Дата: Вт, 27 Сен 2011, 16:11 | Сообщение # 5
 
Сообщений: 276
Награды: 6
Репутация: 90
Статус: Offline
http://ogasoda.ru/?cat=26 со второй страницы начало
 
Сообщениеhttp://ogasoda.ru/?cat=26 со второй страницы начало

Автор - alexwar117
Дата добавления - 27 Сен 2011 в 16:11
siegДата: Ср, 27 Мар 2013, 05:58 | Сообщение # 6
Нет аватара
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
На какую версию UDK эти скрипты?
 
СообщениеНа какую версию UDK эти скрипты?

Автор - sieg
Дата добавления - 27 Мар 2013 в 05:58
Форум Игроделов » UNREAL ENGINE и UDK » МАНУАЛЫ И УРОКИ » [UDK] Камера от третьего лица в UDK (Камера от третьего лица)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024