Arduinoć§å§‹ć‚ć‚‹IoTļ½žå¤–ć‹ć‚‰å®¶é›»ć®ę“ä½œć‚’č”Œć†ć¾ć§ļ½ž

ć“ć‚“ć”ć‚ƒļ¼ę“‹ę¢ØšŸć§ć™ć€‚

ć€Œć‚¹ćƒžćƒ›ć‹ć‚‰å®¶é›»ć®ę“ä½œć—ćŸć„ćŖļ½žć€ćŖć‚“ć¦ę€ć£ćŸć“ćØēš†ć•ć‚“ē„”恄恧恗悇恆恋ļ¼Ÿ

ćć£ćØ恂悋ćØę€ć„ć¾ć™(ęš“č«–)^^

ćć“ć§ä»Šå›žćÆć‚¹ćƒžćƒ›ć‹ć‚‰å®¶é›»ć‚’ę“ä½œć™ć‚‹ē‚ŗć®ę‰‹é †ć‚’å…¬é–‹ć—ćŸć„ćØę€ć„ć¾ć™ļ½ž

今回ä½æ恆悂恮

č£½ä½œē’°å¢ƒ

惻Unity + C#

ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³(ę“ä½œ)å“ć‚¢ćƒ—ćƒŖ恮開ē™ŗ恫ä½æć„ć¾ć™ć€‚ä»Šå›žē“¹ä»‹ć™ć‚‹ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćÆC#恧ę›øć‹ć‚Œć¦ć„ć‚‹ć®ć§.NET Framework悄Xamarinć§ć‚‚å‹•ćć¾ć™ć‚ˆć€‚(ē¢ŗčŖęøˆ)

惻Arduino + C

ćƒŖćƒ¢ć‚³ćƒ³(å®Ÿč”Œ)å“ć«ćÆArduino悒ē”Øć„ć¾ć™ć€‚ćŖ恊č؀čŖžćÆCč؀čŖžćƒ™ćƒ¼ć‚¹ć§ć™ć€‚

Ꝑꖙ

惻Arduino ęœ¬ä½“


HiLetgoĀ® 2å€‹ć‚»ćƒƒćƒˆ NEWćƒćƒ¼ć‚·ćƒ§ćƒ³ UNO R3 ATmega328P USB CH340G ArduinoćØäŗ’ę›ę€§ + USB ć‚±ćƒ¼ćƒ–ćƒ« [äø¦č”Œč¼ø兄品]

ä»Šå›žć®äø»å½¹ć§ć™ć€‚Cč؀čŖžć‚’ä½æć£ć¦é›»å­éƒØå“ć‚’ę‰±ć†ć“ćØćŒć§ćć¾ć™ć€‚

ćƒ»čµ¤å¤–ē·šLED

ćƒŖćƒ¢ć‚³ćƒ³ć®ę“ä½œäæ”å·ć‚’å†ē¾ć™ć‚‹ćŸć‚ć«ä½æć„ć¾ć™ć€‚ę³¢é•·ćÆ 950nm恫čæ‘恄悂恮悒ä½æć„ć¾ć™ć€‚ā€»850nm恧ćÆå‹•ćć¾ć›ć‚“ć§ć—ćŸć€‚

ćƒ»čµ¤å¤–ē·š å—å…‰ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«

ćƒŖćƒ¢ć‚³ćƒ³ć®ę“ä½œäæ”å·ć‚’å†ē¾ć™ć‚‹ćŸć‚ć«ä½æć„ć¾ć™ć€‚

ćƒ»ćƒœć‚æćƒ³

ę“ä½œē”Ø恫ä½æć„ć¾ć™ć€‚

惻Wi-Fićƒ¢ć‚øćƒ„ćƒ¼ćƒ«

ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć‹ć‚‰ę“ä½œć—ćŸć„å “åˆć€ä½æē”Øć—ć¾ć™ć€‚Arduinoć‚’ć‚¤ćƒ³ć‚æćƒ¼ćƒćƒƒćƒˆć«ęŽ„ē¶šć§ćć‚‹ć‚ˆć†ć«ć™ć‚Œć°ć„ć„ć®ć§ć‚¤ćƒ¼ć‚µćƒćƒƒćƒˆć§ć‚‚OKļ¼

ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³

惻IC2 OLED (128×64)

Arduinoć‹ć‚‰ęƒ…å ±ć‚’å‡ŗ力(åÆč¦–åŒ–)ć™ć‚‹ćŸć‚ć«ä»Šå›žćÆä½æć„ć¾ć—ćŸć€‚

ćƒ»ć‚³ćƒ³ćƒ‡ćƒ³ć‚µćƒ¼

ćƒŖćƒ¢ć‚³ćƒ³ć®å…‰ć‚’é ćć¾ć§é£›ć°ć›ć‚‹ć‚ˆć†ć«ć™ć‚‹ćØ恍ä½æć„ć¾ć™ć€‚

惻ćƒŖćƒ¬ćƒ¼

čµ¤å¤–ē·šę“ä½œć§ćÆćŖćć‚³ćƒ³ć‚»ćƒ³ćƒˆę“ä½œć‚’ä½æ恄恟恄ćØćć«ć©ć†ćž

仕ēµ„ćæ

ē°”単ćŖć‚¤ćƒ”ćƒ¼ć‚ø図

ä¾‹ćˆć°ć€ę™®é€šćÆå·¦ć®ć‚ˆć†ć«ćƒ†ćƒ¬ćƒ“ć®ę“ä½œć«ćƒŖćƒ¢ć‚³ćƒ³ć‚’ä½æ恄ćƒŖćƒ¢ć‚³ćƒ³ćŒćƒ†ćƒ¬ćƒ“ć«äæ”å·ć‚’é€ć£ć¦ć„ć¾ć™ć€‚

ć—ć‹ć—ć€ć‚¹ćƒžćƒ›ć§ę“ä½œć—ćŸćć¦ć‚‚ć‚¹ćƒžćƒ›ć§ćÆćƒ†ćƒ¬ćƒ“ć«äæ”å·ć‚’é€ć‚‹ć“ćØćŒć§ćć¾ć›ć‚“ć€‚

ćć“ć§ä»Šå›žćÆäæ”å·ć‚’é€ć‚‹éƒØåˆ†ć‚’Arduinoć«č‚©ä»£ć‚ć‚Šć—ć¦ć‚‚ć‚‰ć„ć€ć‚¹ćƒžćƒ›ć‹ć‚‰Arduinoć‚’ę“ä½œć™ć‚‹ć“ćØ恧間ꎄēš„ć«ćƒ†ćƒ¬ćƒ“ć«äæ”å·ć‚’é€ć‚‹ćØ恄恆悏恑恧恙怂

ä½œęˆ (Arduino偓)

ć™ć¹ć¦čŖ¬ę˜Žć™ć‚‹ćØé•·ććŖć£ć¦ć—ć¾ć†ćŸć‚ē°”単ćŖčŖ¬ę˜Žć§ć™ć€‚

Arduino恧ćÆčµ¤å¤–ē·šäæ”å·ć‚’äæå­˜ćƒ»å†ē”Ÿć—ć¾ć™ć€‚

å—å…‰ćƒ¢ć‚øćƒ„ćƒ¼ćƒ«ć‚’ä½æ恄ćƒŖćƒ¢ć‚³ćƒ³ć®äæ”å·ć‚’äŗ‹å‰ć«ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ć—ć€ć‚¹ćƒžćƒ›ć‹ć‚‰ć®äæ”å·ćŒå±Šć„ćŸć‚‰čµ¤å¤–ē·šLED悒ē”Øć„ć¦ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ć—ćŸäæ”å·ć‚’ 再ē”Ÿć™ć‚Œć°ć„恄ćØ恄恆悏恑恧恙怂

ćƒŖćƒ¢ć‚³ćƒ³ć‚’ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ć™ć‚‹ę§˜å­

ć¾ćšć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼(äæå­˜)ć™ć‚‹ćŸć‚ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć§ć™ć€‚

ę¬”ć«å†ē”Ÿć™ć‚‹ćŸć‚ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć§ć™ć€‚

ć“ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć‚’ćƒœć‚æćƒ³ć‚’ęŠ¼ć—ćŸćØćć«å‘¼ć³å‡ŗć™ć‚ˆć†ć«ć™ć‚Œć°ćƒœć‚æćƒ³ć‚’ęŠ¼ć—ćŸćØćć«ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ć—ćŸäæ”å·ćŒå†ē”Ÿć•ć‚Œć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

čµ¤å¤–ē·šLEDćÆć‚«ćƒ”ćƒ©ć§ē‚¹ēÆ恗恦恄悋恓ćØ悒ē¢ŗčŖć§ćć‚‹ć€‚
äøŠć®GIFćÆå®Ÿéš›ć«å†ē”Ÿć—ćŸćØ恓悍怂ćƒŖćƒ¢ć‚³ćƒ³ć®äæ”号ćØåŒć˜ē‚¹ę»…悒恗恦恄悋恓ćØ恌悏恋悋怂

ć‚¹ćƒžćƒ›ć‹ć‚‰ć®ę“ä½œć«ä½æē”Ø恙悋際ćÆUDPćƒćƒ¼ćƒˆć‚’ē›£č¦–恗态äæ”å·ćŒęµć‚Œć¦ććŸć‚‰äŗ‹å‰ć«ę±ŗć‚ćŸćƒ‘ć‚±ćƒƒćƒˆę§‹é€ ć«åŸŗć„ćåƾåæœć—ćŸäæ”å·ć‚’å†ē”Ÿć™ć‚‹ć‚ˆć†ć«ć—ćŸć€‚

ę“ä½œē”Øć‚¢ćƒ—ćƒŖč£½ä½œ (ę“ä½œå“)

ē“¹ä»‹ē”Ø恫éƒØå±‹ć®é›»ę°—ć‚’ON惻OFFć«ć™ć‚‹ę©Ÿčƒ½ć ć‘ć‚’ć¤ć‘ćŸć‚‚ć®ć«ć—ć¦ć‚ć‚Šć¾ć™ć€‚C#恧ę›øć‹ć‚Œć¦ć„ć¾ć™ć€‚ćŖ恊Unityć§å‹•ä½œē¢ŗčŖęøˆćæ恧恙怂

ćƒ”ć‚¤ćƒ³ćƒ—ćƒ­ć‚°ćƒ©ćƒ  (Unityē”Ø)

恓恓恧ä½æć£ć¦ć„ć‚‹ć€ŒUDPSystemć€ć®ć‚¹ć‚ÆćƒŖ惗惈ćÆé•·ć„ćŸć‚ä»„å‰ę›ø恄恟

恓恔悉恮čؘäŗ‹ć‚’ć”č¦§ćć ć•ć„ć€‚UDPćƒ‘ć‚±ćƒƒćƒˆć®é€äæ”恫ćÆäøŠčؘäŗ‹ć®ć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’ę±Žē”Øć—ć¦ć„ć¾ć™ć€‚

ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć§å®Ÿč”Œć—ćŸćØćć®ć‚¹ć‚ÆćƒŖćƒ¼ćƒ³ć‚·ćƒ§ćƒƒćƒˆ

ć“ć‚Œć§ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć‹ć‚‰UDPć§ć®ćƒ‘ć‚±ćƒƒćƒˆć®é€äæ”ćŒć§ćć‚‹ć‚ˆć†ć«ćŖć£ćŸćØę€ć„ć¾ć™ć€‚ć‚‚ć”ć‚ć‚“TCP悒ä½æć£ć¦ć‚‚ć§ćć¾ć™ć€‚(ć‚€ć—ć‚ćć£ć”ć®ć»ć†ćŒč‰Æ恄恋悂)

ćƒ†ć‚¹ćƒˆ

ć“ć®ć‚¢ćƒ—ćƒŖć§ęœ¬å½“ć«äæ”号(ćƒ‘ć‚±ćƒƒćƒˆ)恌å‡ŗć›ć¦ć„ć‚‹ć®ć‹ć€ć—ć£ć‹ć‚Šå±Šć„ć¦ć„ć‚‹ć®ć‹ćÆčŖæć¹ćŖ恄ćØć‚ć‹ć‚Šć¾ć›ć‚“ć€‚ä»Šå›žćÆ怌Wireshark怍ćØć„ć†ćƒ‘ć‚±ćƒƒćƒˆć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ć‚’ä½æć„ć€ćƒ‘ć‚±ćƒƒćƒˆćŒå±Šć„ć¦ć„ć‚‹ć‹ć©ć†ć‹ē¢ŗčŖć—ćŸć„ćØę€ć„ć¾ć™ć€‚

ćŖćŠć€å¤–å‡ŗ先ćŖć©å¤–éƒØć‹ć‚‰ćƒ‘ć‚±ćƒƒćƒˆć‚’é€äæ”ćƒ»å—äæ”(ę“ä½œ)恙悋恫ćÆć€Œćƒćƒ¼ćƒˆé–‹ę”¾ć€ćŖć©ćŒåæ…č¦ć§ć™ć€‚ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć§ćÆUPnPć‚„ćƒ›ćƒ¼ćƒ«ćƒ‘ćƒ³ćƒćƒ³ć‚°ćŖ恩ꊀ蔓悒ä½æ恆åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚UPnPćÆęÆ”č¼ƒēš„ē°”単ćŖć®ć§ć“ć”ć‚‰ć‚’å‚č€ƒć«ć—ć¦ćæć¦ćć ć•ć„ć€‚

今回ćÆ外éƒØ(外å‡ŗ先)恋悉ä½æ恆äŗ‹ć‚’ęŽØå®šć—ć¦ć„ć‚‹ć®ć§ćƒ†ć‚¹ćƒˆć§ćÆć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć®4G回ē·š(Docomo)恋悉ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€äæ”ć—ć¾ć™ć€‚

ćƒ†ć‚¹ćƒˆć®ć‚¤ćƒ”ćƒ¼ć‚ø図

ä»Šå›žćƒ†ć‚¹ćƒˆć§é€äæ”恙悋ćƒŖć‚Æć‚Øć‚¹ćƒˆćÆ怌ID(01)ć®ę©Ÿå™Ø恮電ęŗć‚’ON(01)ć«ć™ć‚‹ć€ć«ć—ć¾ć™ć€‚ć¤ć¾ć‚ŠUDPć§é€ć‚‹ćƒ‡ćƒ¼ć‚æćƒ¼ćÆ怌0101怍恧恙怂

å…ˆć»ć©ć®ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć®ć€Œcase 1:ć€ć®éƒØåˆ†ć§ć™ļ¼

ćƒ‘ć‚±ćƒƒćƒˆć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼

ć‚¢ćƒ—ćƒŖć§ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć‚’å®Ÿč”Œć™ć‚‹ćØ态č‡Ŗå®…ć«ć‚ć‚‹PCć®ć€Œćƒ‘ć‚±ćƒƒćƒˆć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ć€ć§č¦‹ć‚‹ćØUDPć§ćƒ‘ć‚±ćƒƒćƒˆć€Œ0101ć€ćŒå±Šć„ć¦ć„ć‚‹ć®ćŒē¢ŗčŖć§ćć¾ć—ćŸć€‚ć“ć‚Œć§å¤–éƒØ恋悉恤恑悋恓ćØ恌恧恍悋ćØ恄恆äŗ‹ćŒē¢ŗčŖć§ćć¾ć—ćŸć€‚

ć¾ćØ悁

今回ćÆIoTćƒ‡ćƒć‚¤ć‚¹ä½œć‚Šć®ē¬¬äø€ę­©ćØć—ć¦å®¶é›»ę“ä½œć‚’č”Œć„ć¾ć—ćŸć€‚

恓恮čؘäŗ‹ćÆ仄前ē§ćŒćƒ¬ćƒćƒ¼ćƒˆćØć—ć¦ć‚„ć£ćŸć‚‚ć®ć‚’čؘäŗ‹ć«čµ·ć“ć—ćŸć‚‚ć®ć«ćŖć‚Šć¾ć™ć®ć§č©³ć—ćēŸ„ć‚ŠćŸć„ę–¹ćÆ ć“ć”ć‚‰ć‹ć‚‰ćƒ¬ćƒćƒ¼ćƒˆć‚’ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ ć—ć¦ćć ć•ć„ļ½ž

ę›ø恄恦恄悋途äø­ć§é¢å€’恫ćŖć£ć¦ć—ć¾ć£ćŸć®ć‚‚ć‚ć‚Šć€čŖ¬ę˜ŽćŒć„ćć¤ć‹ęŠœć‘ć¦åˆ†ć‹ć‚‰ćŖ恄éƒØåˆ†ćŒć‚ć‚‹ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ć§ć—ćŸćŒć™ć„ć¾ć›ć‚“ć§ć™ļ¼(> 3 <)

怌悈恏悏恋悓ćŖ恄恋悉惗惭ć‚ø悧ć‚Æćƒˆćƒ•ć‚”ć‚¤ćƒ«ćć‚Œć€ć€Œć‚‚ć£ćØč©³ć—ćčؘäŗ‹ę›øć„ć¦ć€ćŖ恩ćƒŖć‚Æć‚Øć‚¹ćƒˆćÆćƒ”ćƒ¼ćƒ«ć«ćŠé”˜ć„ć—ć¾ć™ļ¼


ć“ć“ć¾ć§čŖ­ć‚“ć§ćć‚Œć¦ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć—ćŸļ¼ļ¼

ćƒ›ćƒ¼ćƒ ćƒšćƒ¼ć‚ø恧ćÆ他恫悂

ćƒ»ę§˜ć€…ćŖčؘäŗ‹ć‚„ä½œć£ćŸä½œå“ćŠć‚ˆć³éŽē؋
ćƒ»ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć€ē“ ęćƒ•ć‚”ć‚¤ćƒ«
ćƒ»ć‚ć‚‰ć‚†ć‚‹”ćƒ¢ćƒŽ”ć®ä½œć‚Šę–¹

ćŖ恩ćŖć©éšę™‚ć€čؘäŗ‹ć‚„ä½œå“ć‚’ę–°č¦å…¬é–‹ćƒ»ę›“ę–°ć—ć¦ć„ć¾ć™ć®ć§ę˜Æéžč¦‹ć¦ć„ć£ć¦ćć ć•ć„ć­ļ¼č¦‹ć¦ć„ćŸć ć‘ć‚‹ćØęœ¬å½“ć«å¬‰ć—ć„ć§ć™ļ¼

Thank You WatchingšŸ’›

Unity恧PS4ć®ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć‚’ä½æć†ę–¹ę³•

恓悓恫恔ćÆļ¼ę“‹ę¢ØšŸć§ć™ć€‚

Unityć§ć‚²ćƒ¼ćƒ é–‹ē™ŗ(PCćƒ»ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć©ć”ć‚‰ć§ć‚‚)ć‚’ć—ć¦ć„ćć†ć”ć€ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć‚’ä½æ恄恟恏ćŖ悋恓ćØćŒćć£ćØ恂悋ćØę€ć„ć¾ć™ć€‚ćć‚“ćŖę–¹ć«å‘ć‘ć¦ä»Šå›žćÆUnityć§ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć‚’ä½æ恆ꉋ順悒ę›ø恓恆ćØę€ć„ć¾ć™ć€‚


Unityć®ć‚­ćƒ£ćƒ©ć‚Æć‚æćƒ¼ć‚’å‹•ć‹ć—ć¦ć„ć‚‹ę§˜å­

ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć‚’ćƒ‘ć‚½ć‚³ćƒ³(AndroidäøŠć§ćÆBluetooth恧)恫ꎄē¶š

今回ćÆć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć«PS4ē”Øć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć€ŒDual Shock 4怍悒ä½æć„ć¾ć™ć€‚


ćƒÆć‚¤ćƒ¤ćƒ¬ć‚¹ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ (DUALSHOCK 4) ć‚øć‚§ćƒƒćƒˆćƒ»ćƒ–ćƒ©ćƒƒć‚Æ

恓恓恫ē‰¹åˆ„ćŖčح定ćÆć„ć‚Šć¾ć›ć‚“ć€‚PC恫ćÆ通åøø恮USBć‚±ćƒ¼ćƒ–ćƒ«ć§ć€‚Androidć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć«ćÆBluetooth恧ꎄē¶šć™ć‚‹ć ć‘恧恙怂

Input Manager恫ē™»éŒ²

ꬔ恫Unity恮Input ManageräøŠć§DS4ć®ćƒœć‚æćƒ³ć‚’čŖč­˜ć•ć›ć‚‹ćŸć‚ć«čØ­å®šć‚’č”Œć„ć¾ć™ć€‚

怌Edit怍ā†’ć€ŒProject Setting怍ā†’ć€ŒInput怍恧čح定ē”»é¢ć‚’å‡ŗ恙恓ćØćŒć§ćć¾ć™ć€‚

ꬔ恫Sizeć‚’å¤‰ę›“ć—ć¾ć™ć€‚čæ½åŠ ć—ćŸć„ćƒœć‚æćƒ³ć®åˆ†ć ć‘å¢—ć‚„ć—ćŸę•°å€¤ć‚’å…„åŠ›ć—ć¾ć™ć€‚ā€»ä½æē”Ø恗ćŖć„ę—¢å­˜ć®é …ē›®ć‚’å¤‰ę›“恗恦悂č‰Æ恄

ę¬”ć«ćƒœć‚æćƒ³ćć‚Œćžć‚Œć‚’ē™»éŒ²ć—ć¦ć„ćć¾ć™ć€‚ćØčØ€ć„ćŸć„ćØć“ć‚ć§ć™ćŒć‚‚ć†ę—¢ć«å‰²ć‚Šå½“ć¦ć¦ć‚ć‚‹ć‚ć‚‹å “åˆć‚‚ć‚ć‚‹ć®ć§ćć®å “åˆćÆē™»éŒ²ć—ćŖćć¦ć‚‚å¤§äøˆå¤«ć§ć™ć€‚

ę¬”ć®ä¾‹ć§ćÆDS4ć®Ć—ćƒœć‚æćƒ³å‹•ä½œć‚’å‰²ć‚Šå½“ć¦ćŸć‚‚ć®ć§ć™

å‰²ć‚Šå½“ć¦ć®äø€ä¾‹ć€‚DS4ć®ć€ŒĆ—ćƒœć‚æćƒ³ć€å…„åŠ›ć‚’å—ć‘ä»˜ć‘ć‚‹ē”Ø恧恙怂

ć‚¹ć‚ÆćƒŖ惗惈恋悉čŖ­ćæå–ć‚‹

ē™»éŒ²ć—ćŸćƒœć‚æćƒ³ć‚’ä½æ恆恫ćÆ

恓悌恠恑恧恙怂恓悌悒Update()内ćŖ恩恫ę›øćč¾¼ćæć€å‡¦ē†ć‚’č”Œć„ć¾ć™ć€‚

Input.GetButtonDown(string)怀ćÆęŠ¼ć•ć‚Œć¦ć„ć‚‹ćØ恍true悒čæ”ć—ć€ęŠ¼ć•ć‚Œć¦ć„ćŖ恄ćØ恍ćÆfalse悒čæ”ć—ć¾ć™ć€‚

ć¾ćŸć€ć‚¹ćƒ†ć‚£ćƒƒć‚Æå…„åŠ›ć®å “åˆćÆ Input.GetAxis(string) 悒ä½æē”Øć—ć¾ć™ć€‚

DS4ć®å³ć‚¹ćƒ†ć‚£ćƒƒć‚Æć®ä½ē½®ć‚’å–å¾—ć™ć‚‹ć«ćÆę¬”ć®ć‚ˆć†ć«ę›øćć¾ć™ć€‚

恓恮 x , y ćÆ位ē½®ć«åæœć˜ć¦ -1 ļ½ž +1 ć®å€¤ć«ćŖć‚Šć¾ć™ć€‚å‹•ć‹ć—ć¦ć„ćŖ恄(äø­å¤®)ćØ恍ćÆļ¼ć«ćŖć‚Šć¾ć™ć€‚

恔ćŖćæ恫恓恮 Horizontal åŠć³ Vertical ćÆå…ƒć€… Input Manager 恫ē™»éŒ²ć•ć‚Œć¦ć„ć‚‹ćØę€ć„ć¾ć™ć€‚

ć—ć‹ć—ć€å·¦ć‚¹ćƒ†ć‚£ćƒƒć‚ÆćÆē™»éŒ²ć•ć‚Œć¦ćŖ恄ćØę€ć†ć®ć§å·¦ć‚¹ćƒ†ć‚£ćƒƒć‚Æ悂ä½æć„ćŸć„å “åˆćÆ Input Manager 恋悉ē™»éŒ²ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚ę—¢å­˜ć® Horizontal ć‚’å‚č€ƒć«ļ¼’恤ē›®ć‚’ä½œć£ć¦ä½æ恆恓ćØ恫ćŖć‚Šć¾ć™ć€‚

恩悓ćŖę„Ÿć˜ć«ä½æ恆恮恋(å‚č€ƒē؋åŗ¦)

PS4ć®å³ć‚¹ćƒ†ć‚£ćƒƒć‚Æ恧ē§»å‹•ć€Ć—ćƒœć‚æćƒ³ć§äøŠć«äøŠćŒć‚‹ć‚µćƒ³ćƒ—ćƒ«ć«ćŖć‚Šć¾ć™ć€‚å‹•ć‹ć—ćŸć„ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚¢ć‚æ惃惁恙悋恓ćØ恧ä½æē”Ø恙悋恓ćØ恌恧恍悋ćÆ恚恧恙怂ćŖ恊态ä½æē”Øå‰ć« Input Manager 恧恮ē™»éŒ²ćŒåæ…要恧恙怂

仄äøŠć§ć™ļ¼


ć“ć“ć¾ć§čŖ­ć‚“ć§ćć‚Œć¦ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć—ćŸļ¼ļ¼

ćƒ›ćƒ¼ćƒ ćƒšćƒ¼ć‚ø恧ćÆ他恫悂

ćƒ»ę§˜ć€…ćŖčؘäŗ‹ć‚„ä½œć£ćŸä½œå“ćŠć‚ˆć³éŽē؋
ćƒ»ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć€ē“ ęćƒ•ć‚”ć‚¤ćƒ«
ćƒ»ć‚ć‚‰ć‚†ć‚‹”ćƒ¢ćƒŽ”ć®ä½œć‚Šę–¹

ćŖ恩ćŖć©éšę™‚ć€čؘäŗ‹ć‚„ä½œå“ć‚’ę–°č¦å…¬é–‹ćƒ»ę›“ę–°ć—ć¦ć„ć¾ć™ć®ć§ę˜Æéžč¦‹ć¦ć„ć£ć¦ćć ć•ć„ć­ļ¼č¦‹ć¦ć„ćŸć ć‘ć‚‹ćØęœ¬å½“ć«å¬‰ć—ć„ć§ć™ļ¼

C#恧UPnP悒ä½æć£ćŸ ćƒćƒ¼ćƒˆćƒžćƒƒćƒ”ćƒ³ć‚°

ć‚²ćƒ¼ćƒ ć‚’å§‹ć‚ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³ć§ć®é€šäæ”ę©Ÿčƒ½ćŒåæ…要恫ćŖ悋äŗ‹ćÆå¤šć„ćØę€ć„ć¾ć™ć€‚

恝悓ćŖꙂē«‹ć”ćÆć ć‹ć‚‹é›£é–¢ć®ļ¼‘ć¤ć€‚ćć‚ŒćÆNATč¶Šćˆć§ć™ć€‚

NATč¶Šćˆć‚’ć™ć‚‹ę‰‹ę®µćÆć„ćć¤ć‹č€ƒćˆć‚‰ć‚Œć¾ć™ćŒć€ä»Šå›žćÆäø€ē•Ŗē°”単(?)ćŖUPnP悒ä½æć£ć¦ćƒ«ćƒ¼ć‚æćƒ¼ć«ćƒćƒ¼ćƒˆćƒ•ć‚©ć‚¢ćƒŖćƒ³ć‚°ć‚’čØ­å®šć—ć¦é€šäæ”通č·Æ悒ē¢ŗäæć—ćŸć„ćØę€ć„ć¾ć™ć€‚ 恓恮čؘäŗ‹ćÆćć®ę™‚ć®čØ˜éŒ²ć§ć™ć€‚

å®Ÿč”Œćƒ»ćƒ†ć‚¹ćƒˆē’°å¢ƒ

ćƒ†ć‚¹ćƒˆē’°å¢ƒļ¼šUnity 2018 2.9f1

ä»Šå›žć®ćƒ—ćƒ­ć‚°ćƒ©ćƒ ćÆUnity+C#ć§ä½œęˆć€‚

ćƒ‘ć‚±ćƒƒćƒˆé€äæ”ćŖ恩恮仕ēµ„ćæćƒ»ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćÆ å‰ć«ę›ø恄恟čؘäŗ‹ć€ŒUnity恧UDP通äæ”ć‚’č”Œć†ć«ćÆ怍 ćŖć©ć‚’å‚č€ƒć«ć—ć¦ćć ć•ć„ć€‚

ćƒ«ćƒ¼ć‚æćƒ¼ć«ćƒćƒ¼ćƒˆćƒ•ć‚©ć‚¢ćƒŖćƒ³ć‚°(ćƒćƒ¼ćƒˆč»¢é€)悒ćƒŖć‚Æć‚Øć‚¹ćƒˆć™ć‚‹

惍惃惈ćƒÆćƒ¼ć‚Æå†…ć®ćƒ«ćƒ¼ć‚æćƒ¼ć‚’ęŽ¢ē“¢ć™ć‚‹

ęŽ¢ē“¢ć®ē‚ŗć«ć€ŒM-Search怍ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€äæ”å…ˆć€Œ 239.255.255.250 : 1900 怍(ćƒ–ćƒ­ćƒ¼ćƒ‰ć‚­ćƒ£ć‚¹ćƒˆ)恫UDP恧送äæ”ć—ć¾ć™ć€‚

怌M-SEARCH怍送äæ”ć®ę§˜å­

ćć®å¾Œćƒ«ćƒ¼ć‚æćƒ¼ćŖ恩UPnPåƾåæœę©Ÿå™Ø恋悉恮ćƒŖć‚¹ćƒćƒ³ć‚¹ć€ŒNOTIFYć€ćŒåŒć˜ć‚¢ćƒ‰ćƒ¬ć‚¹ć§čæ”ć£ć¦ćć‚‹ć®ć§å—äæ”ć—ć¾ć™ć€‚

UPnPåƾåæœę©Ÿå™Ø恋悉恮ćƒŖć‚¹ćƒćƒ³ć‚¹ć€ŒNOTIFY怍

ćƒ«ćƒ¼ć‚æćƒ¼ć®ęƒ…å ±ć‚’å–å¾—

å…ˆć»ć©ć®ęƒ…å ±ć‚’å…ƒć«ćƒ«ćƒ¼ć‚æćƒ¼ć«ć€ŒHTTP / GETć€ć§č©³ē“°ęƒ…å ±ć‚’ćƒŖć‚Æć‚Øć‚¹ćƒˆć—ć¾ć™ć€‚

ćƒŖć‚Æć‚Øć‚¹ćƒˆćÆ仄äø‹ć®ć‚ˆć†ćŖćƒ—ćƒ­ć‚°ćƒ©ćƒ ć§å®Ÿč£…ć—ć¾ć—ćŸć€‚


ē§ć®ē’°å¢ƒć§ćÆ怌192.168.0.12ć€ć®PC恋悉怌192.168.0.1ć€ć®ćƒ«ćƒ¼ć‚æćƒ¼ć«ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€äæ”恗恦恄悋

ćŖ恊态ćƒŖć‚Æć‚Øć‚¹ćƒˆć«ęˆåŠŸć™ć‚‹ćØ怌HTTP 200 OK怍恌čæ”ć•ć‚Œć€XMLå½¢å¼ć®ęƒ…å ±ć‚’å…„ę‰‹ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚

ćć®XMLć®ć†ć”ä»Šå›žćÆ <controlURL> ć®ęƒ…å ±ć‚’å…ƒć«ćƒŖć‚Æć‚Øć‚¹ćƒˆå…ˆć‚¢ćƒ‰ćƒ¬ć‚¹ć‚’å…„ę‰‹ć—ć¾ć™ć€‚

ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ćƒ«ćƒ¼ć‚æćƒ¼ć«é€äæ”

å…ˆć»ć©ć®ęƒ…å ±ć‚’å…ƒć«åÆ¾č±”ć®ć‚¢ćƒ‰ćƒ¬ć‚¹ć«ć€ŒHTTP / POST怍恧ćƒŖć‚Æć‚Øć‚¹ćƒˆå†…å®¹(SOAPćƒ—ćƒ­ćƒˆć‚³ćƒ«)悒送äæ”ć—ć¾ć™ć€‚

ä»Šå›žćƒ†ć‚¹ćƒˆć«é€äæ”恗恟ćƒŖć‚Æć‚Øć‚¹ćƒˆćÆ仄äø‹ć®é€šć‚Šć§ć™ć€‚

恓恮ćƒŖć‚Æć‚Øć‚¹ćƒˆć§ćÆćƒćƒ¼ćƒˆć€Œ12345ć€ć®UDP通äæ”悒怌192.168.0.12ć€ć«č»¢é€ć™ć‚‹ćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’ć—ć¦ć„ć¾ć™ć€‚

ExternalPortćØInternalPortćÆč»¢é€å…ƒćØč»¢é€å…ˆćŖ恮恧通åøøåŒć˜ć«ć—ć¾ć™ć€‚

ćƒŖć‚¹ćƒćƒ³ć‚¹ć‚’å—äæ”ć—ęˆåŠŸē¢ŗčŖ

äøŠć®SOAPćƒŖć‚Æć‚Øć‚¹ćƒˆć‚’é€äæ”恙悋ćØćƒ«ćƒ¼ć‚æćƒ¼ć‹ć‚‰ćƒŖć‚¹ćƒćƒ³ć‚¹ć‚’å—ć‘å–ć‚Šć¾ć™ć€‚

ć“ć®ę™‚ć€ć€ŒHTTP 200 OK怍ćŖć‚‰ęˆåŠŸć§ć™ć€‚

HTTP/1.1 200 OK ć§ęˆåŠŸć ćØ悏恋悋
ćƒ«ćƒ¼ć‚æćƒ¼ć®ē®”ē†č€…ćƒšćƒ¼ć‚ø恧悂ē¢ŗčŖć§ćć‚‹

ęˆåŠŸć™ć‚‹ćØäøŠå›³ć®ć‚ˆć†ć«ē®”ē†č€…ćƒšćƒ¼ć‚ø恫悂čæ½åŠ ć•ć‚Œć¦ć„ć‚‹ć®ćŒć‚ć‹ć‚‹ć€‚

ćŖćŠć€å¤±ę•—ć ćØ怌 HTTP/1.1 500 Internal Server Error 怍恌čæ”ć•ć‚Œć¾ć™ć€‚å¤±ę•—åŽŸå› ćØ恗恦ćÆć€Œę—¢ć«ćƒćƒ¼ćƒˆćŒä½æē”Øäø­ć€ć€ŒUPnPčØ­å®šć®äøŠé™ć¾ć§é”ć—ć¦ć„ć‚‹ć€ćŖć©ćŒęŒ™ć’ć‚‰ć‚Œć¾ć™ć€‚

ćć‚‚ćć‚‚ä½•ć‚‚čæ”ć£ć¦ć“ćŖć„å “åˆć€ćć‚‚ćć‚‚ć©ć“ć‹ćŒé–“é•ćˆć¦ć„ć‚‹ćÆćšć§ć™ć®ć§å†ē¢ŗčŖć—恦ćæć¦ćć ć•ć„ć­ć€‚

外éƒØ恋悉恮送äæ”ćƒ†ć‚¹ćƒˆ

ćƒćƒ¼ćƒˆćƒ•ć‚©ć‚¢ćƒŖćƒ³ć‚°ć®čح定ćŖć©ćŒć—ć£ć‹ć‚Šå‡ŗę„ć¦ć„ć‚‹ć“ćØ悒ē¢ŗčŖć™ć‚‹ćŸć‚ć«å¤–恋悉UDPć§ćƒ‘ć‚±ćƒƒćƒˆć‚’é€äæ”恗恦ćæć¾ć™ć€‚

ćƒ‘ć‚±ćƒƒćƒˆé€äæ”ć‚¢ćƒ—ćƒŖ恧送äæ”ćƒ†ć‚¹ćƒˆ

ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć‹ć‚‰Docomo(4G)ć®ć‚­ćƒ£ćƒŖć‚¢å›žē·šć§č‡Ŗå®…ć®ćƒ‘ć‚½ć‚³ćƒ³ćøćØćƒ”ćƒƒć‚»ćƒ¼ć‚ø悒送äæ”怂

ćƒ‘ć‚±ćƒƒćƒˆ(ćƒ”ćƒƒć‚»ćƒ¼ć‚ø)ćŒå±Šć„ć¦ć„ć‚‹ć®ćŒåˆ†ć‹ć‚‹

受äæ”ć§ćć¦ć„ć‚Œć°å®Œē’§ć§ć™ć€‚

ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³ć‚²ćƒ¼ćƒ ä½œć‚Šć®ē¬¬äø€ę­©ć§ć™ć‹ć­ļ¼¾ļ¼¾

今åŗ¦ćÆ怌UDPćƒ›ćƒ¼ćƒ«ćƒ‘ćƒ³ćƒćƒ³ć‚°ć€ćØć„ć†ę–¹ę³•ć§ć‚‚ęŒ‘ęˆ¦ć—ć¦ćæ恟恄ćØę€ć„ć¾ć™ć€‚
ć¾ćŸćć®ę™‚ćÆčؘäŗ‹ć‚’ę›øćć¾ć™ć­


ć“ć“ć¾ć§čŖ­ć‚“ć§ćć‚Œć¦ęœ¬å½“ć«ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć—ćŸļ½žļ¼¾

ćƒ›ćƒ¼ćƒ ćƒšćƒ¼ć‚ø恧ćÆ他恫悂

ćƒ»ę§˜ć€…ćŖčؘäŗ‹ć‚„ä½œć£ćŸä½œå“ćŠć‚ˆć³éŽē؋
ćƒ»ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć€ē“ ęćƒ•ć‚”ć‚¤ćƒ«
ćƒ»ć‚ć‚‰ć‚†ć‚‹”ćƒ¢ćƒŽ”ć®ä½œć‚Šę–¹

ćŖ恩ćŖć©éšę™‚ć€čؘäŗ‹ć‚„ä½œå“ć‚’ę–°č¦å…¬é–‹ćƒ»ę›“ę–°ć—ć¦ć„ć¾ć™ć®ć§ę˜Æéžč¦‹ć¦ć„ć£ć¦ćć ć•ć„ć­ļ¼č¦‹ć¦ć„ćŸć ć‘ć‚‹ćØęœ¬å½“ć«å¬‰ć—ć„ć§ć™ļ¼

ć¾ćŸć€ć€Œć“ć®ć‚¢ćƒ—ćƒŖć®ä½œć‚Šę–¹ć‚’ēŸ„ć‚ŠćŸć„ć€‚ć“ć®éƒØåˆ†ć©ć†ćŖć£ć¦ć‚‹ć®ļ¼Ÿć€ć€Œčŗ«ć®å›žć‚Šć®ć“ć‚“ćŖć‚‚ć®ä½œć‚Œć‚‹ć®ļ¼Ÿć€ćŖ恩ćŖć©ć”ę„č¦‹ä½•ć§ć‚‚å—ć‘ä»˜ć‘ć¦ć„ć¾ć™ć®ć§ę˜Æ非連ēµ”恏恠恕恄恭ļ¼

ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³ć‚²ćƒ¼ćƒ ć‚’ć¤ćć‚‹ć¾ć§ć®čؘ録ļ½žVR悒ä½æć£ćŸć‚²ćƒ¼ćƒ é–‹ē™ŗļ½ž

UnityäøŠć§VRć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³ć‚²ćƒ¼ćƒ ć‚’é–‹ē™ŗć™ć‚‹ć¾ć§ć®čØ˜éŒ²ć§ć™ć€‚

ćØć“ć‚ć©ć“ć‚ć‚’ć–ć£ćØć¾ćØć‚ć¦ć‚ć‚‹ę„Ÿć˜ć§ć™ć€‚

ć‚²ćƒ¼ćƒ ć‚·ć‚¹ćƒ†ćƒ ćØ恗恦ćÆFPS恫čæ‘ć„ę„Ÿć˜ćØč€ƒćˆć¦ć„ć¾ć™ć€‚

Unity悒ä½æć„å§‹ć‚ć‚‹

初åæƒč€…å‘ć‘ć«ę›ø恏äŗˆå®šć§ć™ćŒć€ć¾ć ę›øć„ć¦ć¾ć›ć‚“-_-
恄恤恋ę›øćć¾ć™ć€‚

ć‚²ćƒ¼ćƒ ć‚’ä½œć‚‹

> VR恫åƾåæœć•ć›ć‚‹

Unity恧VRć‚²ćƒ¼ćƒ ć‚’åˆć‚ć¦ä½œć‚‹ę–¹ć«å‘ć‘ć¦ Google VR SDK 恮ä½æć„ę–¹ć‚’čŖ¬ę˜Žć—ć¦ć„ć¾ć™ć€‚ć€ŒVRć‚²ćƒ¼ćƒ ć‚’ä½œć‚ŠćŸć„ćŖļ½žć€ć€Œć§ć‚‚é›£ć—ćć†ć ćŖļ½žć€ćŖć‚“ć¦ę€ć£ć¦ć„ć‚‹ę–¹ć«ē°”å˜ć ćØć‚ć‹ć£ć¦ć‚‚ć‚‰ć„ć€ę‰‹č»½ć«å§‹ć‚ć‚‰ć‚Œć‚‹ć‚ˆć†ć«ę›øćć¾ć—ćŸć€‚

ļ¼žć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć«åƾåæœć•ć›ć‚‹

ä»Šå›žć®ć‚¹ćƒžćƒ›ć‚²ćƒ¼ćƒ ćÆVR恮ē‚ŗć€ć‚³ćƒ³ćƒˆćƒ­ćƒ¼ćƒ©ćƒ¼ć‚’ä½æć£ć¦ć®ę“ä½œć«ćŖć‚Šć¾ć™ļ¼

通äæ”ćŒć§ćć‚‹ć‚ˆć†ć«ć™ć‚‹

> UDP悒ä½æć£ćŸćƒ‘ć‚±ćƒƒćƒˆé€šäæ”

ćƒžćƒ«ćƒćƒ—ćƒ¬ć‚¤ć‚²ćƒ¼ćƒ ć®åŸŗęœ¬ćƒ»é€šäæ”ę©Ÿčƒ½ć®éƒØåˆ†ć«ē„¦ē‚¹ć‚’å½“ć¦ę›ø恄恟čؘäŗ‹ć«ćŖć‚Šć¾ć™ć€‚ä»Šå›žćÆFPSć®ć‚ˆć†ć«ćƒ—ćƒ¬ć‚¤ćƒ¤ćƒ¼ć®å‹•ćć«äæŠę•ć«åƾåæœć§ćć‚‹ć‚ˆć†ć«UDP悒ä½æć£ć¦é€šäæ”ć—ć¾ć™ć€‚

> UPnP悒ä½æć£ć¦NATč¶Šćˆ

ć“ć‚Œć¾ć§ć§UDP悒ä½æć£ćŸé€šäæ”ć§ć‚­ćƒ£ćƒ©ć‚Æć‚æćƒ¼ć‚’å‹•ć‹ć™ć“ćØćŒć§ćć‚‹ć‚ˆć†ć«ćŖć£ćŸćŒć€ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³äøŠć§é€šäæ”恙悋恫ćÆåŸŗęœ¬ć‚µćƒ¼ćƒćƒ¼ćŒåæ…č¦ć€‚ć—ć‹ć—ćć‚“ćŖć‚µćƒ¼ćƒćƒ¼ć‚’ē”Øꄏ恙悋äŗˆē®—ćŒćŖ恄恟悁P2P通äæ”ć§ć‚²ćƒ¼ćƒ ć‚’ä½œć‚ć†ćØ考恈恟怂

恗恋恗态P2P通äæ”悒ć‚Ŗćƒ³ćƒ©ć‚¤ćƒ³äøŠć§ć™ć‚‹ćŸć‚ć«ćÆNATč¶ŠćˆćØć„ć†é›£é–¢ćŒå¾…ć£ć¦ć„ć‚‹ć€‚

恝恓恧ē§ćŒNATč¶Šćˆć‚’ć™ć‚‹ē‚ŗć«č€ƒćˆćŸć®ćŒć€ŒUDPćƒ›ćƒ¼ćƒ«ćƒ‘ćƒ³ćƒćƒ³ć‚°ć€ć€ŒUPnPć€ć®2ć¤ć ć£ćŸć€‚

NATč¶Šćˆć‚’ę„½ć€…ć—ć¦ć—ć¾ćŠć†ćØ考恈恟ēµęžœć¾ćšćÆ怌UPnP怍悒ä½æ恆恓ćØćØ恗恟怂

>UDPćƒ›ćƒ¼ćƒ«ćƒ‘ćƒ³ćƒćƒ³ć‚°ć‚’ä½æć£ć¦NATč¶Šćˆ

恓恮čؘäŗ‹ćÆęŗ–å‚™äø­ć§ć™ć€‚ć—ć°ć‚‰ććŠå¾…ć”恏恠恕恄恭ļ¼¾ļ¼¾

ćƒˆćƒƒćƒ—ćƒšćƒ¼ć‚øć«ęˆ»ć‚‹

Unityć§ć‚«ćƒ”ćƒ©(PC/ć‚¹ćƒžćƒ›)悒ä½æć†ę–¹ę³•

UnityäøŠć§ć€Œć‚«ćƒ”ćƒ©ć‚’ä½æć£ć¦ļ½žć‚’ć—ćŸć„ļ¼ć€ć€Œå†™ēœŸć‚’ę’®ć‚ŠćŸć„ļ¼ć€ćØć„ć†ę–¹ć€å¤šć„ć®ć§ćÆćŖ恄恧恗悇恆恋ļ¼Ÿćć“ć§ä»Šå›žćÆUnityć§ć‚«ćƒ”ćƒ©ć‚’ä½æć†ę–¹ę³•ć«ć¤ć„ć¦ę›ø恍恟恄ćØę€ć„ć¾ć™ć€‚

ć‚«ćƒ”ćƒ©ć«ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć«ćÆļ¼Ÿ

怌WebCamTexture怍ćØć„ć£ćŸć‚Æćƒ©ć‚¹ć‚’ä½æć„ć¾ć™ć€‚

恓恮ć‚Æćƒ©ć‚¹ć‚’ä½æ恆ćØć€ć‚«ćƒ”ćƒ©(Webć‚«ćƒ”ćƒ©ćƒ»ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć®ć‚«ćƒ”ćƒ©)恧꘠恗å‡ŗć•ć‚ŒćŸę˜ åƒć‚’ćƒ†ć‚Æć‚¹ćƒćƒ£ćØ恗恦ꉱ恆恓ćØćŒć§ćć¾ć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚

ā€»ćŖćŠć€ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć®å “åˆćƒ•ćƒ­ćƒ³ćƒˆćƒ»ćƒŖć‚¢ć‚«ćƒ”ćƒ©ć©ć”ć‚‰ć«ć§ć‚‚ć‚¢ć‚Æć‚»ć‚¹ć™ć‚‹ć“ćØ恌åÆčƒ½ć§ć™ć€‚

ćØć‚Šć‚ćˆćšę˜ ć—ć¦ćæ悋

ć¾ćšćÆć€Œć©ć†ć‚„ć£ć¦ćƒ—ćƒ­ć‚°ćƒ©ćƒ ć‚’ę›øć‘ć°ć‚«ćƒ”ćƒ©ć®ę˜ åƒć‚’å‡ŗ恛悋恋恠恑恌ēŸ„悊恟恄悓恠悈怍ćØć„ć†ę–¹ć‚‚å¤šć„ćØę€ć†ć®ć§ćØć‚Šć‚ćˆćšć‚µć‚Æ惃ćØć‚«ćƒ”ćƒ©ć®ę˜ åƒć‚’č”Øē¤ŗ恕恛恦ćæ悈恆ćØę€ć„ć¾ć™ć€‚


悂恗态PCć«ć‚«ćƒ”ćƒ©ćŒć¤ć„ć¦ć„ćŖ恄ē’°å¢ƒć§é–‹ē™ŗ恙悋äŗŗ(ćƒ‡ć‚¹ć‚Æ惈惃惗PCćŖ恩)ćÆ

ć“ć®ć‚ˆć†ćŖå®‰ć„ć‚‚ć®ć§ć‚‚ęŽ¢ć—ć¦ćæ悋ćØć„ć„ć‹ć‚‚ć—ć‚Œć¾ć›ć‚“ļ½žšŸ‘¼


ļ¼‘ļ¼Žć¾ćšćƒ—ćƒ­ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć—ć€ć‚«ćƒ”ćƒ©ć®ę˜ åƒć‚’č”Øē¤ŗć•ć›ć‚‹ćŸć‚ć®ć€ŒRawImage怍悒čØ­ē½®ć—ć¾ć™ć€‚

ā€»ć€ŒCreate怍ā†’ć€ŒUI怍ā†’ć€ŒRaw Imageć€ć‹ć‚‰ä½œęˆåÆčƒ½ć§ć™ć€‚

ļ¼’ļ¼Žć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’ä½œęˆć—ć¾ć™ć€‚

ćƒ•ć‚”ć‚¤ćƒ«åļ¼šWebCameraTest.cs

ļ¼“ļ¼Žć‚¹ć‚ÆćƒŖćƒ—ćƒˆć‚’ć‚·ćƒ¼ćƒ³äøŠć®ć‚Ŗ惖ć‚ø悧ć‚Æ惈(今回ćÆEventSystemć«ć—ć¦ć„ć‚‹ćŒä½•ć§ć‚‚č‰Æ恄)ć«ć‚¢ć‚æćƒƒćƒć—ć€ćć®å¾Œć‚¹ć‚ÆćƒŖćƒ—ćƒˆå†…RawImageć«ć‚‚ć‚¢ć‚æ惃惁恙悋

ļ¼”ļ¼Žå®Ÿč”Œć—恦ćæ悋怂PCć®å “åˆćÆć‚«ćƒ”ćƒ©ć‚’ęŽ„ē¶šć—ć¦ć‹ć‚‰å®Ÿč”Œć—ć¦ćć ć•ć„ć€‚

恗恋恗ļ¼ē’°å¢ƒć«ć‚ˆć£ć¦ę¬”ć®å•é”ŒćŒē™ŗē”Ÿć™ć‚‹å “åˆćŒć‚ć‚Šć¾ć™ć€‚

ćƒ»ć‚¹ćƒžćƒ›ć§å®Ÿč”Œć—ćŸćØćć€ę±‚ć‚ć¦ć„ć‚‹ć‚«ćƒ”ćƒ©ć®ę–¹å‘ć§ćÆćŖ恄(ćƒŖć‚¢ćƒ»ćƒ•ćƒ­ćƒ³ćƒˆ)
惻PCć§ć‚„ć£ćŸćŒćć‚‚ćć‚‚ę˜ ć‚‰ćŖ恄
惻ē§»ć•ć‚ŒćŸē”»åƒć®å‘ććŒååƾ

ć“ć‚Œć‚‰ć«ćÆē†ē”±ćŒć‚ć‚Šć¾ć™ć®ć§ę¬”é …ć§č§£čŖ¬ć—ć¦ć„ććŸć„ćØę€ć„ć¾ć™ć€‚

WebCamTextureć‚’ć„ć˜ć£ć¦ćæ悋

ä½æē”Øć™ć‚‹ć‚«ćƒ”ćƒ©ć‚’éøęŠžćƒ»å¤‰ę›“ć™ć‚‹

ć‚¢ćƒ—ćƒŖć®å®Ÿč”Œē’°å¢ƒć«ć‚ˆć£ć¦ćÆć‚«ćƒ”ćƒ©ćŒć„ćć¤ć‹č¤‡ę•°å€‹ć€ęŽ„ē¶šć•ć‚Œć¦ć„ć‚‹åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚ć“ć®å “åˆć€č”Øē¤ŗć•ć›ć‚‹ć‚«ćƒ”ćƒ©ć‚’éø恰ćŖćć¦ćÆć„ć‘ć¾ć›ć‚“ć€‚

ć‚‚ć—å‰é …ć§å®Ÿč”Œć—ćŸćŒč”Øē¤ŗ恕悌ćŖć‹ć£ćŸćØ恄恆äŗŗćÆ态č”Øē¤ŗ恧恍ćŖć„ć‚«ćƒ”ćƒ©ć«ć‚¢ć‚Æć‚»ć‚¹ć—ć¦ć„ćŸć®ć‹ć‚‚ć—ć‚ŒćŖć„ć®ć§ć“ć“ć§ę­£ć—ć„č”Øē¤ŗć•ć›ćŸć„ć‚«ćƒ”ćƒ©ć‚’éø恶恓ćØćŒå¤§åˆ‡ć§ć™ć€‚

ć‚«ćƒ”ćƒ©ć‚’éøꊞ恙悋

å…ˆć»ć©ć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć«čæ½åŠ ć—ć€ćƒœć‚æćƒ³ć‚’ć‚ÆćƒŖ惃ć‚Æ恙悋ćØć‚«ćƒ”ćƒ©ć‚’å¤‰ę›“ć§ćć‚‹ć‚ˆć†ć«ć—ćŸć„ćØćŠć‚‚ć„ć¾ć™ć€‚

ć‚¹ć‚ÆćƒŖ惗惈悒äøŠć®ć‚ˆć†ć«å¤‰ę›“ć—ć€ć‚·ćƒ¼ćƒ³äøŠć«å¤‰ę›“ē”Ø惜ć‚æćƒ³ć‚’ē”Ÿęˆć—ć¾ć™ć€‚ćć®å¾Œć€ćƒœć‚æćƒ³ć®OnClick恫public void ChangeCamera()ć‚’å‰²ć‚Šå½“ć¦ć‚Œć°å®Œäŗ†ć§ć™ć€‚

惜ć‚æćƒ³ć‚’ęŠ¼ć›ć°ć‚«ćƒ”ćƒ©ćŒåˆ‡ć‚Šę›æ悏悋ćØę€ć„ć¾ć™ć€‚(č¤‡ę•°å€‹ęŽ„ē¶šę™‚)

ā€»ć¾ćŸć€ć‚¹ćƒžćƒ›ć®ćƒŖć‚¢ćƒ»ćƒ•ćƒ­ćƒ³ćƒˆć‚«ćƒ”ćƒ©ćÆåˆ„ć€…ć®ć‚«ćƒ”ćƒ©ćØć—ć¦ę‰±ć‚ć‚Œć¾ć™ć€‚

å–å¾—ć™ć‚‹ē”»č³Ŗćƒ»ćƒ•ćƒ¬ćƒ¼ćƒ ćƒ¬ćƒ¼ćƒˆć‚’å¤‰ę›“ć™ć‚‹

WebCamTextureć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ē”Ÿęˆę™‚ć«å¼•ę•°ćØ恗恦ē”»č³Ŗć‚„ćƒ•ćƒ¬ćƒ¼ćƒ ćƒ¬ćƒ¼ćƒˆć‚’ęŒ‡å®šć™ć‚‹ćØå¤‰ę›“ć™ć‚‹ć“ćØćŒć§ćć¾ć™ć€‚

ć‚«ćƒ”ćƒ©ć«ć‚ˆć£ć¦ćÆåƾåæœć—恦恄ćŖć„å “åˆć‚‚ć‚ć‚Šć¾ć™ć€‚
(例ļ¼šHDć‚«ćƒ”ćƒ©ć§Full HD悒ćƒŖć‚Æć‚Øć‚¹ćƒˆē­‰)

ć‚«ćƒ”ćƒ©ć‚’ćƒŸćƒ©ćƒ¼č”Øē¤ŗ恫恙悋

ć“ć®ę˜ åƒć‚’ć€

恓恆恙悋怂

ć‚„ć‚Šę–¹ćÆRawImageć®ć‚¹ć‚±ćƒ¼ćƒ«(Scale)恮X悒-1恫恙悋恠恑恧恙怂

äøŠäø‹åč»¢ć—ćŸć„å “合ćÆY悒-1ć«ć™ć‚Œć°OK恧恙怂

3Dć‚Ŗ惖ć‚ø悧ć‚Æ惈恫č”Øē¤ŗ恙悋

ć“ć®ć‚ˆć†ć«ļ¼“D恮ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«ć‚«ćƒ”ćƒ©ć®ę˜ åƒć‚’å¼µć‚Šä»˜ć‘ć‚‹ć“ćØć‚‚ć§ćć¾ć™ć€‚

GameObjectć®ćƒ†ć‚Æć‚¹ćƒćƒ£ć‚’WebCamTextureć«å¤‰ćˆć‚‹äŗ‹ć§å®Ÿč£…åÆčƒ½ć§ć™ć€‚

ć¾ćØ悁

恓恓恧ćÆUnityć§ć‚«ćƒ”ćƒ©ć‚’ä½æć†ę–¹ę³•ć«ć¤ć„ć¦čŖ¬ę˜Žć—ć¾ć—ćŸć€‚ć‚«ćƒ”ćƒ©ć‚’ä½æćˆć°å†™ēœŸć‚’ę’®ć‚‹ä»„å¤–ć«ć‚‚ę§˜ć€…ćŖä½æć„ę–¹ćŒć§ćć‚‹ć‚ˆć†ć«ćŖ悋恮恧ćÆćŖ恄恧恗悇恆恋ļ¼Ÿ

Unityć§ć‚«ćƒ”ćƒ©ć‚’ä½æć£ćŸä¾‹ļ¼š
Webć‚«ćƒ”ćƒ©ć‚’ä½æć£ć¦é””čŖč­˜ ćƒ¢ćƒ¼ć‚·ćƒ§ćƒ³ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ćø恮道(Part 1)

ć“ć‚Œć‹ć‚‰ć‚‚ć‚«ćƒ”ćƒ©ć‚’ē”Ø恄恟꧘怅ćŖä½æć„é“ć‚’č¦‹ć¤ć‘ć¦ć„ććŸć„ć§ć™ć­ļ¼

čŖ­ć‚“ć§ćć‚Œć¦ęœ¬å½“ć«ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć—ćŸļ¼¾ļ¼¾

ć‚‚ć—ć‚ˆć‚ć—ć‘ć‚Œć°ä»–ć®čؘäŗ‹ć‚‚č¦³ć¦ć„ć£ć¦ćć ć•ć‚‹ćØ恆悌恗恄限悊恧恙ļ¼

UnityäøŠć§UDP/IP悒ē”Ø恄恟通äæ”ę©Ÿčƒ½(ćƒžćƒ«ćƒćƒ—ćƒ¬ć‚¤)ć‚’å®Ÿč£…ć™ć‚‹

ć“ć‚“ć”ć‚ƒļ¼ę“‹ę¢ØšŸć§ć™ć€‚

unityć§ćƒžćƒ«ćƒćƒ—ćƒ¬ć‚¤ć‚’ćÆ恘悁ćØ恙悋通äæ”ę©Ÿčƒ½ć‚’å®Ÿč£…ć—ćŸć„ę–¹ć€å¤šć„ć®ć§ćÆćŖ恄恧恗悇恆恋ļ¼Ÿ

恝恓恧UNET(å»ƒę­¢äŗˆå®šć®ę§˜ć§ć™ćŒ…)态Socket.ioćŖ恩悒ä½æ恊恆ćØč€ƒćˆćŸćƒ»č€ƒćˆć¦ć„ć‚‹ę–¹ć‚‚å¤šć„ćØę€ć†ć®ć§ć™ćŒē§ćÆå‹‰å¼·ć®ē‚ŗć‚„ćƒ©ć‚¤ć‚»ćƒ³ć‚¹ć®å•é”Œć€ä½æ恄悄恙恕恮ē‚¹ć‹ć‚‰1ć‹ć‚‰ä½œć£ć¦ćæćŸć®ć§ćć‚Œć¾ć§ć®éŽēØ‹åŠć³ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćŖ恩悒čؘäŗ‹ć«ć—ć¾ć—ćŸć€‚

ä»Šå›žä½œć‚‹ć‚‚ć®

今回ćÆUnityć®å‹•ćē«Æęœ«é–“ć§ć€ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ä½ē½®ęƒ…å ±ć‚’å…±ęœ‰ć§ćć‚‹ć‚ˆć†ć«ć—ć¦ć„ććŸć„ćØę€ć„ć¾ć™ć€‚


PCćƒ»ć‚¹ćƒžćƒ›é–“ć§ć‚¹ćƒ†ćƒ¼ć‚ø内Cubeć®ä½ē½®ęƒ…å ±ć‚’å…±ęœ‰ć—ć¦ć„ć‚‹å›³

åæœē”Øꬔē¬¬ć§ćÆć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆć‚µćƒ¼ćƒćƒ¼å½¢å¼ćƒ»p2på½¢å¼ć§ć®ćƒžćƒ«ćƒćƒ—ćƒ¬ć‚¤ę©Ÿčƒ½å®Ÿč£…ćŖć©ę§˜ć€…ćŖ恓ćØ恫ä½æćˆć‚‹ć®ć§ćÆćŖ恄恧恗悇恆恋ļ¼Ÿ

ä»•ę§˜

今回ćÆć‚²ćƒ¼ćƒ ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ä½ē½®å…±ęœ‰ć€ć¤ć¾ć‚ŠTransform.position恮Vector3ć€€ęƒ…å ±ć‚’å—äæ”åŠć³åę˜ ć€é€äæ”恗恟恄ćØćŠć‚‚ć„ć¾ć™ć€‚

ćŖćŠć€ä»Šå›žč”Œć†é€šäæ”ćÆć‚¢ć‚Æć‚·ćƒ§ćƒ³ć‚²ćƒ¼ćƒ ć§ä½æ恆恓ćØ悒ęŽØå®šć—ć€é«˜é€ŸåŒ–ć‚’å›³ć‚‹ćŸć‚UDPć§č”Œć„ć¾ć™ć€‚

Tips 怌TCPćØUDPć®é•ć„ć€
TCP : å®‰å®šę€§ćÆé«˜ć„ćŒä½Žé€Ÿć€‚

ļ¼žć‚²ćƒ¼ćƒ ć§ćÆćƒćƒ£ćƒƒćƒˆć‚„ćƒžćƒƒćƒćƒ”ć‚¤ć‚­ćƒ³ć‚°ć«ä½æ悏悌悋怂
UDP : äøå®‰å®šć ćŒé«˜é€Ÿć€‚

ļ¼žFPSćŖć©é€Ÿć•ćŒå¤§åˆ‡ćŖć‚²ćƒ¼ćƒ ć®é€šäæ”恧ä½æć‚ć‚Œć¦ć„ć‚‹ć€‚
(ā€»RUDP : äŗŒć¤ć‚’ēµ„ćæåˆć‚ć›å®‰å®šę€§ć€é«˜é€Ÿć‚’å…¼ć­ćć‚ćˆćŸć‚‚ć®ć€‚å®Ÿč£…ćÆć‚¢ćƒ—ćƒŖå“ć€‚)

惗惭ć‚ø悧ć‚Æ惈

ä»Šå›žä½œć£ćŸćƒ—ćƒ­ć‚ø悧ć‚Æ惈

今回ćÆć‚¹ćƒ†ćƒ¼ć‚øå†…ć«é…ē½®ć—ćŸCube恮åŗ§ęØ™ć‚’å…±ęœ‰ć—ć¾ć™ć€‚ę¤…å­ćØ恋ćÆč·é›¢ę„Ÿć‚’ć¤ć‹ćæć‚„ć™ć„ę§˜ć«ćŖ悓ćØćŖććŠć„ćŸé£¾ć‚Šć§ć™ć€‚Text恫ćÆē¾åœØ恮Cube恮åŗ§ęØ™ć‚’č”Øē¤ŗ恗悈恆ćØę€ć„ć¾ć™ć€‚

(惗惭ć‚ø悧ć‚Æćƒˆćƒ•ć‚”ć‚¤ćƒ«ć®ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ćÆäø‹ć«ć‚ć‚Šć¾ć™ć€‚)

ć‚¹ć‚ÆćƒŖ惗惈

main.csć€€ćƒ”ć‚¤ćƒ³ć€‚äø»ćŖ動作ćÆ恓恓恫ę›ø恏怂
UdpSystem.cs怀UDP通äæ”ć®å‹•ä½œć‚’ć¾ćØ悁恦恂悋悂恮恧恙
MyNetwork.cs怀IPć‚¢ćƒ‰ćƒ¬ć‚¹å–å¾—ē­‰ć€ćƒćƒƒćƒˆćƒÆćƒ¼ć‚Æé–¢é€£ć®åŸŗęœ¬å‹•ä½œć‚’ę‹…å½“

(ć‚½ćƒ¼ć‚¹ćƒ•ć‚”ć‚¤ćƒ«ć®ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ćÆäø‹ć«ć‚ć‚Šć¾ć™ć€‚)

ćƒćƒ¼ćƒˆē•Ŗ号

åŒć˜ć§ć‚‚ć„ć„ć®ć§ć™ćŒä»Šå›žćÆćƒ›ć‚¹ćƒˆē«Æęœ«A恫ćÆ5001态ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆē«Æęœ«B恫ćÆ5002ćØć—ć¦ć‚ć‚Šć¾ć™ć€‚ćŖ恊态送äæ”恫ä½æć†ćƒćƒ¼ćƒˆćÆ6001ćØć—ć¾ć—ćŸć€‚

ćƒ‘ć‚±ćƒƒćƒˆę§‹é€ 

今回ćÆ位ē½®ęƒ…å ±ć®å…±ęœ‰ć®ćæćŖ恮恧Vector3(x,y,z)ć®ęƒ…å ±ćŒå…„ć‚‹ćƒ‘ć‚±ćƒƒćƒˆć‚’ä½œć£ć¦é€ć‚Šć¾ć™ć€‚ćƒ‘ć‚±ćƒƒćƒˆęƒ…å ±ć‚’ē®”ē†ć™ć‚‹ć‚Æćƒ©ć‚¹ćÆ仄äø‹ć®é€šć‚Šć§ć™ć€‚

DATAć‚Æćƒ©ć‚¹ćÆć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ē”Ÿęˆę™‚ć®å¼•ę•°(Vector3悂恗恏ćÆbyte配列)恫åæœć˜ć¦float x,y,zć®å€¤ć«å¤‰ę›ć—ć¾ć™ć€‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ē”Ÿęˆå¾Œć€ToVector3(),ToByte()ć§åŒę–¹ć«å¤‰ę›ć§ćć‚‹ć‚ˆć†ć«ć—ć¦ć„ć¾ć™ć€‚

Vector3ć®ćć‚Œćžć‚Œć®å€¤(x,y,z)ćÆfloat型ćŖ恮恧4byteć§ć™ć€‚ćć®ćŸć‚ćƒ‘ć‚±ćƒƒćƒˆć‚µć‚¤ć‚ŗćÆ12Byte恫ćŖć‚Šć¾ć™ć€‚ćƒ‘ć‚±ćƒƒćƒˆć®ę§‹é€ ćÆ仄äø‹ć®é€šć‚Šć§ć™ć€‚

ä»Šå›žć®é€äæ”ćƒ‘ć‚±ćƒƒćƒˆć®ćƒ‡ćƒ¼ć‚æćƒ¼ę§‹é€ 

ā€»ä»Šå›žćÆ受äæ”å“ćƒ»é€äæ”偓ćØļ¼‘åƾļ¼‘恧恮通äæ”恧äø€ć¤ć®ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ä½ē½®åŗ§ęØ™å…±ęœ‰ć—ć‹ć—ć¦ć„ćŖć„ćŸć‚ćƒ‘ć‚±ćƒƒćƒˆć«č­˜åˆ„ē•Ŗå·ć‚„é€äæ”元IPćŖć©ęƒ…å ±ć‚’å«ć‚“ć§ć„ć¾ć›ć‚“ć€‚ćŖ恊态TCPćŖ悉送äæ”元IPē­‰ćŒćŖćć¦ć‚‚ć‚³ćƒć‚Æć‚·ćƒ§ćƒ³ć§ć‚ć‹ć‚Šć¾ć™ćŒUDPćÆ恝恆悂恄恋ćŖć„ćŸć‚å«ć¾ćŖ恄ćØåˆ¤åˆ„ć§ćć¾ć›ć‚“ć€‚

ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰

ā€»ćŖćŠć€ä»Šå›žē“¹ä»‹ć™ć‚‹ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ćÆ仄前ē§ćŒä½œć£ćŸćƒžćƒ«ćƒćƒ—ćƒ¬ć‚¤ä»•ę§˜ć‚²ćƒ¼ćƒ ć®äø€éƒØć‚’åˆ‡ć‚Šå–ć‚Šć€čŖ¬ę˜Žē”Ø恫ē·Øé›†ć—ćŸć‚‚ć®ć«ćŖć‚Šć¾ć™ć€‚

Main.cs

UdpSystem.cs

ćƒ©ć‚¤ć‚»ćƒ³ć‚¹ćŖ悓恦ę›øć„ć”ć‚ƒć£ć¦ć¾ć™ć‘ć©ć“ć® Younaship.com ć‚’ć©ć£ć‹ć«ē“¹ä»‹ć—恦恻恗恄ćŖćƒ¼ć£ć¦ę€ć£ć¦ć‚‹ć ć‘ćŖć‚“ć§ć‚ć¾ć‚Šę°—ć«ć—ćŖćć¦å¤§äøˆå¤«ć§ć™ć€‚

ć‚½ćƒ¼ć‚¹ćƒ•ć‚”ć‚¤ćƒ«čŖ¬ę˜Ž

UdpSystem.cs 恮čŖ¬ę˜Žć§ć™ć€‚

Class : UDPSystem()

ć‚³ćƒ³ćƒˆćƒ©ć‚Æć‚æ
UDPSystem(Callback)

ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ē”Ÿęˆę™‚ć€ć‚³ćƒ¼ćƒ«ćƒćƒƒć‚Æé–¢ę•°ć‚’å¼•ę•°ćØ恗恦ćØć‚Šć¾ć™ć€‚ć“ć®ć‚³ćƒ¼ćƒ«ćƒćƒƒć‚ÆćÆ受äæ”Ꙃē™ŗē”Ÿć™ć‚‹ćŸć‚é€äæ”ē”ØćØ恗恦ē”Ÿęˆć™ć‚‹ćØ恍ćÆnullć§ć‚‚å¤§äøˆå¤«ć§ć™ć€‚

é–¢ę•°

Set(hostIP,hostPort,clientIP,clientPort)
č‡Ŗåˆ†åŠć³ē›øꉋ恮IPć€ćƒćƒ¼ćƒˆć‚’ć‚»ćƒƒćƒˆć—ć¾ć™ć€‚
Receive()
受äæ”ć‚’é–‹å§‹ć—ć¾ć™ć€‚å—äæ”恙悋ćØć‚³ćƒ¼ćƒ«ćƒćƒƒć‚ÆćŒå‘¼ć°ć‚Œć¾ć™ć€‚
Send(byte[])
byte[]悒怌clientIP:Port怍ćø送äæ”ć—ć¾ć™ć€‚
Send_NonAsync(byte[])
byte[]ć‚’åŒęœŸé€äæ”ć—ć¾ć™ć€‚ā€»åŒęœŸé€äæ”ćŖ恮恧送äæ”äø­ćÆć»ć‹ć®å‹•ä½œćÆåœę­¢ć—ć¾ć™ć€‚
Stop()
WebSocket ć‚’é–‰ć˜ć¾ć™ć€‚

Class : ScanIPAddr()

č‡Ŗåˆ†ć®IPć‚¢ćƒ‰ćƒ¬ć‚¹å–å¾—ē”Ø恮ć‚Æćƒ©ć‚¹ć§ć™ć€‚
var myIpAddr = ScanIPAddr.IP[n] ćØć„ć£ćŸę„Ÿć˜ć§ä½æć„ć¾ć™ć€‚
n恫ćÆč­˜åˆ„ē•Ŗå·ć‚’å…„ć‚Œć¾ć™ć€‚

ļ½žNOTEļ½ž
ä¾‹ćˆć°ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć®å “åˆć€Wi-fiꎄē¶šę™‚ćÆć‚­ćƒ£ćƒŖć‚¢å›žē·š(4G/3G)恧恮IPć‚¢ćƒ‰ćƒ¬ć‚¹ćƒ»Wi-fiäøŠć§ć®IPć‚¢ćƒ‰ćƒ¬ć‚¹ćŒå­˜åœØć—ć¦ć—ć¾ć†ćŸć‚éø恰ćŖćć¦ćÆć„ć‘ć¾ć›ć‚“ć€‚ć¾ćŸć€PCć®å “åˆä»®ęƒ³PCć®ćƒćƒƒćƒˆćƒÆćƒ¼ć‚Æć‚¢ćƒ€ćƒ—ć‚æ恌恂悋ćØćć®IPć‚¢ćƒ‰ćƒ¬ć‚¹ćŒå­˜åœØć—ć¦ć—ć¾ć„ć¾ć™ć€‚ć©ć”ć‚‰ć«ćŠć„ć¦ć‚‚å„Ŗå…ˆé †ä½ćŒé«˜ć„ć»ć†(ꎄē¶šäø­)恌ļ¼ć«ćŖć£ć¦ć„ć‚‹ćÆ恚ćŖć®ć§ćƒ‡ćƒ•ć‚©ćƒ«ćƒˆć§ćÆ0恧恄恄ćØę€ć„ć¾ć™ć€‚ēŠ¶ę³ć«åˆć‚ć›ć¦å¤‰ćˆć¦ćć ć•ć„怂

Class : ScanDevice()

ē‰¹ć«ē¾ę®µéšŽć§ć‚ć¾ć‚Šę„å‘³ćŖ恄恧恙怂갗恫恗ćŖ恄恧恏恠恕恄怂

ć‚½ćƒ¼ć‚¹ćƒ•ć‚”ć‚¤ćƒ«ćƒ»å‹•ä½œčŖ¬ę˜Ž

ćƒ»ć¾ćšé€šäæ”ć‚’é–‹å§‹ć™ć‚‹ćŸć‚ć«UdpClientć‚Æćƒ©ć‚¹ć®ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ć‚’ē”Ÿęˆć—ć¾ć™ć€‚

ćƒ›ć‚¹ćƒˆå“ (ipAddr)
udpSystem = new UDPSystem(null);
udpSystem.Set(ipAddr, 5001, ipAddr2, 5002);

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“(ipAddr2)
udpSystem = new UDPSystem((x) => Receive(x));
udpSystem.Set(ipAddr2, 5002, ipAddr, 5001);
udpSystem.Receive();

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć«ćÆ受äæ”ę™‚ć®å‹•ä½œćØ恗恦Receive(byte[])ć‚’ęŒ‡å®šć—ć¦ć„ć¾ć™ć€‚
ć“ć‚Œć§ęŒ‡å®šćƒćƒ¼ćƒˆć§ć®å—äæ”Ꙃ恫Receive(byte[])é–¢ę•°ćŒå‘¼ć°ć‚Œć‚‹ć‚ˆć†ć«ćŖć‚Šć¾ć™ć€‚(å¼•ę•°ćÆ受äæ”恗恟Byte配列)

惻Update()å†…ć§ē¹°ć‚Ščæ”ć—č”Œć†éƒØåˆ†ć‚’ę›øćč¾¼ćæć¾ć™

ćƒ›ć‚¹ćƒˆå“
vector3 = gameObject.transform.position;
DATA sendData = new DATA(vector3);
udpSystem.Send(sendData.ToByte(),99);

ćƒ›ć‚¹ćƒˆå“ćÆć‚²ćƒ¼ćƒ ć‚Ŗ惖ć‚ø悧ć‚Æ惈恮åŗ§ęØ™ć‚’å–å¾—ćƒ»é€äæ”悒ē¹°ć‚Ščæ”ć—ć¾ć™ć€‚
SendData.ToByte()恧Vector3恮åŗ§ęØ™ęƒ…å ±ć‚’Byteé…åˆ—ć«å¤‰ę›ć—ć€ćć®å†…å®¹ć‚’udpSystem.Send()恧送äæ”ć—ć¦ć„ć¾ć™ć€‚

ć¾ćŸSend()恧送äæ”ć™ć‚‹éš›ć«å¼•ę•°ļ¼™ļ¼™ć‚’ćØć£ć¦ć„ć‚‹ć®ćÆē†ē”±ćŒć‚ć‚Šć¾ć—ć¦ć€ē§ć®ä½œć£ćŸSendé–¢ę•°ćÆ送äæ”ć«å¤±ę•—ć—ćŸå “åˆ(送äæ”処ē†äø­ćŖ恩恧)恫ļ¼‘ļ¼å›žć¾ć§ć‚³ćƒ³ćƒ†ćƒ‹ćƒ„ćƒ¼ć‚’ć™ć‚‹ć‚ˆć†ć«ćŖć£ć¦ć„ć‚‹ćŸć‚ć«ćƒ«ćƒ¼ćƒ—ć§å‘¼ć¶éš›ćÆå¤±ę•—ć™ć‚‹ćØ恩悓恩悓送äæ”å¾…ę©Ÿäø­ć®ćƒ‡ćƒ¼ć‚æ恌ęŗœć¾ć£ć¦ć—ć¾ć†ć®ć§å¼•ę•°ć«ļ¼‘ļ¼ä»„äøŠć®ę•°å€¤ć‚’å…„悌悋恓ćØć§å¤±ę•—ć—ć¦ć‚‚ļ¼‘åŗ¦ć—恋送悉ćŖć„ć‚ˆć†ć«ć—ć€å›žéæć—ć¦ć„ć¾ć™ć€‚ć“ć®č¾ŗćÆ各č‡Ŗć§ć‚«ć‚¹ć‚æ惞悤ć‚ŗć—ć¦ćć ć•ć„ć€‚

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“
gameObject.transform.position = vector3;

vector3恫äæå­˜ć•ć‚Œć¦ć„ć‚‹å€¤ć‚’ć‚²ćƒ¼ćƒ ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć«åę˜ ć•ć›ć¦ć„ć¾ć™ć€‚

void Receive(byte[] bytes)
{
DATA getData = new DATA(bytes);
vector3 = getData.ToVector3();
}

ć‚Æćƒ©ć‚¤ć‚¢ćƒ³ćƒˆå“ć®ćæć‚µćƒ¼ćƒćƒ¼ć‹ć‚‰ćƒ‡ćƒ¼ć‚æć‚’å—äæ”ę™‚ć“ć®é–¢ę•°ćŒå‘¼ć³å‡ŗć•ć‚Œć¾ć™ć€‚å—äæ”恗恟Byteé…åˆ—ć®ćƒ‡ćƒ¼ć‚æ悒ä½æćˆć‚‹å½¢ć«å¤‰ę›åŠć³čŖ­ćæå–ć‚Šē”Øć®å¤‰ę•°vector3ć«ä»£å…„ć—ć¦ć„ć¾ć™ć€‚

共通éƒØ分
text.text = “(” + vector3.x + “,” + vector3.y + “,” + vector3.z + “)”;

ē¾åœØć®ć‚²ćƒ¼ćƒ ć‚Ŗ惖ć‚ø悧ć‚Æćƒˆć®ä½ē½®ć‚’ę•°å€¤ćØ恗恦ē”»é¢ć«č”Øē¤ŗ恗恦恄悋恠恑恧恙怂


ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰

ć€Œć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰č¦‹ćŸć ć‘ć˜ć‚ƒåˆ†ć‹ć‚‰ć‚“ć‚šŸ‘¼ć€
ć€Œć„ć‚„ć€å‹•ć‹ć‚“ć‚„ć‘ć©ā™”怍

ćØć„ć†ę–¹ćŖć©ć«å‘ć‘ć¦ćƒ—ćƒ­ć‚ø悧ć‚Æćƒˆć‚„ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć®é…åøƒć‚’č”Œć„ć¾ć™ć€‚
ā€»ćŖ恊态å…Ø恦恮ē’°å¢ƒć«ćŠć‘ć‚‹å‹•ä½œäæčؼćÆć—ć¦ć„ć¾ć›ć‚“äŗ‹ć‚’恔ē†č§£ćć ć•ć„怂

å½“ę–¹ćŒē¢ŗčŖć—ćŸå‹•ä½œē’°å¢ƒ

ćƒ»ć€Œćƒ‡ć‚¹ć‚Æ惈惃惗PC怍- (꜉ē·šLAN) – (wi-fi) -ć€Œć‚¹ćƒžćƒ›ć€
ćƒ»ć€ŒćƒŽćƒ¼ćƒˆPC怍- (wi-fi) – ć€Œć‚¹ćƒžćƒ›ć€
惻 ć€Œćƒ‡ć‚¹ć‚Æ惈惃惗PC怍- (꜉ē·šLAN) -ć€ŒćƒŽćƒ¼ćƒˆćƒ‘ć‚½ć‚³ćƒ³ć€

恧恮通äæ”恌恧恍悋恓ćØ悒ē¢ŗčŖć—ć¾ć—ćŸć€‚ćŖćŠć€ć‚¹ćƒžćƒ›ćÆ怌Android(Xperia-Z5åŠć³X)态iphone 6怍悒ē”Ø恄恦ē¢ŗčŖć—ć¾ć—ćŸć€‚

ć‚½ćƒ¼ć‚¹ćƒ•ć‚”ć‚¤ćƒ« ( main.cs态UdpClient.cs )

(2019/01/18 čæ½čؘ) äø€åæœć“ć‚Œć§ć‚‚å‹•ćć¾ć™ćŒå¤‰ćŖéƒØåˆ†ćƒ»ę›ø恍ē›“ć™ć¹ćéƒØåˆ†ćŒć‚ć£ćŸć®ć§äø€éƒØę›ø恍ē›“ć—ć¦ć„ć¾ć™ć€‚ć„ć¤ć‹ę–°ć—ć„ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć«å¤‰ćˆć¦ćŠćć¾ć™ć€‚

Unity 惗惭ć‚ø悧ć‚Æćƒˆćƒ•ć‚”ć‚¤ćƒ«ć®ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ (zip形式)


ć“ć“ć¾ć§čŖ­ć‚“ć§ćć‚Œć¦ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć—ćŸļ¼
ę²¢å±±ć®äŗŗć§ć‚²ćƒ¼ćƒ ę„­ē•Œćƒ»ć‚¢ćƒ—ćƒŖę„­ē•ŒćŖ恩ē››ć‚ŠäøŠć’恦恄恑悋ćØ恄恄恧恙恭ļ¼

ćƒ›ćƒ¼ćƒ ćƒšćƒ¼ć‚ø恧ćÆ他恫悂

ćƒ»ę§˜ć€…ćŖčؘäŗ‹ć‚„ä½œć£ćŸä½œå“ćŠć‚ˆć³éŽē؋
ćƒ»ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć€ļ¼“Dćƒ•ć‚”ć‚¤ćƒ«
ćƒ»ć‚ć‚‰ć‚†ć‚‹”ćƒ¢ćƒŽ”ć®ä½œć‚Šę–¹

ćŖ恩ćŖć©éšę™‚čؘäŗ‹ć‚’ę–°č¦å…¬é–‹ćƒ»ę›“ę–°ć—ć¦ć„ć¾ć™ć®ć§ę˜Æéžč¦‹ć¦ć„ć£ć¦ćć ć•ć„ć­ļ¼č¦‹ć¦ć„ćŸć ć‘ć‚‹ćØęœ¬å½“ć«å¬‰ć—ć„ć§ć™ļ¼

ć¾ćŸć€ć€Œć“ć®ć‚¢ćƒ—ćƒŖć®ä½œć‚Šę–¹ć‚’ēŸ„ć‚ŠćŸć„ć€‚ć“ć®éƒØåˆ†ć©ć†ćŖć£ć¦ć‚‹ć®ļ¼Ÿć€ć€Œčŗ«ć®å›žć‚Šć®ć“ć‚“ćŖć‚‚ć®ä½œć‚Œć‚‹ć®ļ¼Ÿć€ćŖ恩ćŖć©ć”ę„č¦‹ä½•ć§ć‚‚å—ć‘ä»˜ć‘ć¦ć„ć¾ć™ć®ć§ę˜Æ非連ēµ”恏恠恕恄恭ļ¼

ć‚¹ćƒžćƒ›å‘ć‘ć«å§‹ć‚ć‚‹VR Part1

恩恆悂ļ¼ę“‹ę¢ØšŸć§ć™ļ¼

ćæćŖ恕悓怌VRć€ć”å­˜ēŸ„恧恗悇恆恋ļ¼Ÿ
ä»Šć“ć®ć€ŒVR怍悄怌AI怍恌惛惃惈ćŖåˆ†é‡Žć ćØę€ć„ć¾ć™ļ¼(個äŗŗēš„ę„č¦‹)

恝悓ćŖć‚ć‘ć§ä»Šå›žćÆē°”単ćŖVRć‚¢ćƒ—ćƒŖć®ä½œć‚Šę–¹ć«ć¤ć„ć¦åˆåæƒč€…ć«ć‚‚ć‚ć‹ć‚Šć‚„ć™ćę›ø恄恦恄恓恆ćØę€ć„ć¾ć™ļ¼

ä½œęˆę™‚é–“ć®ē›®å®‰ćÆ

Unityć€ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ęœŖēµŒéØ“č€…ļ¼š30分
Unity初åæƒč€…ļ¼š10分
UnityēµŒéØ“č€…ļ¼š5分

恻恩恧å‡ŗę„ć‚‹ćØę€ć‚ć‚Œć‚‹ć»ć©VRć®å‚å…„ćÆē°”å˜ć§ć™ļ¼
ā€»å€‹äŗŗēš„ä½“ę„Ÿé€Ÿåŗ¦ć«ćŖć‚Šć¾ć™ć€‚

ćœć²ć€ćć‚‚ćć‚‚ć‚¢ćƒ—ćƒŖć‚’ä½œć£ćŸć“ćØ恌ćŖć„ę–¹ć‚‚ć‚„ć£ć¦ćæć¦ćć ć•ć„ć­ā™Ŗ

ē”Øę„ć™ć‚‹ć‚‚ć®

ćƒ»ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ (今回ćÆAndroid)

ä½œęˆć—ćŸć‚¢ćƒ—ćƒŖć‚’ć‚¤ćƒ³ć‚¹ćƒˆćƒ¼ćƒ«ć—ć¦ä½æć„ć¾ć™ć€‚
今回ē§ćÆ Xperia Z5 悒ä½æē”Øć—ć¾ć—ćŸć€‚

ā€»äŗ‹å‰ć«čØ­å®šć§é–‹ē™ŗ者ć‚Ŗćƒ—ć‚·ćƒ§ćƒ³ā†’USB惇惐惃ć‚Æ悒ONć«ć—ć¦ćŠć„ć¦ćć ć•ć„

ćƒ»ćƒ˜ćƒƒćƒ‰ćƒžć‚¦ćƒ³ćƒˆćƒ‡ć‚£ć‚¹ćƒ—ćƒ¬ć‚¤(HMD)


ā†‘ļ¼ˆ ē§ćŒč²·ć£ćŸć®ćÆ恓恔悉ļ¼‰ā†‘
ć‚¢ćƒ—ćƒŖć‚’å®Ÿč”Œć™ć‚‹ć®ć«ä½æć„ć¾ć™ć€‚

惻Unity

ć¾ć PCć«å…„ć£ć¦ćŖć„ę–¹ćÆ恓恔悉恋悉ē„”ꖙē‰ˆć‚’ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ć—ć¦ćć ć•ć„ļ¼

惻GoogleVR SDK (For Unity)

Unityć«å–ć‚Šč¾¼ć‚“ć§ä½æć„ć¾ć™ć€‚ć“ć“ć‹ć‚‰ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ć§ćć¾ć™ć€‚

惗惭ć‚ø悧ć‚Æćƒˆć®ä½œęˆ

ć¾ćšUnityć‚’čµ·å‹•ć—ć€ćƒ—ćƒ­ć‚ø悧ć‚Æćƒˆć‚’ä½œęˆć—ć¾ć™ć€‚

ćŠå„½ććŖåå‰ć€ćƒ•ć‚”ć‚¤ćƒ«ćƒ‘ć‚¹ć«čØ­å®šć—ļ¼“Dć§ä½œęˆć—ć¦ćć ć•ć„ć€‚

GoogleVR ForUnity ć®ć‚¤ćƒ³ćƒćƒ¼ćƒˆ

äŗ‹å‰ć«ćƒ€ć‚¦ćƒ³ćƒ­ćƒ¼ćƒ‰ć—ćŸć€ŒGoogleVRForUnity_[ćƒćƒ¼ć‚øćƒ§ćƒ³å].unitypackage怍悒UnityćŒčµ·å‹•ć—ćŸēŠ¶ę…‹ć§é–‹ćć¾ć™ć€‚恙悋ćØ态

恓恮ē”»é¢ćŒå‡ŗ悋ćØę€ć†ć®ć§ęœ€åˆćÆē„”åæƒć§Import悒ć‚ÆćƒŖ惃ć‚Æć—ć¦ćć ć•ć„ļ¼

ć‚¤ćƒ³ćƒćƒ¼ćƒˆćŒå®Œäŗ†ć™ć‚‹ćØAssets/GoogleVRćŒä½œęˆć•ć‚Œć¦ć„ć‚‹ć®ćŒåˆ†ć‹ć‚‹ćØę€ć„ć¾ć™ć€‚

Prefubć®ć‚¢ć‚æ惃惁

Assets/GoogleVR/Prefubs恮äø­ć‹ć‚‰

惻GvrEventSystem

惻GvrControllerMain

惻GvrEditorEmulator

ć‚’ęŽ¢ć—ć¦ē„”åæƒć§ćØć‚Šć‚ćˆćšć‚·ćƒ¼ćƒ³ć«čæ½åŠ ć—ć¾ć™ć€‚

PlayerSetting

UnityäøŠéƒØć‚æ惖怌Edit怍ā†’ć€ŒProject Setting怍ā†’ć€ŒPlayerć€ć‚’é–‹ćć¾ć™ć€‚

ćƒ‰ćƒ­ć‚¤ćƒ‰å›ć‚æćƒ–å†…ć®XR Setting悒開恍态Supportedć«ćƒć‚§ćƒƒć‚Æ悒恤恑态ļ¼‹ćƒœć‚æćƒ³ć‹ć‚‰äøŠē”»åƒć®ć‚ˆć†ć«ē„”åæƒć§čæ½åŠ ć—ć¾ć™ć€‚

ć‚Ŗ惖ć‚ø悧ć‚Æ惈恮čæ½åŠ  (ä»»ę„)

恓恮äøŠć¾ć§ć®ä½œę„­ć§ć‚‚ć†ę—¢ć«VRć‚¢ćƒ—ćƒŖćÆå®Œęˆć—ć¦ć„ć¾ć™ļ¼

ć—ć‹ć—ć€ć‚¹ćƒ†ćƒ¼ć‚øäøŠć«ä½•ć‚‚ćŖć„ćŸć‚å®Ÿč”Œć—ć¦ć‚‚ä½•ć‚‚ćŖ恄äø–ē•Œć‚’見ęø”恙恠恑恫ćŖć£ć¦ć—ć¾ć„ć¾ć™ć®ć§ä½•ć‹ć—ć‚‰čæ½åŠ ć—ćŸć„ćØę€ć„ć¾ć™ć€‚

éŽåŽ»ć«ä½œć£ćŸļ¼“Dćƒ¢ćƒ‡ćƒ«ćŒć‚ć‚Œć°é…ē½®ć—恦悂恄恄恗态

ē„”ć‘ć‚Œć°å³ć‚ÆćƒŖ惃ć‚Æ惻Create恋悉3D ObjectćŖć©ć§ä½œć£ć¦ć‚‚ć„ć„ćØę€ć„ć¾ć™ļ¼

ćƒ“ćƒ«ćƒ‰

恧ćÆ恓悌恧惗惭ć‚ø悧ć‚ÆćƒˆćŒå®Œęˆć—ćŸć®ć§ć‚¢ćƒ—ćƒŖć‚’å®Ÿéš›å‹•ć‹ć—ć¦ć„ććŸć„ćØę€ć„ć¾ć™ć€‚UnityäøŠéƒØć‚æ惖恋悉怌File怍ā†’ć€ŒBuild Settingsć€ć‚’é–‹ćć¾ć™ć€‚

ćć—ć¦Android悒éøć³ć¾ć™ć€‚ć‚¹ćƒžćƒ›ćŒPC恫ꎄē¶šć•ć‚Œć¦ć„悋恓ćØ悒ē¢ŗčŖć—ćŸć‚‰ć€ć€ŒBuild And Runć€ć§å®Ÿč”Œć—ć¾ć™ć€‚2台仄äøŠęŽ„ē¶šć•ć‚Œć¦ć„ć‚‹å “合Run Deviceć‹ć‚‰å®Ÿč”Œć™ć‚‹ē«Æęœ«ć‚’éø悓恧恏恠恕恄怂

ā€»IphonećŖ恩IOSć§ć®å®Ÿč”ŒćÆXcode恫å‡ŗåŠ›ć€ćŠć‚ˆć³å®Ÿč”Œć®ę‰‹é †ćŒć‚ć‚Šć¾ć™ćŒå‰²ę„›ć•ć›ć¦ć„ćŸć ćć¾ć™ć€‚

ć‚¹ćƒžćƒ¼ćƒˆćƒ•ć‚©ćƒ³ć§VRć‚¢ćƒ—ćƒŖćŒå®Ÿč”Œć§ćć‚Œć°ęˆåŠŸć§ć™ć€‚
ę€ć£ć¦ćŸć‚ˆć‚ŠćØ恦悂ē°”å˜ć ć£ćŸć®ć§ćÆćŖ恄恧恗悇恆恋ļ¼Ÿ

ć¾ć ć“ć‚Œć§ćÆ見ęø”恙恠恑ćŖć®ć§å„½č©•ć ć£ćŸć‚‰å‹•ć‘ć‚‹ć‚ˆć†ć«ć—ćŸć‚Šć€ć‚²ćƒ¼ćƒ ć«ć—ć¦ćæ恟悊ćØē¶šćć‚’ę›ø恄恦ćæ悈恆恋ćØę€ć„ć¾ć™ļ½ž


ć‚Øćƒ©ćƒ¼ćŒčµ·ćć‚‹

恓恮čؘäŗ‹é€šć‚Šć«å®Ÿč”Œć—恦悂ē’°å¢ƒć«ć‚ˆć‚Šć‚Øćƒ©ćƒ¼ćŒå‡ŗ悋恓ćØćŒć‚ć‚Šć¾ć™ć€‚
ć‚¢ćƒ—ćƒŖ開ē™ŗćƒ»ćƒ—ćƒ­ć‚°ćƒ©ćƒŸćƒ³ć‚°ć«ć‚Øćƒ©ćƒ¼ćÆć¤ćć‚‚ć®ć§ć™ļ¼ˆļ¼›^Ļ‰^ļ¼‰
恓恓恫ćÆäø€čˆ¬ēš„ćŖć‚Øćƒ©ćƒ¼ćØč§£ę±ŗę–¹ę³•ć‚’ę›øć„ć¦ćŠćć¾ć™ć€‚

UnityException: Minimum API Level Not Supported on Requested VR Device.Cardboard Requires a Minimum API Level of 19.

ęŒ‡å®šęœ€ä½ŽAPIćƒ¬ćƒ™ćƒ«ćŒä½Žć™ćŽć¾ć™ć€‚ć“ć®å “åˆć§ć™ćØ态Level 19 ( Android4.4 )仄äøŠć«ć™ć‚‹åæ…č¦ćŒć‚ć‚Šć¾ć™ć€‚PlayerSetting悒見ē›“恗恦ćæć¦ćć ć•ć„ć€‚

Build completed with a result of ‘Failed’

꧘怅ćŖåŽŸå› ćŒć‚ć‚Šć¾ć™ćŒäø»ć«ćÆ

ćƒ»ć‚¹ćƒžćƒ›ćŒęŽ„ē¶šć•ć‚Œć¦ć„ćŖ恄怂(adb恧ꎄē¶šć§ćć¦ć„悋恋ē¢ŗčŖ)
惻JDK惻SDKć®ćƒ‘ć‚¹ćŒé–“é•ć£ć¦ć„ć‚‹ć€‚(External Tools恧ē¢ŗčŖ)
ćƒ»ćƒ‘ćƒƒć‚±ćƒ¼ć‚øåćŒåˆęœŸć®ć¾ć¾(PlayerSettingā†’PackageNameć‚’å¤‰ę›“)


čŖ­ć‚“ć§ć„ćŸć ćć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć—ćŸļ¼¾ļ¼¾

ć“ć‚Œć‹ć‚‰ć‚‚ć©ć‚“ć©ć‚“čؘäŗ‹ć‚’ę›ø恄恦恄恓恆ćØę€ć£ć¦ć¾ć™ć®ć§ć©ć†ćžć‚ˆć‚ć—ććŠé”˜ć„ć—ć¾ć™ļ¼ļ¼

ęœ€ę–°ć®čؘäŗ‹ć‚’見悋ā†’

UnityäøŠć§é””čŖč­˜ ļ½žWebć‚«ćƒ”ćƒ©ć§ćƒ¢ćƒ¼ć‚·ćƒ§ćƒ³ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ćø恮道ļ½ž Part2

恩恆悂ļ¼ę“‹ę¢ØšŸć§ć™ļ¼

å‰å›žć®čؘäŗ‹

[ UnityäøŠć§é””čŖč­˜ ļ½žWebć‚«ćƒ”ćƒ©ć§ćƒ¢ćƒ¼ć‚·ćƒ§ćƒ³ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ćø恮道ļ½ž Part1 ]

恮ē¶šćć«ćŖć‚Šć¾ć™ļ¼

ćƒžć‚¹ć‚Æē”»åƒć‹ć‚‰č¼Ŗéƒ­ć‚’ęŠ½å‡ŗ

åŸŗęœ¬å‹•ä½œ

Unity恧恮Textureć®ćƒ‡ćƒ¼ć‚æćƒ¼ćÆå·¦äø‹ć‚’0,0ćØ恗恦äæå­˜ć•ć‚Œć¦ć„ć¾ć™ć€‚

ćć®ćŸć‚ć€ćƒžć‚¹ć‚Æćƒ‡ćƒ¼ć‚æćƒ¼ć‚‚åŒć˜ćå·¦äø‹ć‚’0,0ćØ恗恦2ę¬”å…ƒé…åˆ—ćØ恗恦äæå­˜ć—ć¦ć„ć¾ć™ć€‚

ä»Šå›žćƒžć‚¹ć‚Æćƒ‡ćƒ¼ć‚æćƒ¼ć®é…åˆ—ćÆByteåž‹ć‚’ä½æē”Øć—ć¾ć—ćŸć€‚boolåž‹ć§ć‚‚č‰Æć‹ć£ćŸć®ć§ć™ćŒć‚¹ć‚æćƒ¼ćƒˆä½ē½®ć‚’ćƒžćƒ¼ć‚Æć—ćŸć‹ć£ćŸē‚ŗ态Byteåž‹ć«ć—ć¾ć—ćŸć€‚


ā€»( Byte[ width , height ] px ć®å¼•ę•°ćØ恗恦恄悋éƒØ分 )

ć•ć¦ć€ćƒ”ć‚Æć‚»ćƒ«ćƒ‡ćƒ¼ć‚æćƒ¼ć‹ć‚‰č¼Ŗéƒ­ć‚’ęŠ½å‡ŗ恙悋恫ćÆ

ć“ć®ć‚ˆć†ć«å‘Øć‚Šć®ćƒ”ć‚Æć‚»ćƒ«ć‚’ćŸć©ć£ć¦ć„ćć®ćŒäø€čˆ¬ēš„ćŖ悈恆ćŖć®ć§ć“ć®ę–¹ę³•ć§č”ŒććŸć„ćØę€ć„ć¾ć™ć€‚

ć—ć‹ć—ć“ć®å‡¦ē†ćÆ1ćƒ•ćƒ¬ćƒ¼ćƒ äŗ‹ć«č”Œć†ćŸć‚ć€ć“恮éƒØåˆ†ćŒé‡ć„å‡¦ē†ć ćØćƒ•ćƒ¬ćƒ¼ćƒ ćƒ¬ćƒ¼ćƒˆä½Žäø‹ć«ē¹‹ćŒć£ć¦ć—ć¾ć„ć¾ć™ć€‚ćć®ćŸć‚ć‚¢ćƒ«ć‚“ćƒŖć‚ŗćƒ ć®ęœ€é©åŒ–ćŖć©ćŒåæ…要恫ćŖć‚Šć¾ć™ć€‚

処ē†ć®ęµć‚Œ

å·¦äø‹ć®0,0恋悉Xč»øę–¹å‘ć«ćƒ”ć‚Æć‚»ćƒ«ćƒ‡ćƒ¼ć‚æć‚’å–å¾—ć—ć¦ć„ćć€ćƒ’ćƒƒćƒˆć—ćŸē‚¹ć‚’čµ·ē‚¹ćØć—ć¦ä»Šå›žćÆåę™‚čØˆå›žć‚Šć«ęŽ¢ē“¢ć—ć¦ć„ćć¾ć™ć€‚

ę¬”ć«ęŽ¢ē“¢ć™ć‚‹ę–¹å‘ćŒåˆ†ć‹ć‚‹ć‚ˆć†ć«ć€å›³ć®ć‚ˆć†ć«ę–¹å‘ć”ćØć«ę•°å­—ć‚’å‰²ć‚ŠęŒÆć‚Šć¾ć™ć€‚

ć“ć®ę•°å­—ć‚’å¼•ę•°ćØć—ćŸé–¢ę•°ć‚’ä½œć‚Šć€å‰å›žć®ęŽ¢ē“¢ć—ćŸę–¹å‘ć‹ć‚‰ę¬”ęŽ¢ć—å§‹ć‚ć‚‹ć¹ćę–¹å‘ć‚’ę±ŗć‚ć¾ć™ć€‚ä»Šå›žćÆå¤§ćć„ę•°å­—ć‹ć‚‰å°‘ćŖć„ę•°å­—ćøćØęŽ¢ē“¢ć—ć¾ć™ć€‚

ā€»ćŸćØ恈恰ļ¼”ć‹ć‚‰ć®å “合ļ¼”ļ¼“ļ¼’ļ¼‘ 9 … ćØęŽ¢ē“¢ć—ć¾ć™ć€‚

ć“ć®é–¢ę•°ć§ćÆåˆć‚ć¦ćƒ”ć‚Æć‚»ćƒ«ć«ćƒ’ćƒƒćƒˆć—å‘¼ć³å‡ŗ恕悌恟Ꙃ

4ć‹ć‚‰ęŽ¢ē“¢ć‚’å§‹ć‚ć¾ć™ć€‚

ćŖ恜ćŖ悉äø‹ć‹ć‚‰äøŠćøćƒ»å·¦ć‹ć‚‰å³ćøćØęŽ¢ē“¢ć—ć¦ććŸć®ć§ć€

ļ¼•ć€ļ¼–态ļ¼—态ļ¼˜ć«ćÆ存åœØ恗ćŖ恄恟悁恧恙怂

ć“ć®ć‚ˆć†ćŖę³•å‰‡ć‚’å…ƒć«ę¬”ć®ęŽ¢ē“¢é–‹å§‹ē‚¹ć‚’ę±‚ć‚ć‚‹é–¢ę•°ć‚’åˆ„恫ē”Øę„ć—ć¾ć™ć€‚

å‰ć®ęŽ¢ē“¢ę–¹å‘ć‚’å…ƒć«ę¬”ć®é–‹å§‹ę–¹å‘ć‚’čæ”ć™é–¢ę•° GetNextWay( int )

ā€»ć¾ćŸć€å‰ć®ę•°å­—ćŒå¶ę•°ć ć£ćŸå “合5å›žć€å„‡ę•°ć ć£ćŸå “åˆ6å›žć§ęŽ¢ē“¢ć§ććŖć„å “åˆćŠć‹ć—ć„(ć‚Øćƒ©ćƒ¼)ćØ恄恆äŗ‹ć‚‚čøć¾ćˆć¦ć“ć®ę®µéšŽć§ä¾‹å¤–å‡¦ē†ć‚‚å…„ć‚Œć¦ćŠćć¾ć™ć€‚

ć“ć®ć‚ˆć†ć«ęŽ¢ē“¢ć—ć¦ć„ćęŽ¢ē“¢å¾Œć€å¼•ę•°ćØ恗恦ćØć£ćŸćƒ”ć‚Æć‚»ćƒ«ćƒ‡ćƒ¼ć‚æćƒ¼é…åˆ—ć®å¤‰ę•°(byte[ , ])悒ļ¼ˆęŽ¢ē“¢ć—ćŸćƒ”ć‚Æć‚»ćƒ«ć‚’ļ¼‰1恋悉2ć«ć—ć¦ć„ćć¾ć™ć€‚

ćć—ć¦ęŽ¢ē“¢é–‹å§‹ē‚¹ć«ęˆ»ć£ć¦ććŸć‚‰å‡¦ē†ć‚’ēµ‚äŗ†ć—ć¾ć™ć€‚

ęŽ¢ē“¢é–‹å§‹ę™‚å‘¼ć³å‡ŗć™é–¢ę•° StartScan( int , int ,ref byte[ , ] )

ęŽ¢ē“¢ć™ć‚‹ćƒ”ć‚¤ćƒ³é–¢ę•°(1) Scan(int , ref int ,ref int ,ref List<Pixel_XY>)

äæå­˜ē”Øć‚Æćƒ©ć‚¹ class Pixel_XY

ć“ć®ć¾ć¾ć ćØ惎悤ć‚ŗ恮č¼Ŗéƒ­ć‚‚åˆ¤å®šć—ć¦ć—ć¾ć£ć¦ć„ć‚‹ćŸć‚å°ć•ć„č¼Ŗ郭ļ¼ˆč¼Ŗéƒ­ć®ćƒ”ć‚Æć‚»ćƒ«ę•°ćŒć—ćć„å€¤ä»„äø‹ļ¼‰ćÆé™¤å¤–ć™ć‚‹ćŖć©ć®å‡¦ē†ć‚’ć—ć¾ć™ć€‚

ā€»ć“ć‚Œć‚‰ć®ēµęžœćÆ Dictionary<int, List<Pixel_XY>> result ćØ恗恦äæå­˜ć•ć‚Œć¾ć™ć€‚
ć¾ćŸć€result.Count恧č¼Ŗ郭恮ē·ę•°ć€result[ int ].Count恧 [int]恤ē›®ć®č¼Ŗéƒ­ć®ćƒ”ć‚Æć‚»ćƒ«ę•°ćŒåˆ†ć‹ć‚‹ć‚ˆć†ć«ćŖć£ć¦ć„ć¾ć™ć€‚

ć“ć®ćƒ‡ćƒ¼ć‚æćƒ¼ć‚’å…ƒć«ē”»é¢ć«å›²ć£ćŸćƒœćƒƒć‚Æć‚¹ć‚’č”Øē¤ŗ恙悋ćØ

ā†“ ć“ć®ć‚ˆć†ć«ćŖć‚Šć¾ć™ ā†“

恋ćŖć‚Šćć‚Œć£ć½ććŖć£ć¦ććŸć®ć§ćÆē„”恄恧恗悇恆恋ļ¼Ÿ

ć“ć‚Œć§å¤§ä½“ć®é””ć‚’ē‰¹å®šć§ććŸćØ恄恆äŗ‹ć§ć€ę¬”ćÆä½“ć®éƒØåˆ†ć‚’ē‰¹å®šć§ćć‚‹ć‚ˆć†ć«ć—ć¦ć„ććŸć„ćØę€ć„ć¾ć™ļ¼ļ¼

čŖ­ć‚“ć§ćć‚Œć¦ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć™ļ¼

ä»–ć«ć‚‚ę§˜ć€…ćŖčؘäŗ‹ć‚’ę›øć„ć¦ć„ć¾ć™ć®ć§ę˜Æéžč¦‹ć¦ć„ć£ć¦ćć ć•ć„ć­ļ¼¾ļ¼¾

UnityäøŠć§é””čŖč­˜ ļ½žWebć‚«ćƒ”ćƒ©ć§ćƒ¢ćƒ¼ć‚·ćƒ§ćƒ³ć‚­ćƒ£ćƒ—ćƒćƒ£ćƒ¼ćø恮道ļ½ž Part1

恩恆悂ļ¼ę“‹ę¢Ø恧恙ļ¼šŸ

å…ˆę—„ć€Facerig + Live2D 悒ē”Ø恄恦Webć‚«ćƒ”ćƒ©ć§ļ¼’Dćƒ¢ćƒ‡ćƒ«ć‚’å‹•ć‹ć—ć¦ć„ć‚‹ć®ć‚’č¦‹ć¦ć€Webć‚«ćƒ”ćƒ©ć§ļ¼“Dćƒ¢ćƒ‡ćƒ«ć‚’å‹•ć‹ć™ć“ćØćÆ恧恍ćŖ恄恮恋ļ¼ŸćØč€ƒćˆć¾ć—ćŸć€‚

ā€»ļ¼ˆLive2D恫恤恄恦ćÆ恓恔悉怀FacerigćÆć“ć”ć‚‰ć€€ć‚’ć”č¦§ćć ć•ć„ć€‚ļ¼‰

恓恓恧ē§ćÆ

ļ¼‘ļ¼Žé””ć‚’ē”»åƒć‹ć‚‰ęŽ¢ć™
ļ¼’ļ¼Žé””恋悉äø‹ć‚’äŗŗē‰©ćØē‰¹å®šć€‚
ļ¼“ļ¼Žäŗŗē‰©ć‹ć‚‰ä½“ć®ćƒćƒ¼ć‚ŗć‚’å–å¾—ć€‚
ļ¼”ļ¼Žćƒćƒ¼ć‚ŗćƒ‡ćƒ¼ć‚æćƒ¼ć‚’ļ¼“Dćƒ¢ćƒ‡ćƒ«ć«åę˜ ć•ć›ć‚‹ć€‚

恓悌恌å‡ŗę„ć‚Œć°å‹•ć‹ć›ć‚‹ć‚ˆć†ć«ćŖ悋恮恧ćÆćŖ恄恋ļ¼ŸćØč‡Ŗ分ćÆč€ƒćˆćŸć®ć§ć“ć‚Œć‹ć‚‰é †ć€…ć«ä½œć£ć¦ć„ć“ć†ćØę€ć„ć¾ć™ć€‚UnityćÆć¾ć ä½æć„å§‹ć‚ć¦åŠå¹“ć®ćŸć‚Webć‚«ćƒ”ćƒ©ćÆä½æē”Ø恗恟恓ćØ恌ē„”ć‹ć£ćŸć®ć§ć€ćć“ć‹ć‚‰é †ć«ę›øć„ć¦ć„ććŸć„ćØę€ć„ć¾ć™ć€‚

ē”»åƒć‹ć‚‰é””ć‚’å–å¾—ć™ć‚‹

ć¾ćšćÆē”»åƒć‹ć‚‰é””ć‚’å–å¾—ć§ćć‚‹ć‚ˆć†ć«ć—ćŸć„ćØę€ć„ć¾ć™ć€‚
ć“ć‚Œć«ćÆ定ē•Ŗ怌OpenCV怍悒ä½æ恆恓ćØć‚‚č€ƒćˆćŸć®ć§ć™ćŒć€

ćƒ»ć›ć£ć‹ććŖć‚‰ęœ€åˆć‹ć‚‰ä½œć£ć¦ćæ恟恄
惻Phythonå‘ć
ćƒ»ćć‚‚ćć‚‚é«˜åŗ¦ę­£ē¢ŗćŖęŠ½å‡ŗćÆåæ…要ćŖćć€é””ć®ä½ē½®ćŒć‚ć‹ć‚‹ē؋åŗ¦ć§ć„恄
ćƒ»čƒŒę™ÆćÆéƒØå±‹ć§ę’®ć‚‹ćŸć‚å˜č‰²
ćƒ»ä½™č؈ćŖ処ē†ć‚’é™¤ć„ć¦č»½ćć—ćŸć„

ćØ恄恆ē‚¹ć‹ć‚‰ä½œć‚‹ć“ćØć«ć—ć¾ć—ćŸć€‚

ęŠ½å‡ŗę–¹ę³•ć«ć¤ć„ć¦ćŖć®ć§ć™ćŒę‰‹č»½ć«č»½ćęøˆć¾ć—ćŸć‹ć£ćŸć®ć§ä»Šå›žćÆ背ę™Æå·®åˆ†ę³•ć€RGB(HSV)悒ē”Øć„ć¦č‚Œć‚’ę¤œå‡ŗć€åŠć³é””ć‚’ęŠ½å‡ŗ恗恦ćæć¾ć—ćŸć€‚

Unity恧Webć‚«ćƒ”ćƒ©ć‹ć‚‰ē”»åƒć‚’取得

恓恮éƒØ分ćÆ他恫恋ćŖć‚Šå‚č€ƒć«ćŖć‚‹ć‚µć‚¤ćƒˆćŒć‚ć‚‹ćØę€ć†ć®ć§ē°”単ćŖčŖ¬ę˜Žć§ć™ć€‚

č©³ć—ć„čŖ¬ę˜ŽćŒę¬²ć—ć„ę–¹ćŒå¤šć„ć‚ˆć†ćŖ恮恧Webć‚«ćƒ”ćƒ©ć‹ć‚‰ē”»åƒć‚’å–å¾—ć™ć‚‹ę–¹ę³•ćÆć“ć”ć‚‰ć‚’ć”č¦§ćć ć•ć„ļ½ž


ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰

WebCamTexture 悒ä½æć£ć¦ć‚«ćƒ”ćƒ©ć‹ć‚‰ē”»åƒć‚’å–å¾—ć—ć¾ć™ć€‚
ć¾ćŸć€ä»Šå›žćÆē”»č³ŖćÆ悒걂悁恦恄ćŖ恄恟悁态320×240ć‚’ęŒ‡å®šć—ć¦ć„ć¾ć™ć€‚


ā€»ć”ćŖćæć«ä»Šå›žē§ćŒč²·ć£ćŸćƒ»ä½æć£ć¦ć„ć‚‹Webć‚«ćƒ”ćƒ©ćÆ恓恔悉


LOGICOOL ć‚¦ć‚§ćƒ–ć‚«ćƒ  HDē”»č³Ŗ 120äø‡ē”»ē“  C270

č²»ē”Øć‚’ęŠ‘ćˆćŸć‹ć£ćŸć®ć§ć‹ćŖć‚Šå®‰ć„ć‚„ć¤ć‚’éøć³ć¾ć—ćŸć€‚ē§ćÆćƒ¢ćƒ¼ć‚·ćƒ§ćƒ³ć‚­ćƒ£ćƒ—ćƒćƒ£ć®ē ”ē©¶ē”Øć«č²·ć£ćŸć®ć§å¤§äøˆå¤«ć§ć™ćŒć€ć€Œé…äæ”恗恟恄怍ćŖ恩ē”»č³Ŗć‚’ę±‚ć‚ć¦č²·ć†ć®ćÆć‚„ć‚ć¾ć—ć‚‡ć†ć€‚

ć—ć‹ć—ćƒ‡ć‚¹ć‚Æ惈惃惗PCćŖ恩Webć‚«ćƒ”ćƒ©ćŒć¤ć„ć¦ćŖć„ę–¹ćÆä»Šå¾Œć®ē‚ŗć«ć‚‚č³¼å…„ć‚’ćŠå‹§ć‚ć—ć¾ć™ć€‚(å€¤ę®µć‚‚ćć“ć¾ć§ć—ćŖ恄恮恧)


WebCamTexture 悒 RawImage恮Textureć«ć‚»ćƒƒćƒˆć—ć€å®Ÿč”Œć—ć¾ć™ć€‚

Webć‚«ćƒ”ćƒ©ć®ćƒ‡ćƒ¼ć‚æćƒ¼ć‚’å–å¾—ć§ćć‚‹ćØć“ć®ć‚ˆć†ć«č”Øē¤ŗ恙悋恓ćØćŒć§ćć¾ć™ć€‚

ā€»IndexOutOfRangeExceptionćŖ恩ć‚Øćƒ©ćƒ¼ćŒē™ŗē”Ÿć™ć‚‹å “åˆć€ć‚«ćƒ”ćƒ©ē•Ŗå·ć«å€¤ć™ć‚‹ć‚«ćƒ”ćƒ©ćŒå­˜åœØ恗恦恄ćŖ恄åÆčƒ½ę€§ćŒć‚ć‚Šć¾ć™ć€‚Windows 10恫ęؙęŗ–ę­č¼‰ć•ć‚Œć¦ć„ć‚‹ć‚«ćƒ”ćƒ©ć‚¢ćƒ—ćƒŖćŖ恩恧č”Øē¤ŗ恧恍悋恋ē¢ŗčŖć—恦ćæć¦ćć ć•ć„ć€‚

ē”»åƒć‹ć‚‰č‚Œć‚’ę¤œå‡ŗ

äøŠć®ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć‚’Update()ćŖ恩恫ę›øććƒ•ćƒ¬ćƒ¼ćƒ ęÆŽå‘¼ć³å‡ŗć—ć¾ć™ć€‚

Near_Color_Chack_RGB() ćÆ å…„åŠ›ć•ć‚ŒćŸč‰²ćØäø€å®šēÆ„å›²å†…ć®č‰²ć ć£ćŸå “åˆć€True悒čæ”恙č‡Ŗä½œé–¢ę•°ć§ć™ć€‚

Near_Color_Chack_RGB(Color 32)

ć“ć‚Œć§č‚Œć®č‰²ć«čæ‘ć„ćƒ”ć‚Æć‚»ćƒ«ć‚’ęŠ½å‡ŗ恙悋恓ćØ恌å‡ŗę„ć¾ć—ćŸć€‚

ć¾ćŸć€ć“ć“ć«ć•ć‚‰ć«HSVć«ć‚ˆć‚‹åˆ¤å®šć‚‚åŠ ćˆć¦ć€ŒPixelData[,]怍恋悉惎悤ć‚ŗ悒ęø›ć‚‰ć—态ē²¾åŗ¦ć‚’多少äøŠć’ć¾ć™ć€‚


ć“ć®ę®µéšŽć§ć€ŒpixelData[,]ć€ć‚’ćƒžć‚¹ć‚ÆćØć—ć¦ćƒ¬ć‚¤ćƒ¤ćƒ¼ć‚’é‡ć­ć¦č”Øē¤ŗć™ć‚Œć°č‚Œć®č‰²ć ć‘å–å¾—ć§ćć¦ć„ć‚‹ć®ćŒē¢ŗčŖć§ćć‚‹ćØę€ć„ć¾ć™ć€‚

ā€»ćŖćŠć€ä»Šå›žćÆUnity恧悈恏ä½æ悏悌悋怌Color怍ć‚Æćƒ©ć‚¹ć§ćŖ恏怌Color32怍悒ä½æć£ć¦ć„ć¾ć™ć€‚ē†ē”±ćÆć“ć‚Œć«ć‚ˆć‚Šé€Ÿåŗ¦ć‚’å¤§å¹…ć«äøŠę˜‡ć•ć›ć‚‹ć“ćØ恌恧恍悋恋悉恧恙怂

ć“ć‚Œć§ä»Šå›žćÆé””ć®ćƒžć‚¹ć‚Æćƒ‡ćƒ¼ć‚æćƒ¼ć‚’ä½œęˆć™ć‚‹ćØć“ć‚ć¾ć§å‡ŗę„ć¾ć—ćŸć€‚
恧ćÆę¬”å›žćÆć“ć®ćƒžć‚¹ć‚Æćƒ‡ćƒ¼ć‚æćƒ¼ć‚’ć•ć‚‰ć«ē®”ē†ć—ć‚„ć™ćć—ć¦ć„ććŸć„ćØę€ć„ć¾ć™ļ¼

ꬔćøć€Œćƒ¢ćƒ¼ć‚·ćƒ§ćƒ³ć‚­ćƒ£ćƒ—ćƒćƒ£ćø恮道 Part 2怍


ć“ć“ć¾ć§čŖ­ć‚“ć§ćć‚Œć¦ć‚ć‚ŠćŒćØć†ć”ć–ć„ć¾ć™ļ¼

ćƒ›ćƒ¼ćƒ ćƒšćƒ¼ć‚ø恧ćÆ他恫悂

ćƒ»ę§˜ć€…ćŖčؘäŗ‹ć‚„ä½œć£ćŸä½œå“ćŠć‚ˆć³éŽē؋
ćƒ»ć‚½ćƒ¼ć‚¹ć‚³ćƒ¼ćƒ‰ć€ē“ ęćƒ•ć‚”ć‚¤ćƒ«
ćƒ»ć‚ć‚‰ć‚†ć‚‹”ćƒ¢ćƒŽ”ć®ä½œć‚Šę–¹

ćŖ恩ćŖć©éšę™‚ć€čؘäŗ‹ć‚„ä½œå“ć‚’ę–°č¦å…¬é–‹ćƒ»ę›“ę–°ć—ć¦ć„ć¾ć™ć®ć§ę˜Æéžč¦‹ć¦ć„ć£ć¦ćć ć•ć„ć­ļ¼č¦‹ć¦ć„ćŸć ć‘ć‚‹ćØęœ¬å½“ć«å¬‰ć—ć„ć§ć™ļ¼

ć¾ćŸć€ć€Œć“ć®ć‚¢ćƒ—ćƒŖć®ä½œć‚Šę–¹ć‚’ēŸ„ć‚ŠćŸć„ć€‚ć“ć®éƒØåˆ†ć©ć†ćŖć£ć¦ć‚‹ć®ļ¼Ÿć€ć€Œčŗ«ć®å›žć‚Šć®ć“ć‚“ćŖć‚‚ć®ä½œć‚Œć‚‹ć®ļ¼Ÿć€ćŖ恩ćŖć©ć”ę„č¦‹ä½•ć§ć‚‚å—ć‘ä»˜ć‘ć¦ć„ć¾ć™ć®ć§ę˜Æ非連ēµ”恏恠恕恄恭ļ¼