사전 캠프 16일차

Kyu_·2025년 11월 24일

Unreal 사전캠프

목록 보기
15/17
post-thumbnail

언리얼

미니 프로젝트 : 나만의 인터렉티브 공간 만들기

이전 시간

1. 주제 소개

  • 미로 맵 만들기
  • 다양한 상호작용 만들어 보기
  • 처음부터 구현해보자

2. 구현 기능

  • 'E'키 상호작용 레버
  • 회전하는 문
  • 이동하는 문
  • 굴러떨어지는 바위
  • 공중 발판
  • 점프대
  • 게임 종료

구현 과정

  • 벽, 바닥, 레버등에 사용할 에셋들 구하기

  • 벽, 바닥 배치하기

  • 레버에서 E키 눌렀을때 벽 회전, 이동 구현

    • Move Component To라는 노드를 사용해 보았다.
    • 한 벽은 좌우로 이동, 한 벽은 앞뒤로 이동하기 때문에 블루프린트 재사용을 하기위해서 Move Offset이라는 변수를 만들어서 TargetRelative Location에 넣어주었고, 뷰포트에서 직접 변수값을 입력해서 이동범위를 지정하였다.
  • 특정 바닥과 닿았을때 돌이 생성되는 트리거 구현

    • BP_StoneTrapTrigger라는 블루프린트를 만들어서 Box Collision으로 상호작용 범위를 지정하였고, Arrow Component로 바위가 스폰되는 위치이자 방향을 표시해주었다.
    • 바위가 잘 굴러오기 위해 Sphere Collision으로 바위를 감싸고 Simulate Physics 적용, Physical Material이라는것을 생성해서 Friction(마찰력)을 0으로 설정해 주고 이것을 바위의 Phys Material Override에 오버라이드 시켰다.
  • 발판 만들기

  • 앞뒤로 이동하는 벽 생성

    • BP_MovingDoor 블루프린트 클래스로 만들었으며 MoveOffset 변수값에 다른값을 넣어주었다.
  • 점프대 생성

    • 캐릭터와 닿으면 launch character를 통해서 캐릭터를 슈퍼점프 시켜주어서 벽을 넘도록 구현하였다.
  • 게임 종료 위젯

    • 게임 종료를 하기전 알림을 뜨게하고 싶어서 User Interface의 Widget blueprint를 사용해 보았다.
    • Canvas pannel아래 text를 넣고 Anchors, position X,Y , alignment, Size to Content로 중앙정렬 시켜주었다.
  • 게임 종료

    • 게임 종료 트리거인 치즈와 닿게 되면 위젯을 띄워주고, 조작을 멈춘뒤 1.5초뒤에 게임 종료를 시켜주었다.

3. 결과물

  • 회전 문

  • 좌우 이동 문

  • 굴러오는 바위

  • 공중 발판

  • 앞뒤 이동 문

  • 슈퍼 점프 및 게임 종료

  • Top View

4. 소감

  • 레벨을 구성하는것이 생각보다 어렵다는것을 깨달았다.
  • 나에게 필요한 에셋들을 찾는것이 생각보다 오래걸려서 목표했던 시간보다 오버되었다.
  • 직접 설계/구현하는것이 재밌었고, 게임 종료나 마찰력같이 강의에서 아직 배우지않은 개념들을 찾아서 적용하는것이 재밌었다.

아쉬운점

  • 구현에 초점을 두어서 개념적으로 다 이해하지 못하고 넘어가는 부분이 많았다.
  • 소리나 이펙트, 떨어지는 발판은 구현하지 못하였다.

이모저모

  • spawn actor by class에서 class는 핀 연결이 아니라 선택을 해줘야함

  • 바위 문제들

    • 찌그러지는 바위

      • Spawn Transform을 구조체 핀 분할해서 location, rotation에만 넣어줌 arrow의 scale을 상속받아서 찌그러진것으로 추정된다.
    • 잘 안굴러가는 바위

      • Sphere Collision으로 감싸고 Simulate Physics 적용 및 Physical Material를 적용시켜서 좀 더 잘굴러가게끔 만들었다.
  • scale은 되도록 블루프린트의 뷰포트에서 건드리자

0개의 댓글