본문 바로가기
AI/AI활용

[ChatGPT][Unity] 간단한 게임 만들어보기 (1)

by OhEasy 2023. 4. 4.
728x90
SMALL
 

[ChatGPT][연습] ChatGPT만 가지고 Unity 게임 만들어 보기

일단 엄청 오래걸려 만들어본 결과물 배배배뱀 - Google Play 앱 배배배뱀! 로그라이크 던전에서 몬스터를 처치하라! play.google.com 배배배뱀은 요즘 하고있는 게임이다. 사실 이전에 엄청 짧은 별거

525easy.tistory.com

이전에 ChatGPT만 가지고
간단한 것을 만들어 봤다.

ChatGPT는
서버가 한번 다운되고, GPT-4버전이 나옴에 따라

GPT-3.5로 바뀜

GPT-3 버전에서 GPT-3.5로 바뀌었다.

그래서 인기 없는 블로그지만

ChatGPT만 가지고 게임 처음부터 만들어 보기

라는 주제로 글을 써보면 어떨까 하는 생각이 들었다.

번역기도 깔았겠다.

 

[ChatGPT] ChatGPT 질문, 답변 자동 번역기

챗방이 어찌저찌 복구가 되서 다시 쓰기로 함 다시 쓰기로 한김에 다른 것을 적용해서 쓸까 하는데 https://www.promptgenie.ai/ 프롬프트 지니 프롬프트 지니는 사용자의 추가적인 동의 없이 사용자가

525easy.tistory.com

한번 해보기로 했다.

뤼튼, AskUp은 ChatGPT보다 답변에 제약이 많이 걸린 느낌이라 ChatGPT 사용

프롬프트 지니로 하면 한글로 질문해도 영어로 기록이 남는다.

처음부터 시작이기 때문에

" 혼자서 간단한 시스템의 게임을 만들고 싶은데 컨셉 5개만 추천해줘 "

라고 질문해보았다.

5개라고 제한을 건 이유는
AI는 명확한 질문일수록 명확하게 답하기 때문이다.
만약 명확하게 수량을 명시하지 않을 경우
대충 4개만 말하기도 한다.

5개 더달라

위와 같이 5개 더 알려달라는 식으로
총 15가지의 컨셉을 얻었다.

아케이드 스타일의 슈팅 게임 선택

15개 컨셉 중 아케이드 스타일의 슈팅 게임으로 컨셉을 선택 했다.

그 뒤 아래와 같이 질문을 해보았다.

총 7가지의 필요한 기능들을 말해주었다.

총 7개의 기능들을 알려주었는데,
목록은 다음과 같다.

1. 프로젝트 설정:
	Unity를 열고 새 2D 프로젝트를 만듭니다.
	새 장면을 만들고 여기에 카메라를 추가합니다.
	카메라 위치를 (0, 0, -10)으로 설정하여 장면의 중앙에 오도록 합니다.
2. 플레이어 만들기: 
	플레이어용 스프라이트를 추가하고 여기에 Rigidbody2D 구성 요소를 추가합니다. 
	중력 스케일을 0으로 설정하고 스크립트를 추가하여 플레이어의 움직임을 제어합니다. 
	화살표 키 또는 WASD 키를 사용하여 플레이어를 왼쪽, 오른쪽, 위, 아래로 이동할 수 있습니다.
3. 적 추가: 
	적의 스프라이트를 만들고 여기에 Rigidbody2D 구성 요소를 추가합니다. 
	중력 스케일을 0으로 설정하고 스크립트를 추가하여 적의 움직임을 제어합니다. 
	무작위 이동을 사용하거나 적이 따라갈 경로를 설정할 수 있습니다. 
	스폰 스크립트를 사용하여 일정한 간격으로 적을 인스턴스화합니다.
4. 사격 추가: 
	플레이어의 총알에 대한 스프라이트를 만들고 총알의 움직임을 제어하는 스크립트를 추가합니다. 
	플레이어가 스페이스바 키를 누르면 총알을 인스턴스화합니다. 
	총알과 적의 충돌을 확인하고 충돌하면 적을 파괴하는 스크립트를 추가하십시오.
5. 점수 추가: 
	게임에 점수 카운터를 추가하고 플레이어가 적을 파괴하면 증가합니다. 
	텍스트 구성 요소를 사용하여 화면에 점수를 표시합니다.
6. 파워업 추가: 
	파워업 스프라이트를 만들고 스크립트를 추가하여 동작을 제어합니다. 
	생성 스크립트를 사용하여 임의의 간격으로 파워업을 인스턴스화합니다. 
	플레이어가 파워업을 수집하면 추가 포인트, 추가 생명 또는 강화된 무기를 제공할 수 있습니다.
7. 오디오 추가: 
	게임에 음향 효과와 배경 음악을 추가하여 플레이어의 경험을 향상시킵니다

ChatGPT가 알려준 것은 PC 플랫폼의 조작이지만
기능 구현 후 모바일 환경으로 바꾸는 것까지 해볼 예정이다.

우선 1번부터 시작한다.

GPTTest라는 이름으로 신규 프로젝트 생성

유니티 허브에서 신규 2D 프로젝트를 생성한다.

신규 프로젝트 생성 시 기본으로 카메라가 생성 및 설정 되어있기 때문에
카메라 생성 및 카메라의 포지션 설정은 따로 하지 않아도 된다.

 

그 다음에는 플레이어를 만드는 것인데,
오브젝트 생성은 간단하다.

간단하다.

하이어라키에 마우스 우클릭 후 -> 2D 오브젝트 -> 스프라이트 -> 원하는 모양 선택

Rigidbody 2D 컴포넌트 추가는 아래와 같이 하면 된다.

이것도 간단하다.

생성한 스프라이트 오브젝트 선택 -> Add Component -> Rigidbod 2D 추가

 중력 설정은 추가 시킨 Rigidbody 2D 컴포넌트에서
Gravity Scale을 0으로 하면 된다.

중력 = 0

여기까지는 물어보지는 않았는데

과정을 좀 자세하게 알려준다.

물어봐도 자세히 알려준다.

그 다음은
W,A,S,D 로 이동을 하는 스크립트를 요청한다.

스크립트를 받았다.

코드와 함께 코드에 대한 설명도 제공해준다.

좀 자세하다.

여기부터는 주의해야 할 것이 있는데,
새로운 기능들을 요청할 경우
새로운 클래스로 만들어서 준다는 것이다.
그런 것을 방지하기 위해
기존 코드들을 첨부해서 기능을 추가하는 쪽으로 질문을 하도록 하자.

적의 오브젝트는 위에 플레이어를 만들었던 것과 동일하게 생성하고,
적이 플레이어를 추적하는 코드를 요청해보자.

역시 코드와 설명이 온다.

여기부터는 유니티를 하나도 모르는 사람일 경우
추가 질문이 많이 발생할 것 같다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyMovement : MonoBehaviour
{
    public float speed = 3f;

    private Transform player;

    void Start()
    {
    	// "Player" 라는 태그를 가진 오브젝트를 찾는 코드임
        player = GameObject.FindGameObjectWithTag("Player").transform;
    }

    void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, player.position, speed * Time.deltaTime);
    }
}

ChatGPT가 보내준 코드를 사용하기 위해서는 추가 작업이 필요하기 때문인데

위의 코드를 사용하기 위해서는
플레이어 오브젝트에 태그를 할당해야 하기 때문이다.

태그 할당 방법은

캡슐이 플레이어임

플레이어 오브젝트 선택 후 인스펙터 창 위쪽에 Tag를 Player로 설정해주면 된다.

그 외의 태그는 Add Tag를 눌러 새로 만들고 할당하면 된다.

따라온다.

따라하면 여기까지는 된다.

이제 적을 스폰 시키면 3번 적 추가까지 완료가 된다.

역시 빠르게 답변이 온다.

설명으로

빈 게임 오브젝트에 할당하라고 한다.

위와 같이 왔다.

빈 오브젝트에 할당하면 생성 범위가 어디까지인지 알 수 없기 때문에
추가 질문을 한다.

기즈모 그려주는걸 알려준다.

위에까지 따라하면

생성 범위를 확인할 수 있다.

이런식으로 생성 범위를 확인할 수 있다.

프리펩 생성은 하이어라키에 있는 오브젝트를
프로젝트 탭으로 드래그 해서 만들 수 있으니 설명은 생략한다.

여기까지 따라하면

생성이 되고 따라온다.

이렇게 생성이 되고 따라오는 적을 만들 수 있다.

728x90
LIST

댓글