분류 전체보기 280

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (11) WidgetController의 설계와 HUD 재구성

이번 포스트에서는 본격적인 MVC 패턴을 사용하여 Controller의 역할을 수행하는 WidgetController를 설계하겠습니다. 1) MVC 패턴에서 Controller의 역할을 수행하는 AAuraWidgetControllerController는 Model(=데이터)과 View(=UI)를 왕복하며 움직여야 합니다.따라서 양쪽으로부터 접근이 가능해야 하므로 다음과 같이 코드를 재구성하였습니다.// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "UObject/NoExportTypes.h"#include "AuraWidgetContro..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (10) Overlay Widget과 HUD

이번에는 기존에 만든 Wiget 블루 프린트를 상속받아 체력과 마나를 나타내는 위젯을 만들고그 위젯을 Overlay Widget에 담고 최종적으로는 HUD를 통해 화면에 연출하겠습니다.  위와 같이 기존의 Widget 블루 프린트에서 2개의 자식 WBP를 만들었습니다.이제 이 2개의 위젯을 배치한 Overlay Widget으로 가보겠습니다.  WBP_Overlay는 기존에 만든 WBP들과는 다르게 Canvas Panel을 사용합니다.Canvas Panel은 기존에 사용하던 Box에 비해서는 사용비용이 비싸지만보여지는 시야 전체를 표현할 때는 편리하게 사용이 가능합니다. 이제 이 WBP_Overlay를 화면에 표시하기 위한 HUD 클래스를 만들겠습니다.1) Head Up Display를 표현하는 AuraH..

튜플

이번 포스트에서는 파이썬의 자료 구조중에서 튜플에 대해 알아보겠습니다.튜플은 흔히 알고 있는 자료구조와는 다르게 오직 읽기만 가능한 자료구조입니다.이런 튜플을 사용하는 이유는 메모리를 효율적으로 사용할 수 있고, 데이터의 손실이 없기 때문입니다. 1) 튜플의 사용튜플은 다음과 같이 사용할 수 있습니다.튜플이름 = (데이터1, 데이터2, ...) 또는 다음과 같이 괄호를 생략하는 것도 가능합니다.튜플이름 = 데이터1, 데이터2, ... 또한 튜플은 리스트와 같이 순서가 있는 자료구조이므로 리스트로 변환시키는 것도 가능합니다.단, 이 경우에 튜플로서의 장점은 사라지게 됩니다.리스트이름 = list(튜플이름) 반대의 경우로, 리스트를 튜플로 변환시키는 것도 가능합니다.마찬가지로 이 경우에 리스트로서의 장점은 ..

Python 2024.11.24

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (9) UI를 설계하고 부모 체력 UI 만들기

이번 포스트에서는 사용자에게 데이터를 보여주고 사용자로부터 데이터를 입력받는 UI를 만들겠습니다.프로젝트에서 UI는 MVC 패턴을 사용하여 만들겠습니다.MVC 패턴은 Model, View, Controller의 3가지로 구성됩니다.각각 수행하는 역할에 차이가 있습니다.Model은 데이터를 다루는 쪽을 의미합니다. 프로젝트에서는 Attribute Set을 의미합니다.View는 보여지는 쪽을 의미합니다. 프로젝트에서는 UI를 의미합니다.Controller는 Model의 정보를 View로 전달하거나 View의 정보를 Model에 전달합니다. 따라서 이를 위해 View와 Controller 역할을 수행하는 클래스를 만들겠습니다.언리얼에서 UI 역할을 하는 Widget들은 UUserWidger 클래스에서 상속되므..

파이썬의 리스트

이번 포스트에서는 파이썬에서 리스트란 무엇인지와 이를 다루는 방법을 알아보겠습니다.파이썬에서 리스트는 다른 언어의 배열과 같은 역할을 수행합니다.이때 자료형에서 자유롭다는 파이썬의 특징이 드러나는데,리스트에 숫자형이든 문자형이든 불리안형이든 원하는 자료형의 데이터를 전부 집어넣을 수 있습니다.또한 다른 언어에서 배열의 인덱스를 접근하는 방법 역시 동일하게 사용이 가능합니다. 파이썬에서 리스트는 다음과 같이 만들 수 있습니다.리스트이름 = [데이터1, 데이터2, 데이터3, ...] 또한 공백 상태의 리스트를 만들어 나중에 데이터를 추가할 수도 있는데,공백 상태의 리스트는 다음과 같이 만들 수 있습니다.리스트이름 = [] 1) 리스트의 데이터 조작 함수리스트에서 데이터를 조작하는 함수들은 다음과 같습니다.1..

Python 2024.11.23

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (8) Attribute Set을 만들고 적용하기

이번 포스트에서는 본격적인 GE를 도입하기 이전에 Attribute를 건드려보겠습니다.Actor 클래스를 하나 추가하여 기존에 만든 Attribute Set의 Attribute 중 하나인 Health를 변경하겠습니다.해당 클래스의 코드는 다음과 같습니다. 1) GE 설계 이전에 Attribute를 변경할 AAuraEffectActor#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "AuraEffectActor.generated.h"class USphereComponent;UCLASS()class AURA_API AAuraEffectActor : public AActor{ GENERATED_BODY() public: ..

collections 라이브러리의 Counter 메소드

이번 포스트에서는 collections 라이브러리의 메소드 중에서 Counter 메소드를 사용하는 법을 알아보겠습니다.Counter 메소드는 리스트나 문자열과 같은 자료형의 요소에서값이 같은 요소가 몇 개인지 확인하는 용도로 사용합니다. Counter 메소드의 연산 결과는 기본적으로 Key와 Value의 쌍으로 이뤄진 dictionary이므로이를 통한 연산도 가능합니다.이것을 예제를 통해 알아보겠습니다. 1) Counter 메소드 예제import reimport collectionstext = "1. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세 2. 남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세 무궁..

Python 2024.11.22

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (7) Attribute Set을 만들고 적용하기

이번 포스트에서는 Attribute Set을 만들고 한번 적용해보겠습니다.Attribute Set은 GAS에서 사용할 여러 데이터들을 담아놓은 클래스로 ASC로 접근이 가능합니다.기본적으로 하나 이상의 AS를 만들 수 있지만 불필요한 용량의 문제가 발생합니다.그러므로 일반적으로는 하나의 Attribute Set에 모든 Attribute들을 담아 관리합니다.프로젝트에서도 위와 같은 방법으로 진행하도록 하겠습니다.Attribute에 담겨진 Attribute들은 실수이며 FGameplayAttributeData의 자료형을 가집니다.Attribute를 코드로 인위적으로 설정할 수 있지만대부분의 경우 Gameplay Effect를 통해 설정하는 것이 바람직합니다.GE를 사용하여 값을 변동하는 경우 디버깅이 쉽고 ..

re 라이브러리

이번 포스트에서는 파이썬에서 사용할 수 있는 정규표현식 라이브러리인re 라이브러리에 대해서 알아보겠습니다. 1) 정규표현식이란?정규표현식은 영어로 regualr expressions를 말하는데 복잡한 문자열을 처리할 때 사용합니다.파이썬 외에도 다릉 언어에서도 사용하며 문자열을 처리해야 하는 곳에서 다양하게 활용가능합니다. 2) re 라이브러리 사용예제이제 re 라이브러리의 사용예제를 알아보겠습니다.import retext = "1. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세 2. 남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세3. 가을 하늘..

Python 2024.11.21

txtwrap 라이브러리

이번 포스트에서는 파이썬의 라이브러리 중에서 txtwrap 라이브러리에 대해 알아보겠습니다.txtwrap 라이브러리는 문자열을 보기 좋은 형태로 정렬하거나 줄바꿈하는데 사용할 수 있습니다. 대표적인 함수로 shorten(), wrap(), fill() 등이 있는데각각 원하는 길이에 맞게 길이 줄이기, 문장 자르기, 문장 줄바꿈을 수행합니다. 이제 예제를 한번 확인해보겠습니다.1) 예제import textwraptext = "1. 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세 2. 남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세3. 가을 하늘 공활한..

Python 2024.11.20