<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Kinect: OSC messages.]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5911</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5911&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Kinect: OSC messages.».]]></description>
		<lastBuildDate>Thu, 16 Jun 2011 23:44:43 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AHK: Kinect: OSC messages.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=49159#p49159</link>
			<description><![CDATA[<p>Так... Даже не знаю с чего начать... Предыстория... В общем, есть такая штука &quot;Kinect&quot;. Это сенсор с инфракрасным прожектором и собствственно инфракрасным сенсором. Распознает движения и превращает их грубо говоря в электрический заряд. Как-то так. Он предназначен для приставки XBOX360. Но многие энтузиасты поподключали этот Кинект к различным приборам. Один из них - это ПК. Энтузиасты даже написали дрова под винду для этого кинекта и сейчас уже очень много различных хаков Кинекта под ПК. Вот на этом сайте(не сочтите за рекламу) очень много полезной инфы: http://kinecthacks.net. Так вот. Существует очень много разных хаков. В большинстве бесполезных. Я лично пытаюсь настроить Кинект под игры на ПК. Получается весьма удачно(пока что). Я это делаю с помощью программы под названием GlovePIE и программы Glovenect.&nbsp; В общем, при движении программа Glovenect перехватывает команды, которые посылает кинект и посылает их в виде OSC команд через порт 5252. GlovePIE перехватывает их и превращает в нужные мне действия... Сложно объяснить т.к. я любитель-дилетант и мне не хватает опыта, образования и усердности. Эта прога хорошая, только в ней нет возможности компилировать скрипты в exe формат т.к. разработчик программы забил на неё. Я хочу сделать тоже самое в AutoHotKey, но не знаю как. Можно конечно же садиться и писать на C++, но я не знаю языка С++, а чтобы его выучить в достаточной мере придеться потратить целый год, а через год будут уже официальные дрова вместе с прогами, а там и 8 Windows не загорами с полной поддержкой Кинекта. Значит, надо, чтобы AutoHotKey скрипт начал читать OSC команды, которые посылаются через порт 5252 процессом Glovenect.exe. Я не очень-то понимаю, что я пишу...<br />Вот код, который я вписываю в glovePIE для перехвата прогой GlovePIE из Glovenect.exe:<br /></p><div class="codebox"><pre><code>///////////////
//OSC CLIENT///
///////////////
Osc.listening = true
osc.ListenPort = 5252
/////////////////////////
////// Переназначение переменных/////
/////////////////////////
/// X,Y,Z Coordinates Read
var.head_x = osc.x.joint.head.1
var.head_y = osc.y.joint.head.1
var.head_z = osc.z.joint.head.1
var.neck_x = osc.x.joint.neck.1
var.neck_y = osc.y.joint.neck.1
var.neck_z = osc.z.joint.neck.1
var.l_shoulder_x = osc.x.joint.l_shoulder.1
var.l_shoulder_y = osc.y.joint.l_shoulder.1
var.l_shoulder_z = osc.z.joint.l_shoulder.1
var.r_shoulder_x = osc.x.joint.r_shoulder.1
var.r_shoulder_y = osc.y.joint.r_shoulder.1
var.r_shoulder_z = osc.z.joint.r_shoulder.1
var.l_hand_x = osc.x.joint.l_hand.1
var.l_hand_y = osc.y.joint.l_hand.1
var.l_hand_z = osc.z.joint.l_hand.1
var.r_hand_x = osc.x.joint.r_hand.1
var.r_hand_y = osc.y.joint.r_hand.1
var.r_hand_z = osc.z.joint.r_hand.1
var.l_elbow_x = osc.x.joint.l_elbow.1
var.l_elbow_y = osc.y.joint.l_elbow.1
var.l_elbow_z = osc.z.joint.l_elbow.1
var.r_elbow_x = osc.x.joint.r_elbow.1
var.r_elbow_y = osc.y.joint.r_elbow.1
var.r_elbow_z = osc.z.joint.r_elbow.1
var.l_hip_x = osc.x.joint.l_hip.1
var.l_hip_y = osc.y.joint.l_hip.1
var.l_hip_z = osc.z.joint.l_hip.1
var.r_hip_x = osc.x.joint.r_hip.1
var.r_hip_y = osc.y.joint.r_hip.1
var.r_hip_z = osc.z.joint.r_hip.1
var.torso_x = osc.x.joint.torso.1
var.torso_y = osc.y.joint.torso.1
var.torso_z = osc.z.joint.torso.1
var.waist_x = osc.x.joint.waist.1
var.waist_y = osc.y.joint.waist.1
var.waist_z = osc.z.joint.waist.1
var.l_knee_x = osc.x.joint.l_knee.1
var.l_knee_y = osc.y.joint.l_knee.1
var.l_knee_z = osc.z.joint.l_knee.1
var.r_knee_x = osc.x.joint.r_knee.1
var.r_knee_y = osc.y.joint.r_knee.1
var.r_knee_z = osc.z.joint.r_knee.1
var.l_foot_x = osc.x.joint.l_foot.1
var.l_foot_y = osc.y.joint.l_foot.1
var.l_foot_z = osc.z.joint.l_foot.1
var.r_foot_x = osc.x.joint.r_foot.1
var.r_foot_y = osc.y.joint.r_foot.1
var.r_foot_z = osc.z.joint.r_foot.1</code></pre></div><p>Вверху включается читание команд OSC, указывается порт. Дальше идут точки, по которым ориентируется Кинект. Голова, руки, ноги, колени, торс, шея и т.д. Несложно разобраться. Справа идут переменные, которые находятся в программе Glovenect и посылаются через порт 5252. Слева находятся переменные, которые понимает прога GlovePIE и только с ними я оперирую в дальнейшем при написании скриптов. В общем, я думаю для вас, сис. админы, несложно подсказать мне, как включить osc чтение команд, порт указать и перебить значения(вы мне одно покажите как, остальные я сам перебью). Вот пару примеров в GlovePIE, как можно оперировать с переменными(это уже лишнее, но все-таки):<br /></p><div class="codebox"><pre><code>// Удар левой рукой

(key.J) = (var.r_shoulder_z - var.r_hand_z &gt;= 0.33) and (var.r_shoulder_y - var.r_hand_y &gt; 0.05)

// Удар правой ногой

(key.L) = (var.l_hip_z - var.l_foot_z &gt;= 0.50) and (var.l_hip_y - var.l_foot_y &gt;= -0.40)</code></pre></div><p>Не забрасывайте тему, пожалуйста.</p>]]></description>
			<author><![CDATA[null@example.com (sergeant.coolagin)]]></author>
			<pubDate>Thu, 16 Jun 2011 23:44:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=49159#p49159</guid>
		</item>
	</channel>
</rss>
