Робимо head tracker своїми руками (частина 2) - інфо-бар terraторія - star citizen - офіційний сайт
Welcome to Star Citizen - офіційний сайт російськомовного співтовариства
Отже, в першій частині статті ми готували камеру, яка і буде стежити за рухами голови, а точніше спеціальних міток на ній.
У цій статті ми зберемо прилад, який буде створювати точки для відстеження руху голови, назвемо його "маркер", а так само поставимо софт, який допоможе розпізнавати рухи і передавати їх в комп'ютер за певним протоколу.
"Маркер" я роблю трьох точковий, для цього знадобиться:
1) 3 діода інфрачервоних (можна будь-яких насправді, але інфрачервоний людина не бачить і тому він не відволікає Вас, а звичайний буде дико заважати. Та й зір зламаєте через це, тому що будете поглядати на світло хоч як крути ). Я використовую діоди SFH485P з сточеним головкою, тому що це дає яскраве світло з усіх боків (при повороті не тьмяніє). Якщо Ви не змогли знайти подібних, то круглу капелюшок можна акуратно сточити, отримавши всі ті ж сточені діоди.
3) Проведення для з'єднання цього всього добра
4) Харчування. я використовую USB, тому взяв провід 2 метри (169 руб) від USB-> microUSB (він банально тонше і легше), хоча хтось можливо вибере батарейки
5) Паяльник і припій
6) Щось для рознесення діодів на певній відстань один від одного, а так само кріплення. Я використовував трубочку від повітряної кульки і якісь ковпачки від побутової хімії. Тут вже креатівте самі
7) Драйвер типу "прямі руки"
1) Для початку я намалював 1: 1 схему розташування діодів (класичну). Надалі раджу збільшити відстань між верхнім і нижнім діодами (щодо центрального) по вертикалі, тому що класичне показало себе не дуже добре при нахилі вгору і вниз, а в програмі потім ці відстані можна відрегулювати буде. Наприклад зробіть не 40 і 70, а 60 і 90. хоча нижній можна і не змінювати, він ніби як нормально відпрацьовує досить.
4) Перевіряємо, що всі є і на своїх місцях і. і починаємо творити. Звертаю увагу, що у діода мінус - це товста пластинка, а плюс - тонший. Якщо переплутати, то просто не запрацює, тому що діод пропускає струм тільки в одну сторону. Спалити НЕ спалите. Мінус діода підключається до плюса харчування. тобто ток йде як би від плюса до мінуса.
5) Резистор можна паяти будь-якою стороною, це не принципово. Намагайтеся робити кріплення не здаються надто великими (інакше голова втомиться), але при цьому не кволими. тобто при повороті кріплення повинно жорстко вставати, а не ще секунду "вібрувати".
У мене на фото кольори проводів не дивіться, вони там намішано (що було, то і використовував), тобто червоний місцями мінус, місцями плюс. і т.д.
6) Для кріплення діодів в трубці я використовував трохи клею + термоусадочні трубки (останні не обов'язково потрібні. Просто так естетичніше і у мене вони були) Якщо зверніть увагу, то діоди я навмисне трохи по краях змістив, щоб вони дивилися вперед строго, як і центральний. Далі я залив все це справа клеєм і скріпив кришки. вийшов бокс своєрідний.
7) Ну і врешті-решт все це справа була встановлено на навушники, а точніше прикріплено на двосторонній скотч. хтось може буде використовувати офісний затиск для паперів для кріплення на дужку навушників. хтось ще щось придумає.
Відразу звертаю увагу, що напевно потім перероблю на батарейки. краще нехай буде 1-2 акумулятора на 1.5 вольта, ніж провід. заважає не сильно, але все ж трохи напружує іноді.
УВАГА! Якщо камера використовується PS3 Eye, то для її роботи дивіться інструкції далі!
Такс. з "маркером" закінчили, тепер почнемо з софтом.
1) Якщо Ви використовуєте камеру PS3 Eye, то Вам знадобиться спеціальний драйвер для Windows. Наступний драйвер я використовую на Windows 8.1, але він повинен працювати по ідеї всюди, якщо у кого-то не запрацює, то доведеться погуглити. Причина в тому, що PS3 Eye не призначена для комп'ютера і банально Windows її не бачить спочатку.
Витягуємо камеру з комп'ютера, ставимо дрова, вставляємо камеру. має запрацювати (перевіряється в що йде з драйверами тестової програмою)
2) Ставимо програму FaceTrackNoIR зі спеціальним модулем PointTracker 1.1.
1. Встановлюємо основну програму SetupFaceTrackNoIR_Full_v170.exe
2. Копіюємо бібліотеку з папки PointTracker_1_1 в папку куди встановили попередню програму (щось на зразок C: \ Program Files (x86) \ Abbequerque Inc \ FaceTrackNoIR)
3) Інсталяція завершена. Запустимо встановлену програму (я запускаючи з правами адміністратора для надійності):
Вибираємо в блоці "Tracker Source" пункт "PointTracker 1.1", в "Game protocol" виберемо "FreeTrack 2.0". Далі заходимо в "Settings" блоку "Tracker Source" і перевіряємо, що на вкладці "Camera" у Вас обрана саме Ваша камера і стоїть максимальний FPS. А на вкладці "Model" в подвкладке "Clip" все відстані виставлені так, як у Вас було за схемою. інакше подправьте. Там же є кнопка калібрування (Calibrate) щоб зафіксувати центр. Тиснемо "OK" і виходимо в головне вікно програми.
Після цього всього тиснемо в блоці "GO!" кнопку "Start", має запуститися відстеження точок. Відповідно на голову треба вже натягнути і включити "маркер". При повороті голови у Вас будуть змінюватися зліва координати, а зверху морда мужика повинна рухатися так само, як і Ваші руху. На екрані ж в середині зліва з'являться точки від діодів з червоними перехрестями, які означають, що точка спіймана.
Якщо світло від діодів дуже яскравий (взагалі підгонку таку рекомендую зробити всім) і перехресть на кожен діод червоних промальовується дуже багато, то заходимо в "Settings" блоку "Tracker Source", вкладка "Camera" і граємося з повзунком "Threshold" до того, поки не отримаємо найменший радіус світіння діода на зображенні, при цьому на ньому буде тільки одне перехрестя. Трохи нижче "Threshold" в блоці "Status" в "Extracted Points" у вас має бути написано що 3 OK! Тобто 3 точки знайдено. якщо діодів більше, то точок буде відповідно більше.
Якщо в грі у вас переплутано право-ліво або верх-низ, то в головному вікні в блоці "Global Settings" ставимо галочку на Invert для Yav або Pitch відповідно. можливо ще Roll десь в нагоді (в SC напевно).
Щоб в грі не зламати шию крутячи її в різні боки, можна погратися з настройками "Curves". Так можна домогтися, наприклад, плавного повороту на самому початку повороту голови і більш різкого в кінці. це дасть те, що при невеликому ході голови при огляді вперед у Вас не буде в кабіні голова трястися постійно, а буде дивитися вперед чітко, але при повороті на певний кут почне все більше різко змінюватися поворот голови. Кути треба робити так, щоб не доводилося для повороту на 120 градусів викручувати шию навіть на 45. інакше косоокість заробите. Думаю в межах 30 для 120 градусів і 10-15 для 90 - цілком зручно повинно бути. Але тут все індивідуально.
Разом бюджет рішення склав:
1) Камера б / у - 400 рублів
2) 3 діода - 300 рублів (за фактом 500 було і 5 діодів)
3) USB провід - 169 рублів
4) Резистор - 20 рублів
5) Решта безкоштовно було прокладено по шафах і антресолях
Разом: 889 рублів, замість 9 тис. Рублів. мені здається воно того варто
P.S. Зараз грав в EuroTruckSimulator 2 з цієї приблудою. все працює відмінно, хоча треба все ж криві налаштувати для зручності буде. Дуже незвично я Вам скажу! З одного боку набагато зручніше і швидше, та й точніше в рази стало головою крутити. З іншого треба звикати, тому що часто під час їзди на щось відвернешся, картинка відразу повертається і в мозку паніка, тому що краєм ока дорогу вже не бачиш В SC думаю такого не буде, там дороги не такі вузькі