본문 바로가기

[Unreal] Time-Slicing * 이 게시물에 대한 비판, 조언 모두 환영합니다. 작업을 하다 보면 한 틱에 이렇게 많은 연산을 해도 될까? 라는 고민을 할 때가 있다. 예를 들면 수십만 개의 Cell을 받아 Update를 해주어야 하는 경우이다. 이 Update는 굳이 한 번에 완료될 필요는 없고, 여러 틱에 걸쳐 해도 되는 작업이라도 가정해보자. 한 틱에 수십만 개의 Cell을 Update하면 게임이 멈춰버릴 것이며, 여기에 스레드를 할당하기는 싫다. 그렇다고 해서 임의로 한 틱에 Update할 Cell의 개수를 임의로 정하는 것도 말이 안된다. 몇 개가 적당하며, 모든 Cell의 Update가 동일한 연산일 보장도 없을 것이다. 이런 상황에서 Time-Slicing이 유용했다. 간략히 말하자면 한 틱에 작업을 수행할 시간을 정하..
[ Unreal 4 ] 생성한 Class가 Content Browser에 나오지 않는 문제 Class를 생성했는데 View Options에 Show C++ Class가 체크 되어 있었는데도 Content Browser에는 표시되지 않는 문제가 발생했다. Unreal의 Log에서는 ReBuild하라는 알람이 떠 프로젝트를 다시 빌드해봤지만 나타나지 않았다. 그러던 도중 솔루션 구성이 Development로 되어 있는 것을 보았고 이를 Development Editor로 바꿔 빌드하자 Content Browser에 해당 클래스가 나타났다.
[ Unreal 4 BP ] 1장 블루프린트를 이용한 오브젝트 상호작용 언리얼 엔진 4 블루프린트 비주얼 스크립팅 브렌든 스웰 지음 | 문기영 옮김 프로그래머로써 실제 개발할 때는 블루프린트를 쓰지 않는다고 들었지만, 프로토 타입이나 빠르게 결과를 보여주기 위해서는 블루프린트를 사용한다고 들었다. 따라서 블루프린트를 사용하는 방법을 익히고 가벼운 게임 하나 정도는 만들 수 있는 수준은 되야겠다 생각하고 공부하기로 결정했다. Blueprint : 이벤트 ( 언제 ) / 조건 ( 액션이 실행될 조건 ) / 액션 ( 행동 ) 의 구조 # 액터의 이동성과 충돌 설정 변경 - 액터의 Mobility 를 Movable로 변경 ( Transform 값에 존재 ) : Static으로 설정되어 있다는 것은 게임이 실행되는 동안 움직일 수 없다는 것을 의미한다. 정적 오브젝트는 렌더링할 때 ..
[ Unity ] Unity 2019 Post Process 1. Package Manager 에서 Post Processing 다운로드 2. Post Process Layer, Post Process Volume 컴포넌트 추가 3. Post Process Layer 컴포넌트의 Layer 설정 4. Scene 전체에 적용하고 싶다면 Post Process Volume의 Is Global 체크 5. Post Process Volume 컴포넌트의 Add effect...를 눌러 원하는 효과 추가하기 [ 유니티 문서 - 포스트 프로세싱에 대한 이해 ] https://docs.unity3d.com/Manual/BestPracticeMakingBelievableVisuals8.html Unity - Manual: Understanding post-processing Ind..
[ Unity ] Game View의 Stats frameTime UnityEditor.UnityStats 로 접근할 수 있다. 그 중 frameTime 변수가 있는데, 이를 Update() 함수에서 사용 시 계속 0 값을 리턴하는 문제가 있었다. OnGUI() 에서 값을 사용하자 제대로 된 값을 얻을 수 있었다.
[ Unity3D 잔상 효과 ] SkinnedMeshRenderer AfterImage Effect 잔상을 남기려는 오브젝트의 Renderer가 SkinnedMeshRenderer인 경우에 가능한 방법입니다. 단계는 아래와 같습니다. 1. SkinnedMeshRenderer.BakeMesh( Mesh mesh ) 를 이용하여 오브젝트의 현재 상태를 저장한다. 2. 저장한 Mesh를 잔상으로 이용한다. // 잔상 오브젝트에 필요한 것들 SkinnedMeshRenderer smr = gameObject.Getcomponent(); Material afterImageMaterial; // 잔상 생성 Mesh mesh = new Mesh(); smr.BakeMesh( mesh ); GameObject afterImageObj = new GameObject("AfterImage"); MeshFilter mf =..
[Unity3D] Image의 Color를 변경해도 적용이 안되는 경우 구글에서 물음표 Png 파일을 다운받아 Sprite ( 2D and UI ) 설정을 해준 뒤 Image 컴포넌트에 넣어 컬러를 변경하였다. 그러나 오브젝트의 색이 변하지 않는 문제가 발생했다. 그 이유는 단순하다. 물음표의 색상이 검은색이었기 때문이다. 그림판3D를 이용하여 물음표를 흰색으로 바꾸어주니 색을 원하는 대로 조절할 수 있게 되었다.
[Unity3D] World Space 상의 UI를 화면의 가장 위에 그리기 World Space 상의 UI들은 Z축의 영향으로 다른 월드 스페이스 상의 오브젝트들에 의해 가려지게 된다. UI 전용 카메라를 하나를 만들어 UI가 가장 위에 출력될 수 있도록 하였다. UI 카메라를 추가한 뒤 Main 카메라, UI 카메라의 설정은 아래와 같이 바꾸어 주었다. Main Camera 1. Culling Mask에 UI를 체크 해제 UI Camera 1. Culling Mask에 UI를 제외한 나머지 모두 해제 2. Clear Flags를 Depth only로 변경 3. Depth 수치를 Main Camera보다 크게 설정 * UI 오브젝트들의 Layer를 지정해주어야 한다. 위의 설정은 UI 오브젝트들의 Layer를 'UI'로 지정했을 경우이다. 만약 'UI'가 아닌 다른 Layer를..