일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 메카님
- ability task
- stride
- dirty cow
- Delegate
- 유스케이스
- Multiplay
- Security
- boss monster
- Rr
- photon fusion2
- 언리얼엔진
- Race condition
- ret2libc
- MLFQ
- Replication
- 운영체제
- 게임개발
- DSP
- 언리얼 엔진
- Unreal Engine
- gas
- unity
- 유니티
- DP
- gameplay ability system
- CTF
- animation
- 게임 개발
- MAC
- Today
- Total
목록언리얼 엔진 (48)
다양한 기록
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bALR6F/btsLK8Ejw1D/Ygr9JFrwLkSKasuIPCznI0/img.png)
서버- 컴포넌트의 움직임 혹은 물리 상태 저장- ReplcatedMovement 프로퍼티 리플리케이션클라이언트- OnReq_ReplicatedMovement 호출- 움직임 조정 혹은 물리 상태를 기록- 클라이언트와 서버의 물리 상태를 동기화- 캐릭터의 추가적인 움직임 처리 캐릭터의 리플리케이션과 다른점액터의 리플리케이션은 RPC를 사용하는게 아니라 프로퍼티 리플리케이션을 사용 * Authority, SimulatedProxy, AutonomousProxy 이런 건 전부 Actor 단위임어떤 클라이언트가 AutonomousProxy이다 이런게 아니라 액터 하나의 역할을 의미함 [ReplicatedMovement]- 서버에서 SimulatedProxy로 보내는 움직임 정보를 기록한 멤버 변수- OnReq_R..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DNqHF/btsLIiVm3pA/Cj2F6nbTJuYUK1tm8Csck1/img.png)
캐릭터 움직임의 리플리케이션 플로우1. 클라이언트의 로컬 움직임 기록 - 현재 틱에서 입력 가속과 캐릭터의 움직임 기록- PerformMovement 실행 -> CharacterMovement에서 설정한 속성에 맞게 캐릭터가 이동됨- 특정 클래스에 움직임 저장- 서버 RPC를 호출해서 서버로 클라이언트의 움직임 정보를 보냄 2. 서버의 움직임 평가- MoveAutonomous 함수 실행해서 캐릭터를 자율적으로 이동시킴 - 서버 캐릭터와 클라이언트 캐릭터의 위치에 따라 ClientAdhustPosition RPC 호출해서 조정 가능 3. 캐릭터의 위치 조정 캐릭터 무브먼트 컴포넌트는 여러가지 이동 시스템 제공+ 네트워크 게임 플레이 통합 기능도 제공모두 기본적으로 리플리케이티드 되도록 빌드됨 TickCo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhoTXY/btsLE0G4ipA/AO9eQTFCcJEaIYCotDlU51/img.png)
엑셀 csv로 바꾸면 언리얼에서 임포트 가능같은 이름을 가지는 구조체 필요 액셀 데이터의 임포트- DataAsset과 유사하게 FTableRowBase를 상속받은 구조체를 선언- 액셀의 Name 컬럼을 제외한 컬럼과 동일하게 UPROPERTY 속성을 선언* 엑셀에 Name이라는게 존재는 해야 하는데, 이게 키값이 되기 때문 - 엑셀 데이터를 csv로 익스포트 한 후 언리얼 엔진에 임포트 #pragma once#include "CoreMinimal.h"#include "Engine/DataTable.h"#include "ABCharacterStat.generated.h"USTRUCT(BlueprintType)struct FABCharacterStat : public FTableRowBase{ GENERA..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/eErOYy/btsLC1UmS5Q/aKn1EPVat0sihr0pRbEkF1/img.png)
스테이지 기믹 기획- 스테이지는 플레이어와 NPC가 1:1로 겨루는 장소- 스테이지는 총 4개의 상태를 가지고 있으며 순서대로 진행 - READY : 플레이어의 입장을 처리하는 단계 - FIGRT : 플레이어와 NPC가 대전하는 단계 - REWARD : 플레이어가 보상을 선택하는 단계 - NEXT : 다음 스테이지로 이동을 처리하는 단계- 무한히 순환 ... 스테이지 준비 단계- 스테이지 중앙에 위치한 트리거 볼륨을 준비- 플레이어가 트리거 볼륨에 진입하면 대전 단계로 이동스테이지 대전 단계- 플레이어가 못나가게 스테이지의 모든 문을 닫고 대전할 NPC를 스폰- NPC가 없어지면 보상 단계로 이동스테이지 보상 선택 단계- 정해진 위치의 4개의 상자에서 아이템을 랜덤하게 생성- 상자 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ei5Qpw/btsLErxu4KW/1iE8sn3TQcfbmxGK098L80/img.png)
트리거 박스의 설정- 루트에 트리거 박스를 설정하고 자식에 메시 컴포넌트를 부착- 이펙트는 기본값으로 비활성화 상태로 두고 오버랩 이벤트 발생 시 발동되도록 설정- 이펙트 종료 시 액터가 제거되도록 설정 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "ABItemBox.generated.h"UCLASS()class ARENABATTLE_API AABItemBox : public AActor{ GENERATED_BODY() public: // Sets default values..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cmXOKI/btsLELPXEkg/iDAK9cIJH9xMNKWHOmsPp0/img.png)
액터 컴포넌트를 활용한 스탯의 설계- 액터 컴포넌트 = 액터에 부착할 수 있는 컴포넌트 중 트랜스폼이 없는 컴포넌트- 액터의 기능을 확장할 때 컴포넌트로 분리해 모듈화할 수 있음- 스탯 데이터를 담당하는 스탯 컴포넌트와 UI 위젯을 담당하는 UI 위젯 컴포넌트로 분리- 액터는 두 컴포넌트가 서로 통신하도록 중개하는 역할로 지정 언리얼 델리게이트를 활용한 발행 구독 모델의 구현- 푸시 형태의 알림을 구현하는데 적합한 디자인 패턴- 스탯 변경 시 델리게이트에 연결된 컴포넌트에 알림을 보내 데이터를 갱신- 스탯 컴포넌트와 UI 컴포넌트 사이에 느슨한 결합 생성=> 위젯 컴포넌트가 구독하고 델리케이트가 발행액터 컴포넌트 만들기 HP 바 위젯 생성 일단 패널에서 버티컬 박스 추가자식으로 들어간 요소들이 세로로 차..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bp7Ahs/btsLDPenoyS/hlqQcG76LVXIKa75U8j5k1/img.png)
캐릭터 액션의 충돌 판정- 월드가 제공하는 충돌 판정 서비스를 사용- 월드는 크게 세 가지의 충돌 판정 서비스를 제공함 - LineTrace : 지정한 방향으로 선을 투사 - Sweep : 지정한 방향으로 도형을 투사 - Overlap : 지정한 영역에 큰 범위의 도형을 설정해서 해당 볼륨 영역과 물체가 충돌하는지 검사 - 월드 내 배치된 충돌체와 충돌하는지 파악하고 충돌한 액터 정보를 얻을 수 있음 트레이스 채널과 충돌 프로필 생성- 액션 판정을 위한 트레이스 채널의 생성 : ABAction, 기본 반응은 무시- 캐릭터 캡슐용 프로필 : ABAction 트레이스 채널에 반응, 오브젝트 타입은 Pawn- 스켈레탈 메시용 프로필 : 랙돌 구현을 위해 주로 활용됨- 기믹 트리거용 프로필 : ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/carAM4/btsLEOlrINe/bQEV3qieM9RQkHvK8FU1Fk/img.png)
애니메이션 몽타주- 몽타주(Montage) : 이미지 일부를 잘라내 한 화면에서 합성하는 회화 기법- 애니메이션 클립을 잘라내고 합성한 후 이를 재생하는 애니메이션 기능- 애니메이션 클립을 모아둔 다수의 섹션으로 구성- 섹션은 연동 가능, 스크립트를 통해 원하는 섹션으로 건너뛸 수 있음 애니메이션 집어넣기 섹션 만들기옆에 화살표 있으면 두 섹션이 연결되어 있다는 의미임개별적으로 관리하고 싶으면 링크 제거하면 됨수동으로 연결하려면 AnimInstance 함수 사용 1. 공격 입력이 들어올 때 첫번째 몽타주 섹션이 재생되도록 하기인풋 액션 만들고 매핑 컨텍스트에 추가해줌 (숄더랑 쿼터 둘 다) 캐릭터 플레이어에서 액션이랑 함수 추가액션은 레퍼런스 찾아서 넣어주면 됨 베이스에서 ComboActionMontag..