일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MAC
- 언리얼엔진
- Replication
- 유스케이스
- dirty cow
- unity
- DSP
- animation
- 유니티
- Rr
- Unreal Engine
- ability task
- 언리얼 엔진
- gameplay ability system
- photon fusion2
- 운영체제
- Multiplay
- stride
- 메카님
- MLFQ
- gas
- Delegate
- ret2libc
- Race condition
- 게임개발
- 게임 개발
- Security
- DP
- boss monster
- CTF
- Today
- Total
목록언리얼 엔진 (49)
다양한 기록
네트워크 모드와 서버 타입스탠드얼론: 게임이 원격 클라이언트에 연결을 허용하지 않음클라이언트: 프록시만 보여줌리슨 서버: 게임이 서버 역할까지데디케이티드 서버: 로컬 플레이어는 없이 서버로 동작 서버의 초기화1. 스탠드얼론 상태스탠드얼론이나 서버는 게임 모드 액터를 소유함2. 플레이어 컨트롤러 0리슨 서버는 일단 자신도 게임에 참여해야 함-> 여기까지 하면 네트워크 기능을 켜고 게임 서비스를 시작하면 됨=> 스탠드얼론에서 리슨서버로 변경 3. 클라이언트의 접속 요청서버에는 플레이어 컨트롤러 1 생김클라이언트를 대표하는 플레이어 컨트롤러는 클라이언트에 복제되는데,클라이언트 내부에선 플레이어 컨트롤러 0 임 // Copyright Epic Games, Inc. All Rights Reserved.#pragm..
PublicIncludePaths에 폴더 이름 안넣어주면 같이 있는 폴더 아니면 인식 못한다이것 안넣어줘서 계속 include를 못하는 문제가 발생했는데,이전 프로젝트 솔루션에 있는 빌드 파일이랑 비교하니까 저거가 ChronoSpace에 없었다 이전 프로젝트에서 저거 넣을 때는 왜 넣는지 몰랐는데, 안넣으면 동일 폴더 아니면 인식 못해서 넣어주는 거였다5.4에서 작업하다 5.5 문제인가 해서 찾아봤는데, 다른 폴더 코드 인식 못하는 정도의 버그이면 진작에 고쳐졌을 것 같아서문제가 있을법한 부분을 찾아보다 찾았다
https://github.com/Lagooneng/UnrealMatchMaking GitHub - Lagooneng/UnrealMatchMaking: Unreal Engine OSS Steam MatchMakingUnreal Engine OSS Steam MatchMaking. Contribute to Lagooneng/UnrealMatchMaking development by creating an account on GitHub.github.com주의할 점: Steamworks 최신 버전(1.61) 작동 안함제대로 작동 안해서 찾아보니 이 문제이건 스팀 친구 초대 안됨 https://github.com/rohyunsang/ChronoSpace GitHub - rohyunsang/ChronoSpaceC..
멀티플레이어 설정실행 옵션에서 리슨 서버로 설정Allow late joining 활성화* 저거 없으면 클라이언트 추가하는 기어 버튼 안나옴 추가 시 클라이언트 하나 더 생김 고급 옵션에서 Always On Top 하면 항상 상위의 윈도우로 동작 언리얼 네트워크 멀티플레이어 프레임워크어플리케이션: 게임인스턴스, 월드, 네트워크 모드접속 플로우: 로그인, 커넥션, 오너십, 역할액터 리플리케이션: 연관성, 우선권, 빈도RPC: 신뢰성, 검증움직임 리플리케이션: 캐릭터, 물리프로퍼티 리플리케이션: 상태, 최적화 * 언리얼엔진에서 멀티플레이용으로 만든 게임은 싱글로 그대로 작동함 * 언리얼 엔진은 클라이언트 서버 모델 사용네트워크의 한 대의 컴퓨터가 서버 역할 동작시키는 프로그램은 게임 인스턴스라고 하는 클래스가..
게임 데이터에 해당함캐릭터에 설정할 어트리뷰트 목록기본 어트리뷰트최대값 어트리뷰트체력 (Health)최대 체력 (MaxHealth)일반 공격 길이 (AttackRange)최대 일반 공격 길이 (MaxAttackRange)일반 공격 반경 (AttackRadius)최대 일반 공격 반경 (MaxAttackRadius)일반 공격력 (AttackRate)최대 공격력 (MaxAttackRate)어트리뷰트셋 생성 * 어트리뷰트 세트(Attribute Set)- 단일 어트리뷰트 데이터인 GameplayAttributeData의 묶음- GameplayAttributeData는 하나의 값이 아닌 두가지 값을 구성되어 있음 - BaseValue : 기본 값. 영구히 고정되는 고정 스텟값을 관리하는데 사용 - Cu..
일단 애니메이션 노티파이 하나 생성 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Animation/AnimNotifies/AnimNotify.h"#include "GameplayTagContainer.h"#include "AnimNotify_GASAttackHitCheck.generated.h"/** * */UCLASS()class ARENABATTLEGAS_API UAnimNotify_GASAttackHitCheck : public UAnimNotify{ GENERATED_BODY() public: UAnimNotify_GAS..
헤더에서 콤보에서 쓸 함수 및 변수 선언void UABGA_Attack::CheckComboInput(){ ComboTimerHandle.Invalidate(); if ( HasNextComboInput ) { MontageJumpToSection(GetNextSection()); StartComboTimer(); HasNextComboInput = false; }}다른 건 별 차이 없고, MontageJumpToSection 이라는 걸 지원해서 AnimInstance 가져올 필요 없음 콤보 액션 잘 됨 상태를 가지는 점프 구현* 어빌리티 태스크(AT)의 제작 규칙- AT는 UAbilityTask 클래스를 상속받아 제작- AT 인스턴스를 생성해 반환하는 static 함수를 선언해 구현- AT가 ..
플레이어 캐릭터의 기획- 기존 플레이어 캐릭터 상속- 입력에 따라 정해진 게임플레이 어빌리티가 발동되도록 설정- 점프 GA : 스페이스바를 누르면 점프 어빌리티가 발동- 공격 GA : 마우스 왼쪽 클릭 시 공격 어빌리티가 발동 일단 블루프린트 게임모드 하나 만들고 컨트롤러 설정변경 플레이어 캐릭터의 ASC 설정- 분수대 액터처럼 플레이어 캐릭터에 설정하는 것도 가능- 하지만 네트워크 멀티플레이 감안 시, 서버->클라이언트 배포되는 액터가 더 적합함- 주기적으로 플레이어 정보를 배포하는 PlayerState 액터가 적합- Owner를 PlayerState로 설정, Avatar로 Character로 설정하는 것이 일반적인 방법 ASC 설정은 PossessedBy에서 해주면 됨그리고 게임 모드에서 Player..