개발공부

마비노기 재우's AI 다운로더 - 01 '로직 분석'

카로루딘 2023. 11. 22. 11:27

알바니 뭐니 하면서 잠깐 개발을 소흘히 했다. 오랜만에 감도 잡고, 이번에는 애니메이션 시스템을 잔뜩 넣어볼까 싶어서 내가 과거 만들었던 마비노기 AI 관리 사이트를 만들어보기로 했다. 기존에 있던 구상을 나열해보자면

 

구상 1. 

기본적인 ai 다운로더 사이트로 제작

구성 - 기초적인 파일 목록 뷰, 다운 기능 제공

예상 사용 기술 - api 통신까지 갈 필요없이 사이트 내에 저장된 데이터로 해결 가능, 이러면 자기계발에 큰 의미가 없다고 판단

 

구상 2.

기본적인 ai 다운로더 및 ai 맞춤 사이트로 제작

구성 - 기초적인 파일 목록 뷰, 다운 기능 제공, 질답 형태를 통해 데이터 수집, 사용자가 원하는 ai 파일 추천

예상 사용 기술 - 마찬가지로 api 통신을 안해도 사용할 수 있지만, 구상 1보다는 좀 더 논리적인 짜임새를 많이 넣어야함. 백엔드와의 협업보다는 개발자로서의 기교를 다지는 것에 의의를 둠

 

이렇게 된다. 여기서 구상 1을 만드는 대신, api 통신을 없애는 대신 애니메이션 시스템에 집중하는 방식을 시도해볼까 싶다.

예상되는 작동방식

 

1. AI 텍스트 파일을 제작하는 커스텀 훅을 만든다.

2. 사이트에 다운로드 버튼을 만들어 실시간으로 만들어진 AI TEXT 파일을 안내한다.

3. 다운로드 버튼을 누르면 다운됨과 동시에 파일을 옮길 위치를 안내한다.

 

이 방식을 사용하면 될 것 같은데, 여기서 도전해볼 것은

 

1. 유동적인 애니메이션 시스템 제작

2. 텍스트 파일 실시간 제작 및 다운로드 제공

3. 1페이지 안에 모든 기능 넣기

 

인데, 1번은 단순한 API 통신에 집중했었던 기존 제작 방식이 아니라 좀 더 꾸미는 기교를 늘리는 것이 목적이고 2번은 AI 편집 및 제작 알고리즘에 관련되어 연습할 것이 많으며, 3번은 최적화를 극한으로 시도해볼 것이다.

AI 텍스트 제작을 위해 모든 패턴을 넣어만 놓은 AI를 만든다.

 

코드분석용 AI

 

코드 분석용 AI를 만들어본 결과 다음과 같은 정보를 알아낼 수 있었다.

 

1. 마비노기의 AI 행동 패턴은 크게 3가지 과정을 거친다.

 

상황 (event) 조건 (conditions) 행동(sequence)

 

 

2. 상황에는 나, 주인, 상대(적) 3가지 타겟만 정한다. 그 외 다른 현장 상황은 전부 무시한다. 여기서 상대는 펫이 타겟팅 중인 적과 주인에게 행동 중인 적 2가지 경우만을 따진다.

상황(event) 조건 (conditions) 행동 (sequence)
나(펫) 스킬 준비함, 공격 당함, 원거리 무기에 조준당함
주인(플레이어)
상대(적)

 

 

3. 조건에는 나의 스킬 및 특기(펫 전용 스킬) 가능 여부, 주인의 잃은 생명력, 상대의 걷기/뛰기 여부와 나와의 거리를 따진다. 그 외 다른 현장 상황은 전부 무시한다. 여기서 선언된 상대는 상황에서 따진 적을 의미한다.

상황 (event) 조건(conditions) 행동 (sequence)
나(펫) 스킬 준비함, 공격 당함, 원거리 무기에 조준당함 스킬 가능 / 특기 가능
주인(플레이어) 잃은 생명력 비율
상대(적) 걷기 / 뛰기 / 나와의 거리

 

 

4. 행동에는 나의 상황과 조건을 따진 후의 로직을 따진다. 그 외 다른 현장 상황은 전부 무시한다. 여기서 선언된 상대는 상황에서 따진 적 혹은 주인을 의미한다.

상황 (event) 조건(conditions) 행동 (sequence)
나(펫) 스킬 준비함, 공격 당함, 원거리 무기에 조준당함 스킬 가능 / 특기 가능 대기
주인(플레이어) 잃은 생명력 비율 도주, 추적, 시계방향 회전
상대(적) 걷기 / 뛰기 / 나와의 거리 근접공격, 마법 차징, 준비한 스킬 사용, 특기 사용

 

 

상당히 많아보이지만 표로 정리해보니 생각한 것 만큼 많지는 않았다. 물론 사용 가능한 스킬에 수 십 가지, 특기까지 합하면 배로 늘고, 어떤 시퀸스는 min max 타이머만 따지지만 다른 건 bull값까지 따진다던지 겹치는 듯 하면서 겹치지 않는 가짓수들이 많아서 고생이다. 다음 글에는 일단 이러한 조건들은 나중에 따져보고, 클립 보드 복사 및 파일 즉석 생성이 되는지 테스트 해볼 것이다.