20170422_언리얼 서밋 2017 - 오전 기조연설
언리얼 서밋 2017
코엑스에서 진행중이다.
오전에 통합 세션에서 들은 내용 중
제일 괜찮았던건
철권을 만든 하라다 류 디렉터 님의 발표였다.
캐릭터란 무엇인가부터 어떤 캐릭터가 사랑 받는지, 어떻게 인기있는 캐릭터를 만드는지, 타깃을 정하고 리서치하고 가설을 세워 수치화하여 노하우를 쌓자는 내용까지...
생각대로 진행안되는 사례까지....
일본인 이신분이 한글로 ppt를 만들어오신데다가 이해 쉽게 얘기해 주셨다.
재미도 있으셨다.
에픽 본사 사장님이나 언리얼의 추후 계획을 발표해주신 분은 영어 ppt에 웃음기 없어서 좀 졸뻔했다.
4.16이 5월 중순 나온다는 것과
WebGL2 적용,
시퀀서 실시간 녹화,
모바일 최적화 메테리얼 등등
4.16을 기대하게 만드는 내용은 유익했다.
버그없이 잘나온다면 좋겠다.
나눠주는 도시락 점심 먹고
이제 곧 2시부터 개별 세션 들을 시간이다.
모바일 1,2,3 듣고 마지막 시간엔 이득우 대표님의 트랙으로 갈 예정이다.
'개인사 > 취미' 카테고리의 다른 글
20170505_고양국제꽃박람회 (0) | 2017.05.05 |
---|---|
20170422_언리얼 서밋 2017 - 오후 세션 정리 (0) | 2017.04.23 |
20170408_서울숲 나들이 (0) | 2017.04.10 |
20170301,20170302_산정호수 (0) | 2017.03.02 |
20170225_오이도 여행 (0) | 2017.02.25 |
20170420_마라샹궈
[마라샹궈 & 하얼빈맥주]
신촌에서 저녁약속
지난번 마라탕 먹은곳에서
이번엔 마라샹궈 주문
100g에 3000원이고
15000원 이상 담아야 주문가능
마라탕은 국물요리지만
마라샹궈는 볶음요리다
그 수고에따라 2배정도 비싼가보다.
맛은 탕이랑 비슷했는데
볶은만큼 톡 쏘는 매움이 더 독하다.
간만에 음식을 남겨버렸다ㅋㅋ
맛은 없진 않은데 각오하고 먹어야할듯
하얼빈 맥주 첨먹어봤는데
부드럽고 괜찮았다.
'개인사 > 밥' 카테고리의 다른 글
20170525_싸와디캅 조식 + 스벅 (0) | 2017.05.25 |
---|---|
20170505_족발 (0) | 2017.05.06 |
20170420_편도 (0) | 2017.04.20 |
20170417_편도 (0) | 2017.04.17 |
20170414_라멘 (0) | 2017.04.16 |
Pawn을 움직이는 방법은 여러가지가 있다.
대표적으로 Actor를 강제로 움직이거나,
MovementComponent(CharacterMovementComponent)를 이용하는 방법.
전자는 물리 적용이 되지 않고 좌표에 맞게 움직이는 것이다.
SetActorRelativeLocation(FVector)를 보통 사용한다.(World도 있다.)
하지만 기본적으로 물리가 적용안되니 떨어지거나 언덕을 오르는데 무리가 있다.
후자인 MovementComponent를 사용하는 것은
간편하지만 고려되어야 할게 좀 있다.
이 글은 어떠한 점을 고려해야 하는지에 대한 글이다.
1.
튜토리얼이나 docs를 보면 간단하게 MovementComponent를 가지는 Pawn에서
AddMovementInput(Direction, Val)함수를 호출하면 알아서 이동하는 것을 볼 수 있다.
튜토리얼들은 기본적으로 PlayerController가 그 Pawn에 들어가 있기에 가능한 것이다.
문제는 캐릭터 시점에서 컨트롤 하지 않거나 여러 캐릭을 컨트롤해야 할 경우
즉, 해당 Pawn에 Possess하지 않거나 DefaultPawn으로 설정 하지 않을 경우 AddMovementInput가 동작 안한다.
이럴 경우에는 설정을 하나 더 해주어야 한다.
블루프린트에서는 위와 같은 디테일 창에서 찾으면 된다.
Auto Possess AI가 기본적으로는 Palced in World로 되어있다.
이 옵션을 Spawned나 Placed in World or Spawned로 바꾸어 주자.
그러면 이제서야 AddMovementInput이 동작하는 것을 볼 수 있다.
2.
AddMovementInput 함수의 인자값에 대한 얘기를 해보자.
(FVector WorldDirection, float ScaleValue, bool bForce /*=false*/)
이렇게 3가지 인자가 들어간다.
1번째는 방향 벡터,
2번째는 스케일값,
3번째는 false 일 경우 !IsMoveInputIgnored()를 같이 체크하고, true일경우 ControlInputVector에 바로 움직일 값이 들어간다.
문제는 1, 2번째 인자 값이다.
1번째는 방향 Direction인데 어떠한 큰 값을 적용해도
나중에는 크기 1의 단위 벡터로 되어버린다.
2번째 인자값 스케일도 -1.0f~1.0f 값 사이만 적용이 되어야 한다.
아무리 크게 주어도 더 빨리 움직이지 않는다.
여기서 중요한 규칙이 있다.
단위 벡터화 되는 것이 1번째와 2번째 인자를 곱하고 나서 나중이기 때문에
1번째가 단위 벡터가 아니고 2번째가 -1.0f~1.0f이 아니라면
나중에 계산될 단위 벡터가 스케일을 제대로 따라 가지 않게 된다.
이는 중요하게 입력값 제한을 두어야 한다.
설정에 따른 속도 변화와 부드러운 움직임을 원한다면
1번째는 단위벡터, 2번째는 -1.0f~1.0f를 넣자.(큰값을 넣어봤자 의미도 없고 나중 계산이 달라지므로...)
따라야 한다.
3.
2번 문제처럼 값을 받는다면 도대체 어디에서 속도를 제어 할 수 있는가?
그 값은 CharacterMovementComponent에 있다.
컴포넌트 내부에 MaxWalkSpeed, MaxAcceleration 등등의 float값이 있고
아래처럼 초기값이 들어간다.
...
MaxFlySpeed = 600.0f;
MaxWalkSpeed = 600.0f;
MaxSwimSpeed = 300.0f;
MaxCustomMovementSpeed = MaxWalkSpeed;
...
MaxAcceleration = 2048.0f;
BrakingFrictionFactor = 2.0f; // Historical value, 1 would be more appropriate.
BrakingDecelerationWalking = MaxAcceleration;
...
위의 float값들을 직접 변경하면 속도를 컨트롤 할 수 있다.
Character의 움직임 속도는 가속도를 따른다.
Max Speed를 넘기지 않는 선에서 가속도에 따라 속도가 차츰 올라간다.
적절히 변경해 원하는 속도대로 가게 만들자.
이상...
여러 캐릭터를 움직이게 프로그래밍하면서 알게 된 내용을 정리해보았다.
나름 시간을 들여 알아보았는데 단순하다.
위와 같은 단순하고 필요한 내용들이 튜토리얼이나 docs에 없었다는게 아쉬울 따름이다.
'공부 > Unreal4' 카테고리의 다른 글
'UnrealBuildTool.RulesCompiler.GetModuleFilename(string)'은(는) 사용되지 않습니다 (0) | 2017.05.10 |
---|---|
언리얼4 HTML5 Build 시도... (0) | 2017.04.27 |
실행(플레이) 창 크기, 창 시작점 구하기 - ffmpeg 로 원하는 영역만큼만 녹화해보자 (0) | 2017.04.19 |
키맵핑(바인딩) 삭제 - PlayerInput 비우기, InputComponent 비우기 (0) | 2017.04.19 |
언리얼4 c++프로그래밍 - 키맵핑(바인딩) 설정 (0) | 2017.04.17 |