| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- UE_5
- 원카페#무인카페#카페추천#카페맛집
- 순환 리스트
- CS50
- 오늘밤 세계에서 이 사랑이 사라진다 해도 #독후감 #오열
- c++ 베이직
- Toon Shading
- topdownmove
- STL
- Gas
- CS
- 언리얼
- Unreal
- 브론즈
- Console
- 백준
- 헤더 경로
- 툰쉐이딩
- 메테리얼
- C++
- 언리얼 엔진5 #언리얼 클라이언트 프로그래밍
- 언리얼엔진5 #언리얼 클라이언트 프로그래밍
- 폭설 #미친 날씨
- A* Algorithm
- build.cs
- 네트워크 기초
- leetcode
- 코드리뷰
- Module
- Harvard
- Today
- Total
목록전체 글 (113)
WN_인생기록
Behavior Tree Selector - 자식 노드들을 탐색하면서 true인 것을 반환하는 기능, 전부 false 라면 false 반환Sequence - 자식 노드들을 탐색하면서 모든 노드들이 true면 true 반환하고, 하나라도 false 이면 false 반환Simple Parallel - Primary child 와 Secondary child로 구분되어 두개의 자식 노드를 동시에 실행하는데, Primary가 좀 더 주가 되어서 전체 반환의 기준이 되는 노드. Decorator를 통해서 상위 노드들의 Branch를 생성할 수 있다. 그러기 위해서는 Blackboard 에서 Key 값을 정해줘야 하고, 해당 Key에 객체를 바인딩도 해야한다. 이후에는 해당 Key 값을 통해 언제 중단할지, ..
2D 게임 제작할때 생기는 간단한 문제인데, 언리얼은 3D를 기준으로 RealTime 렌더링 된다. 그래서 2D를 제작할때 충돌이 일어나면, y축이든 ,x 축으로든 밀려나는 현상이 있게 된다 .그것을 고정하기 위해서는 Planar Movement에서 Constrain to Plane을 true로 바꿔주면 되는데 이는, 객체를 특정 평면에 제한하여 그 평면 안에서만 움직이거나 변형하는 기능이다. 그래서 이걸 제한해주고, 원하는 축의 방향으로 제한을 해주면 (2D 게임이니까 y축을 제한해주면 앞이나 뒤로 축이 바뀔일이 없다) 다른 축으로 밀려나지 않게 설정해주면 x축으로만 밀리게 할 수 있다.
AbilitySystemComponent를 상속받는 Player State에 대한 세팅을 진행할때, ReplicationMode 라는게 있다. ARPGPlayerState::ARPGPlayerState(){ AbilitySystemComponent = CreateDefaultSubobject(TEXT("AbilitySystemComponent")); AbilitySystemComponent->SetIsReplicated(true); AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed); AttributeSet = CreateDefaultSubobject(TEXT("ArributeSetComponent")); ..
이제 본격적으로 네트워크에 대해서 생각해보자. Net Mode 라고 StandAloneDedicatedServerListenServerClient 가 있다. 이걸 나누는 기준은 3가지이며, 1. 게임을 플레이 할 수 있는가?2. 권한을 가지고 있는가?3. 다른 플레이어가 클라로 참여하여 게임을 플레이 할 수 있는가? 라는 질문으로 모드를 나눌 수 있다. StandAlone 은 게임 인스턴스가 로컬 플레이어를 가지고 있다. 서버에 대한 권한이 있지만 다른 플레이어가 클라로 참가할 수는 없다. DedicatedServer는 게임 인스턴스가 있지만, 로컬플레이어가 없다. 서버 전용 콘솔 응용 프로그램으로 작동하는 즉) 서버 그 자체가 되는 것이다. 서버는 사운드, 그래픽, 사용자 입력같은 기능..
언리얼에는 멀티플레이 시스템이 존재한다.멀티플레이의 목적은 동일한 게임을 여러 사람이 함께 즐기는것이 목표인데, 개발자한테는 게임의 여러 인스턴스가 동시에 실행되는 것이 목표이다. 언리얼은 총 3가지의 인스턴스를 다루는데 - 싱글플레이- 특정 호스트가 연 세션에 참가하여 즐기는 멀티플레이 (호스트로 게임 참여)- 인터넷(서버)를 통해서 각자의 클라에서 데이터를 공유받아 즐기는 멀티플레이 (별도의 서버 존재, 호스트 게임 참여 X)(클라는 믿으면 안된다고 한다. 클라 믿는 순간 치트가 난무하는 현상이 일어난다고 한다.) 이렇게 3개를 다룬다. 중요한 점은 이렇게 원하는 멀티플레이 구성 방식에 따라 최적화 및 기능 구현등이 달라지는데 차차 알아가보자. 먼저, 바로 네트워크에 대해서 알아보기 보다는..
1인칭 카메라와 3인칭 카메라의 전환 기능을 중점적으로 개발하려다 캐릭터 세팅의 기본까지 원할하게 할 수 있도록 제작했다. Enhanced Input의 IMC와 IA의 세팅이 기본적으로 되어 있고, 걷기, 뛰기 설정이 가능하다. OnViewMode 의 키인 "2" 를 누르면 시점 변경이 가능하다. 카메라는 Mesh에 붙은 FP 카메라와 Capsule Component에 있는 SpringArm에 붙은 TP 카메라가 있고, FP는 Skeletal mesh의 head 소켓에 부착했다. 또한 키 바인딩 및 Speed 까지 조절이 가능하다. 프로토 타입을 위한 캐릭터 생성이나, 확장성을 고려한 캐릭터 모듈이다.
새로운 버전에 리타겟팅이 엄청 간편해졌다는 얘기를 듣고 바로 테스트 해보았다. 테스트할 애니메이션은 많지 않으므로, Lyra에 있는 애니메이션을 가져왔다. 먼저, 준비할 것들이 있다. 간단한 플러그인 들인데, Pose Search 는 Motion Matching을 사용하는데 필요한 API 이고, 애님 블루프린트에서 모션 매칭 기능을 사용할 노드(기능)을 생성해준다. 또한 Trajectroy는Motion Histroy를 통해 모션을 예측하는데 필요한 플러그인이다. 이 두개를 설치하고, Lyra에 있는 애니메이션을 가져온다. Idle과 Jog 정도만 가져와도 테스트할 애니메이션은 생성이 가능하다. 또한 ALS같은 프로젝트 에서도 가져와도 사용 가능하다. 데이터 베이스를 중심으로 모션이 연결되는것..
에셋들의 Rename 기능을 이용해서, Asset의 prefix를 수정해주는 모듈을 제작했다. 나이아가라, 데이터 테이블, IKRig, LevelSequence 등등 많은 에셋들의 Prefix를 약자로 줄였다. predefault 기능과 event run 이라는 기능으로 에디터(플러그인을 설치하고)가 켜지면 자동적으로 실행된다. 우측 버튼으로 메뉴버튼에 Scripted Assedt Action 이라는 곳을 누르면 Change prefix 라는 기능이 있다. 이를 통해 에셋들을 편하게 관리할 수 있다. 또한 template 기능을 써서 Print를 좀 더 간단하게 쓸 수 있도록 수정했다. templatestatic void Print(const T& Message, const FColor& Col..