728x90

전체 글 101

[Unreal5] 언리얼에서 PCG를 활용한 아파트 단지 만들기 -2

앞부분 못 보신 분들은 보고 오기 저거에 이어서 진행 https://dani2344.tistory.com/93 [Unreal5] 언리얼에서 PCG를 활용한 아파트 단지 만들기 -1 https://www.youtube.com/watch?v=Rknnu16mrOw 1시간 21분짜리 유튜브,,, 두 번 다시는 풀로 안들을거 같아서 정리하는 용도 위에 강의를 끝까지 따라해서 아래와 같은 결과를 얻었다 / 한국식으로 수정 언리얼 dani2344.tistory.com 우리는 아파트 단지를 만드는 것이 목적이지 아파트 한 채가 목적인 그런 소소한 사람들이 아니다! 점들을 그리드 형태로 만들어 그 점마다 아파트를 생성하는 식으로 만들 것이다. Create Points Grid를 만들어 Grid Extents를 (1000..

[Unreal5] 언리얼에서 PCG를 활용한 아파트 단지 만들기 -1

https://www.youtube.com/watch?v=Rknnu16mrOw 1시간 21분짜리 유튜브,,, 두 번 다시는 풀로 안들을거 같아서 정리하는 용도 위에 강의를 끝까지 따라해서 아래와 같은 결과를 얻었다 / 한국식으로 수정 언리얼에서 기본 제공되는 400 * 300짜리 벽 두개를 꺼내주고 모델링 모드의 XForm > Merge로 합쳐주자 합쳐진 애를 Mesh > Union으로 한 번 더 합쳐준다. 콘텐츠 브라우저에 Contents > _GENERATED > 유저이름 > 저장되어 있는 Combined 어쩌구를 이름을 보기쉽게 바꿔주고 폴더정리도 하자~ 블루프린트 클래스 > 액터로 하나 생성 이름은 BP_Buildings 이 친구는 어마무시한 기능을 하게 될 것이다... 추가로 PCG Graph도..

[Unreal5] density를 z 좌표로 나타내는 PCG Custom 노드 만들기

콘텐츠 브라우저 > 추가 > 블루프린트 > PCGBlueprintElement 추가 변수로 MaxHeight를 만들어서 눈표시로 켜주고 클래스 디폴트 버튼 눌러서 클래스 세팅을 위에처럼 해주자 이름은 다 마음대로 해도 된다. 잊지말고 디폴트 입력 핀, 출력 핀 끄자! 왼쪽에 Execute With Context 함수를 오버라이드하고 아래처럼 설정해주자. 여기서 Point Loop In Context는 Execute with Context의 In Context와 연결하면 된다! (빼먹음!) 이렇게 생긴 애가 나올텐데 (연결은 무시좀 귀찮아서 안지움) 이제 얘를 연결해주자. InPoint 친구랑 Break PCG Point 노드를 연결하자. Break PCG Point는 PCG Point를 Transform..

[Unreal5] 언리얼의 PCG로 정신없는 책상 의자 만들기 (술판)

지난번에 만들어두었던 마을의 귀퉁이에 주점같은 곳을 만들거다. 여유가 된다면 앞부분 내용 나중에 추가하겠다.... 으아 spline을 이용해 대충 구역을 지정해 둔 뒤, 디테일 창에서 닫힌 루프 true처리 해주자. + 태그 달아두기 그다음 pcg graph로 이어온다. get spline data에서 태그로 spline을 찾고 Spline Sampler에서 이를 받아와 적당한 배열과 크기로 지정해주자. 뒤쪽에서 겹치는 부분은 제거할거라 bound를 크게 잡았다. 근데 나무랑 뭐시기들 때문에 하나도 안보이니 이전에 만들어둔 Tree spawner와 Grass Spawner에서 Difference의 Differences로 연결해 없애주자 그냥 static mesh spawner로 이어주면 왼쪽처럼 너무 오..

[Unreal5] 언리얼의 C++을 유니티 관점으로 이해해보자

Actor 클래스를 상속하는 C++ 클래스를 생성 MyActor (기본이름)에 대한 헤더파일, Cpp 파일이 생성된다. (C++ 해봤으면 헤더파일 cpp파일은 알고있겠지) 헤더파일에 생성자, BeginPlay, Tick이 존재한다. 생성자는 클래스 이름과 같은 이름으로 써있으며, 클래스에 객체가 생성될 때 한번 호출, 주로 생성된 액터의 프로퍼티인 변수의 기본값을 설정할 때 이용. 유니티에서는 Start나 Awake랑 비슷한 개념으로 생각됨. BeginPlay(): 액터가 배치된 월드에서 게임이 시작되거나 액터가 월드에 스폰될 때 호출됨. 게임 플레이 로직의 초기화 등에 사용. 유니티에서의 OnEnable 함수와 비슷하다고 생각. Tick(float DeltaTime): 매 프레임마다 한번씩 호출, 유니..

[Unity] WebGL을 위한 Textures 최적화, 빌드 파일 용량 / 텍스쳐 용량 줄이기

유니티 빌드 후 Build Report를 살펴볼 수 있다 C:\Users\이름\AppData\Local\Unity\Editor\Editor.log (Editor 폴더 안보이면 Unity 폴더에서 검색하자 Editor에 들어가서 Build Report를 검색하면 빌드 파일에 관련된 정보가 뜬다 기존에 Textures가 1.1gb를 차지하고 있던 걸 479mb로 줄였다 텍스쳐 줄이기 노력 1. 해당 씬만 export해서 다시 받기 (별로 도움 안 됨) 2. URP 사용 버리기 (상관없는듯 다시 URP사용으로 돌렸음) 3. Sprite Atlas 사용해서 Batch 줄이기 (UI Batch 수를 줄이는 효과) 4. Crunch Compress 사용하기 (효과 엄청 좋다. 대충 Textures들은 다 이거 해주..

공부/Unity 2023.11.10

[Unity] png 투명 부분 클릭 안되게 하기 (버튼, 이미지 etc)

UI에 버튼, 이미지를 넣었는데 아무리 잘라줘도 이를 포함한 네모 전체를 클릭 이미지로 인식했다. 이를 해결하는 방법 1. 이미지가 들어간 오브젝트에 아래 식을 넣은 script를 넣어준다. 2. 이미지의 인스펙터창에 들어가서 설정을 바꾼다. (Mesh Type > Full Rect로 실험해보니 따로 설정 안 해도 작동된다) Advanced > Read/Write > True (체크로 설정) + Crunch Compression과 같이 사용할 수 없다 ++ Sprite Atlas와 같이 사용할 수 없다 2번 설정을 안해주면 InvalidOperationException 에러가 뜨니 유의하기 using UnityEngine.UI; //맨 윗부분에 넣어두기 float alphaThreshold = 0.1f;..

공부/Unity 2023.10.30
728x90