[CNS]무겐 캐릭터 만들기 - 1 > 기초 이해 강좌

본문 바로가기
사이트 내 전체검색

기초 이해 강좌

[CNS]무겐 캐릭터 만들기 - 1

페이지 정보

profile_image
작성자 Leona123
댓글 0건 조회 792회 작성일 24-10-06 12:34

본문

무겐 캐릭터를 이루고 있는 파일은 크게 세 가지로 나눌 수 있습니다.

(1) sff 파일 (스프라이트 파일)

캐릭터의 생김새를 관장합니다. 캐릭터를 이루고 있는 그림이 모여 있는 파일입니다.

(2) air 파일 (애니메이션 파일)

캐릭터의 동작을 관장합니다. 위의 sff 파일에 있는 그림들을 몇초 간격으로 재생할지를

설정할 수 있습니다.

(3) cns 파일

캐릭터에 대한 모든 것을 관장하는 파일입니다. 기술의 데미지, 소리, 이펙트 등은

모두 cns 파일에서 결정된다고 할 수 있습니다.

제 블로그에서는 cns 파일에 대한 것을 자세히 다루도록 하겠습니다.

cns 파일은 메모장으로 열 수 있습니다.

혹은 메모장을 열어놓은 뒤, cns 파일을 메모장의 빈 칸으로 드래그해 넣는 방법을 통해서도

열 수 있습니다.

cns 파일을 열면 엄청나게 많은 내용이 영어로 적혀있습니다.

언뜻 보면 굉장히 복잡해 보이지만, 실은 굉장히 간단한 내용들입니다.

cns 파일은 두 가지 요소로 구성되어 있습니다.

1. state (스테이트)

2. state controller (스테이트 컨트롤러)

스테이트는 말 그대로 캐릭터의 상태를 정해 주는 요소입니다.

스테이트에 캐릭터가 장풍을 발사하도록 설정해 놓으면 장풍이 나갈 것이고,

초필살기를 사용하도록 설정해 놓으면 초필살기가 나갈 것입니다.

스테이트를 이용하면 캐릭터의 거의 모든 것을 조정할 수가 있습니다.

스테이트 컨트롤러는 하나의 스테이트 안에 소속되어 있는 요소입니다.

스타크래프트에 등장하는 벙커를 상상해 보시기 바랍니다.

벙커 자체는 아무런 공격 능력이 없습니다.

그러나 안에 마린이 들어가면 적을 공격할 수 있게 됩니다.

스테이트 컨트롤러는 마린의 역할을 담당합니다.

벙커 안에는 마린도 들어갈 수 있고, SCV, 파이어뱃, 고스트 등도 들어갈 수 있습니다.

그리고 어떤 유닛이 들어가느냐에 따라 벙커의 성능은 천차만별이 됩니다.

스테이트 컨트롤러의 역할 또한 이와 크게 다르지 않습니다.

하나의 스테이트에 어떤 스테이트 컨트롤러가 들어가느냐에 따라서 그 스테이트는

공격 스테이트가 될 수도 있고, 장풍 스테이트가 될 수도 있고, 초필살기 스테이트가 될 수도

있습니다.

스테이트의 경우, 아래와 같이 작성합니다.

[statedef 번호]

대문자로 써도 되고, 소문자로 써도 됩니다만, 괄호와 띄어쓰기는 반드시 지켜 주셔야 합니다.

또한 격투 게임 캐릭터들이 사용하는 여러 가지 기술에는 각각의 이름이 붙어 있듯이

스테이트에는 무조건 번호가 붙어 있어야 합니다.

스테이트의 번호가 1200 이라면 그 스테이트는 아래와 같이 쓸 수 있습니다.

[statedef 1200]

번호는 원하는 것으로 자유롭게 매겨 주실 수 있습니다.

단, 스테이트에 번호를 매기실 때 주의하셔야 하는 부분이 한 가지 있습니다.

바로 무겐 본체에서 기본적으로 사용하고 있는 번호와 겹치지 않아야 한다는 것입니다.

만일 번호가 겹치게 되면, 무겐에서 기본적으로 사용하고 있던 스테이트가 무시되게 됩니다.

무겐에서 기본적으로 사용되고 있는 스테이트 번호의 목록은 아래와 같습니다.

0 : 서있는 스테이트

10 : 앉고 있는 스테이트

11 : 앉아 있는 스테이트

12 : 일어나고 있는 스테이트

20 : 걷는 스테이트

40 : 점프를 하려고 발을 접는 스테이트

45 : 공중에서 2단 점프를 하려고 하는 스테이트

50 : 점프하는 스테이트

52 : 점프 후 착지하는 스테이트

100 : 앞으로 달려가는 스테이트

105 : 뒤로 백스텝하는 스테이트

106 : 뒤로 백스텝후 착지하는 스테이트

120 : 가드를 올리는 스테이트

130 : 서서 가드하고 있는 스테이트

131 : 앉아서 가드하고 있는 스테이트

132 : 공중에서 가드하고 있는 스테이트

140 : 가드가 끝난 스테이트

150 : 가드 중에 맞아서 경직을 입고 있는 스테이트

151 : 가드 중에 맞아서 경직을 입은 뒤, 뒤로 밀려나는 스테이트

152 : 앉아 가드 중에 맞아서 경직을 입고 있는 스테이트

153 : 앉아 가드 중에 맞아서 경직을 입은 뒤, 뒤로 밀려나는 스테이트

154 : 공중 가드 중에 맞아서 경직을 입고 있는 스테이트

155 : 공중 가드 중에 맞아서 경직을 입은 뒤, 뒤로 밀려나는 스테이트

170 : 타임오버 패배 스테이트

175 : 타임오버 후 경기가 비겼을 때의 스테이트

190 : 인트로가 시작되기 직전의 스테이트

191 : 인트로 스테이트

5000~5120 : 맞고 있는 스테이트

5150 : 죽어서 누워 있는 스테이트

5200~5210 : 맞고 있는 스테이트

5500 : 컨티뉴 화면 스테이트

5900 : 초기화 스테이트

...

굉장히 복잡하지요.

하지만 !!

위의 것들은 전혀 고려할 필요가 없습니다.

무겐에는 친절하게도 스테이트에 번호를 매길 때,

어떻게 매겨야 하는지 친절하게 설명이 되어 있습니다.

0~199 : 사용금지

200~299 : 기본기

300~399 : 기본기 (위의 번호로 부족할 경우), 달려가면서 공격하는 기술

400~499 : 앉아 기본기

500~599 : 앉아 기본기 (위의 번호로 부족할 경우)

600~699 : 공중 기본기

700~799 : 공중 기본기 (위의 번호로 부족할 경우)

800~999 : 번호가 부족하면 사용하세요.

1000~2999 : 필살기

3000~4999 : 초필살기

5000~5999 : 사용금지

물론 위와 전혀 상관없이 번호를 매겨도 상관이 없습니다.

단, 위를 무시하고 번호를 매길 경우, 무겐에서 기본적으로 사용되는 번호와

겹치진 않았는지 확인해 주시는 것이 좋습니다.

음...

저는 일단 1200 번을 골라보겠습니다.

그러면 아래와 같이 쓸 수 있겠지요.

[statedef 1200]

이것으로 스테이트 작성 완료입니다.

굉장히 쉽죠?

그런데... 스테이트에는 추가로 몇 가지의 정보를 더 입력해 줄 수 도 있습니다.

(물론 입력하지 않아도 됩니다.)

입력할 수 있는 정보는 아래와 같습니다.

Type

MoveType

Physics

Anim

VelSet

Ctrl

PowerAdd

Juggle

FaceP2

SprPriority

HitdefPersist

MoveHitPersist

HitCountPersist

위에 굵은 글씨로 표시해 둔 것은 되도록이면 입력해야 하는 정보들입니다.

아래에 취소선을 그어놓은 것은 어려운 내용이기에 이 글에서는 설명하지 않겠습니다.

무겐에서는 대소문자를 구별하지 않습니다.

따라서

Type 을

type 이라고 써도 무방합니다.

저는 cns를 직접 작성할 땐 전부 소문자로 작성하지만,

이 글에서는 보기에 편하도록 대소문자를 섞어서 사용하겠습니다.

Type

해당 스테이트의 종류를 결정합니다.

S

: Standing (서있는 상태)

C

: Crouching (앉아있는 상태)

A

: in the Air (공중에 떠있는 상태)

L

: Lying down (누워있는 상태)

U

: Unchanged (이전의 상태를 그대로)

1200 번 스테이트를 서있는 상태로 두고 싶을 땐

[statedef 1200]

Type = S

이렇게 써주시면 되겠습니다.

Type 이 쓰여진 줄을 생략하면 스테이트의 종류는 자동으로 S 가 됩니다.

MoveType

해당 스테이트가 무엇을 하는 스테이트인지 설정해 주는 부분입니다.

A

: Attack (공격)

I

: Idle (가만히 있는 상태)

H

: being Hit (맞고 있는 상태)

U

: Unchanged (이전의 상태를 그대로)

A는 공격을 하는 상태입니다. MoveType 을 A로 설정해 줘야지 공격 판정이 발동됩니다.

I는 가만히 있는 상태입니다. MoveType 이 쓰여 있는 줄을 생략하면 자동으로 I 가 됩니다.

H는 맞고 있는 상태입니다. MoveType 이 H 일 동안에는 상대방의 타겟으로 지정되어 있게 됩니다.

Physics

해당 스테이트에서 어떤 힘을 받을 것인지 설정해 주는 부분입니다.

S

: Stand (서있는 상태)

C

: Crouch (앉아있는 상태)

A

: Air (공중에 떠있는 상태)

N

: None (없음)

U

: Unchanged (이전의 상태를 그대로)

S의 경우, 마찰력을 받습니다.

C는 더 강한 마찰력을 받습니다.

A를 써 주었을 땐, 중력을 받게 됩니다.

그리고 착지했을 때, 캐릭터가 자동으로 착지 모션을 취하게 됩니다.

N을 써 주면 아무런 힘도 받지 않게 됩니다.

Physics 부분을 생략하면 자동으로 N 이 됩니다.

Anim

해당 스테이트에서 사용할 애니메이션을 결정합니다.

생략할 경우, 이전의 애니메이션을 그대로 사용하게 됩니다.

Anim = 200

이런 식으로 애니메이션의 번호를 넣어 주시면 됩니다.

애니메이션을 설정해 주면 스테이트가 처음 시작할 때 해당 애니메이션으로 바뀌게 됩니다.

일단 스테이트가 시작했으면 더이상은 작용하지 않습니다.

VelSet

해당 스테이트가 시작되었을 때, 속력을 결정해 줍니다.

위와 마찬가지로 일단 시작한 뒤로는 효력을 발휘하지 않습니다.

생략하면 기존의 속력을 그대로 적용받습니다.

VelSet = 3,-2

이런 식으로 x축 속력, y축 속력을 결정해줄 수 있습니다.

무겐에서는 x축이 캐릭터의 앞 방향, y 축이 캐릭터의 아래 방향이라는 사실에

주의하시기 바랍니다.

Ctrl

해당 스테이트가 시작되었을 때, 캐릭터가 컨트롤 가능한지 아닌지를 결정합니다.

역시나 스테이트가 시작했을 때 한 번만 발동되고, 이후로는 발동되지 않습니다.

Ctrl = 1

이렇게 1 값을 주면 컨트롤 가능 상태가 되고,

Ctrl = 0

이렇게 0 값을 주면 컨트롤 불가능 상태가 됩니다.

생략하면 이전 스테이트의 값이 그대로 지속됩니다.

PowerAdd

해당 스테이트가 시작되었을 때, 기 게이지를 얼마나 채울지 결정합니다.

마찬가지로 스테이트가 시작했을 때 한 번만 발동되고, 이후로는 발동되지 않습니다.

PowerAdd = 100

이렇게 하면 기 게이지가 100 만큼 차게 됩니다.

FaceP2

해당 스테이트가 시작되었을 때, 상대방 쪽으로 자동으로 방향을 돌릴지 결정합니다.

마찬가지로 스테이트가 시작했을 때 한 번만 발동되고, 이후로는 발동되지 않습니다.

Ctrl 과 마찬가지로 1 값을 주면 실행되고 0 값을 주면 실행되지 않습니다.

생략하면 자동으로 0 이 됩니다.

SprPriority

스프라이트 (그림) 표시 우선순위를 정합니다.

숫자가 클수록 화면의 위에 표시되고, 숫자가 작을수록 화면의 아래에 표시됩니다.

보통 캐릭터가 서있을 때는 0,

점프할 때는 보통 1,

공격할 때는 보통 2의 값을 갖습니다.

물론 자유롭게 설정해 주어도 관계가 없습니다.

SprPriority = 5

이렇게 설정해 주면 다른 캐릭터보다 앞에 표시가 되고,

SprPriority = -4

이렇게 해 주면 뒤에 표시가 되겠지요.

생략하면 이전의 SprPriority 값을 그대로 따라갑니다.

이를 응용하면

[statedef 1200]

Type = S

MoveType = A

Physics = N

Anim = 1200

Velset = 0,0

Ctrl = 0

Poweradd = 100

FaceP2 = 1

SprPriority = 2

이렇게 하나의 스테이트를 만들 수 있겠지요.

물론 위에서 설명드린대로, 이를 다 쓸 필요는 없고

[statedef 1200]

이렇게 달랑 하나만 써줘도 문제가 없습니다.

물론 여러 가지 효과를 내고 싶으실 땐 정보를 써 주셔야 하겠지요.

다음에는 스테이트 컨트롤러에 대해 알려드리겠습니다.

추천0

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 이용약관 모바일 버전으로 보기 상단으로

Copyright © 무겐 어소시에이션 All rights reserved.