분류 전체보기
-
[C++] Branchless 가 얼마나 잘 작동할까?쾌락없는 책임 (공부)/C++ 짜잘이 2023. 8. 23. 18:30
개요 원래는 큰 생각 없었던 부분인데 유튜브 알고리즘 덕분에 생각해 볼 자료를 가지게 되었습니다. 이곳에서 Branchless에 대한 이야기를 하고 있었습니다. 저 같은 경우 학교 컴시구에서 if 구문이 명령어로 변경되었을 시 true, false 중 한곳을 맞다고 생각하고 가정한 뒤 계산을 하다가 그 가정이 틀리게 되면 이전 계산을 중지한 뒤 새 계산을 한다는 이론을 알고 있었습니다. 그래서 if문이 없으면 더 빠르지 않을까? 하고 막연하게만 생각해 왔습니다. 이번 영상을 보면서 제 생각이 마냥 옳다는 게 아니라는 걸 알아내서 이번 기회에 이에 대해 한번 적어보려고 합니다. 간단한 메모용으로요. 단순 수 비교에 있어서는 Branchless 보다 컴파일러가 더 믿을만하다 영상 초입에서 나오는 문제사항으로..
-
[뿌직] 스마일게이트 UNSEEN 1기 수료 후기작은 똥/뿌직 2023. 8. 18. 18:50
합격 후기는 이곳으로 [뿌직] 스마일게이트 UNSEEN 프로그램 합격 후기 개요 첫 합격 후기지만 일단 취업 후기는 아닙니다. 스마일게이트와 에픽게임즈에서 새롭게 진행하는 UNSEEN이라는 언리얼 교육 프로그램입니다. 일단 이곳에 합격하게 되어서 4개월간 언리얼 관 husk321.tistory.com 개요 23년 7월 25일을 기점으로 스마일게이트 UNSEEN 1기 수료를 완료했습니다. 4개월이 조금 넘는 시간 동안 개인 프로젝트도 많이 진행을 했고 여러 활동을 거쳐갔습니다. 저 스스로 많은 성장을 했다고 느낀 활동이라 이때의 느낌을 두고두고 되돌아보기 위해 후기를 남기게 되었는데요. 앞으로 2기가 출범이 될지 모르겠지만 2기가 나왔을 때 대략 '이런 활동을 한다'라는 느낌을 줄 수 있는 글이 되었으면 ..
-
[Unreal] Spectator 에서 스팀 이름 가져오기쾌락없는 책임 (공부)/Unreal 2023. 7. 14. 23:28
개요 일단 이걸 하기 전 Online Subsystem Steam 플러그인을 활용하고 이를 통해 세션을 제작해야 합니다. 이 과정을 거치면 PlayerState에서 PlayerName이 스팀의 닉네임으로 설정됩니다. 그리고 이번 글에서 알려드릴 건 이 스팀 닉네임을 Spectator에서 가져오는 것입니다. Spectator Pawn 에서 관전자를 변경하는 방법 일단 다른 게임에서 보이듯 죽고 나서 관전할 플레이어를 변경할 수 있는 기능을 구현했습니다. 이는 GameMode에서 Spectator Pawn으로 할당하는 Pawn 클래스에서 관리를 하는데 아래 코드와 같은 모습입니다. void AFASpectatorPawn::SpectateNextPlayer() { if (APlayerController* Pl..
-
[Unreal] Render Through Object, 오브젝트 뒤에 있는 플레이어 보이게 하기쾌락없는 책임 (공부)/Unreal 2023. 7. 12. 10:14
개요 Apex Legend의 블러드 하운드, 오버워치의 위도우 메이커. 이 캐릭터들의 스킬에서 공통점이 있다면 오브젝트 뒤에 있는 적들의 모습을 볼 수 있다는 점입니다. 이를 통해 보이지 않는 적들을 찾아낼 수 있습니다. 이런 요소를 제작하고 있는 게임에 넣어보고자 Post Process Volume을 활용했고 이 과정을 한번 정리해 보려고 합니다. Post Process Material 제작 개요 일단 Content Browser에서 우클릭을 해서 Material을 만들어 줍니다. 저 같은 경우 PP_SearchOutEffect라는 이름을 사용했습니다. 만든 Material의 Domain을 Post Process로 설정해 줍니다. 이제 본격적인 개념을 알아봅시다. 중간에 아무 장애물이 없는 경우 Cus..
-
[Unreal] CustomDepth Stencil Value 결과가 이상한 경우쾌락없는 책임 (공부)/Unreal 2023. 7. 11. 22:29
개요 인게임에 Custom Depth를 사용하는 효과가 2개 있습니다. 하나는 인터렉팅이 가능한 오브젝트들에 보이는 아웃라인 효과, 벽 뒤 플레이어를 감지할 수 있는 투시 효과. 그런데 아웃라인 효과와 투시 효과는 각자 다른 메쉬들에게 이루어져야 했고 이들을 구분하기 위해 Stencil 값을 활용했습니다. CustomDepth Stencil Value를 활용하면 0~255까지의 수로 구분을 할 수 있어 아웃라인 효과는 50, 투영 효과는 100으로 할당해 줬습니다. 다만 이후 결과를 보게 되면 이런 이상한 모양이 나오게 됩니다. 의도하던것과 다르게 Mesh의 일부만을 이 효과를 적용시키게 되는 문제가 있었습니다. 해결 - Project Setting을 해주자 Project Setting > Engine ..
-
[Unreal] Spectator Pawn Input이 제대로 안되는 경우쾌락없는 책임 (공부)/Unreal 2023. 7. 5. 15:21
개요 - 상황 설명 현재 플레이어는 WASD와 마우스 좌클릭을 사용하고 있는 상태입니다. 여기서 죽고 나면 Spectator Pawn을 생성해 A, D, 마우스 좌, 우클릭을 통해서 관전할 플레이어를 조작할 수 있게 계획했습니다. 그런데 Spectator Pawn을 생성하고 나면 마우스 우클릭만 사용이 가능하고 기존 플레이어가 사용하고 있는 Input을 사용할 수 없는 문제가 있었습니다. 여기서 다짜고짜 Spectator Pawn의 IMC 우선순위를 높여버리면 Spectator Pawn이 게임 시작과 동시에 생성되면서 Input을 Spectator Pawn이 먹는 문제가 있습니다. 해결법 - ClearAllMappings void AFASpectatorPawn::SetupPlayerInputCompone..
-
[Unreal] Seamless, non Seamless쾌락없는 책임 (공부)/Unreal 2023. 6. 20. 15:19
개요 언리얼에서 씬을 옮기는걸 Travel이라고 하는데 여기서 방식이 Seamless, non-Seamless로 나뉘게 됩니다. 여기서 Seamless는 이름처럼 non-blocking이고 non-Seamless는 blocking입니다. 둘의 차이 분류 Seamless non-Seamless blocking 여부 (연산을 위해 멈출지 여부) non-blocking blocking Transition level 여부 (중간 로딩창) 있음 (엔진에서 설정해줘야 함) 없음 게임을 해본 입장에서 간단하게 이야기하면 Seamless는 로딩창을 가지는 것이고 non은 가지지 않는 것입니다. 그리고 보통은 Seamless 이동이 더 원활하고 연결 시에 문제가 있어도 대처할 방법들이 있어 선호된다고 합니다. non-S..