도움말 부분의 답변을 해석한 것임.
기본적인 질문들
버그나 제안 같은 건 어떻게 합니까?
XNA Game Studio Express에 등록하세요, 등록을 함으로서 버그 발견 보고나 제안을 할 수 있고, 이에 대한 피드백도 XNA나 MS Connect 페이지에서 받을 수 있습니다. (주소 : http://www.microsoft.com/XNA)
제가 만든 게임은 어떻게 배포합니까?
‘게임을 배포 및 공유하는 방법’ 부분을 참고하세요.
제가 만든 XNA 프레임워크 게임을 플레이하기 위해 XBOX 라이브에 연결해야 합니까?
만약 다수 사용자 게임을 만든다고 할 경우, 반드시 XNA 개발자 클럽에 회원으로 가입해야 하나요?
XNA 게임 런처는 XBOX 라이브에 연결하는 것을 기반으로 합니다. 광역 멀티플레이 게임을 원하는 사용자가 있어도 마찬가지입니다. XNA 게임 런처를 실행하기 위해서는 반드시 XNA 개발자 클럽에 가입되어 있어야만 가능합니다. 실행 후에는 플레이 할 사람의 프로필을 추가하여 플레이가 가능합니다. 만약 1인용 싱글 게임에 위와 같이 다수의 사용자를 초대할 경우, XNA 게임 런처는 기본 옵션(플레이어 1)만을 제공하게 됩니다.
윈도우와 XBOX용 둘 다 대상으로 할 수 있습니까?
솔루션의 기본 구조체는 XNA Game Studio Express에서 제작한 것을 기반으로 합니다. 이것만으로도 당신이 대상으로 하는 플랫폼이나 고유의 게임 솔루션을 만드는 데 지장이 없을 정도로 높은 환경을 제공합니다. 솔루션을 저장할 때는 솔루션마다 고유의 폴더를 만들어 두세요, 그렇게 해 두면 두 솔루션 간의 파일 공유가 원활해집니다.
제 프로젝트에 외부 파일을 사용하려고 합니다. 어떻게 해야 합니까?
솔루션 익스플로러 창에서 프로젝트를 클릭하고 마우스 오른쪽 버튼을 누르세요, 그 뒤 나오는 항목 중 ‘추가 -> 파일 참조(Add -> Existing Item)’을 선택하세요, 링크시키고 싶은 파일을 선택하시면 됩니다. 이것으로 당신의 프로젝트 안에 파일을 사용하게 됩니다.
(역주 : 파일을 가져오지 않고 그 속성만 그대로 사용하려 할 경우에는 ‘Add -> Add as Link’ 명령을 선택하여 파일을 선택하면 된다. 전자의 경우는 파일을 그 구성 안에 복사하지만. 이 경우는 복사를 하지 않고 그 속성만 가지고 온다)
Tip
프로젝트에 외부 파일을 링크하는 것과 프로젝트에 외부 파일을 추가하는 것은 차이가 있습니다. 전자의 경우는 파일을 참조할 뿐이며 절대 복사는 하지 않습니다(후자의 경우는 복사합니다). 링크 파일 참조 방식은 나중에 추가할 외부 파일과는 별개로 운용할 수 있다는 것과 솔루션의 최종 버전을 보호하는 데에 유용합니다.
제 컴퓨터가 XBOX와 연결되지 않습니다. 어떻게 해야 하나요?
네트워크 세팅, 커넥션 키, 파일명, 또는 파일 시스템 중 하나, 또는 그 이상에서 문제가 발생할 가능성이 있습니다. ‘XBOX 360 게임 배치’ 항목의 세부 사항을 참고해 주세요.
“NoSuitableGraphicsDeviceException 이 사용 불가능합니다” 에러 메시지를 처리하는 방법은 무엇인가요?
세부 그래픽 디바이스가 생성되지 않아서 생기는 에러입니다. XNA game Studio는 사용자가 가진 그래픽 디바이스를 체크하여 이것이 사용한지 아닌지를 검사합니다. 만약 위와 같은 에러 메시지가 나오는 경우, 그래픽 카드가 DirectX9을 지원하지 않는다거나 Shader Model 1.1을 지원하지 않거나, 혹은 하드웨어 가속기 슬라이더가 Full 상태로 세팅되어 있지 않기 때문에 발생하는 문제입니다.
DirectX가 설치되었는지, 혹은 지금 사용하는 버전이 몇인지 확인하는 방법
1. 시작 -> 실행 항목을 선택합니다.
2. 대화 상자가 나오면 ‘dxdiag’라고 입력한 뒤 확인 버튼을 클릭합니다.
3. 시스템 탭에서 DirectX의 버전이나 비디오 카드 정보를 확인할 수 있습니다.
Windows XP에서 하드웨어 가속 설정 변경
1. 데스크톱 화면에서 마우스 오른쪽 버튼을 클릭한 뒤 속성을 선택합니다.
2. 설정 탭을 눌러 고급 항목을 선택합니다.
3. 문제 해결 탭을 누릅니다.
4. 하드웨어 가속이라 쓰인 슬라이더를 ‘최대’까지 설정합니다.
5. 적용 버튼을 누른 뒤 창을 닫습니다.
Windows Vista에서 하드웨어 가속 설정 변경
1. 데스크톱 화면에서 마우스 오른쪽 버튼을 눌러 개인 화면 컨텍스트 메뉴를 선택합니다.
2. 디스플레이 설정을 선택합니다.
3. 고급 설정을 선택합니다.
4. 문제 해결 탭을 누릅니다.
5. 설정 변경 버튼을 누른 뒤, 하드웨어 가속 슬라이더를 ‘최대’까지 설정합니다.
주 : 만약 하드웨어 가속 형식이 고정된 그래픽 드라이버의 경우에는 설정 변경 버튼이 활성화되지 않습니다.
6. 적용 후 창을 닫습니다.
어떤 쉐이더 모델을 지원하는지 알아보는 방법
‘쉐이더 2.0에 대한 자세한 정보를 찾는 법’ 에서 그래픽 카드가 프로그램적으로 지원가능한 쉐이더 부분을 참조하십시오.
비디오 플래이백을 XNA에서 사용하는 방법은 무엇입니까?
이 기능은 아직 지원하지 않습니다. 추후 릴리즈할 버전에서 지원할 계획입니다.
어플리케이션이 제 로컬 컴퓨터에는 문제가 없습니다만 네트워크 폴더로 옮기게 되면 보안에 걸려 제외됩니다.
왜 그런가요?
CLR(공통 언어 런타임)의 특징 때문입니다. 하나의 로컬 영역에서 활동하는 어플리케이션 프로그램을 다른 지역이나 영역에 사용할 경우, 그 영역 안에 있는 보안 규칙에 의해 제한이 걸리기 때문입니다. XNA에서는 이에 따른 보안 기능을 아직 제공하고 있지 않은 상태입니다.
XNA에서 지원하는 쉐이더 모델은 어떤 것들이 있나요?
XNA는 윈도우 상의 DirectX 9 시리즈 쉐이더 모델(1.x ~ 3.0)을 지원합니다. 지원하는 쉐이더 모델의 전체 리스트를 확인하고 싶으시면 ShaderProfile 부분의 열거형을 참고하세요. XBOX 360에서, XNA는 쉐이더 모델 2.0 및 특수 기능을 지원하는 쉐이더 3.0을 지원합니다. 몇몇 스타터 키트는 쉐이더 사용에 제한이 걸려있을 수도 있습니다. 예를 들면, 스페이스 워 스타터 키트는 쉐이더 모델 2.0
비주얼 스튜디오가 XNA를 지원합니까?
아닙니다. XNA는 오로지 MS Visual C# Express에만 적용되며 비주얼 스튜디오에는 적용되지 않습니다. 비주얼 스튜디오에 적용되는 시기는 이후 버전에서나 가능할 것입니다. C# Express 는 비주얼 스튜디오와 독립적으로 분리되며 충돌하지 않습니다.
제가 만든 XBOX 게임의 인증이 왜 느린가요?
Xbox를 기동하여 게임을 사용하는 동안 딜레이 사인을 사용하는 것은 콘솔 내부의 이름 조회를 하기 때문입니다. 이름 조회 동안에는 완료 전까지 완전하게 프로세스가 동작하지 않을 수 잇습니다.
3D 그래픽
XNA에서 광원과 재질 이펙트를 만드는 방법은 무엇입니까?
광원과 재질은 XNA 안의 effect 메소드에 기본적으로 포함되어 있습니다. 포함된 이들 광원과 재질로 버텍스 또는 픽셀 칼라의 전환을 가능하게 합니다. 간단한 이펙트는 BasicEffect 클래스 안에 구조화되어 있으며 기본적인 광원과 재질을 제공하는 동시에 기본적인 월드, 시점, 프로젝션 변형을 제공합니다. BasicEffect 클래스 안에 있는 메소드를 사용하여 원하는 이펙트를 형성할 수도 있습니다.
내가 원하는 이펙트를 구성하는 방법은 무엇입니까?
Effect 클래스를 사용하여 만들 수 있는 간단 예제를 참고하시면 됩니다. 자세한 것은 ‘커스텀 이펙트의 제작 및 적용’ 부분을 참고하세요.
이펙트 파일은 무엇입니까?
이펙트는 버텍스와 픽셀 칼라, 구조화된 특화 랜더링 기술의 조합으로 이루어져 있습니다. 이펙트는 HLSL(high-level shader language)이나 어셈블리 코드로 작성이 가능합니다. 이펙트 파일은 이펙트 코드를 포함하고 있습니다. 확장자는 .fx이며 HLSL 코드를 포함하고 있습니다. HLSL이나 어셈블리 코드로 작성된 이펙트는 어플리케이션에서 사용하기 전에 바이너리 포맷으로 컴파일됩니다. HLSL에 대한 개요나 이펙트 파일 포맷에 대한 세부 설명은 MSDN 안에 들어 있는 DirectX 프로그래밍 관련 부분을 참고하십시오. HLSL에 대한 완성된 항목과 Shader ASM, 그리고 Direct3D API 레퍼런스에 관한 내용이 기술되어 있습니다.
Graphics.SpriteBatch를 사용해 표시했는데. 3D 오브젝트가 정확하게 나오지 않습니다.
기본적으로. SpriteBatch.Begin는 랜더링된 상태를 저장하지 않습니다. 때문에 현재 지정한 랜더링의 특성이 불완전하게 변경되어 나타나게 될 수 있습니다. 이 현상을 해결하려면 SpriteBatch.End를 호출하여 종료시킨 뒤 랜더링된 오브젝트를 리셋시키거나, SpriteBatch.Begin을 호출한 뒤 오브젝트를 SaveStateMode.SaveState로 넘겨주어 이전 랜더링 상태로 되돌려 이후 그려질 스프라이트에 맞춰줘야 합니다.
입력
XBOX 360 컨트롤러의 맵 버튼에 값을 할당할 수 있습니까?
할 수 없습니다. 그 버튼은 입력값에서 제외됩니다.
마우스 커서가 보이지 않습니다. 어떻게 하면 되나요?
Game.IsMouseVisible 변수를 true로 맞추면 됩니다. 이 변수는 오직 WIndows에만 해당됩니다.
윈도우상에서 XBOX 360 컨트롤러가 제대로 동작하지 않습니다. 어떻게 합니까?
윈도우상에서 컨트롤러를 제대로 동작시키려면 최신 XBOX 360 컨트롤러 드라이버를 설치해야 합니다. 이 드라이버는 마이크로소프트 하드웨어 다운로드 게임 소프트웨어 항목에서 다운로드가 가능합니다.
오디오
XACT 툴을 사용하지 않고 오디오 파일을 로드 및 적용시킬 수 있습니까?
안 됩니다. 프로젝트 안에서 플레이하기 전에 XACT를 통해 웨이브 파일을 컴파일하여 등록하세요.
XACT에 대한 사용방법에 대해 더 많은 정보를 알 수 있습니까?
XACT의 간단한 사용법과 실행 방법이 ‘XACT를 통한 사운드 파일 추가’ 와 ‘사운드 출력’ 부분에 설명되어 있습니다. XACT를 통해 사운드를 제작하려는 경우, 카테고리 – 다양화(Variables) – 고급 기술(Another advanced features) 항목 안에 있는 ‘XACT 오디오 제작’을 참고하세요.
SoundBank에서 GetCue를 호출할 경우, 리턴하지 않는 이유가 무엇입니까?
XACT 프로젝트에서 사운드 뱅크 안의 속성 중 IncludeCueNames 부분이 false 상태일 확률이 높습니다. 프로젝트 안의 사운드 뱅크마다 이 항목은 true로 고쳐주시면 됩니다. XACT를 열고, 프로젝트를 로딩한 후 프로젝트 트리 뷰에서 사운드 파일을 클릭하시고IncludeCueNames 부분을 전부 true로 고친 뒤 프로젝트를 리빌드하십시오.
수학
XNA에서 사용하는 좌표계는 무엇인가요?
오른손 좌표계를 사용합니다. (Y축 : 수직. X,Z축 : 수평)
스토리지
스토리지 클래스를 사용하는 데 제한이 걸립니다. 이유가 무엇인가요?
가능성이 있는 대답은 아마 OS 폴더 – 특히. %_NTDrive%\Documents and Settings\ 부분의 문제일 것입니다. 이 경우 폴더는 네트워크 드라이브로 묶여 있습니다. 플레이어 데이터의 저장 및 네트워크 영역에서 타이틀을 불러오는 것은 이 버전에서는 불가능한 영역입니다.
Note
XNA에 관한 다른 질문 사항은 XNA 개발자 센터를 방문해 주십시오.