Skip to content

Conversation

@kwkim526
Copy link
Collaborator

@kwkim526 kwkim526 commented Jan 9, 2026

정기회의 14차-1차 PR (김경원, GameSystem)

🎮 개발한 핵심 기능

  • 플레이어 사망 판정

🐛 고친 버그 & 코드 목록

  • 엘리베이터 코드 리팩토링
  • 이상현상 실행 함수 ActivateAnomaly의 불필요한 인자 uint8 Anomaly_ID 제거 및 관련 코드들 수정
  • 상호작용이 이상현상 번호에 따라서 달라지도록 수정

📷 참고 자료

  • 플레이어 사망 판정 관련 영상
Endless_Hotel.DebugGame.-.Unreal.Editor.2026-01-09.14-00-30.mp4
  • 오르골 이상현상 모델 추가 사진
image

🔍 리뷰가 필요한 부분

  • 기존 계획은 Anomaly_Base에 사망 코드를 구현하는 것이었으나 로직을 고려했을 때 Anomaly_Object_Base에 있는 것이 더 자연스러울 것 같아 Anomaly_Object_Base에 구현하였습니다만 이에 대한 의견이 궁금합니다.
  • 현재 순수가상함수로 Anomaly_Object_Neapolitan에 SetInteraction()이라는 함수를 제작해놓았습니다.
    사용법은 TFunction<void()> InteractAction;라는 함수 포인터를 제작하여 기존에 있던 Anomaly_Base 지정하듯이 해주시면 될 것 같습니다.
    해당부분은 Anomaly_Object_Painting과 Anomaly_Object_MusicBox는 현재 적용되어있기 때문에 참고하시면 될 것 같습니다.
  • 사망 판정의 경우 현재는 StartEyeEffect() 함수의 시간에 맞추어놓았으나 애니메이션이 들어간다면 추후 수정하면 될 것 같습니다.

기존 계획은 Anomaly_Base에 사망 코드를 구현하는 것이었으나 로직을 고려했을 때 Anomaly_Object_Base에 있는 것이 더 자연스러울 것 같아 Anomaly_Object_Base에 구현하였습니다만 이에 대한 의견이 궁금합니다.

  • 해당 부분은 피드백을 받아서 델리게이트 형식으로 수정하였습니다.

-이상현상마다 상호작용 다르게 되도록 수정
-이상현상 대처 실패 시 플레이어 사망 로직 추가
-ActivateAnomaly의 불필요한 인자 Anomaly_ID 제거
-ActivateInteraction 함수명 SetInteraction으로 수정
-사망 시 블러처리되도록 대기 시간 추가
-StartEyeEffect를 위한 초 수정
@kwkim526 kwkim526 self-assigned this Jan 9, 2026
@kwkim526 kwkim526 added 🌟Feature 기능 추가 🛠️Fix 수정 👽김경원 ⚙️Refactor 코드 리팩토링 labels Jan 9, 2026
@kwkim526 kwkim526 requested a review from ssiver6324 January 9, 2026 06:18
Copy link
Collaborator

@KaneBigNose KaneBigNose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다

  • 플레이어 사망 코드가 Anomaly_Object에 있다는 것 자체가 이상한 거 같습니다.
    Anomaly_Object라는 클래스와 맞지 않는 것 같습니다.

  • AnomalyProgressSubsystem에서 데이터 관련 부분을 처리하는 것으로 보이는데 이 또한 해당 클래스의 목적과 맞지 않는 것 같습니다. 하나의 클래스는 클래스 네임과 같은 목표 기능만 처리하는 것이 가독성이 좋습니다. -> 코드가 방대해지면 로직이 많이 복잡해지고 꼬일 확률이 높습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

무슨 파일인지 정확하게는 모르겠으나 블루프린트라면 네이밍 컨벤션이 적용되지 않았습니다

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 파일 이름은 수정하겠습니다.

AnomalyAction = ([](AAnomaly_Object_Base* Portrait)
{
Cast<AAnomaly_Object_Painting>(Portrait)->EyeFollowing();
Cast<AAnomaly_Object_Painting>(Portrait)->SetInteraction();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SetInteraction이 이상현상 물체 상호작용 세팅을 하는 함수인거 같은데 해당 함수를 여기서 호출하는 이유가 궁금합니다.
혹시 Object의 BeginPlay에서 하면 타이밍이 꼬여서 그런건가요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재 AnomalyID를 Anomaly_Generator가 csv에서 읽어들여서 할당하고 있기 때문에 Object의 BeginPlay에서 실행할 경우 SetInteraction에 필요한 AnomalyID가 없는 문제가 발생할 것 같아서 여기서 호출하고 있습니다.


void AAnomaly_Object_Painting::Interacted_Implementation()
{
StartInteractaction();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이런 부분은 베이스에서 처리해도 괜찮지 않나요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

현재 RestoreObjectTransform이 베이스의 Interacted_Implementation()에 있어서 이렇게 해놓았습니다.
해당 부분은 수정하겠습니다.

- 오르골 이상현상 모델 돌아가도록 변경
- 돌아가는 모델 추가
-AnomalyProgressSubsystem의 데이터 관련 로직 DataController쪽으로 이동
-MusciBox 이름 네이밍 규칙에 맞게 수정
-사망 판정을 Delegate를 이용하는 형식으로 수정
@kwkim526
Copy link
Collaborator Author

피드백을 받고 수정하였습니다.
추가로 현재 Data를 AnomalyID 형식으로만 ObjectClass를 호출하는 형식으로 고정되었는데
GetObjectByName, GetObjectByRowIndex 함수가 필요한지 의문입니다.

@KaneBigNose
Copy link
Collaborator

현재 Data를 AnomalyID 형식으로만 ObjectClass를 호출하는 형식으로 고정되었는데 GetObjectByName, GetObjectByRowIndex 함수가 필요한지 의문입니다.

필요하지 않으면 굳이 해당 함수를 만들지 않아도 될 듯 합니다. 저번에 제가 해당 함수를 언급한 것은 다양한 방식으로 찾는 것이 있으면 추후에 개발이 편해지니까 만들면 좋겟다고 얘기했었는데 사용하지 않을 거 같으면 없어도 될 것 같습니다.

@kwkim526
Copy link
Collaborator Author

현재 Data를 AnomalyID 형식으로만 ObjectClass를 호출하는 형식으로 고정되었는데 GetObjectByName, GetObjectByRowIndex 함수가 필요한지 의문입니다.

필요하지 않으면 굳이 해당 함수를 만들지 않아도 될 듯 합니다. 저번에 제가 해당 함수를 언급한 것은 다양한 방식으로 찾는 것이 있으면 추후에 개발이 편해지니까 만들면 좋겟다고 얘기했었는데 사용하지 않을 거 같으면 없어도 될 것 같습니다.

확인했습니다.
현재 양식이 통일되어있고 반드시 AnomalyID를 할당하고 있으므로 AnomalyID 기반 탐색을 제외하고는 삭제하겠습니다.

-이상현상 이름 기반, 열 기반 탐색하는 불필요한 함수 제거
-머지 받은 이후 생긴 오류 수정
-머지하면서 사라진 변경사항들 적용
Copy link
Collaborator

@ssiver6324 ssiver6324 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다.

@kwkim526 kwkim526 requested a review from ssiver6324 January 10, 2026 09:22
Copy link
Collaborator

@bumyee11 bumyee11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다.

@KaneBigNose KaneBigNose merged commit 8c9c162 into Develop Jan 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🌟Feature 기능 추가 🛠️Fix 수정 ⚙️Refactor 코드 리팩토링 👽김경원

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants