블로그 이미지

냥날의 티스토리

Rss feed

PlayerController.uc

언리얼엔진 2011.07.24 20:49
우와 9000 줄 짜리 파일이야..!!

events

PostBeginPlay()
PreRender()
InitInputSystem()
Possess
UnPosses()
Destroyed()
PreClientTravel()
ReserCameraMode()
SendClientAdjustment()
ServerNotifyLoadedWorld()
NotifyLoadedwORLD()
PlayerTick()
CameraLookAtFinished()
NotifyLanded()
ClientSetViewTarget()
SpawnPlayerCamera()
GetPlayerViewPoint()
LimitViewRotation()


various states...



unreliable server function ServerCauseEvent(Name EventName)
exec function CauseEvent(optional Name EventName)
exec function CE(optional Name EventName)
exec function ListConsoleEvents()
exec function RemoteEvent(optional name EventName)
exec function RE(optional name EventName)
event PlayRumble( const AnimNotify_Rumble TheAnimNotify )
reliable client event ClientPlayForceFeedbackWaveform(ForceFeedbackWaveform FFWaveform,optional Actor FFWaveformInstigator)
reliable client final event ClientStopForceFeedbackWaveform(optional ForceFeedbackWaveform FFWaveform)
event bool IsMoveInputIgnored()
event bool IsLookInputIgnored()

final event LevelStreamingStatusChanged(LevelStreaming LevelObject, bool bNewShouldBeLoaded, bool bNewShouldBeVisible, bool bNewShouldBlockOnLoad )
native reliable server final event ServerUpdateLevelVisibility(name PackageName, bool bIsVisible);
reliable client event ClientPrepareMapChange(name LevelName, bool bFirst, bool bLast)
reliable client event ClientCommitMapChange()
event NotifyDirectorControl(bool bNowControlling, SeqAct_Interp CurrentMatinee)
unreliable client event ClientPlayCameraAnim( CameraAnim AnimToPlay, optional float Scale=1.f, optional float Rate=1.f,
reliable client event ClientStopCameraAnim(CameraAnim AnimToStop)
unreliable client event ClientSpawnCameraLensEffect( class<EmitterCameraLensEffectBase> LensEffectEmitterClass )

저작자 표시
신고

[언리얼 스크립트 초기화 루틴 순서

언리얼엔진 2011.07.23 20:13


GameInfo.uc (=>FrameworkGame=>ChaiGame 상속)

[0003.10] ScriptLog: event InitGame( string Options, out string ErrorMessage )
[0003.10] ScriptLog: event PreBeginPlay()
[0003.10] ScriptLog: event PostBeginPlay()
[0003.11] ScriptLog: event PlayerController Login(string Portal, string Options, const UniqueNetID UniqueID, out string ErrorMessage)
[0003.11] ScriptLog: function SpawnPlayerController(vector SpawnLocation, rotator SpawnRotation)
[0003.11] ScriptLog: event PostLogin( PlayerController NewPlayer )
[0003.19] ScriptLog: event OnEngineHasLoaded();

다들 이벤트 함수들이다. 즉 caller가 모두 C++ 네이티브이고 UDK 사용자에겐 숨겨져 있고, 건드릴 필요는 없겠다..
SpawnPlayerController 만 일반함수인데, 이 초기화 루틴 중엔 가장 중요하다.
이 함수는 Login() 내에서 호출된다.

[하는 일]

1. 게임이 시작되었을 때의 초기화 작업 - 로그인, 플레이어 생성, 폰의 생성과 기본값 설정, 뮤테이터 복사.
2. 게임의 진행 상황 처리 - 킬 처리. 대미지 처리. 점수 처리. 엔딩 처리. 리스폰 및 스폰위치 선정.비활성유저(접속끊김) 처리.
3. 게임의 각종 속성에 대한 대답.
4. 게임 중 진행 명령의 처리 - 재시작, 맵이동, 팀변경, 채팅  등.
5. Seamless Travel 처리가 좀 있는 것 같다.

* 월드 인포에도 리플리케이션 정보등 여러가지 중요한 속성이 있는것 같다.
* PlayerController.SetViewTarget(PC) ?

저작자 표시
신고

언리얼의 자동화된 테스트 기능

언리얼엔진 2011.07.23 19:05
매번 빌드가 끝난 후의 자동화된 테스트를 수행하도록할 수 있다.
캐릭터(카메라?)를 맵의 구석구석으로 이동시키면서, 특점지점의 메모리 사용량과 퍼포먼스 등의 통계수치를 데이터베이스에 저장한다.
저장되는 통계수치는 C++ 에 하드코딩되어 있다고 하니 현재로서는 확인 불가.

오토메이티드 테스트의 가동은 실행인자에서 AutoTests 등의 몇 가지 옵션을 지정하여 가동시킬 수 있다.

결과적으로 퍼포먼스 측정 데이터를 바탕으로 에디터에서 문제가 있는 지점을 시각화하여 살펴볼 수 있다.

https://udn.epicgames.com/Three/Sentinel
저작자 표시
신고

언리얼 실행시 URL 인자는 첫번째여야 한다!

언리얼엔진 2011.07.22 19:20

도큐먼트 되지 않은 언리얼의 이상한 동작 시리즈.
(도쿠먼트 되어 있었다.. OTL)

언리얼은 실행인자로 맵이름을 주어 해당 레벨에서 바로 시작하는 바로가기를 만들 수 잇다. 다음과 같은 식이다.

UDK.exe MyMap.udk?game=MyPackage.MyGame?class=MyPackage.MyPawn

이건 잘 작동한다. 그런데 만약 스위치와 조합하여 게임을 윈도우 모드로 띄우고
로그 창을 띄우고 싶을 수가 있다. 일반적인 콘솔 프로그램의 문법은 이런 것이리라.

UDK.exe -WINDOWED -LOG MyMap.udk?game=MyPackage.MyGame?class=MyPackage.MyPawn

이럴때는 그런데 이렇게 하면 맵이름 URL을 인식하지 못하고 기본 화면으로 뜨게 된다. 다음과 같이 스위치를 뒤로 보내 URL이 첫번째 인자이도록 해 잘 작동한다..

UDK.exe MyMap.udk?game=MyPackage.MyGame?class=MyPackage.MyPawn -WINDOWED -LOG
어처구니가 좀 없지만 C++ 코드가 어떻게 짜져 있을 지는 뻔하당.


신고
TOTAL 27,750 TODAY 17