본문 바로가기
디지털노마드

[챗GPT 활용성 비교2] GPT-4 vs. GPT-4o: 두 AI에게 동일한 질문하기

by 인텔리노마드라이프 2024. 5. 16.
728x90

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.

오늘은 GPT-4, GPT-4o: 두 AI에게 동일한 질문을 주고 어느 쪽이 원하는 답변을 하는지를 살펴봐요. 

[오늘의 목표] GPT-4 vs. GPT-4o: 두 AI에게 동일한 질문하기
1. 동일한 질문을 두 AI에게 해볼께요.
2. 누가 원하는 답을 제시했을까요?

 

 ChatGPT 답변 내용 중 제가 별도로 표시한 파란색 내용을 기준으로 읽으시면 좀 더 이해가 쉽게 될거예요.

 

GPT-4 와 GPT-4o에게 동일한 질문하기 

두 AI 에게 다음과 같은 질문을 해볼께요. 

Unity 게임에 사용할 타일맵을 아래 구성으로 만들고 싶어.

- 타일맵을 구성할 타일은 바닥과 나무를 사용할거야
- 플레이어는 바닥과는 충돌하는데 나무는 충돌하지 않게 만들고 싶어

그리고 타일맵은 하나로 만들고 싶어 자세하게 위 내용을 구현하는 방법을 자세히 알려줘

 

원하는 답변은 아래 그림과 같아요.

 

[타일 속성에서 Collider Type 속성 변경]

 

GPT-4o에게 먼저 질문해볼께요.

GPT-4o에게 물어봤어요.

[답변]

스트립트를 사용하지 않고 하나의 타일맵에서 바닥 타일과 나무 타일의 충돌을 다르게 설정하려면 레이어와 태그를 활용한 방법을 사용할 수 있습니다. 이 방법을 통해 Unity의 기본 제공 기능만으로 원하는 충돌 설정을 구현할 수 있습니다.

1. Unity 프로젝트 설정

  1. 새 프로젝트 생성:
    • Unity를 실행하고 새 2D 프로젝트를 생성합니다.

2. 타일맵 설정

  1. 타일맵 생성:
    • Hierarchy 창에서 Create > 2D Object > Tilemap > Rectangular를 선택합니다.
    • Tilemap과 Grid 객체가 생성됩니다. Tilemap 객체의 이름을 "Level"로 변경합니다.
  2. 타일 팔레트 생성:
    • Window > 2D > Tile Palette를 선택하여 타일 팔레트를 엽니다.
    • 새로운 팔레트를 생성하고, 원하는 위치에 저장합니다.
  3. 타일 이미지 임포트:
    • 바닥과 나무 타일 이미지를 프로젝트 폴더에 임포트합니다. (드래그 앤 드롭 또는 Assets > Import New Asset 선택)
    • 임포트한 이미지의 Texture Type을 Sprite로 설정하고 Sprite Mode를 Multiple로 변경합니다.
    • Sprite Editor에서 이미지를 적절하게 분할합니다.
  4. 타일 생성:
    • 분할한 스프라이트를 타일 팔레트 창으로 드래그 앤 드롭하여 타일을 만듭니다.

3. 타일맵에 타일 배치

  1. 타일 배치:
    • Tilemap을 선택한 후, Tile Palette 창에서 바닥과 나무 타일을 선택하여 Tilemap에 원하는 대로 배치합니다.

4. 타일 충돌 설정

  1. 타일맵 충돌 설정:
    • Hierarchy 창에서 Tilemap 객체를 선택하고, Inspector 창에서 Add Component를 클릭하여 Tilemap Collider 2D를 추가합니다.
    • Composite Collider 2D도 추가합니다. Tilemap Collider 2D의 Used By Composite 옵션을 체크합니다.
    • RigidBody 2D를 추가하고 Body Type을 Static으로 설정합니다.
  2. 타일 오브젝트 생성 및 레이어 설정:
    • 각 타일에 대해 개별 오브젝트를 생성하고 레이어를 설정합니다. (이 작업은 다소 수동적이며 번거로울 수 있지만, 스크립트를 사용하지 않는 방법으로는 효과적입니다.)
    • 바닥 타일:
      • Hierarchy 창에서 Create > 2D Object > Sprite를 선택합니다.
      • 생성된 스프라이트 오브젝트에 바닥 타일 이미지를 설정합니다.
      • Inspector 창에서 Add Component를 클릭하여 Box Collider 2D를 추가합니다.
      • 레이어를 "Ground"로 설정합니다.
      • 이 오브젝트를 복사하여 모든 바닥 타일 위치에 배치합니다.
    • 나무 타일:
      • Hierarchy 창에서 Create > 2D Object > Sprite를 선택합니다.
      • 생성된 스프라이트 오브젝트에 나무 타일 이미지를 설정합니다.
      • Inspector 창에서 Box Collider 2D를 제거합니다 (나무 타일은 충돌이 필요 없으므로).
      • 레이어를 "Tree"로 설정합니다.
      • 이 오브젝트를 복사하여 모든 나무 타일 위치에 배치합니다.

5. 플레이어 설정

  1. 플레이어 생성:
    • 간단한 플레이어 오브젝트를 생성합니다. (Create > 2D Object > Sprite)
    • 플레이어 스프라이트를 설정합니다.
  2. 플레이어 충돌 설정:
    • 플레이어 오브젝트에 Box Collider 2D 또는 Circle Collider 2D를 추가합니다.
    • RigidBody 2D를 추가하고 Body Type을 Dynamic으로 설정합니다.
    • 플레이어의 레이어를 "Player"로 설정합니다.

6. 레이어 충돌 설정

  1. 레이어 충돌 설정:
    • Edit > Project Settings > Physics 2D로 이동합니다.
    • Layer Collision Matrix에서 다음과 같이 설정합니다:
      • Player와 Ground의 충돌을 체크합니다.
      • Player와 Tree의 충돌을 체크 해제합니다.

7. 테스트 및 조정

모든 설정이 완료되면, 플레이어가 바닥 타일과 충돌하지만 나무 타일은 통과하는지 확인합니다. 필요한 경우 타일 배치 및 충돌 설정을 조정합니다.

이렇게 하면 스크립트를 사용하지 않고 하나의 타일맵을 사용하면서도 바닥 타일과 나무 타일의 충돌을 다르게 설정할 수 있습니다. 다소 수동적인 작업이 필요하지만, Unity의 기본 제공 기능만으로 원하는 결과를 얻을 수 있습니다.

 

3번의 추가 질문을 한 후 위 3번째 답변을 얻었지만 

원하는 답변은 나오지 않았어요. 그리고 알려준 방식으로 해도 되는지도 좀 의문스러웠어요.

GPT-4에게 질문해볼께요.

GPT-4에게 동일한 질문을 했어요.

[답변]

Unity에서 같은 타일맵에 위치한 다른 타입의 타일들에 대해 충돌 처리를 다르게 하고 싶다면, Tilemap Collider 2DComposite Collider 2D를 사용하여 구현할 수 있습니다. 이 방법을 통해 동일한 타일맵 내에서도 타일별로 충돌 동작을 다르게 설정할 수 있습니다.

단계별 설명

1. 타일셋 준비 및 타일 생성

  • 바닥과 나무 타일 이미지를 사용하여 각각의 타일을 만듭니다. 이미 타일이 생성되어 있다면 이 단계는 건너뛰어도 좋습니다.

2. 타일맵 및 그리드 생성

  • Unity 에디터에서 Hierarchy > Right-click > 2D Object > Tilemap > Rectangular을 선택하여 타일맵과 그리드를 생성합니다.

3. 타일별 충돌 설정을 위한 컴포넌트 추가

  1. Tilemap 오브젝트에 Tilemap Collider 2D 컴포넌트를 추가합니다.
  2. 그 위에 Composite Collider 2D 컴포넌트를 추가하고, Composite Collider 2D'Used By Composite' 설정을 활성화합니다. Rigidbody 2D 컴포넌트도 추가하고, Body Type을 Static으로 설정합니다.
  3. 이 설정은 타일맵 내 모든 타일에 대해 단일 복합 충돌체를 생성합니다.

4. 타일별 충돌 규칙 설정

  • 타일별로 충돌 규칙을 설정하려면 TilemapTilemap Renderer 컴포넌트에서 ModeIndividual로 변경합니다.
  • 각 타일에 대해 스크립트를 작성하거나 타일 자산에 사용자 정의 프로퍼티를 설정하여 Collider Type을 변경할 수 있습니다. 예를 들어, 나무 타일은 Collider Type을 None으로 설정하여 충돌이 없게 할 수 있습니다.

5. 테스트 및 조정

  • Unity 에디터에서 게임을 실행하여 플레이어가 바닥 타일에는 충돌하고 나무 타일에는 충돌하지 않는지 확인합니다.

이 방법을 통해 동일한 타일맵 내에서도 특정 타일에 대해 충돌을 설정하거나 해제할 수 있으며, 복잡한 게임 환경에서도 효과적으로 충돌 처리를 다룰 수 있습니다.

 

2번 질문 후 원하는 답변이 나왔어요.

코딩 영역에서는 GPT-4가 더 적합할까요?

동일한 질문들을 GPT-4와 GPT-4o로 했을 때 이번에는 GPT-4가 원하는 답을 만들어냈어요.

프로그래밍을 할 때는 두 가지 AI 를 효과적으로 활용해야 할 것 같아요.

 

오늘은 GPT-4, GPT-4o: 두 AI에게 동일한 질문을 주고 어느 쪽이 원하는 답변을 하는지 살펴봤어요.

 

지금까지,

언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.

감사합니다.

 

 

728x90