TrackIR은 적외선 카메라로 전방에 나타난 적외선 광원을 추적해서 광원이 움직이는 방향으로 화면에 나타난 시점을 이동해 주는 장치이며, 비행 시뮬레이션과 같이 자유로운 시선의 이동이 중요한 게임에서 반드시 필요한 장비입니다.
비행 시뮬레이션 중에서도, 특히 긴박한 공중전을 벌여야 하는 전투 비행 시뮬레이션에서는 이 장비가 없다면 진행이 어려울 정도로 그 중요도가 높습니다. 앞선 글에서 언급했듯이, 항공기의 자세를 제어하는 Stick 다음으로 중요한 장비가 바로 TrackIR입니다.
TrackIR은 적외선 광원이 내장되어 있는 Head Gear와 적외선 카메라로 이루어져 있습니다. Head Gear를 머리에 쓰고 전방에 놓인 적외선 카메라 앞에서 움직이면, PC에 설치된 프로그램과 연동하여 시선 이동 정보를 추출해내고 이를 시뮬레이션 프로그램으로 전달해서 최종적으로 화면에 나타난 시선을 이동합니다.
이 TrackIR은 국내에서 생산하거나 판매하는 제품은 없고, 구입하고자 한다면 아마존 등을 통해 해외 구매를 해야 합니다. 배송비나 통관 세금을 제외하더라도, 이 글을 쓰는 시점 기준으로 가격이 약 20만원($176) 정도로 비싼 편입니다. 적외선 카메라가 상당히 고가이기 때문입니다.
▲ 아마존에서 판매중인 TrackIR 제품
처음에는 스로틀스틱 세트에 이어서 이 TrackIR까지 구입을 하려고 했으나, 가격이 너무 비싸서 잠시 고민을 했습니다. 평소 하던 짓(?)들을 좀 응용하면 동일한 기능을 하는 장비를 저렴한 가격에 충분히 제작할 수 있을 거라 생각하고 구글링을 시작했습니다. 약간의 코딩 삽질도 각오하고 말이죠.
헌데, 검색을 하자마자 결과 첫페이지로부터 프리트랙(FreeTrack)의 존재를 알게 되었습니다. FreeTrack은 TrackIR의 소프트웨어 파트라고 할 수 있습니다. 즉, PC에 입력된 적외선 영상을 처리해서 시점정보를 추출하고 이를 시뮬레이터로 전달해주는 프로그램입니다. 코딩까지 각오했었는데 해야할 일이 절밙, 아니 그 이하로 줄어버렸습니다. 제가 준비해야 하는 것은 하드웨어 부분, 즉, 적외선 카메라와 헤드기어만 제작하면 되는 것이었죠..ㅎㅎ
프로그램은 다 준비가 되었겠다, 바로 필요한 부품들을 모으고 TrackIR 하드웨어 제작에 돌입했습니다. 하드웨어라고는 하지만, 적외선 카메라는 웹캠을 활용하면 되고 헤드기어는 프레임에 적외선 LED만 붙이면 되는 것이었기 때문에 제작 시간이 그다지 오래 걸리지는 않았습니다.
적외선 카메라: 웹캠 + 필름
TrackIR에서 필요한 적외선 카메라는 시중에서 판매하는 적외선 카메라처럼 고성능일 필요가 없으므로, 웹캠을 간단히 가공하여 사용해도 무방합니다.
▲ 적외선 카메라로 개조한 저렴한 웹캠
적외선 필터 제거
오늘날 생산하는 웹캠에는 비가시광선인 적외선의 유입을 막기 위해 렌즈와 CCD 사이에 적외선 필터가 장착되어 있습니다. 적외선을 감지하기 위해서는 웹캠을 분해해서 이 적외선 필터를 제거해야 합니다.
제가 사용한 웹캠은 드라이버를 사용할 필요 없이 앞부분의 렌즈를 돌려서 뺀 뒤 간단히 적외선 필터를 제거할 수 있었습니다. 렌즈 뒤쪽에 붙어 있는 짙은 붉은빛의 유리조각이 바로 적외선 필터입니다. 접착제로 고정되어 있기 때문에 순순히 빠져나오지는 않으므로 송곳으로 깨서 조각낸 뒤 핀셋 등으로 집어내야 합니다. 송곳으로 필터를 깰 때 렌즈가 손상되지 않도록 주의하고, 남은 유리조각들은 진공청소기로 빨아들여서 제거합니다.
가시광선 필터(필름) 장착
제거한 적외선 필터 자리에 가시광선 필터를 끼워서 가시광선을 차단해야 깨끗한 적외선 영상을 얻을 수 있습니다. 가시광선 필터를 장착하지 않으면 FreeTrack 프로그램이 올바르게 동작하지 않습니다.
주변에서 쉽게 구할 수 있는 가시광선 필터는 바로 필름입니다. 요즘은 대부분 디지털 카메라를 사용학기 때문에 이 필름을 구하기 어려울 줄 알았는데, 가까운 사진관에서 쉽게 구할 수 있었습니다.
이 필름을 적외선 필터와 같은 크기로 잘라서 원래 적외선 필터가 있던 위치에 끼우고, 빠지지 않도록 테이프나 접착제 등으로 고정시킵니다.
Head Gear: 자작
Head Gear는 기능적인 면으로는 적외선 LED를 켜고 끄는 역할밖에 없으므로 고민할 필요도 없었으나, 디자인적(?)인 면에서 약간 고민을 했습니다.
구글 등에 검색해보면 대개 옷걸이 등을 휘어서 끝에 IRED를 붙이고 휴대폰 충전기를 이용해서 전원을 공급하는 형태가 대부분이었는데, 저는 무선으로 만들고 싶었기 때문입니다.
게임 뿐만 아니라 컴퓨터를 할 때 이어폰 선도 걸리적거려서 블루투스 무선 이어폰을 사용하는 마당에, TrackIR 전원선까지 늘어져 있다면 상당히 불편할 것 같아서였습니다.
무선으로 만들려면 Head Gear에 전원으로 사용할 배터리도 함께 내장해야 하기 때문에 무게가 그만큼 더 증가합니다. 사용 시간을 고려해서 배터리는 수은전지가 아닌 AAA건전지 두 개로 하기로 결정하고, 머리띠에 붙여서 컴퓨터를 사용하는 데 불편함이 없는지 확인해 보았습니다...
머리에 뭔가 무거운걸 이고 있다는 느낌이 들지 않았으며, 머리를 세게 흔들어도 머리띠가 떨어지지 않았으므로 통과. 이대로 강행하기로 합니다.
▲ Head Gear 제작을 위해 모은 재료들 (실제 사용한건 이것과 조금 다릅니다.)
동네 다이소에서 1000원짜리 머리띠를 구입하고, 본체와 머리띠를 서로 분리가 가능한 탈착식으로 제작하려고 벨크로 테이프도 준비했습니다. AAA전지 홀더는 용산 전자부품상가에서 어렵지 않게 구할 수 있었습니다. 나머지는 동아리방에서 굴러다니던 저항과 LED, IRED, 전선 등등 입니다.
▲ 간단하던 복잡하던, 하드웨어 제작의 시작은 전원부부터입니다.
▲ 전지홀더 단자, 전원 스위치, 전원 LED
▲ 적외선 LED 가공
적외선 LED를 그냥 사용하면 반원 형태의 발광부가 볼록렌즈 역할을 해서 적외선이 한 점으로 모이게 됩니다. 이렇게 해서 한 점에 모인 강렬한 적외선이 웹캠으로 입력되면, 적외선이 CCD 표면과 렌즈 사이에서 반사되면서 의도하지 않은 산란 현상이 나타고, 결과적으로 FreeTrack의 인식률이 상당히 떨어지게 됩니다.
이러한 현상을 막기 위해 그라인더나 사포로 원통형의 발광부를 평평하게 가공하고, 측면도 불투명하게 만들어서 적외선이 처음부터 산란되어 발광되도록 합니다.
FreeTrack 포럼 등을 보면 적외선 LED는 SFH485P를 쓰라고 되어 있는데, 실제로는 꼭 그 제품을 사용하지 않아도 됩니다. 주변에서 쉽게 구할 수 있는 적외선 LED도 밝기가 충분하므로 FreeTrack에 사용할 수 있습니다.
▲ 불투명 가공한 적외선 LED
▲ 전면에 적외선 LED를 부착한 모습
▲ 밝기 조절 다이얼
레귤레이터와 같은 별도의 전원 소자를 사용하지 않았으므로, 전원부 반대편에 TR과 가변저항을 사용한 밝기조정 회로를 장착하여 전지가 소모됨에 따라 발생할 수 있는 문제를 해결할 수 있도록 하였습니다. 즉, 전지를 교체한 직후에는 밝기를 낮춰서 사용하고, 전지의 수명이 거의 다 되었을 때는 밝기를 높여서 사용합니다.
▲ 메인보드 뒷면
▲ 메인보드 앞면
▲ 수직보드 뒷면
수직보드의 아래쪽 IRED에는 별도의 스위치를 장착하여 필요에 따라 3-Point Mode와 4-Point Mode를 전환할 수 있도록 하였습니다.
▲ 수직보드 앞면
▲ 메인보드와 수직보드 결합 모습 뒷면
▲ 메인보드와 수직보드 결합 모습 앞면
▲ 구멍이 숭숭 뚫린 초록색 기판이 거슬리므로 검은색 수축튜브로 위장했습니다.
▲ 포맥스로 만든 수직 기판 지지대
▲ 메인보드와 전지홀더, 지지대 결합
▲ 수직기판까지 결합한 모습
▲ 보관을 위해 분리한 모습
수직 기판을 분리형으로 만든 이유는 휴대성을 높이고, 보관시 파손되지 않도록 하기 위함입니다. 전지홀더와 머리띠는 벨크로 테이프를 이용해서 언제든지 탈착이 가능하고, 필요시 머리띠가 아닌 헤드폰 등에도 헤드기어를 부착할 수 있도록 하였습니다.
▲ 완전히 조립한 모습입니다.^-^
FreeTrack 설정
헤드기어를 제작했으면, FreeTrack 프로그램에 헤드기어의 수치 정보를 입력해야 정확한 트래킹을 할 수 있습니다.
▲ Model 탭에서 3-Point Cap을 선택하고, 헤드기어의 수치정보를 입력합니다.
▲ Global 탭에서 Sensitivity 값을 설정합니다.
▲ Profile 탭에서 Sensitivity 값을 설정합니다.
▲ Cam 탭에서 Start 버튼을 누르고, Threshold를 조절하며 3개의 점이 안정적으로 잡히도록 합니다.
표시되는 점의 크기가 너무 작거나 크다면, [Point size] 탭에서 Point size range를 지정해주면 됩니다. 머리를 좌/우 및 상/하로 움직여서 왼쪽의 해골이 머리를 돌린 방향으로 따라 움직이는지 확인합니다. 이 때, 전면을 보고 있는 상태이므로 좌/우 방향이 바뀌어서 보임에 유의합니다.
이렇게 설정 하고 실제 시뮬레이션에서 시선 이동을 해 보니, 기대 이상으로 잘 동작했습니다. 움직임이 너무 민감하다거나 둔다하고 느껴지는 경우 위에서 설정한 Sensitivity 값을 조정하면서 자신에게 맞는 최적의 설정을 찾으면 됩니다.