언리얼 기초 공부(2) [25.01.03]

HyeonjungYun·2025년 1월 3일

언리얼 기초

목록 보기
4/23
post-thumbnail

언리얼에서는 설계도와 이 설계도에 따라 만든 구현체가 존재한다.
여기서 설계도는 클래스를 뜻하며, 구현체는 인스턴스를 말한다.

상속

클래스에는 상속의 개념이 있는데, 상속을 통하여 부모 클래스의 특성과 기능을 자식 클래스로 상속시키고 자식 클래스에선 또 자식 클래스만의 특성과 기능을 별도로 추가할 수 있다.

예시)
움직이는 기능이 있는 슬라임
-> 부모 슬라임 클래스
움직이는 기능이 있고 별도로 공격하는 기능이 추가된 슬라임
-> 부모 슬라임 클래스를 상속받은 자식 슬라임 클래스

월드 & 상대 좌표


언리얼 내에서 컴포넌트를 추가할 수 있고, 뷰포트에서 바로 확인할 수 있다.


컴포넌트 간의 부모 자손 관계를 바탕으로 자식 컴포넌트의 좌표를 부모 컴포넌트의 좌표와 비교하여 상대적 좌표를 나타낼 수 있으며, 아웃라이너에서 상대 좌표로 볼 지, 월드 좌표로 볼 지 선택할 수 있다.

블루 프린트 클래스 생성


새 서브 클래스 : 액터 클래스에서 가지고 있는 액터 클래스의 자손 클래스들 중 하나로 변환하여 그 자손 클래스의 자손으로 들어간다.

자손 액터 : 생성된 액터 인스턴스에 또 다른 액터를 만들어서 기존 액터의 자손으로 붙인다.

컴포넌트 수집 : 만들어 놓은 액터 인스턴스의 컴포넌트들을 수집하여 가져간다.

자손 액터, 컴포넌트 수집은 선택한 액터를 클래스로 변환해준다.

아래는 큐브 모양을 가지는 액터를 만드는 과정이다


액터를 선택하면 뷰포트에 액터가 생성되는 것이 보인다.

오른쪽 디테일 바에서 큐브를 선택한다.

아래 큐브 컴포넌트가 생성된 것을 확인하고 자손 블루프린트 클래스를 생성한다.

이름을 BP_Act1로 생성하고 저장 여기서 BP는 BluePrint이다.

위와 같이 새로운 블루프린트 클래스를 생성할 수 있다.


콘텐츠 브라우저에 블루프린트 클래스에 뜨는 별표는 아직 저장이 되지 않았다는 표시이다.

BP_Act1창으로 들어가 저장을 누르거나 컨트로 + s를 누르면 저장되고 별표가 사라진다.

생성된 블루프린트 클래스

콘텐츠 브라우저에서 우클릭 -> 새 블루프린트를 선택하면 다양한 유형의 클래스를 선택해 부모 클래스로서 활용할 수 있다.
콘텐츠 브라우저에서 블루프린트 클래스를 뷰포트로 드래그해 뷰포트로 소환할 수 있다.

블루프린트 클래스는 재사용이 가능하고 블루프린트 노드로 프로그래밍이 가능하며, 기존에 있던 액터나 컴포넌트를 클래스로 변환할 수 있는 기능이 있다.

액터 클래스의 특별한 자손

액터 - 폰 - 캐릭터

빙의 기능이 포함되어 있다.

빙의 : 컨트롤러라는 액터에서 입력을 전달 받을 수 있는 기능

캐릭터

폰의 직계 자손

폰의 자식 클래스로, 캐릭터 클래스를 소환할 수 있는데 캐릭터 컴포넌트 중에 "캐릭터 무브먼트 컴포넌트"는 걷기, 뛰기, 헤엄치기, 날기 등의 기능들이 포함되어 있다.

컨트롤러

플레이어 컨트롤러, AI컨트롤러로 구분된다.

플레이어 컨트롤러 : 우리의 키보드 마우스로부터 입력받아 폰으로 전달해주는 역할
AI컨트롤러 : 정해진 규칙에 따라 AI가 동작하면서 그것에 대해 처리 결과를 폰으로 전달

컴포넌트

컴포넌트 : 각기 다른 기능을 가지며 액터에 추가해 사용한다.

컴포넌트의 종류

씬 컴포넌트



위치, 회전, 스케일 값을 가지는 트랜스폼을 가진 컴포넌트

스태틱 메시 컴포넌트

씬 컴포넌트의 자손 클래스, 트랜스폼을 지니고 있다.

스태틱 메시 컴포넌트는 스태틱 메시 에셋을 표시하는 기능을 가진 컴포넌트
스태틱 메시 에셋이란 변형되지 않은 3D모델을 뜻한다.


스태틱 메시의 항목의 스태틱 메시에서 오브젝트를 선택 후 컴파일을 하면 스태틱 메시 항목 하단에 머티리얼 항목이 새로 생긴다.

  • 머티리얼 : 스태틱 메시의 재질을 의미, 머티리얼을 두 개 이상 가지는 스태틱 메시도 존재한다.

컨텐츠 브라우저에서 우클릭 -> 머티리얼 -> 머티리얼을 선택해 직접 머티리얼을 만들 수 있다.

  • 피직스 항목 : 물리를 적용할지 안 할지 결정, 피직스 시뮬레이트를 체크하면 물리를 적용한다.
    - 컨스트레인트 -> 물리를 적용하더라도 특정 축으로 이동하는 것을 막는 기능을 한다.
  • 콜리전 : 물체가 부딪히거나 겹쳤을 때 어떤 기능을 할 지를 결정하는 충돌체
    - 시뮬레이션 중 히트 이벤트 발생 -> 물체가 부딪혔을 때 특정 블루프린트 노드 실행
    - 오버랩 이벤트 생성 -> 둘이 겹쳐졌을 때 특정 블루 프린트 노드를 실행
    - 콜리전 프리셋 -> 겹칩과 부딪힘의 동시성의 규칙에 직접 관여

라이트 컴포넌트

  • 디렉셔널 라이트 컴포넌트 : 햇빛처럼 평행한 빛을 발사하는 컴포넌트
  • 스포트라이트 컴포넌트 : 원뿔 형태의 라이트를 발사하는 컴포넌트
  • 포인트 라이트 컴포넌트 : 구 형태의 빛을 발산하는 컴포넌트

라이트 컴포넌트 디테일 바

  • 강도 : 빛의 강도를 결정
  • 라이트 컬러 : 빛의 색상을 결정
  • 어테뉴에이션 반경 : 빛이 영향을 끼치는 거리를 의미
  • 소스 반경 : 광원의 크기를 나타냄
    (디렉셔널 라이트에만 반경이 없음)

머티리얼

머티리얼 : 재질을 의미하며, 특정 재질을 입힐 수 있다.

  • 베이스 컬러 : 전반적인 머티리얼의 색상을 결정
  • 메탈릭 : 얼마나 금속 같은지를 결정, 1은 완전 금속, 0은 완전 비금속
  • 스페큘러 : 비금속적인 부분의 반사도를 결정
  • 러프니스 : 머티리얼의 표면이 얼마나 거친지를 결정, 1은 완전히 거칠어 무광, 0은 완전 매끈하여 반사가 잘되는 상태


머티리얼 그래프를 우클릭 하여 Texture Sample을 통하여 Texture을 가져오는 것도 가능하다.

Texture Sample 노드를 클릭하고 왼쪽 디테일 바에서 텍스처를 선택하여 가져오는 것이 가능하다.

Texture Sample 노드의 RGBA를 베이스 컬러에 연결해주면 그림이 입혀지는 것을 확인할 수 있다.


(아까 생성했던 BP_Act1)

이후에 저장하여 머티리얼을 저장하고 만든 머티리얼을 기존의 액터 클래스의 스태틱 메쉬 컴포넌트에서 만든 머티리얼을 선택하여 Texture을 입히는 것이 가능하다.

스켈레탈 메시 컴포넌트

씬 컴포넌트의 자손 클래스이기 때문에 트랜스폼이 포함되어 있다.



디테일 바
애니메이션 : 특정 포즈들을 취하는 장면을 결정
메시 : 위의 애니메이션 동작에 다라 변형될 수 있는 3D 모델을 뜻한다.

스프링암 컴포넌트

월드에 충돌하면서 플레이어를 따라가는 카메라 -> 카메라를 충돌체로 인식하게 함
충돌체가 다른 물체와 부딪히면 잡아당겨지고 부딪히지 않을 땐 원래의 길이로 돌아가게 함


디테일 바
타깃 암 길이 : 암의 길이를 결정(충돌하지 않았을 때를 기준으로 한다.)
소켓 오프셋 : 카메라 암의 위치를 결정

카메라 컴포넌트

카메라 컴포넌트를 스프링암 컴포넌트에 포함시키면 스프링암 끄트머리에 카메라가 달리게 된다.

카메라 앞에 비춰지는 모습을 촬영하는 기능을 한다. 촬영한 화면을 실제 게임화면으로 내보내거나 이미지 저장 용도로 쓰인다.

profile
게임 프로그래머 공부

0개의 댓글