목록2025/04/07 (6)
뭐라도 쓰겠지

using UnityEngine;public class CollisionPlayer : MonoBehaviour{ private enum EDir { Forward, Back, Left, Right } [SerializeField] private float moveSpeed = 10f; void Update() { if (Input.GetKey(KeyCode.W)) { Moving(EDir.Forward); } else if (Input.GetKey(KeyCode.S)) { Moving(EDir.Back); } if (Input.GetKey(KeyCode.A..
https://www.youtube.com/watch?v=g79wbf2B00Q출처: Youtube, Scott Jund 채널 위 영상을 보면 다크 소울의 히트박스는 정말로 "3D 모델링 그 자체"라는 걸 볼 수 있다. 이런 걸 보고 "Hitbox Porn"이라고 한다던데, 용어는 좀 그렇지만 유튜브에 여러 게임들의 Hitbox Porn을 찾아 볼 수 있다. 다크 소울 시리즈는 플레이어와 적의 공격 판정이 "공정하다"고 평가받는 대표적인 게임 중 하나다. 특히 공격 모션과 히트박스가 정확하게 일치하도록 신경 쓴 덕분에, 피하거나 막아야 할 타이밍이 명확하고 "내가 맞은 건 내 탓"이라는 느낌을 준다. 아래에서는 다크 소울 시리즈의 히트박스가 왜, 어떻게 그렇게 뛰어난 평가를 받는지 정리해봤다. 제목에 변태..

이번 글을 읽기 전, 이전 글에서 다룬 AABB와 OBB를 읽고 오는 게 이해에 좋다.2025.04.07 - [프로그래밍/Unity] - 25.04.07 / Bounding Box - AABB, OBB 25.04.07 / Bounding Box - AABB, OBB게임 엔진에서 Bounding Box(경계 상자)란 3D 또는 2D 공간에서 특정 오브젝트(모델, 메쉬 등)를 간단한 상자 형태로 감싸는 최소한의 "외곽"을 의미한다. 주로 충돌 검출, 렌더링 최적화, 물리 연산에peudann.tistory.com 몇몇 게임들을 보다보면, 아래 그림처럼 히트박스가 네모 모양인 걸 볼 수 있다. 게임에서 히트박스가 단순한 박스(Box) 형태로 표현되는 가장 큰 이유는 계산의 단순화와 실시간 퍼포먼스 때문이다. ..

게임 엔진에서 Bounding Box(경계 상자)란 3D 또는 2D 공간에서 특정 오브젝트(모델, 메쉬 등)를 간단한 상자 형태로 감싸는 최소한의 "외곽"을 의미한다. 주로 충돌 검출, 렌더링 최적화, 물리 연산에서 자주 사용된다. 일반적으로 AABB(Axis-Aligned Bounding Box)와 OBB(Oriented Bounding Box)가 많이 쓰인다.Bounding Box란?정리오브젝틑를 포함하는 가장 단순한 형태의 "상자(Box) 모양"으로, 오브젝트가 실제로 차지하는 공간보다 조금 커질 수 있지만, 충돌 검출 등을 빠르게 처리할 수 있게 도와준다.보통은 3D에서는 직육면체, 2D에서는 직사각형 형태를 사용한다.사용 이유복잡한 메쉬나 모델끼리 정확한 충돌 검사를 하려면 면(Face) 단위의..
유니티에서 OnCollision 계열 함수(OnCollisionEnter, OnCollisionStay, OnCollisionExit)와 OnTrigger 계열 함수(OnTriggerEnter, OnTriggerStay, OnTriggerExit)는 물리 충돌(Collision)과 트리거 충돌(Trigger)을 구분하여 처리하는 두 가지 방식이다. 1. 물리 충돌(Collision)물리 엔진이 "물리적으로 부딪힌다"라고 판단하여, 서로 튕겨나가거나 멈추는 등 실제 충돌 반응이 일어난다.예를 들어, 공이 벽에 튕겨나가는 상황이 있다.2. 트리거 충돌(Trigger)눈에 보이지 않는 "감지 영역(Trigger)"을 통과할 때 발생하는 이벤트로, 물리적인 반응(밀침, 튕김, 멈춤 등)이 일어나지 않는다.예를 ..
유니티에서 Rigidbody(리지드바디, 강체)는 게임 오브젝트에 실제 물리법칙이 적용되도록 해주는 컴포넌트이다. 오브젝트가 중력에 의해 떨어지거나, 충돌 시 튕겨나가는 등의 물리적 상호작용을 구현하려면 반드시 Rigidbody를 컴포넌트로 가져야 한다. 다음은 Rigidbody를 사용하는 주요 이유와 구체적인 기능이다. 1. 물리 엔진 연동중력, 관성, 충돌 등 유니티 물리엔진(PhysX)의 모든 기능을 활용하려면 물리 연산을 담당하는 Rigidbody가 필요하다. Rigidbody가 없으면, 그 오브젝트는 Transform을 직접 변경하더라도 충돌이나 중력 등의 물리 시뮬레이션 효과는 적용되지 않는다. 2. 질량, 중력, 마찰력 등 물리 파라미터 설정Mass(질량), Drag(선형 저항), Angul..