728x90
반응형
Project MOD Supporters Hackathon_ch.4/5/6
레이어별로 하나의 타일만 사용 가능
TileMapComponent
Color : 타일맵의 색상 지정
TileSetRUID : 타일맵에서 사용할 타일셋 리소스의 RUID 지정
Color : 타일맵의 색상 지정
Foothold ~ : 발판 정보
File -> Setting -> 만들기 -> 발판정보 ✅ : 발판의 정보 확인 가능
Model List 중 Foothold : Foothold 정보를 이미 포함한 Entity
Edit Foothold를 통해 수정 가능
수정 후 Exit Edit Foothold를 통해 저장
FootholdDrag : 이 타일맵 위에 있는 캐릭터의 마찰력 변화 (값이 크면 더 빠르게 감속)
FootholdForce : 이 타일맵 위에 있는 캐릭터에 가하는 힘 (양수일 경우 오른쪽, 음수일 경우 왼쪽으로 힘을 받음)
FootholdWalkSpeedFactor : 이 타일맵 위에 있는 캐릭터의 속력 변화(값이 크면 더 가속)
Map Layer Panel
하나의 Map에는 최대한 10개까지 Layer 추가 가능
상단일수록 맨 앞으로 배치
Basic Class - 4. 지형과 레이어의 이해
Basic Class - 5. 자주 사용하는 컴포넌트
✅ TweenCircularComponent : 원점을 중심으로 원운동
- 원점을 기준으로 원형으로의 움직임 연출
- 회전 수, 속도, 반경 설정 가능
✅ TweenFloatingComponent : 원점을 기준으로 부유운동
- 엔티티가 제자리에서 떠다니는 듯한 움직임 연출
✅ TweenLineComponent : 원점에서 목적지까지의 선형운동
- 원점을 기준으로 목적지까지 선형운동의 움직임 연출
- 목적지까지 편도, 왕복 운동 여부 및 가/감속, 도달 시 튕김의 운동 방식 설정
✅ RigidBodyComponent : 강체의 물리적인 속성을 컨트롤 할 수 있는 컴포넌트
- gravity : gravity 프로퍼티의 값 조정을 통해 공중에 떠 있거나 지면에 떨어지도록 할 수 있습니다.
- IsBlockVerticalLine : 세로 방향의 foothold를 설정할 수 있습니다.
- IsQuaterViewMove : 프로퍼티의 값 조정을 통해 컴포넌트가 지형에 떨어지지 않고 자유롭게 움직일 수 있도록 설정할 수 있습니다.
✅ MovementComponent : 이동 속도와 점프의 정도, 활성화의 여부를 조절하는 프로퍼티가 존재
- InputSpeed : 이동 속도를 설정
- JumpForce : 점프의 정도를 설정
✅ TriggerComponent : 엔티티의 충돌 감지 (충돌이 일어나는 범위를 설정할 때 충돌체 사용)
✅ HitComponent : 엔티티의 충돌 감지 (피격의 범위를 설정할 때 충돌체 사용)
- MOD에서의 충돌이란 충돌체를 포함하고 있는 엔티티의 충돌 영역이 서로 교차했을 때를 의미
- 충돌체의 경우, TriggerComponent나 HitComponent와 같은 컴포넌트를 엔티티에 추가할 경우 자동으로 생성
- TriggerComponent 또는 HitComponent를 가지고 있지 않은 객체와의 충돌은 감지할 수 없음
- Collider : 프로퍼티 에디터의 Edit 버튼을 누를 경우 엔티티에 충돌체가 나타남, 드래그 or 핸들러 조절을 통해 충돌체 크기 설정 가능
- BoxOffset & ColliderOffset : 충돌체의 위치 설정
- BoxSize : ColliderType이 Box일 경우 충돌체의 크기 설정
- CircleRadius : ColliderType이 Circle일 경우 충돌체의 크기를 설정
- ColliderType : 충돌체의 형태 선택, Box의 경우 충돌체를 사각형으로, Circle의 경우 원형으로 변경
- IsLegacy : TransformComponent에 영향을 받을지 여부를 설정
✅ PlayerComponent : 플레이어에 대한 로직을 스크립트로 추가 가능
- PVP mode : 상호 공격이 가능한 모드
예제) 장애물과의 충돌(TriggerEnterEvent)이 들어올 경우 hp를 100씩 감소시키는 스크립트
HandleTriggerEnterEvent : 장애물과의 충돌이 들어오는 시점에서 호출되는 함수
함수의 매개변수로 TriggerEnterEvent 이벤트를 받아온 뒤, 함수 내부에서 수행할 명령어를 입력해줍니다.
충돌 이벤트 샌더를 self 로 선언해줌으로써 리액터 컴포넌트가 추가된 엔티티의 충돌 이벤트를 받게 됩니다.
✅ PlayerControllerComponent : 플레이어를 컨트롤하는 컴포넌트
예제) 플레이어 컨트롤
LookDirectionX : 현재 X축을 기준으로 캐릭터가 바라보고 있는 방향을 의미 (양수 : 오른쪽, 음수 : 왼쪽)
FixedLookAt : 캐릭터가 바라보고 있는 방향을 고정시키는 것 (1 : 오른쪽, -1 : 왼쪽)
Basic Class - 6. 스크립트의 이해
Lua 스크립트 “아주 기본적인” 문법
log()
- console 창에 로그를 찍기 위해서는 log() 내부에 출력할 값을 넣어주면 됩니다.
변수 선언 키워드 local
- 변수를 선언하는 키워드로 local을 사용
- 변수 선언 방식은 local number = 1과 같이 local 자료형 = 초기화 값의 형태
- 변수를 local 키워드 없이 사용하여 명시적으로 지역으로 정의하지 않으면 global(전역) 변수로 취급하 (이에 local(지역)으로 사용하길 원한다면 명시해야 함))
순차 구조
- 대부분의 스크립트 언어와 마찬가지로 Lua script는 순차적인 구조로 소스 코드가 실행
반복문
- for 이후에 반복자 = 초기값, 조건, 증감값 do 로 시작한 후, 반복할 실행문이 끝나는 지점에서는 end로 닫음
조건문
- 조건문의 경우 if 조건식 then 으로 시작하여 end 사이 조건을 만족하였을 때의 수행문을 입력
Create Script
- 기본적인 언어인 Luascript + mod의 추가적인 문법 결합
- MyDesk > 마우스 우클릭 > Create Scripts > Create Script
Create Logic
- 로직은 한 게임에서 하나만 존재 -> 별다른 설정 없이 지속적으로 사용
- 로직은 따로 어떤 객체에 추가를 해주지 않아도 프로그램 상에 하나만 존재하기 때문에 콘솔 창에 결과가 뜸
Create Component
- Component는 생성 후 Entity에 해당컴포넌트를 추가해야 실행 됨 (Entity 별로 실행)
- MyDesk > 마우스 우클릭 > Create Scripts > Create Component
- 콘솔창에 로그를 찍게 되면 스크립트를 추가한 객체의 수만큼 로그가 찍힘
- Property 설정할 수 있는데, 이때 설정한 property는 property창에 노출됨
- 함수에서 내가 속한 component의 property 또는 함수를 가져다 쓸 때 self.컴포넌트명으로 컴포넌트를 불러와서 사용
Function
- 어떠한 기능들을 모아둔 것
자주 쓰는 함수
1. OnBeginPlay : 컴포넌트가 초기화가 될 때(처음 시작할 때) 처리하는 로직
* OnBeginPlay 함수 주의할 점
- 각 컴포넌트 내 OnBeginPlay의 호출 순서는 보장되지 않기 때문에, 특정 컴포넌트의 OnBeginPlay로 설정이 완료된 값을 받아오게 되면 오작동 할 가능성이 있음
- 예를 들어, 컴포넌트 A의 OnBeginPlay에서 컴포넌트 A의 프로퍼티B를 " "에서 "Hello" 로 설정한다 했을 때, 컴포넌트 C의 OnBeginPlay에서 프로퍼티 B를 참조하면 값이 "Hello"가 아닌 " "로 받아올 가능성이 있음
- 따라서 다른 컴포넌트의 OnBeginPlay에서 컴포넌트 A의 프로퍼티를 참조해야 한다면, 컴포넌트 A에서는 다음과 같이 OnInitialize를 활용해 프로퍼티 값을 설정하는 것이 좋음
2. OnUpdate : 프레임마다 주기적으로 불리는 함수
3. OnEndPlay : 끝날 때 처리하는 로직
- OnDestroy와 함께 엔티티가 제거되는 시점에 1회 호출되는 함수
728x90
반응형
'게임개발 > NEXON PROJECT MOD' 카테고리의 다른 글
[Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.9/10 (0) | 2022.07.25 |
---|---|
[Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.7/8 (0) | 2022.07.23 |
[Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_ch.1/2/3 (0) | 2022.07.19 |
[Remind] 멋쟁이사자처럼 X 넥슨 Project MOD Supporters Hackathon_start (0) | 2022.07.17 |
PROJECT MOD X LIKELION PARTNERSHIP 체결 (0) | 2022.07.01 |
댓글