DDZIP STUDIO

02 / UNITY · CONTENT PRODUCTION

누가 더 쎔? — 배틀 시뮬레이터

캐릭터를 고르면,
전투가 영상이 됩니다.

제가 운영하는 YouTube 채널에 올릴 전투 영상을 만드는 도구입니다. 캐릭터와 대결 방식을 고르면, 사람이 조작하지 않아도 캐릭터들이 각자의 능력으로 싸웁니다.이 자동 전투를 세로 영상으로 녹화하고, 업로드와 공개 예약까지 관리하도록 연결했습니다.

누가·언제 쓰나
제가 다음 채널 영상을 만들 때 · PC의 Unity 작업 환경에서 사용
프로젝트 범위
전투 시스템 · 영상 제작 도구 · YouTube 채널 운영
기술과 용도
Unity · C# / 전투, Unity Recorder / 녹화, YouTube API / 업로드·예약
구현 도구
원하는 동작을 말로 요청하고 Codex가 코드를 작성하는 방식
실제 Unity 작업 화면 · 전투 장면과 Battle Studio 설정 도구
실제 Unity 작업 화면 · 전투 장면과 Battle Studio 설정 도구

YOUTUBE CHANNEL

전투 영상을 YouTube 채널에 올리고 있습니다.

이 도구로 만든 전투 영상을 채널에 공개하고 있습니다. 다음 영상의 업로드와 예약 일정도 함께 관리합니다.

채널에서 결과 보기

REAL BATTLES

설명보다 빠른,
실제 전투 두 판.

영상을 선택하면 YouTube 플레이어를 불러옵니다. 재생이 제한된 환경에서는 원본 링크로 볼 수 있습니다.

1대1

한 명씩 정면 승부

서로 다른 대표 기술이 또렷하게 보이는 기본 전투입니다.

YouTube 원본 보기

팀전

여러 명이 한꺼번에

팀 색상과 체력 표시로 여러 캐릭터의 승부를 따라갑니다.

YouTube 원본 보기

THE PRODUCTION FLOW

게임 한 판을,
Shorts 한 편으로.

한 번 싸우고 끝나는 게임보다, 다음 영상도 계속 만들 수 있는 작업실이 필요했습니다. 전투 설정과 녹화를 묶은 도구를 Battle Studio라고 이름 붙였습니다.

  1. 직접 설정대결 고르기

    캐릭터·맵·전투 방식

  2. 시스템 실행전투 진행

    각자의 공격과 능력

  3. 도구 실행세로로 녹화

    1080 × 1920 영상

  4. 운영·확인업로드와 예약

    공개 일정·대진 관리

REAL TROUBLESHOOTING

벽에 닿았는데,
왜 피해가 없지?

같은 접촉, 무엇을 계산하느냐의 차이.

공격 처리 흐름을 단순화한 설명입니다. 실제 게임을 실행하는 화면은 아닙니다.

수정 전

  1. 화면에서는무기가 벽에 닿음
  2. 코드에서는상대 캐릭터만 검사
  3. 빠진 계산벽에는 피해 없음

벽이 아니라 그 뒤의 캐릭터만 검사해서, 벽에 닿은 사실을 공격으로 처리하지 못했습니다.

수정 후의 처리 구조

  1. 같은 접촉에서벽 접촉도 검사
  2. 처리할 때접촉 위치·중복 확인
  3. 이어지는 계산벽 피해 처리에 연결

위성 공격도 공통 벽 접촉 처리를 사용하게 고쳤습니다. 이 설명은 코드 변경 내용이며, 당시 Unity 실행 검증이 완료됐다는 뜻은 아닙니다.

01

보이는 접촉과 실제 공격 판정이 달랐습니다.

문제
주위를 도는 무기가 방어벽에 닿아도 벽의 체력이 줄지 않았습니다. 보는 사람에게는 공격이 맞은 것처럼 보이지만, 실제 승부에는 반영되지 않았습니다.
원인
코드는 무기와 상대 캐릭터의 거리·겹침만 확인했습니다. 벽에 닿았는지는 검사하지 않아, 피해를 계산하는 다음 단계로 넘기지 못했습니다.
선택과 수정
위성 공격도 다른 공격과 같은 벽 접촉 처리를 사용하게 했습니다.피해만 억지로 추가하면 같은 공격이 여러 번 계산될 수 있습니다. 그래서 접촉 위치와 중복 타격도 함께 확인하도록 고쳤습니다.
확인
수정 뒤에도 문제가 다시 생기지 않는지 검사할 23가지 테스트 상황을 작성했습니다. 코드를 컴퓨터가 실행할 형태로 바꾸는 컴파일 과정에서는 오류가 0개였습니다.테스트 실행을 통과한 것은 아닙니다. 당시 Unity에서 실제로 실행해 보는 확인은 남아 있었습니다.
수정 기록의 범위 자세히 보기

23가지 케이스는 14개 테스트 메서드로 구성되었습니다. 거리 조건, 아군 오인, 중복 피해, 일시정지와 접촉 위치 등을 다룹니다. 컴파일 기록에는 기존 소스의 경고가 있으며 ‘오류 0개’를 ‘경고도 없음’으로 해석하지 않습니다.

또한 코드 수정이 이미 인코딩한 영상까지 바꾸지는 않습니다. 이 수정에서는 기존 영상이나 공개 예약을 변경하지 않았습니다.

근거: 2026-09-03 방어벽 피해 판정 수정 기록. 이후 버전의 실행 검증 결과를 대신하지 않습니다.

02

새 캐릭터를 넣을 때, 기존 전투를 덜 건드리도록.

설계 과제
캐릭터가 늘어날수록 공통 전투 코드에 예외 처리를 계속 넣으면, 다른 캐릭터에 영향을 주기 쉽습니다.
구조
캐릭터의 기본 설정과 경기 중 바뀌는 상태를 나눴습니다. 기본 설정은 Unity의 데이터 보관 기능인 ScriptableObject에, 공격과 능력의 동작은 각각의 코드에 둡니다.
경계
전투 판정, 화면 연출, 녹화 도구도 역할을 나눕니다. 캐릭터 설정만 바꾸는 일과 승부 계산을 바꾸는 일이 섞이지 않게 하기 위한 설계입니다.
남은 주의점
무작위 계산의 출발 번호인 ‘시드’를 같게 두면 같은 조건을 다시 살펴보기 좋습니다. 다만 충돌 상태 등 다른 조건까지 같아지는 것은 아니어서, 언제나 똑같이 재생되는 기능이라고 보장하지는 않습니다.

MAKING NOTES

제작 방식과 확인 범위

AI 활용

전투와 녹화에 필요한 기능을 설명하고, Codex의 코드 작성과 수정 도움을 받아 구현했습니다.

요구와 피드백

캐릭터의 대표 행동, 영상에서 읽히는 표시, 실제로 발견된 전투 문제를 구체적인 작업 대상으로 다뤘습니다.

검수의 경계

소스 컴파일을 확인한 부분과 Unity에서 추가로 실행해 봐야 할 부분을 구분해 아래에 기록했습니다.

EVIDENCE & LIMITS

구현 설정, 운영 기록과 확인 범위

전투 구성

프로젝트 소개 시점에 캐릭터 24명과 1대1·다인전·팀전·태그·릴레이 모드를 구성했습니다. 같은 캐릭터도 대진과 전투 방식에 따라 다른 장면을 만듭니다.

계산과 영상

전투는 초당 60번 계산하도록 설계하고, 영상은 1080 × 1920 세로 화면에 맞췄습니다. 승부를 계산하는 주기와 영상 프레임 수는 각각 따로 다룹니다.

실제 운영의 증거

공개한 전투 영상과 YouTube Studio 예약 화면을 함께 담았습니다. 이 도구로 만든 영상이 채널에 공개되는 과정을 볼 수 있습니다.

방어벽 수정 사례는 날짜가 있는 개발 기록을 바탕으로 요약했습니다. 이번 사이트 검수에서 Unity 테스트나 채널 운영 상태를 다시 측정한 것은 아닙니다.

FROM IDEA TO SOMETHING REAL

만든 전투가,
누군가 보는 영상이 되도록.