캐릭터에 애니메이션 블루프린트 연결하기 AnimInstance 클래스를 상속받는 PlayerAnim 클래스를 생성한다. NativeUpdateAnimation 함수에서 캐릭터의 속력, 방향 값을 계속 업데이트해준다. #pragma once #include "CoreMinimal.h" #include "Animation/AnimInstance.h" #include "PlayerAnim.generated.h" UCLASS() class MYRPG_API UPlayerAnim : public UAnimInstance { GENERATED_BODY() public: virtual void NativeUpdateAnimation(float DeltaSeconds) override; public: UPROPERTY..
사용자 입력 값 받기 축 매핑하기 마우스를 위로 올렸을 때, 카메라가 위로 가면 아래를 비추게 된다. 보통 게임은 위를 보기 위해 마우스를 위로 올린다. 이러한 이유로 값을 반전해주기 위해 LookUp을 -1로 지정했다. 입력 이벤트에 함수 바인딩하기 Character 클래스에서 SetupPlayerInputComponent() 를 오버라이딩해서 구현했다. public: virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; public: UFUNCTION() void LookUp(float AxisValue); UFUNCTION() void Turn(float AxisValue); UFUNC..
구현을 시작해봅시다!! 기본 맵 + 캐릭터 에셋으로 시작했습니다. 캐릭터 기본 세팅 구현하기 Character를 상속받는 클래스 생성하기 SpringArm, Camera 컴포넌트를 추가하고, Mesh를 변경해준다. #pragma once #include "CoreMinimal.h" #include "GameFramework/Character.h" #include "Player_Base.generated.h" UCLASS() class MYRPG_API APlayer_Base : public ACharacter { GENERATED_BODY() public: APlayer_Base(); public: UPROPERTY(VisibleAnywhere) class USpringArmComponent* Sprin..
참고 문서 책 '이득우의 언리얼 C++ 게임 개발의 정석' Chapter 15 게임 데이터 저장과 로딩 언리얼은 게임의 데이터를 저장하고 불러들이는 기능을 제공해준다. 이 기능을 사용하면 각 플랫폼별로 알맞은 최적의 장소에 데이터가 저장된다. 언리얼 에디터에서 게임 데이터를 저장하는 경우 프로젝트의 Saved 폴더에 있는 SaveGames 폴더에 저장된다. 구현해보기 SaveGame을 상속받아 ABSaveGame 클래스를 생성한다. #pragma once #include "ArenaBattle.h" #include "GameFramework/SaveGame.h" #include "ABSaveGame.generated.h" UCLASS() class ARENABATTLE_API UABSaveGame : p..
한 것들 프로젝트 생성하기 Unreal 4.26.1 버전을 사용했다. 깃 허브 연동하기 Git을 비교적 간단하게 사용할 수 있는 Github Desktop을 사용했다. https://github.com/mingyu243/MyRPG mingyu243/MyRPG Unreal4로 제작해보는 RPG입니다. Contribute to mingyu243/MyRPG development by creating an account on GitHub. github.com 깃허브에 올릴 때 Commit->Push를 한다. 깃허브에서 처음으로 다운받을 때 Clone Repository를 한다. 비주얼스튜디오 파일인 .sln 파일은 올라가지 않았으므로, Clone Repository를 한 후에 따로 만들어주어야 한다. 깃허브에서..
데디케이트 서버 개념 호스트를 담당하는 서버 + 여러 명의 클라이언트 설명 계속 24시간 하루종일 돌아가야하는 게임일 경우, 데디케이트 서버를 사용한다. 참고 언리얼에서 데디케이트 서버를 사용하려면, 언리얼 엔진 소스 코드를 받아서 빌드해야 한다고 들었다. 리슨 서버 개념 클라이언트 중 한명이 호스트를 담당 (서버의 역할을 가짐.) + 여러 명의 클라이언트 설명 방을 만들어서 시작하는 게임일 경우, 리슨 서버를 사용하면 될 것 같다. 참고 아마도 서든어택이 리슨 서버 방식인 것 같다. 서든어택은 호스트로 지정된 플레이어가 방을 나가면 갑자기 렉이 걸리면서 게임이 리셋되는 느낌을 준다. 단점으로는 호스트가 렉이 걸리면, 다 같이 렉이 걸릴 수도..? 보안에 취약하다.
여기서 했던 코드를 모듈로 만들어서 사용할 것이다. 2021.05.16 - [기타/파이썬] - [Python] csv 파일 만들고, 안에 내용 쓰기 모듈 만들기 기능들을 함수로 만들어놓았다. open_csv : 데이터를 리스트로 반환. write_csv : 파일을 만들고, 데이터를 리스트로 받아서 파일에 씀. csvmanage.py import csv def open_csv(file_name): file_name += '.csv' with open(file_name, 'r') as f: data_list = csv.reader(f) return list(data_list) def write_csv(file_name, data_list): file_name += '.csv' with open(file_na..
친구 과제 도와주다가 기록함. import os import shutil # py파일이 있는 곳에 실습할 폴더 생성 # os.mkdir('실습 1') # 이미 폴더가 존재하면 오류남. os.makedirs('실습 1', exist_ok=True) # 폴더가 없으면 생성. 있어도 오류 없음. os.chdir('실습 1') # 실습 폴더로 이동 # 파일 생성 open('test1.txt', 'w') open('test2.txt', 'w') open('test3.pptx', 'w') open('test4.csv', 'w') # 폴더 내의 모든 파일 리스트 출력 file_list = os.listdir(); print(file_list) # 폴더 내의 .txt 파일 리스트 출력 file_list_txt = [f..