멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon 13

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 5주차 회고 <충돌 기능 구현하기 >

충돌 기능 구현하기 Script Skeleton 장애물에 맞으면 hp감소하고, hp가 0이 될 시 플레이어 상태를 조정한다. 충돌기능은 TriggerComponent가 이미 존재하고 있으므로 이 것을 확장시켜 새로운 Component인 Trap_Trigger_Component를 제작한다. Component를 새로 만들었다면 먼저 해당 Trap의 데미지를 조정할 수 있도록 Property에 damage를 넣어준다. 작동 로직 TriggerEvent가 발생→ 해당 TriggerEvent가 발생한 대상이 Player인지 확인 → (맞을 시) 플레이어의 Hp - Trap의 데미지가 0보다 클 때 : HP만 감소, 0보다 작거나 같을 때 : 플레이어 사망 및 5초후 부활 설정 TriggerEvent 발생 시 다음..

카테고리 없음 2022.08.03

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 5주차 회고 <떨어지는 장애물 만들기>

떨어지는 장애물 만들기 장애물에 중력을 부여하는 원리 장애물이 떨어지게 만드려면 “중력”을 가지도록 해야한다. 중력을 가지도록 하려면? 중력값을 가지도록 하는 Component인 RigidbodyComponent를 해당 장애물에 추가를 해준다. 또한, 장애물이 그저 중력만 갖고있다면 떨어지다가 Tile과 만나면 그대로 멈추고 아무 동작을 하지 않는다. 장애물이 바닥에 떨어지고 다시 위로 respawn 되어 떨어지게 만들어야 한다. 따라서 Trap이 떨어지는 Trap_Falling_Component를 만들어 장애물에 추가해주고 위의 내용을 작업해준다. 장애물 위치에 따라 해당 Entity y좌표 설정하기 해당 장애물이 특정 y좌표보다 아래로 떨어지게 될 경우 자신이 설정한 바닥의 y좌표보다 조금 높게 설정..

카테고리 없음 2022.08.02

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 5주차 회고 <공중에서 도약하기>

공중에서 도약하기 공중도약을 하는 원리 rigidbodyComponent안에 SetForce라는 함수가 숨겨져있다. SetForce 함수를 이용하면 rigidbodyComponent 를 가진 객체를 원하는 방향으로 힘을 가할 수 있다. 따라서 공중에서 LeftAlt 라는 KeydownEvent가 발생시 RigidbodyComponent:SetForce(Vector2(x방향,y방향) 중력을 조절하면 밑으로 떨어지지 않고 점프를 할 때마다 위로 둥둥 뜨게 할 수 있다. Avoid_Obstacle_Mode Component 약 Player의 Mode를 따로 설정하지 않고 Default 상태로 만들어준다면 Property에 있는 string Mode를 설정해줄 필요가 없다. 그러나 미니게임처럼 다른 게임에서는 ..

카테고리 없음 2022.08.01

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 4주차 회고 <알아두면 유용할 것들>

알아두면 유용할 것들 Model 모델 : 엔티티에 컴포넌트를 추가해 모델화 할 수 있습니다. Original Model : 빈 엔터티에서 컴포넌트들을 추가해 새로운 무언가를 만든 것입니다. Child Model : 기존 엔터티에서 상세 컴포넌트만 바뀐 것으로, 기존 엔티티에서 파생된 모델. 부모 모델과 자식 모델의 관계자식 모델에서는 자신보다 상위 모델인 부모 모델에서 추가한 컴포넌트를 삭제할 수 없습니다. 반대로 부모 모델에 새로운 어떤 컴포넌트 추가시 자식 모델에도 추가됩니다. 자식 모델의 기존 엔터티를 부모 모델이라 생각하시면 됩니다. 부모 모델이 자식 모델의 상위 개념입니다. [모델과 관련된 기능들] 아래의 기능들은 해당 엔티티의 Property 창에서 엔티티의 모델에 해당하는 컴포넌트에서 설정할..

카테고리 없음 2022.07.31

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 4주차 회고 <UI 에디터의 이해>

UI 에디터 기본 활용&제어법 UI 에디터 살펴보기 게임에서는 UI를 GUI라고 부르기도 합니다. 주로 어떤 행동의 입출력을 담당하는데요, MOD에서는 UI 에디터를 통해 화면 상에 출력되는 UI를 조작합니다. UI 에디터의 구성은 위와 같습니다. 모델 리스트 : 메이커에서 제공하는 다양한 UI Preset 활용 가능 UI 경로 정보 : 선택된 UI 엔티티의 경로 정보를 얻어오는 기능 캔버스 : UI 엔티티의 배치 및 편집을 작업하는 공간 (실행 시 캔버스에 배치된 레이어대로 화면에 출력) 기본 도구 : 이미지 & 버튼 등의 UI 엔티티 배치 가능 UI Group 편집창 : UI Group의 선택 / 추가 / 삭제 기능 제공 기본 UI 엔티티 기본 UI 엔티티는 기본 도구를 통해 배치할 수 있습니다. 기..

카테고리 없음 2022.07.29

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 4주차 회고 <컴포넌트의 활용 2>

InputService를 활용한 입력과 액션 유저가 키를 누르거나, 혹은 모바일의 화면을 터치하는 등의 입력이 들어오게 되면 InputService에서는 유저의 입력에 대한 이벤트를 발생시키게 되는데, 우리는 이 이벤트에 대한 핸들러를 추가하여 이벤트에 대한 액션을 수행하게끔 할 수 있다. InputService의 이벤트와 핸들러의 활용 - Key KeyDownEvent : 키를 1번 눌렀을 때 발생 KeyHoldEvent : 키를 누르는 동안 발생 KeyReleaseEvent : 키를 길게 눌렀다 뗐을 때 발생 KeyUpEvent : 키를 1번 눌렀다 뗄 때 발생 - Touch ScreenTouchEvent : 월드상의 화면을 터치, 또는 클릭했을 때 1회 발생하는 이벤트 ScreenTouchHoldE..

카테고리 없음 2022.07.28

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 4주차 회고 <컴포넌트의 활용 1>

MovementComponent MovementComponent은 컴포넌트명과 같이 캐릭터의 움직임에 관여하는 컴포넌트이다. 위 이미지와 같이 MovementComponent에는 InputSpeed 속성과 JumpForce 속성이 존재한다. InputSpeed : 이동 속도를 조절하는 프로퍼티 (x축 기준) JumpForce : 점프력을 조절하는 프로퍼티 (y축 기준) RigidbodyComponent RigidbodyComponent는 기본적인 물리 움직임을 조정하는 속성을 가진 컴포넌트이다. 일반적인 세계에서 영향을 받는 움직임을 따라가는 컴포넌트로써, 지형의 특성과 레이어에 따라 다른 움직임을 적용할 수 있다. 또한 RigidbodyComponent의 속성에 어떤 값을 부여하느냐에 따라 레이어를 무..

카테고리 없음 2022.07.27

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 4주차 회고 <Event와 컴포넌트 확장>

Event System의 구성 Event 기반은 기본적으로 "행동을 실행해야 할 주체"에서 행동을 관리한다. 즉, 행위가 일어난 주체에서는 행위가 일어났을 때 행동에 필요한 정보와 타이밍만 알려주고 뭘 해야 할지는 각각 행동을 실행해야 할 주체에서 결정. Event: 로직 상에서 어떤 사건의 발생을 의미 Handler: 해당 Event를 받았을 때 처리하는 행동의 주체 Sender:해당 Event를 발송하는 객체 Event System의 장단점 장점 다른 Component 나 기능단위에서 결합성이 떨어지므로 의존성을 배제할 수 있고 분산시스템이 용이. 행위에 대한 액션을 추가 하고 싶을 때 행위를 수행하는 곳을 수정 없이 편하게 추가할 수 있다. 다른 Component의 정보를 알 필요가 없다. 단점 어..

카테고리 없음 2022.07.26

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 4주차 회고 <네트워크의 이해>

서버와 클라이언트 MOD는 다양한 통신 모델 중에서도 서버 - 클라이언트 모델을 사용하고 있다. 서버 : 다수의 클라이언트가 연결된 단일 컴퓨터, 또는 해당 컴퓨터에서 돌아가는 프로그램 클라이언트 : 게임을 플레이하는 유저들의 모바일이나 PC, 또는 해당 기기에서 개별적으로 돌아가는 프로그램 서버와 클라이언트의 관계 특정 클라이언트로부터 정보를 받은 서버는 클라이언트에게 다시 정보를 보내주거나, 혹은 전송한 내용을 게임 진행 상황에 업데이트시키고, 업데이트된 내용을 다시 모든 클라이언트에게 전송함으로써 게임을 이용하는 모든 유저가 동일한 상황이 될 수 있도록 맞춰준다. MOD에서는 게임의 전반적인 로직과 시스템을 서버에서 구현하고, 클라이언트는 유저의 입력을 받아 서버로 전달하거나, 게임 진행 상황을 내..

카테고리 없음 2022.07.25

[멋쟁이사자처럼 X 넥슨 MOD Suppoters Hackathon] 3주차 회고 <스크립트의 이해>

스크립트 에디터 오리엔테이션 스크립트 컴포넌트 추가 Workspace -> MyDesk -> 마우스 오른 클릭 -> Create Scripts -> Create Component 컴포넌트 생성 스크립트 에디터 실행 스크립트 작성 스크립트 컴포넌트가 실행될 때, "Hellow World"를 콘솔창에 출력. 작성한 스크립트 컴포넌트를 추가 Workspace -> DefaultPlayer -> Property -> Add Component -> 컴포넌트 클릭 콘솔 출력 결과 Lua 스크립트 문법 Lua 스크립트는 절차 지향(순차적인 구조)로 소스코드가 실행됨 log() : 콘솔창에 인자값을 출력 local : 변수 선언 키워드 ( local 변수명 = 초기화값 ) 반복문 for count = 1, 10, 1 ..

카테고리 없음 2022.07.21