2014년 3월 12일 수요일

소스 엔진용 모델(MDL) 컴파일링

소스엔진의 캐릭터는 MDL 화일 형식으로 되어 있는데 주로 TGA 파일을 변환해서 만드는 VTF 텍스쳐 파일과 VTA 얼굴등의 형태등을 버텍스 값을 저장을 놓고 쓰는 VTA 포멧과 FBX 같은 3D 모델 데이터와 애니메이션 데이터를 이용해서 캐릭터의 움직임과 모델을 만들어주는 SMD[지금은 구형이 되었고 DMX 파일로 대체중이다.] 파일과 모델에 여러가지 게임에 쓰이는 속성들을 적용하기 위한 QC(QuakeC) 파일을 컴파일 하여 MDL 파일을 만들어 주는 StudioMDL 등의 툴등을 이용해서 벨브 소스 엔진에 쓰이는 모델 파일들을 만들어 줄수 있다.

텍스쳐를 VTF 변환.
TGA 2D 비트맵 파일을 VTF(Valve Texture File) 변환을 하자. Nem's tools VTFEdit 추천한다.

외부 링크
VTFEdit VMT 파일을 생성하는게 제일 쉬웠다자세한 내용은 VTFEdit 참조
그냥 VMT 파일도 VTFEdit 이용해서 만들어주자.

SMD 파일 작성

소프트 이미지 모드툴을 이용 벨브 어드온 다운로드후 압축푼뒤에 xsiaddon 파일을 소프트 이미지에 드레그&드롭 끌어서 던져주면 자동으로 설치가 된다. 설치 완료후 소프트 이미지를 다시 시작하면 된다.

소프트 이미지 사용을 원치 않는다면 블렌더를 추천한다.

모델링을 유니티 어셋 스토어 같은 인터넷틀 통해서 구하거나 직접 작성한뒤에 SMD Export 한다.
3DS MAX 사용시 Wallworm 툴이 있기는 한데 뭔가 정신 싸나워서 못쓰겠음. (-_-)

기본 모델이 되어줄 SMD 레퍼런스 모델 파일(T 포즈 모델) 필요함. 그리고 몇개의 애니메이션도 만들어주자

FBX 파일 이용

현재 소프트 이미지는 소프트 이미지 모드툴을 빼고는 SMD 익스포트를 할수 있는 방법이 없다 . 그래서 현재 공짜 툴중에서 가장 완벽한 블렌더를 이용하거나 FBX 파일 포멧으로 익스포트를 한뒤에 소스엔진 SDK 있는 FBX2DMX툴을 이용하여야 한다.

소스 필름 메이커용 모델을 FBX to DMX 이용해서 만드는 법을 설명하는 비디오 내용인데 해당 내용은 3DS MAX 이용한뒤에 FBX 익스포트한다이때 Bake animation 찾아서 체크를 해준뒤에 넘기는 같은데 소프트 이미지에는 해당 기능이 보이지가 않는다. 왜그렇지?



모델 익스포트시 주의할 .
  • 메쉬 모델 -> Geometry Approximation -> Polygon Mesh -> Discontinuity에서 Automatic 브이 체크를  제거.



Geometry Approximation 더블 클릭 하면 밑의 메뉴가 나온다





















여기서 Automatic 필히 브이 체크 해제 하자.

QC 파일 작성
StudioMDL 이용해서 소스엔진에서 쓰일 모델로 컴파일을 해주어야 한다.
자세한 명령은 벨브 캐발자 위키 QC Command  내용을 참고하자.
캐릭터 모델의 가장 기본적인 형태의 QC 파일은 아래와 같다.

$cd ".smd 파일 위치"
$scale
"1"
$modelname
"모델 출력이 데릭토리 이름"
$model
"게임상에서 쓰일 모델 이름" "reference.smd"
$surfaceprop
"" // 표면 속성 - // 재질 속성 리스트 참고
$cdmaterials
"표면 재질 파일이 위치한 디렉토리 이름"
$sequence idle
"reference.smd" fps 30.00 // Idle 모션 추가
$collisionmodel
"reference.smd" // 충돌/반응 등에 쓰일 메쉬
{
        $mass 30.0
// 질량
        $inertia 30.00
// 관성
        $damping 0.01
// 제동력
        $rotdamping 1.50
// 회전 제동력
}
// 코드 블록 부분은 쓰지 않아도 자동으로 studioMDL 계산해 넣는다.


studioMDL 이용하여 MDL 파일 생성
컴파일 작업에는 StudioMDL 이라고 하는 툴을 쓰면 된다
-game  스윗치를 이용해서 원하는 게임의 모델로의 컴파일 작업이 가능하다.
) studiomdl -game  Z:\SteamLibrary\SteamApps\common\Left 4 Dead 2\left4dead2\
gameinfo.txt  파일이 위치하고 있는 디렉토리를 적어주면 된다.
예로 든것은 레프트4데드2 디렉토리 되겠다.
-quite 디버그 메시지를 표시하지 않고 조용히 처리를 한다.
-nox360 엑박 360 파일을 출력하지 않는다.
-x360 엑박 360 파일을 출력한다.

-game <만들기 원하는 게임의 Gameinfo.txt 들어있는 디렉토리>  -quite -nox360  알아도 일반적인 모델 파일 만드는데 지장은 없다.
조금이라도 쉽게 하려면 .bat 확장자의  파일을 만들어도 된다.

Studiomdl.exe -game <게임 디렉토리> -nox360 %1

위의 내용을 저장한 뒤에 qc 파일을 드레그&드롭 해주면 mdl 파일이 만들어진다.]

외부링크
GUIStudioMDL - 도스 콘솔에 알레르기 반응을 일으키는 사람에게 추천 그냥 쓰기에도 가장 편한것 같다.
Crowbar Model De/compiler - 가장 최근에 나온 GUI 모델 컴파일러.


모델 위치
<게임설치된폴더>\materials
게임 모델의 재질 파일인 VMT 벨브사의 텍스쳐 파일인 VTF 파일이 여기에 저장을 하게 된다.

<게임설치된폴더>\models
벨브의 소스엔진에 쓰이는 모델 파일인 MDL 파일들이 저장이 되는 곳이다.

위의 폴더로
출력되는 파일들
MDL 확장자 파일 - 애니메이션 데이터, 히트 박스, 오브젝트 재질(Material) 정보, LOD(Level of Detail) 정보등을 담고 있는 게임에 쓰이는 모델 파일.
SW.VTX, DX80.VTX, DX90.VTX - 버텍스 데이터이다. SW software renderer 최적화 DX80 DX90 DirectX 8.0 9.0 최적화된 형태의 버텍스 테이터를 말한다.
PHY 확장자 - physic 추돌 메쉬 데이터

게임에 쓰일 모델 작성 완료
이제 만들어진 파일들을 VPK 묶은뒤에 배포하자.
워크샵이 있는 게임이면 게임 워크샵에 맞게 업로드하면 된다.


2014년 3월 11일 화요일

오토데스크가 소프트이미지를 매입한 뒤에 한일을 ICE를 이용해서 설명.



트위터에서 주워옴.  내가 만든것은 아님.

VTFEdit를 이용한 텍스쳐 작업

VTFEdit Nem 만든 GUI 벨브 소스엔진 텍스쳐 제작 툴이다.

작업준비
일단 텍스쳐 작업에 들어가기 앞서 텍스쳐 작업에 도움이 되는 VTFshell extension 다운로드 하자. 자신의 OS 버젼에 맞는 비주얼 C++ 런타임 패키지를 다운로드 한뒤에 설치해주자.

Nem's tool VTFLib  VTFEdit 다운로드 해서 설치를 하자. 둘다 installer 링크를 눌러서 다운로드를 받은 파일을 설치하면 된다.

File
New - VMT 파일 만들기
Open - VTF, VMT 파일 열기
Save, Save as - VTF 파일로 Import 파일을 저장.
Export - jpg, png, tga 등의 그래픽 파일로 텍스쳐를 저장한다.
Edit
Copy - 텍스쳐 메모리로 복사
Paste - 메모리로 복사된 텍스쳐를 붙이기.
View
Channel

  • RGB (Red, Green, Blue) 빛의 삼원색을 전부 적용.
  • Red - 적색 채널만 보여준다.
  • Green - 녹색 채널만 보여준다.
  • Blue - 청색 채널만 보여준다.
  • Alpha - 알파 채널을 보여준다.

Tile - 타일 형태로 텍스쳐를 깔아준다.
Tools
Create VMT File - 벨브 재질 파일을 만드는 작업을 한다.
Convert Folder - 폴더에 있는 *.TGA, *.PNG 파일들을 전부 VTF 파일로 바꾸어 준다.
Convert WAD File - 오래전 퀘이크 시절때 쓰이던 WAD 파일을 바꾸어준다.

참고자료

2014년 2월 19일 수요일

아메리카나 - 마야로 만드는 팀 포트리스 2 모자.

튜토리얼 링크





주의 팀포트리스 워크샵 시스템이 바뀌었다. Itemtest를 사용하면 검은 화면만 나오는것을 확인.
게임 실행후에 나오는 워크샵 브라우저에서 제작한 아이템 접수를 해야 된다.


마야는 현재 Maya LT로 프로모션 중이라서 싼 가격에 사용이 가능하다. 하지만 블렌더가 너무 좋아졌다. 그냥 블렌더를 써도 거의 모두 3D 폴리곤 작업 커버가 가능하다. 특히 게임 영역은 이제 거의 완벽하다. 더군다나 공짜이다.


단, 국내 게임 스튜디오 취업이 목표라면 맥스를 다루면 된다. 외국의 스튜디오들은 마야판 이다.


저 두 소프트웨어 강좌는 널리고 널렸으니 이 블로그 주인만의 취향인 소프트 이미지를 밀고 있다.


2014년 2월 18일 화요일

소프트 이미지 사용자가 스팀의 소스엔진 모딩을 하기 위한 준비

소스엔진에서 쓰이는 파일 포멧중에서 소프트이미지에서 익스포트 가능한 포멧들에 대해서 알아보았다.


이놈의 엔진은 버젼이 개발 년식이 다 달라서 전부 다르다. 라고 생각을 했었다.


하지만 의외로 FBX 포멧을 제대로 지원하고 있었다. 그러니까 하프 라이프 같은 초기 버젼의 소스 엔진 게임이 아니라면 그냥 FBX만 이용해도  된다.


주로 FBX를 이용하면 되는 게임들 목록.


워크샵 및 모델링 튜토리얼 링크.



포탈 2, 레프트4데드, 카운터 스트라이크 GO, 소스 필름 메이커(FBX2DMX를 이용) 팀포트리스 2 (게임내 워크샵 기능을 이용하면 FBX로 모자 임포트가 가능하다.)


도타2는 게임 실행하면 나오는 워크샵 브라우저에서 해당 되는 품목의 체크박스에 정확한 내용을 채워준뒤에 제작을 해둔 FBX를 이용하자.


Left4Dead 2 와 소스 필름 메이커 그리고 포탈 2 및 Counter Strike Global Offensive도 소프트 이미지에서 FBX 포멧으로 익스포트 한뒤에 SourceSDK bin 폴더에 있는 툴인 FBX2DMX 툴로 DMX 포멧으로 변환 하면 만사 해결이다.


팀포트리스 2 워크샵은 itemtest를 시동을 해보니  검은 화면만 나온다. 왜 이럴까? 그냥 이 툴 사용은 포기하고 게임안에 있는 워크샵 브라우저를 사용하자. smd, dmx, fbx 파일들의 사용이 가능하다.


itemtest는 이제 작동도 제대로 되지 않는 구식 툴이  되어 버린 모양이다. 사용치 않는것이 권한다.