WiiYourself!��gl.tter���ɂ��A���ɑ��@�\��Native C++�pAPI�ł��B��4�͂ŏЉ��WiimoteLib�ɂ��.NET���ł̍��@�\�E���Ղȃv���O���~���O�ƈقȂ�A�Â��ǂ�C/C++����ɂ�鍂���Œ��ړI�ȃv���O���~���O���s���邱�Ƃ����͂ł��B
�{�͂ł�WiiYourself!��C++�ɂ��R�}���h���C���v���O���~���O���Ŏg���Ă݂邱�Ƃ�ʂ��āA�C���^���N�V�����Z�p�̊�ՂƂȂ�Z�p���w�т܂��B
http://wiiyourself.gl.tter.org/
WiiYourself!�̃z�[���y�[�W�ɂ�WiiYourself!��p�����Q�[����A3DCG�\�t�gMaya�̑���A��B�J�����̐���Ȃǂ������̃v���W�F�N�g���Љ��Ă��܂��Bgl.tter���͎��ۂ�FPS(��l�̃V���[�e�B���O)�Q�[���uGUN FRENZY!2�v�𐧍삷�邽�߂ɂ��̃��C�u�������쐬���Ă���悤�ł��B�ȉ��́AWiiYourself!�̃z�[���y�[�W�ɋL�ڂ���Ă���@�\�ꗗ�ł��B
�z�[���y�[�W��ǂ�ł݂�ƁAWiimoteLib�̂��ƂƂȂ���Brian Peek���̃v���W�F�N�g�uManaged Wiimote Library�v�ƌ��_�������Ă��邱�Ƃ��킩��܂��BWiiYourself!������API�Ɣ�r������ł̓����Ƃ��ċ�������̂́A�l�C�e�B�uC++�̐ÓI���C�u����(.lib)�ł���ADLL�����s�v�ł��邱�ƁADirectX�Ȃǂɂ�鋌���̃Q�[���v���O���~���O��@�ɐe�a�������邱�ƁA�����I�Ȃ���X�s�[�J�[�ւ�WAV�o�͂�4�_�̐ԊO���̌��o�ȂǏ�ɃA�b�v�f�[�g�𑱂��Ă���_����������ł��傤�B�k�āE���B�̑����̊J���҂����p���Ă��܂��BAPI�R�A�̊J����gl.tter�����W��I�ɍs���Ă��܂����A���[�����O���X�g�ł̃f�B�X�J�b�V��������r�I�����ŁA���S�҂��猤���҂܂ŗl�X�Ȑl�����p���Ă��܂��B�w�ǂ��Ă��邾���ł����E����WiiRemote���p�҂������l���āA�ǂ�ȃg�����h�ɂ���̂��������Ċy�����ł��B��������낢��Ȕ��W�����҂ł���v���W�F�N�g�ł��傤�B
WiiYourself!���e���M���_�̍ŐV�ł�2008�N7��24���Ɍ��J���ꂽ�uv1.01a�v�ł��B�Ȃ��������[�����O���X�g�ł͎����o�[�W�����ɂ�����uv1.11beta�v����������Ă��܂����A�傫�ȕύX�͂Ȃ��̂Ŗ{���ł̓��W���[�o�[�W�����ł���uv1.01a�v�ʼn�����܂��BWiiYourself!��ZIP�t�@�C���̃_�E�����[�h�œ��肷�邱�Ƃ��ł��܂��B
http://wiiyourself.gl.tter.org/WiiYourself!_1.01a.zip
����ZIP�t�@�C���̒��ɁAWiiYourself!�̃\�[�X�R�[�h�A�ÓI�����N�p���C�u�����t�@�C���A�f���v���O�����A�������r���h���邽�߂̃v���W�F�N�g�t�@�C���A�B��̃}�j���A���ɓ�����README�t�@�C���A���C�Z���X�t�@�C���Ȃǂ��܂܂�Ă��܂��B
�C���X�g�[���Ƃ��ẮA�ǂ��Ƀt�@�C����z�u���Ă��悢�̂ł����A�{���ł͉���̂��߂�ZIP�t�@�C������𓀂����uWiiYourself!�v�t�H���_���uC:\WiiRemote\WiiYourself!�v�Ƃ����p�X�ɔz�u���邱�Ƃɂ��܂��B
�Ȃ��AWiiYourself!�͂��̖��O�����I�ł����A���Ȃ���I��README�ƃ��C�Z���X�������Ă��܂��B�ȉ��A�Q�l����f�ڂ��܂��B���p���p�\�Ƃ������ƂŁA�l�ŃV�F�A�E�F�A��ƂȂǂ�����Ă�����������͊������̂ł͂Ȃ��ł��傤���B
- WiiYourself! - native C++ Wiimote library v1.01 (c) gl.tter 2007-8 - http://gl.tter.org
����͊��S�ɖ����Ŋ��S�@�\��(���݂�)Windows�p��WiiRemote�l�C�e�B�uC++���C�u�����ł��BBrian Peek���́uManaged Wiimote Library�v(http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx)�����ƂɁA���S�ɏ��������A�g�����܂����B
���܂̂Ƃ���h�L�������e�[�V�����͂���܂���B�uWindows��WiiRemote�v�̑S�e�ƈ�ʓI�ȏ��ɂ��Ă�Brian�̏������݂��`�F�b�N���Ă��������B�\�[�X�R�[�h�͍L�͈͂ɂ킽��R�����g������A�f���A�v���͑S�Ă𗝉������ŏ����ɂȂ�ł��傤(����͂Ȃ��ł�)�B����ɂ��Ă͎��̃��[�����O���X�g�ɎQ�����Ă��������B�������̎g�p�ɂ����鐧���ɂ��ẮuLicense.txt�v���Q�Ƃ��Ă��������B
�y�t�L�z
�EVC 2005 C++�̃v���W�F�N�g���܂܂�Ă��܂�(VC 2008�ɓǂݍ��܂��Ă�������)�B�����N�G���[��h�����߂ɁA�v���W�F�N�g�̃v���p�e�B���uC/C++�v���u�R�[�h�����v�Łu�����^�C�����C�u�����v�̐ݒ��K��������K�v������܂��B
�EMinGW���̂��߂�MSYS makefile���܂܂�Ă��܂��BMSYS�v�����v�g�ɂ����āA�umake -f Makefile.MSYS�v�Ɠ��͂��Ă��������BMinGW�Ƃ������O�̃t�H���_�ƓK�ȃt�H���_�\���ɂ��o�C�i�������܂��B
�E�r���h�ɂ̓}�C�N���\�t�g��Driver Development Kit(DDK)���K�v�ƂȂ�܂�(HID API�̂���)�B�o�^�̕K�v�Ȃ��A�����Ń_�E�����[�h�ł��܂��B
http://www.microsoft.com/whdc/devtools/ddk/default.mspx
�C���N���[�h�p�X��DDK�́uinc/wxp�v��lj����A���C�u�����p�X�Ɂulib/wxp/i386�v��lj����Ă��������B(���_�͂Ȃ��Ǝv���܂���)���ŋ߂̃w�b�_�t�@�C���AAPI���܂�WinDDK���g�����Ƃ��ł��܂��B
�E���C�u������tchar.h��Unicode���\�ł��iVC�v���p�e�B�̃r���h�I�v�V�����uU�v�����Ă���܂��j�B
�EVC���g���Ă��Ȃ��Ȃ�A�ȉ��̃��C�u�����������N����K�v������܂��B�usetupapi.lib�v�A�uwinmm.lib�v�A�uhid.lib(DDK�������)�v�B
�yWiiRemote�C���X�g�[���Ɋւ���t�L�z
WiiRemote�͎g�p������PC�Ɏ��O�Ɂupaired�v�̏�ԁA�܂�Bluetooth�ڑ����ꂽ��Ԃɂ���K�v������܂��B[1]+[2]�{�^�����ɉ����Ă������ƂŁA���b�ԁA�����\(discoverable)���[�h�ɓ���܂�(LED���_�ł��܂��ALED�̐��̓o�b�e���[���x���Ɉˑ�)�B�uNintendo RVL-CNT-01�v�Ƃ��Ĕ�������܂��B
���X�^�b�N���L�̉���F
���{���ł͊���3�͂ʼn���ς݂Ȃ̂Ŋ������܂���
�E�ؒf���@(�e�X�^�b�N����)
WiiRemote��POWER�{�^���𐔕b�����Ă��������B����Ŏ����I�ɐؒf�ł��܂��B([1]+[2]�{�^����������)�ēx�y�A�����O���[�h�ɓ����āALED�����b�_�ł��Ă����ԂŃ^�C���A�E�g������A���ʓI�ɓd����邱�Ƃ��ł��܂��B
���[�����O���X�g�ɃT�C���A�b�v���āA�t�B�[�h�o�b�N��^���A�A�C�f�B�A���������A�Q������Ƃ������[�v�ɓ����Ă��������B
http://wiiyourself.gl.tter.org/todo.htm
�����M����WiiYourself!���g���Ă���Ȃ�A�����Ă��������B�����N�点�Ă������������Ǝv���܂��B�y����ŁI
gl.tter (glATr-i-lDOTnet)
- WiiYourself! - native C++ Wiimote library v1.01 (c) gl.tter 2007-8 - http://gl.tter.org
�����C�Z���X�F����WiiRemote���C�u�����͂����Ȃ闘�p(���p�܂�)�Ɋւ��Ă��A�ȉ��̏����ɂ����Ė����ł��B
(1)���ځA�Ԑڂɂ�����炸�l�������邽�߂Ɏg��Ȃ��ł��������B�R�����p���܂݂܂�������Ɍ��������Ƃł͂���܂���(�G�S��@���̂͂������Ƃł��E��)�B
(2)�o�C�i���`���̂����Ȃ�z�z(��F���Ȃ��̃v���O�����Ƀ����N���ꂽ����)�ɂ����Ă��A�ȉ��̃e�L�X�g��ReadMe�t�@�C���A�w���v�t�@�C���AAboutBox��X�v���b�V���X�N���[���Ɋ܂߂Ă��������B
contains WiiYourself! wiimote code by gl.tter
http://gl.tter.org
(3)�\�[�X�R�[�h�`���̂ǂ�Ȕz�z�`���ł��A�I���W�i���̎��̒��쌠�\����ύX���Ȃ��ŕێ����邱��(���Ȃ����������ύX�͒lj��ł��܂�)�A�����Ă��̃��C�Z���X�����܂߂Ă��������i���̃t�@�C�������Ȃ��̔z�z���Ɋ܂ނ��A���Ȃ����g�̃��C�Z���X���ɓ\��t���Ă��������j�B
(4)���Ȃ����g�����Ȃ菑�������Ȃ�����A���̃R�[�h�ɋ������郉�C�u�����ݏo���s�ׂɎg��Ȃ��ł�������(��F���̌���ɃR���o�[�g����ȂǁA�܂����k���Ă�������)�B
���̑���A��ɐV�@�\�A�o�O�t�B�b�N�X��A�C�f�A����Ă��������B
gl.tter (http://gl.tter.org | glATr-i-lDOTnet)
���āA���C�Z���X�Ȃǂ𗝉�������A�܂���Demo�t�H���_�ɂ���uDemo.exe�v���N�����Ă݂܂��傤�B���O��WiiRemote�ɐڑ����Ă����̂�Y�ꂸ��(�ڍׂ͑�3�͂ʼn��)�B
�ꌩ�A�n���ȃf���Ɍ����܂����A���͔��ɑ��@�\�ł��B����[A],[1],[2]�{�^�����������Ƃ�WiiRemote�̃X�s�[�J�[���特���o�邱�Ƃ��m�F���Ă��������B�������ł͂���܂��A�������Đ�����Ă��܂��B[A]�ŋ�`�g(�������́Gsquare)�A[1]�ŃT�C���g�A[2]�ʼn����̂悤�ȕ�(DAISY)�A[B]�Ńo�C�u���[�^�[�쓮�ł��B���̑��A�e�{�^���̃X�e�[�^�X�Ɖ����x�̕\���ALED�̃i�C�g���C�_�[�I�A�j���[�V�����A�o�b�e���[�c�ʁA4�_�̐ԊO��(�T�C�Y����t��)�A�g���[�q�ւ̃k���`���N�̑}�����uExtnsn.�v�ɕ\������Ă��܂��B�ʔ����̂́uOrient:�v�̍s�ɁuPitch, Roll�v�Ƃ������p������ɉ����āuUpdateAge�v�Ƃ��āA����p�x�̌v�������邱�Ƃł��B�V���v���ł������ɂ悭�ł����f���ł��B�܂������̏���̃\�[�X�R�[�h�ł���Demo.cpp�ɋL�ڂ���Ă��܂��̂ŗ]�T������l�́A��ǂ��Ă݂�Ƃ悢�̂ł����A�܂��͎��̏͂ɐi��WiiYourself�̃��r���h���s���A���s���āA��������Ȃ��玩���̂��̂ɂ��Ă������Ƃɂ��܂��傤�B
WiiYourself!�t���́uDemo.exe�v�ɂ��āA��ʂ�̓������������A���̓��r���h�ł��B�����ł�Visual C ++ 2008 Express�Ȃǖ����œ���ł������WiiYourself!�����r���h�ł���悤�A����ǂ��ĉ�����܂��B
�{���̓ǎ҂̂قƂ�ǂ́A���ɑ�4�͂�Visual C++ 2008��������Visual Studio 2008(�ȉ�VC 2008)�̃Z�b�g�A�b�v�����܂��Ă��邱�Ƃł��傤�B���Ƀ��r���h�ɕK�v�ɂȂ�ADriver Development Kit (DDK)��������Windows Driver Kit (WDK)�̃Z�b�g�A�b�v���s���܂��BDDK�͂��̖��������Ƃ���A�h���C�o�J���̂��߂̃L�b�g�ł���AWindows��OS�����ƃ��[�U�̃A�v���P�[�V�����v���O�����̒��ԂɈʒu����h���C�o�v���O�������J�����₷�����邽�߂̃w�b�_��C�u�������܂܂�Ă��܂��BWiiRemote���g�����v���O���~���O�ł͎��Bluetooth�o�R��HID(Human Interface Device)�Ƃ̒ʐM�̂��߂ɂ��̃w�b�_��C�u������K�v�Ƃ��܂��B
WDK��DDK�̌�p�ŁADDK��Windows�h���C�o�[�̈��萫��M�������`�F�b�N���邽�߂̃e�X�g���܂ށu�������ꂽ�h���C�o�[�J���V�X�e���v�ł��B���݂̂Ƃ���WiiRemote�W�ɂ����āAWDK�𗘗p���邩DDK�𗘗p���邩�A���e�I�ȑ傫�ȍ��͌�������܂���B�܂�WDK�̓���ɂ�MSDN�T�u�X�N���v�V�����ւ̌_�AMicrosoft Connect�ւ̎Q�����K�v�ɂȂ�܂��̂ŁA�{���ł́u�N�ł��ȒP�ɓ���ł���v�Ƃ������_��DDK�𒆐S�ɉ�����܂��B
�Ȃ��AWiiRemote�v���O���~���O���s����ŁADDK�̂��ׂẴt�@�C�����K�v�ɂȂ�킯�ł͂���܂���B���ۂɕK�v�ɂȂ�w�b�_�t�@�C���ƃ��C�u�����t�@�C��6�������Ă��܂��A���Ƃ�(���C�Z���X���肪�Ȃ����)�t�@�C���R�s�[�ł��S����肠��܂���B
����ł́ADDK�̃C���X�g�[�����n�߂܂��傤�B�܂��}�C�N���\�t�g��DDK�̃z�[���y�[�W��K�₵�A�uWindows Server 2003 SP1 DDK�v��ISO�t�@�C������肵�܂��B
http://www.microsoft.com/japan/whdc/DevTools/ddk/default.mspx
�uWindows Server 2003 SP1 DDK�v�Ƃ���܂����AWindowsXP���ł����p�ł��܂��B�uWindows XP SP1 DDK�v�ȑO��DDK(NT,98,2000�Ȃ�)�͊��ɃT�|�[�g���I�����Ă��܂��̂ŁAWDK�Ȃǂł��邾���V�������𗘗p���������ǂ��ł��傤�B����̎��OS�ł���AWindows Vista�AWindows Server 2003�AWindows XP�A������Windows 2000��œ��삷��h���C�o���r���h����ɂ́A�Œ�ł�����Windows Server 2003 SP1 DDK�Ɋ܂܂��uWindows 2000�����r���h���v���g�p���Ă��������B
�܂��A�_�E�����[�h����ISO�t�@�C�����g����CD-ROM���쐬���܂��B����������CD-ROM�͈�x�����g���܂���BISO�t�@�C�����h���C�u�Ƃ��ă}�E���g�ł��鉼�zCD�̂悤�ȃ\�t�g�E�F�A�����������𗘗p���Ă����܂��܂��A�ŋ߂ł́u7-zip�v�Ƃ����I�[�v���\�[�X�̃\�t�g�E�F�A���g����ISO�t�@�C���ړW�J���邱�Ƃ��ł��܂��B
http://sevenzip.sourceforge.jp/
�쐬����CD-ROM�A�������͓W�J�����t�H���_����usetup.exe�v�����s���܂��B
�G���h���[�U���C�Z���X������(EULA)���m�F���܂��B
�C���X�g�[����͖{���ł̓f�t�H���g�́uC:\WINDDK\3790.1830�v�Ƃ��܂��B
�����ŃC���X�g�[������t�@�C����I�����܂��B�f�t�H���g�̂܂܁A�������͂��ׂĂ�I�����Ă��ǂ��̂ł����A�w�b�_�t�@�C���̂悤�ȏ����ȃe�L�X�g�t�@�C����700MB�ȏ゠��܂��̂ŁA���ɂ���Ă̓C���X�g�[���Ɍy��1���Ԃ��炢�������Ă��܂��܂��B
��ʂ̃t�@�C�����C���X�g�[�����邱�Ƃɓ��ɒ�R���Ȃ����͂��ׂĂɃ`�F�b�N�����Ă��ǂ��ł��傤�B�]�v�ȃt�@�C���͕K�v�Ȃ��A�Ƃ������͍Œ���uBuild Environment�v�̊Y������v���b�g�t�H�[���Ƀ`�F�b�N�������Ă���悢�ł��傤(Windows XP Headers, X86 Libraries)�B��̓I�ɂ́uC:\WINDDK\3790.1830\inc\wxp�v�ɂ���uhidpi.h, hidsdi.h, hidusage.h, setupapi.h�v�Ƃ����w�b�_�t�@�C���ƁA�uC:\WINDDK\3790.1830\lib\wxp\i386\�v�ɂ���uhid.lib, setupapi.lib�v�Ƃ������C�u�����t�@�C�����K�v�ł��B���̑��̃t�@�C���A�c�[���ނ̓C���X�g�[�����Ď����Ă݂Ă��ǂ��ł����A�{���ł͈����܂���B
DDK�̃C���X�g�[�����I�������A�����������̏͂�WiiYourself!�̃��r���h��ʂ��ă��C�u�����̐ݒ���s���܂��B
VC�ɒm���̂�����ł������قǓ����Ƃł͂���܂��A�ŏ��̃��r���h���~���ɐi�߂邽�߂Ɉȉ��̎菇�ɏ]���Ă��������B�܂�VC2008���ɗ����グ�āA�u�t�@�C���v���u�J���v���u�v���W�F�N�g/�\�����[�V�����v����A�uC:\WiiRemote\WiiYourself!�v�t�H���_�ɂ���uWiiYourself!.sln�v�Ƃ���VC2005(VC8)�̃\�����[�V�����t�@�C�����J���܂��B�uVisual Studio�ϊ��E�B�U�[�h�v���N�����܂��̂ŁAVC2008(VC9)�p�̃v���W�F�N�g�ɕϊ����Ă��������B���Ȃ��ϊ��͏I������͂��ł��B�uCtrl+Shift+B�v�Ń��r���h���Ă݂Ă��������B
1>------ �r���h�J�n: �v���W�F�N�g: WiiYourself! lib, �\��: Debug Win32 ------ 1>�R���p�C�����Ă��܂�... 1>wiimote.cpp 1>c:\wiiremote\wiiyourself1\wiimote.cpp(41) : fatal error C1083: include �t�@�C�����J���܂���B 'hidsdi.h': No such file or directory
���̂悤�ɃG���[�uC1083�v���o�āA�uhidsdi.h�v�̃C���N���[�h���v�������ΐ���ł��B����DDK�̃f�B���N�g����ݒ肵�܂��B
�\�����[�V�����G�N�X�v���[���[�́uWiiYourself! lib�v�̃A�C�R���̏�ʼnE�N���b�N���ăv���W�F�N�g�̃v���p�e�B�y�[�W���J���Ă��������B�܂��u�\���v���u���ׂĂ̍\���v�Ƃ��A�u�\���̃v���p�e�B�v���uC/C++�v���u�S�ʁv�́u�lj��̃C���N���[�h�f�B���N�g���v�ɁuC:\WINDDK\3790.1830\inc\wxp�v��ݒ�A�����āA�u���C�u�����A���v���u�S�ʁv�́u�lj��̃��C�u�����f�B���N�g���v�ɁuC:\WINDDK\3790.1830\lib\wxp\i386�v��ݒ肵�܂��B
�ݒ肪�I�������uCtrl+Alt+F7�v�Ń��r���h(��U�N���[���ȏ�Ԃɂ��Ă���r���h)���s���܂��B1���AUnicode�Ɋւ���x��(C4819)���o�܂����A�������Ă��܂��܂���B���Ȃ��A
1>���C�u�������쐬���Ă��܂�... 1>�r���h���O�� "file://c:\WiiRemote\WiiYourself! \Debug\BuildLog.htm" �ɕۑ�����܂����B 1>WiiYourself! lib - �G���[ 0�A�x�� 1 ========== ���ׂă��r���h: 1 ����I���A0 ���s�A0 �X�L�b�v ==========
���̂悤�ɕ\���������C�u�����̃��r���h�͐����ł��B���̃X�e�b�v�ɐi��ł��������B�ēx�u�t�@�C���v���u�J���v���u�v���W�F�N�g/�\�����[�V�����v����A���x�́uC:\WiiRemote\WiiYourself!\Demo�v�t�H���_�ɂ���uDemo.sln�v�Ƃ���VC2005(VC8)�̃\�����[�V�����t�@�C�����J���܂��B����͓����̃f���A�v���P�[�V�����ł��B���l�ɁuVisual Studio�ϊ��E�B�U�[�h�v���N�����܂��̂ŁAVC2008�p�̃v���W�F�N�g�ɕϊ����Ă��������B�����Ȃ�u�����v��I��ł����Ȃ��ϊ��͏I������͂��ł��B�ϊ���A�uCtrl+Alt+F7�v�Ń��r���h���Ă݂Ă��������B
2>Demo.cpp 2>�����N���Ă��܂�... 2>LINK : fatal error LNK1104: �t�@�C�� 'hid.lib' ���J�����Ƃ��ł��܂���B
�Ō�ɁA�uAlt+F7�v�Ńv���W�F�N�g(���̏ꍇ�uDemo�v)�̃v���p�e�B���J���A�u�S�Ă̍\���v�́u�\���v���p�e�B�v���u�����J�v���u�S�ʁv���u�lj��̃��C�u�����f�B���N�g���v��DDK�̃��C�u�����p�X�ł���uC:\WINDDK\3790.1830\lib\wxp\i386�v��ݒ肵�Ă��������B����œ��ɑ傫�ȃG���[���o���Ƀ��r���h�ɐ�������͂��ł��B
WiiRemote�Ƃ�Bluetooth�ڑ����s���Ă���A�uF5�v�L�[�Ńf�o�b�O�J�n(���s)�ł��B�����Ƀf���v���O���������s�ł��܂����ł��傤���H�ȏ�̗���ɉ����ΊȒP�Ȃ̂ł����A�菇���ԈႦ��A�Ⴆ�ΐ��Demo.sln�̕ϊ����s���Ă��܂��ƁAVC2005�̃v���W�F�N�g�̕ϊ���ʂ���WiiYourself!���Q�Ƃ��郉�C�u���������ς���Ă��܂����肵�āA�Ӑ}�������Ԃ��������Ă��܂��܂��̂Œ��ӂ��B���āA�����gl.tter���̃f���\�[�X�R�[�h�udemo.cpp�v�����ς���WiiYourself!���w�Ԋ��������܂����B�R�}���h���C���v���O������C/C++�ɏڂ������́A���̂܂܃\�[�X�R�[�h���@�艺���Ă������Ƃ��ł���Ǝv���܂��B
�O�߂�[Demo.sln]�̃��r���h�ɐ������܂����̂ŁA���̑�������͂��߂܂��傤�B���̃\�����[�V�����́uDemo�v�Ƃ����A�v���P�[�V�����̃v���W�F�N�g�ƁA�uWiiYourself! lib�v�Ƃ������C�u����������2�̃v���W�F�N�g����\������Ă��܂��B
�uDemo�v�ɂ́A�R�}���h���C���T���v���A�v���P�[�V�����̖{�̂ł���uDemo.cpp�v�ƁuDemo.h�v�̃\�[�X�R�[�h�A���ꂩ��wav,raw�t�@�C���`���ɂ��X�s�[�J�[�Đ��̂��߂̉����t�@�C�����u����Ă��܂��B
���C�u���������́uC:\WiiRemote\WiiYourself!\Demo\lib�v�Ƃ����f�B���N�g��(�����ナ���[�X�����\���v1.11Beta�ł͎�t�H���_�\�����ς��\��������܂�)�Ɋe�X�v���W�F�N�g�̍\���ɂ��uRelease�v�������́uDebug�v�����āAUnicode�Ή��Ɣ�Ή��̃��C�u���������܂��BWiiYourself!�̔z�z������Ԃł͂��ꂼ��4��lib�t�@�C�������݂���͂��ł�(���Ƀ��r���h��Ƃɂ��폜����Ă��邩������܂���)�B�uWiiYourself!_d.lib�v���f�o�b�O�p�A�uWiiYourself!_dU.lib�v��Unicode�Ńf�o�b�O�A�uWiiYourself!_U.lib�v��Unicode�Ń����[�X�A����́uWiiYourself!.lib�v����Unicode�����[�X�ŁA�܂�ł��œK������A�ł��y��(�f�o�b�O���̏����Ȃǂ��Ȃ���)���C�u�����ł��B
�uWiiyourself! lib�v�v���W�F�N�g�ɂ́A���̃��C�u�����̃\�[�X�R�[�h���܂܂�Ă��܂��B�uwiimote.cpp�v�A�uwiimote.h�v�A�uwiimote_state.h�v���\�[�X�R�[�h�ł��B�����̃R�[�h�ƃv���W�F�N�g���t�����Ă��邨�����ŁAWiiYourself!�͔��ɕ����₷���ɂȂ��Ă��܂��B
�ł͂��������e�X�̃��C�u�������r���h���Ă݂܂��傤�BVC2008�̃��j���[�u�r���h�v���u�\���}�l�[�W���v����u�A�N�e�B�u�\�����[�V�����\���v�ŁA���݂̍\�����uRelease�v�ɐ�ւ��u����v�������܂��BCtrl+Alt+F7�Łu���r���h�v���邱�Ƃ��ł��܂��B�uDemo�v�́uWiiYourself! lib�v�v���W�F�N�g�Ɂw�ˑ��x����ݒ�ɂ��Ă���܂��̂ŁA�ύX�����A�N�e�B�u�ȍ\���ɏ]���āA��������郉�C�u�������A���ꂼ��قȂ�.lib�t�@�C�����������Ă��邱�Ƃ��A�t�@�C���G�N�X�v���[���[�Ŋm�F���Ă݂�Ƃ悢�ł��傤�B
�@�u�N����������v���O�����𗘗p����v�Ƃ����s�ׂ�API�v���O���~���O���\�Ƃ��āA����I�Ɂu�悭���邱�Ɓv�Ȃ̂ł����A��������Ɠ����̓���Ȃǂ̓u���b�N�{�b�N�X�����Ă��܂������ł��B�w������ȂǁAGoogle�łǂ����炩�u�ǂ������Ȏg�������ȃR�[�h�v��T���Ă��āA�R�s�y(�R�s�[������t��)���āu�搶�A(�Ȃ�ƂȂ�)�ł��܂����I�v�Ȃ�Ă����v���O���~���O�u�炵�����Ɓv�����Ă�����i���悭���������肵�܂��B
�@�M�҂ɂ����������o���͂���̂ł����A�������Ȃ�����w���`��w�@���̗��H�n�̊w������Ȃ�u���̏K���v�͍��������߂������ǂ��Ǝv���܂��B���́u�R�s�y�a�v�͋M���̃v���O���~���O�X�L�����m���ɗ��Ƃ��Ă����܂��c�B
�@�b��߂��āAOS�Ȃǂ̃v���b�g�t�H�[��API�ɏ]�����v���O���~���O�ł���A�h�L�������g�Ȃǂ̎d�l�����Q�Ƃ���悢�̂ł����AWiiRemote�̂悤�Ȗ��m�̃f�o�C�X�n�v���O���~���O�ł͕K�����������ȃh�L�������g������킯�ł͂���܂��A����Ă���API�������̋����Ƃ��ẮA���[�U�[�̈Ӑ}�ƈقȂ�A�Ђǂ��Ƃ��ɂ͊Ԉ���Ă���c�Ƃ����\�����炠��܂�(������Q�[���@�Ȃ�Ă��̍ł����...������)�B�I�[�v���\�[�X�̃v���W�F�N�g�ł���A���p�Ҏ��g�ŃR�[�h��ǂ�A�@�艺������A�@�\��lj������肷�邱�Ƃ��ł��܂����A��҂ɊԈႢ���w�E������@�\�lj������L�����肷�邱�Ƃ��ł���ł��傤�B
�@���ɒn���Ȃ����ł͂���܂����A�u(�p�ꂪ��肾����)�I�[�v���\�[�X�͎g���Ă��A�v���͂��Ȃ���/�ł��Ȃ���v�Ƃ������X�ɂ͂��Ј�x�����Ă݂Ă������������g���[�j���O�ł��B�I�[�v���\�[�X�̐��E�ō�҂̐S�ӋC��ǂ݁A����̕ǂ��z���āA�R�[�h�ŋ��L���邽�߂̍ŒZ���[�g�ł��B
�@�����A��X�͉p������֗��Ȑ��E���ʌ���ł���uC/C++����v���g����ł͂Ȃ��ł����I�u�R�s�y�v�����u�v���v�ł��B
�V�����������ȂǂŃv���O���~���O���w�ԂƂ��ɂ́A�傫�������āA2�̕��@������̂ł͂Ȃ��ł��傤���B���ɂ悭�ł����T���v���v���O�������������Ȃ���w�K������@�ƁA���܂��܂ȑ����v�f����蕥���A�[�����玩���ň������g�ݏグ�Ă������@�ł��BWiiYourself!�́uDemo.cpp�v�͗ǂ��ł����f���ł����A�����v�f���������߁A���S�҂ɂ͂����߂ł������ɂ���܂���B
���̃Z�N�V�����ł́A�܂���w�̍ŏ���C����̎��Ƃŏo�Ă���悤�ȁuHello, world!�v�ƌĂ�鏉���̏����̃v���O��������A�I�[�v���\�[�X�ł���WiiYourself!�������̃v���W�F�N�g�ɑg�ݍ���ł������Ƃ�WiiYourself!�𗝉�����Ƃ����u������Ɖ�蓹�v�����܂��B
C++�̃v���O���~���O�ɏڂ������́A�i�i���ǂ݂ł����܂��܂���B
����ł͂܂��AVisual C 2008 Express(�ȉ�VC2008)��ŁA�v���O���~���O�̍ŏ��̈���uHello, world!�v�v���O�����������Ă݂܂��傤�B����́uHello, world!�v�Ɖ�ʂɕ\�����邾���̃v���O�����ł��B�����͉��ł��ǂ��̂ł������j�I�ɁuHello, world!�v�Ƃ��������ł��邱�Ƃ������A�����Ă�Ă��܂��BVC2008�ɂ����Ă��A���l�̃`���[�g���A�����p�ӂ���Ă��܂��BVC2008���C���X�g�[������ƃX�^�[�g�y�[�W�u��Ƃ̊J�n�v�Ɂu�ŏ��̃A�v���P�[�V�������쐬�v�Ƃ��������N������܂��B���̃Z�N�V�����ł́A�������炽�ǂ��u�W��C++�v���O�����̍쐬(C++)�v�Ƃ����}�C�N���\�t�g�̃h�L�������g���Q�l�ɂ��Ă��܂��B
�܂��͐V�����v���W�F�N�g���쐬���܂��B[�t�@�C��]���j���[��[�V�K�쐬]����A[Visual C++]�v���W�F�N�g[Win32]���N���b�N���A����[Win32�R���\�[���A�v���P�[�V����]���N���b�N���܂��B�v���W�F�N�g���͉��ł��ǂ��̂ł����A���̐�����炭�g���܂��̂ŁuWiiMyself�v�Ƃ��Ă����܂��B[�ꏊ]�ɂ́uC:\WiiRemote\WiiYourself!�v���w�肵�āA[OK]���N���b�N���āA�V�����v���W�F�N�g���쐬���܂��B
�uWin32�A�v���P�[�V�����E�B�U�[�h�v���N�����܂��̂ŁA[��̃v���W�F�N�g]��I������[����]���N���b�N���܂��B���̂��ƁA���������Ă��Ȃ��悤�Ɍ�����ꍇ�A�u�\�����[�V�����G�N�X�v���[���v���\������Ă��Ȃ��̂�������܂���B[�\��]���j���[��[�\�����[�V�����G�N�X�v���[��]���N���b�N���ĕ\�����܂��B�E�B���h�E���C�A�E�g�������ƈႤ�ꍇ�́u�E�B���h�E�v���u�E�B���h�E���C�A�E�g�̃��Z�b�g�v�����s����Ƃ悢�ł��傤�B
�\�����[�V�����G�N�X�v���[����[�\�[�X�t�@�C��]�t�H���_���E�N���b�N���A[�lj�]���|�C���g����[�V��������]���N���b�N���܂��B[�R�[�h]�m�[�h��[C++�t�@�C��(.cpp)]���N���b�N���A�t�@�C����[main.cpp]����͂���[�lj�]���N���b�N���A�v���W�F�N�g�ɐV�����\�[�X�t�@�C����lj����A�ȉ��̃R�[�h���L�q���܂��B
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
���āA[F7]�L�[�ŃR���p�C����ʂ�����A���s���𗧂��グ�܂��傤�B[F5]�L�[�Ŏ��s���Ă��悢�̂ł�����u�ŏI�����āA�����Č����Ȃ��Ȃ��Ă��܂�����ł��B�G�N�X�v���[���[�Ő������ꂽ�uWiiMyself.exe�v���_�u���N���b�N���Ă����l�ł��B
�����ŁuWindows�L�[+R�v�Łu�t�@�C�������w�肵�Ď��s�v�_�C�A���O�𗧂��グ�āucmd�v�ƃ^�C�v���āuok�v�������܂��B�R�}���h���C���E�B���h�E���\�����ꂽ��A
cd C:\WiiRemote\WiiYourself!\WiiMyself\Debug
�Ƃ��āA���R���p�C���ɂ�萶�������uWiiMyself.exe�v�̂���f�B���N�g���Ɉړ����܂��B�����p�X�����^�C�v����͖̂ʓ|�ł��̂ŁA�܂��ucd (�{���p�X�y�[�X)�v�ƃ^�C�v���Ă���A�G�N�X�v���[���[�̃V���[�g�J�b�g(�t�H���_�̃A�C�R��)���R�}���h���C���E�B���h�E�Ƀh���b�O���h���b�v����ƁA�p�X�����\������ĕ֗��ł��B[Enter]�������ăR�}���h����͂��܂��B�܂��N���b�v�{�[�h���g���܂��B�R�}���h���C���E�B���h�E�̍�����N���b�N���邱�ƂŁu�ҏW�v���u�\��t���v�Ƃ��āA���p�ł��܂��̂Ŋo���Ă����Ƃ悢�ł��傤�B
���āucd�v�R�}���h�Ō��݂̃p�X���ړ�������AWiiYourself!�����s���܂��B
C:\WiiRemote\WiiYourself!\WiiMyself\Debug>WiiMyself.exe Hello, world!
�����ɗL���ȁuHello, world!�v���\������܂����ł��傤���H�ȏオ�R�}���h���C���v���O�����̍쐬�̊�{�ł��B
�uHello world!�v�Ŋ��ł���ꍇ�ł͂���܂���B�����āAWiiYourself!��g�ݍ���ł����܂��B�\�����[�V�����G�N�X�v���[���[�́u�\�����[�V����'WiiMyself'�v���E�N���b�N���āu�lj��v���u�����̃v���W�F�N�g�v�Ƃ��Ĉ��̃t�H���_�ɂ���uWiiYourself!.vcproj�v��I��ł��������B
�}�̂悤�Ƀ\�����[�V��������荞�܂�܂��B
�����āA�uWiiMySelf�v(�����̃v���W�F�N�g)�̃A�C�R���̏�ʼnE�N���b�N���ăv���W�F�N�g�̃v���p�e�B�y�[�W���J���Ă��������B�܂��u�\���v���u���ׂĂ̍\���v�Ƃ��A�u�\���̃v���p�e�B�v���uC/C++�v���u�S�ʁv�́u�lj��̃C���N���[�h�f�B���N�g���v�ɁuC:\WINDDK\3790.1830\inc\wxp�v��ݒ�A�����āA�u�����J�v���u�S�ʁv�́u�lj��̃��C�u�����f�B���N�g���v�ɁuC:\WINDDK\3790.1830\lib\wxp\i386�v��ݒ肵�܂��B
�Ō�Ƀ��j���[�u�v���W�F�N�g�v���u�v���W�F�N�g�̈ˑ��W�v�Ŏ����̃v���W�F�N�g���uWiiYourself! lib�v�Ɉˑ����邱�Ƃ��I�Ƀ`�F�b�N���܂��B���̍�Ƃɂ��A�uWiiMySelf�v�̐e�Ƃ��āuWiiYourself! lib�v��ݒ肵�����ƂɂȂ�܂��B�����Y���ƁA���C�u�����{�̂̍X�V���AWiiMySelf�ɓ`���܂��A�p���W�����������Ɏv��ʎ��s���ĂԂ��Ƃ�����܂��̂ŕK���`�F�b�N���Ă��������B
����ŁA�����̃v���W�F�N�g����WiiYourself!�̃I�u�W�F�N�g���Q�Ƃ��邱�Ƃ��ł���悤�ɂȂ�܂����B�������Ă݂܂��傤�B�����قǂ�Hello, world!���ȉ��̂悤�ɏ��������܂��B���łł�����WiiYourself!�̃��C�Z���X�ɏ]���āA���C�Z���X�\�������܂��傤�B
#include "../../wiimote.h" int _tmain(int argc, _TCHAR* argv[]) { wiimote cWiiRemote; _tprintf(_T("Hello, WiiRemote!\n")); _tprintf(_T("contains WiiYourself! wiimote code by gl.tter\nhttp://gl.tter.org\n")); //���C�Z���X�\�� return 0; }
main����tmain�ɂȂ�Aunicode�ƈ������T�|�[�g����`�ɂ�����Acout�ł͂Ȃ�tprintf�ɂ��āAwiimote�I�u�W�F�N�g���쐬���Ă���ȊO�͉����ς��܂���B�uCtrl+Alt+F7�v�Ń��r���h���܂��B�R�}���h���C���E�B���h�E�Ɉڂ�A���s���ʂ��m�F���Ă��������B
C:\WiiRemote\WiiYourself!\WiiMyself\Debug>WiiMyself.exe Hello, WiiRemote! contains WiiYourself! wiimote code by gl.tter http://gl.tter.org
�܂��ŏ��̎����̓N���A�ł��A����VC2008�ŃN���X���Q�Ƃł��Ă��邩�����ł��B�\�[�X�R�[�h�E�B���h�E�uwiimote cWiiRemote�v�Ƃ���������Ƀ}�E�X�������Ă����uwiimote�v���E�N���b�N���āu�錾�ֈړ��v�������Ă݂Ă��������BWiiYoureself!�̃\�[�X�R�[�h�ł���A�w�b�_�t�@�C���uwiimote.h�v���\�������ΐ���������ł��B
���Ď����𑱂��܂��BVC2008�ł́uIntellisense�v�Ƃ������͕⊮�@�\���ƂĂ��֗��ł�(���ꂪ�g�����Ȃ��Ȃ���AVC�̓e�L�X�g�G�f�B�^�Ƃ��܂�������ς��܂���I)�B�����ɁucWiiRemote.�v�ƃ^�C�v���Ă݂Ă��������B�N���X�̃v���p�e�B��\�b�h�̈ꗗ���\�������ΐ����ł��B
�ł͎��ɁA���̃v���O�������uWiiRemote�ɐڑ����AB�{�^���ŐU������v�Ƃ����v���O�����܂Ŋg�����Ă݂܂��傤�B
#include "../../wiimote.h" int _tmain(int argc, _TCHAR* argv[]) { wiimote cWiiRemote; _tprintf(_T("Hello, WiiRemote!\n")); _tprintf(_T("contains WiiYourself! wiimote code by \ gl.tter\nhttp://gl.tter.org\n")); //WiiRemote�Ɛڑ� while(!cWiiRemote.Connect(wiimote::FIRST_AVAILABLE)) { _tprintf(_T("Connecting to a WiiRemote.\n")); Sleep(1000); } _tprintf(_T("connected.\n")); cWiiRemote.SetLEDs(0x0f); //LED��S�_�� Sleep(1000); cWiiRemote.SetReportType(wiimote::IN_BUTTONS); //Home�{�^���ŏI�� while(!cWiiRemote.Button.Home()) { while(cWiiRemote.RefreshState() == NO_CHANGE) { Sleep(1); } //B�{�^���Ńo�C�u���[�^�[���U�� cWiiRemote.SetRumble(cWiiRemote.Button.B()); } //�ؒf�E�I�� cWiiRemote.Disconnect(); _tprintf(_T("Disconnected.\n")); return 0; }
�܂��S�Ă̍s�������ł��Ă���킯�ł͂Ȃ���������܂��A�u//�v�ŋL�q���ꂽ�R�����g�𗊂�ɁAIntellisense���g���ăv���O�����S���������őł�����ł݂Ă��������B����������A�uCtrl+S�v�ŕۑ����āA�uCtrl+Alt+F7�v�Ń��r���h���܂��B
�܂���WiiRemote��Bluetooth�ڑ����Ă���A�R�}���h���C���Łu���v�L�[�������ĉߋ��̃R�}���h��T���A�uWiiMyself.exe�v����������uEnter�v�������ċN�����Ă��������B�ڑ����������LED��_�����A[B]�{�^���������ƃo�C�u���[�^�[���U�����܂��B[Home]�{�^���������ƃv���O�����I���ł��B
C:\WiiRemote\WiiYourself!\WiiMyself\Debug>WiiMyself.exe Hello, WiiRemote! contains WiiYourself! wiimote code by gl.tter http://gl.tter.org connected. ��������B�{�^���������ƃo�C�u���[�^�[���U���� Disconnected.
���܂�ɒn���ȉ�ʂȂ̂ł����A������LED���_�����AB�o�C�u���[�^�[���U�����Ă��邱�Ƃ��m�F�ł��܂��BHome�{�^���ŏI�����܂��B.NET�łɔ�ׂċN�����̑҂����Ԃ��قƂ�ǂȂ��̂��R�}���h���C���v���O�����̓����ł��B
�@.NET�̓}�C�N���\�t�g�����錻�ݎ嗬�̃v���O���~���O���ł��B���ăR�}���h���C���͌Â�����g���Ă��邾���ɁA�݊����△�ʂ��Ȃ������s���x�Ȃǂɗ��_������܂��B
�@��������.NET���ł������t�H�[���ɂ��v���O�����ƃR�}���h���C���v���O�����ł͋N�����������̎��Ԃ̍�������܂��B����͂����炭���ʌ��ꃉ���^�C��(CLR)���o�R���āA.NET�̃t�H�[���ɊW�̂���DLL��ǂݍ���ł�����s���邱�ƂɋN�����鍷�ł��傤�B�R�}���h���C���v���O�������I�Ƃ����ǎ�(�M�҂��D���ł�)�́A���s���x�ȊO�̗D�ʓ_�Ƃ��āuEXE�t�@�C���T�C�Y�������Ə������ɈႢ�Ȃ��v�Ǝv���邩������܂���B�����ŏ�L�́uWiiMyself.exe�v�ׂĂ݂�ƃf�o�b�O��83.5KB�A�����[�X�r���h�ł�35KB�Ɗm���ɏ������ł��B���̃R�[�h�̓{�^���C�x���g�����ł�����A�ق�WiiYourself!��wiimote�̃I�u�W�F�N�g�̑傫���ł��傤�B������.NET�̓��l�̎��s�t�@�C���̑傫���ׂĂ݂�Ɓc�Ȃ�Ɓu10KB�ȉ��v�B��������.NET Framework�ɂ������DLL��OS���ɑ��݂���킯�ł����瓖�R�Ƃ����Γ��R�A��������ʂ̃t�H�[���̂��߂̃R�[�h��WiimoteLib�I�u�W�F�N�g�͂ǂ��ɂ����Ă��܂����̂ł��傤�H���܂�ɍ����傫�����܂���ˁH�����ł��c�ׂɂ���uWiimoteLib.DLL�v�̃t�@�C���T�C�Y���Y��Ă͂����܂���B���ׂĂ݂��32.5KB�B������42.5KB�ł�����A����ł��������v�Z�������܂��ˁB
�O�̃Z�N�V�����ł́A�V���v���ȁuHello, WiiRemote!�v�v���O��������邱�ƂŁA�������g��WiiYourself!���g���Ċw�ԑ�����ł݂邱�Ƃɂ��܂����B���̂悤�Ɂu�������g��{�[������/��������}�����Ă݂�v�Ƃ�����@�́AC/C++�Ȃǂ̃v���O���~���O����ʂ����������ǁw���܂��܂����x�Ƃ������ɂ͓��ɂ����߂̕��@�ł��B
�������n���ȃR�}���h���C���v���O�����������Ă��܂��B�������̃Z�N�V�����ł́A������Ɣh��Ȃ��Ƃ����Ă݂܂��傤�B�R�}���h���C���v���O�������g���āu�e���~��(Theremin)�I�Ȃ��́v������Ă݂܂��B�e���~���Ƃ͓d�g���������s�v�c�Ȋy��ł����A�����ł�WiiYourself!����Windows�̃v���b�g�t�H�[��API�ł���Win32�𗘗p���A�\�t�g�E�F�AMIDI��@�����ƂŁAPC���特��炵�܂��B����������WiiRemote�ł�����A��������{�^��������x�Z���T�[���g��������������������Ǝv���܂��B
�v���O���~���O�I�ɂ��AWin32�ȂNJ�����C++���ŋ��͂ɗ��p�ł���v���b�g�t�H�[�����Q�������Ă����܂��B�v���O���~���O�s���͒Z���Ă��A���Ɏ��p�I�ȃv���O���~���O���s���邱�Ƃ�WiiYourself!���g�����_�ł�����܂��B
�@�ʏ̃e���~��(�S�u���}�u�~�r���{��[thereminvox]�`���~�����H�[�N�X)�́A1920�N�Ƀ��V�A�̉��������w�ҁE�A�}�`���A���y�Ƃł��������I���E�e���~��(Leon Theremin)���u�G�e���t�H���v�Ƃ��Ĕ��\�������E���̓d�g�y��ł��B�u���E���̓d�C�y��v�Ƃ��ėL���ł����A���ۂɂ�19���I�㔼�̃G�W�\���ɂ��u�̂��A�[�N���v�Ȃǂ�����܂��̂ŁA�e���~���͂��̉��t���@�Ƃ��ē��F�̂���u�d�g���g�����������t�v�����E���̓����Ƃ��Ăӂ��킵���̂�������܂���B�d�q��H�I�ɂ̓V���v���ŁA�A�i���O���W�I�̓����𗘗p�������g�����Ȃ̂ł����A�{���ł͂��Ƃ����낤�ɓd�q�y��C���^�t�F�[�X�ł���MIDI(Musical Instrument Digital Interface�A�d�q�y��f�W�^���C���^�t�F�[�X)�𗘗p���āA����ɂ��Ƃ����낤��PC�ɕt�����Ă���\�t�g�E�F�AMIDI�𗘗p���Ď������Ă��܂��BWiiRemote��p�������͕��@�́u�e���~���I�v�ł͂���܂����A�������@������ȂɃf�W�^���ł͖{���̃e���~�������ɂ͂��܂�Ƀf�W�^���I�ŁuDigital Theremin�v�Ƃł��ĂȂ���Ȃ�Ȃ��㕨�ł��B����̂��߂Ƃ͂����A�e���~���t�@���̊F����A���߂�Ȃ����B
�@�Ƃ���ŁA���̂悤�ȁu���Ĕ�Ȃ�n��v�Ƃ����̂́A�e�N�m���W�[��f�B�A����g�����A�[�g����ł���u���f�B�A�A�[�g�v�̐��E�ł����X�N����悤�ɂȂ��Ă��܂����B�w������Ȃǂ����삷��Ƃ��ɁA���̃A�C�f�B�A�̌��ɂȂ���̗̂��j�⍰��������ƒ��ׂė������Ă��琧��ɗՂ܂Ȃ��ƁA���̂悤�Ȃ܂��������×����Ă��܂��܂�(����͂���ŃA�[�g�Ȃ̂�������܂��I)�B���܂�������݂����Ƃɂ͂������͂���܂���̂ŁA�܂��́u�{���̃e���~���v�̉��t�A���F���Ă݂Ă��������B
��Theremin by Masami Takeuchi (Youtube)
�@http://www.youtube.com/watch?v=XwqLyeq9OJI
�@�����ă`�����X����������A�{���̃e���~�������t���Ă݂Ă��������B�ȒP�ɉ��t�ł���y��ł͂���܂���B�ł��s�A�m�����čŏ��͓����ł���ˁH�y��Ƃ��Ắu��x�v�Ɓu�K�n�v���A���̐_��I�ȉ��y�I�������ɒ������Ă��邱�Ƃ����Ă���킯�ł��c�B
���āA�ŏ��̃X�e�b�v�Ƃ��āu�{�^������ʼn�����e���~���v�����܂��B�{�^���̃C�x���g��MIDI��炷�����Ȃ̂ŁA�Ȃ��e���~���炵���͂Ȃ��ł����A�ߋ�Ƃ��Ă͏\���y���߂���̂ł��B�v���W�F�N�g�Ƃ��Ă͐�قǂ܂ł́uWiiMyself�v�����̂܂܉������Ă����܂��傤�B
�܂��̓v���O�����̑O����������܂��B
#pragma comment(lib,"winmm.lib") #include <windows.h> //MIDI���L�̃G���f�B�A����ϊ�����}�N�� #define MIDIMSG(status,channel,data1,data2) ( (DWORD)((status<<4) | channel \ | (data1<<8) | (data2<<16)) ) #include "../../wiimote.h" //WiiYourself!����荞�� static HMIDIOUT hMidiOut; //MIDI�n���h�� static BYTE note=0x3C, velocity=0x40; //���K�Ɖ��� static BYTE program=0x0; //���F int _tmain(int argc, _TCHAR* argv[]) { wiimote cWiiRemote; HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE); printf("WiiRemote-Theremin button version by Akihiko SHIRAI\n"); //LICENSE printf("contains WiiYourself! wiimote code by \ gl.tter\nhttp://gl.tter.org\n"); //MIDI���J�� midiOutOpen(&hMidiOut,MIDIMAPPER,NULL,0,CALLBACK_NULL); //�ŏ��ɂȂ�����WiiRemote�ɐڑ����� while(!cWiiRemote.Connect(wiimote::FIRST_AVAILABLE)) { printf("WiiRemote�ɐڑ����Ă�������(0x%02X)\n",program); midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,0)); //�~���[�g Sleep(1000); program++; midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //���F�ύX //�ڑ����s���邽�тɖ� midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); } printf("�ڑ����܂����I\n [1]/[2]���F [��]/[��]���K [��][��]���� [Home]�I��\n\n"); Sleep(1000);
�܂��v���O�����̖`�������ŁAMIDI���������߂�"windows.h"��"winmm.lib"����荞��ł��܂��B�����MIDI���L�̃��b�Z�[�W�`�����ȒP�ɔ��s���邽�߂Ƀ}�N���Ƃ����A�P���Ȗ��߂�ϊ�����ϊ������`���Ă��܂��BHMIDIOUT��MIDI�n�[�h�E�F�A���̂��̂�߂܂��邽�߂̃n���h���ƌĂ����̂ŁABYTE�^�ϐ��unote, velocity, program�v�͂��ꂼ�ꉹ�K�A���ʁA���F���i�[����ϐ��ł��B
�v���O�����̃^�C�g���ƃ��C�Z���X�\�������āAWiiRemote�ɐڑ����Ă��܂��B������Ƃ������o�ŁA�ڑ������܂ʼn��F(program)������ς���Ă����܂��B
���̂܂܂ł̓R���p�C�������s���ł��Ȃ���Ԃł�����A�����̃R�[�h�������Ă����܂��傤�B
//����̓{�^���C�x���g�������X�V��`���� cWiiRemote.SetReportType(wiimote::IN_BUTTONS); while(!cWiiRemote.Button.Home()) { //Home�ŏI�� while(cWiiRemote.RefreshState() == NO_CHANGE) Sleep(1); //���ꂪ�Ȃ��ƍX�V���������� cWiiRemote.SetRumble(cWiiRemote.Button.B()); //B�ŐU�� switch (cWiiRemote.Button.Bits) { //�{�^�����Ƃ�switch����� //���� [��]/[��] case wiimote_state::buttons::RIGHT : if(velocity<0x7F) velocity++; midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; case wiimote_state::buttons::LEFT : if(velocity>0) velocity--; midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; //���F(=program) [1]/[2] case wiimote_state::buttons::ONE : if(program>0) program--; midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //���F�ύX midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; case wiimote_state::buttons::TWO: if(program<0x7F) program++; midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //���F�ύX midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; //���K up/down case wiimote_state::buttons::UP : if(note<0x7F) note++; midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; case wiimote_state::buttons::DOWN: if(note>0) note--; midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; //[A]/[B]�œ�������������x�炷 case wiimote_state::buttons::_A : case wiimote_state::buttons::_B : midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); break; //���̑��̃C�x���g�A�܂�{�^���𗣂����Ƃ��~���[�g�B default : midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,0)); } //���݂�MIDI���b�Z�[�W���ꏊ�Ƀe�L�X�g�\�� COORD pos = { 10, 7 }; SetConsoleCursorPosition(console, pos); printf("���F = 0x%02X , ���K = 0x%02X , �Ō����x = 0x%02X\n", program,note,velocity); } //�I�� midiOutReset(hMidiOut); midiOutClose(hMidiOut); cWiiRemote.SetLEDs(0); cWiiRemote.SetRumble(0); cWiiRemote.Disconnect() printf("���t�I��\n"); CloseHandle(console); return 0; }
�{�^���C�x���g�̕����������̂ł����A�O�̃Z�N�V�����̉����ł����A�����́u�R�s�y�v���Ă����܂��܂���A�ҏW�╄���̌����ɋC�����āu���̍s�Ƃ̈Ⴂ���ӎ����Ȃ���v�R�s�y������̂��e�N�j�b�N�ł��B�܂�printf()�̕\�������͉p���D���ȃ��b�Z�[�W�ɕς��Ă��������Ă����܂��܂���B
�����ɃR���p�C�����ł�����AWiiRemote��Bluetooth�ɐڑ����鏀�������āA���s���Ă݂܂��傤�B
WiiRemote-Theremin button version by Akihiko SHIRAI contains WiiYourself! wiimote code by gl.tter http://gl.tter.org WiiRemote�ɐڑ����Ă�������(0x00) WiiRemote�ɐڑ����Ă�������(0x01) ...
�Ƃ����悤�ɕ\������PC�̃X�s�[�J�[���特����n�߂��琬���ł��BWiiRemote��Bluetooth�ɐڑ����Ă݂Ă��������B�������̎��_�ʼn����Ȃ��Ă��Ȃ�������APC�̃}�X�^�[�{�����[�����m�F���܂��B�����W�̃{�����[�������ׂĐ���ŁA���̃v���O��������͉����o��̂Ɂu�Ȃ���MIDI������Ȃ��I�v�Ƃ����Ƃ��́A�R���g���[���p�l���́u�T�E���h�ƃI�[�f�B�I�f�o�C�X�v����u�f�o�C�X�̉��ʁv�́u�ڍאݒ�v��I��ŁuSW�V���Z�T�C�U�v�̉��ʂ��[��(�~���[�g)�ɂȂ��Ă��Ȃ����m�F���Ă�������(�M�҂͂��̐ݒ�̂������Ńv���O�������Ԉ���Ă���̂��Ɖ������Y�o��������܂�...)�B
���āA�����ɉ����o�Ă�����A�ȉ��̂悤�ȉ�ʂɂȂ��Ă���͂��ł��B
�ڑ����܂����I [1]/[2]���F [��]/[��]���K [��][��]���� [Home]�I�� ���F = 0x00 , ���K = 0x50 , �Ō����x = 0x6A
WiiRemote�̏\���L�[�̉E���������ƕ\������Ă���l���ς�邱�Ƃ��m�F���Ă��������B[A]�{�^���������Ɓu�|�[���v�Ƃ����d�q�s�A�m�̉�����͂��ł��B[B]�{�^����������MIDI�̔����ɉ����ăo�C�u���[�^�[����͂��ł��B[1][2]�{�^���ʼn��F�A���Ȃ킿MIDI�̊y��(�C���X�c�������g)��ς��邱�Ƃ��ł��܂��B[Home]�{�^���������ƏI���ł��B
���āA����Ń{�^���C�x���g�ɂ��MIDI�����͊������܂����BMIDI�̊y��(program)��127��ނ�����܂��B�M�҂�[0x76]������̑Ŋy��n�̃C���X�c�������g���D���ł��B
���͂��e���~���炵�������x�Z���T�[��MIDI��点��悤�ɂ��܂��傤�B���K�����킹�āA���܂Ŏg���Ă����\�����[�V�����ɐV�����uThermin-Acc�v�������邱�ƂŐV�����v���W�F�N�g�̍������w�т܂��B
���ɁuWiiYourself! lib�v�⌻�݃{�^�����e���~���ɂȂ��Ă���͂��́uWiiMyself�v���܂ރ\�����[�V�����uWiiMyself�v���E�N���b�N���āu�lj��v���u�V�����v���W�F�N�g�v��I�т܂��B�u�V�����v���W�F�N�g�̒lj��v�_�C�A���O�����ꂽ��u�v���W�F�N�g���v���uTheremin-Acc�v�Ƃ��܂��B
�uWin32�A�v���P�[�V�����E�B�U�[�h�v���N�����܂��̂ŁA�X�e�b�v�ɏ]���u�R���\�[���A�v���P�[�V�����v���N���b�N�A�u��̃v���W�F�N�g�v�̃`�F�b�N���O��Ă��邱�Ƃ��m�F���Ă��������B��������ƐV�����v���W�F�N�g������܂��B
���ɁA�\�����[�V�����G�N�X�v���[���[�ŁuTheremin-Acc�v���E�N���b�N���u�X�^�[�g�A�b�v�v���W�F�N�g�ɐݒ�v���܂��i�����Y���ƁA[F5]�L�[�Ńf�o�b�O�����Ƃ��Ɂu�{�^���Ńe���~���v���N�����Ă��܂��܂��j�B���̏�Ԃ�[F5]�L�[�ɂ��r���h�ƃf�o�b�O���������Ƃ͂ł��܂����AWiiYourself!�̑g�ݍ��݂܂ŏI��点�Ă��܂��܂��傤�B
���j���[�o�[�́u�v���W�F�N�g�v���u�v���W�F�N�g�̈ˑ��W�v��\�����āuTheremin-Acc�v�ɑ��āuWiiYourself! lib�v�Ƀ`�F�b�N���܂��B
�Ō�ɁA�v���W�F�N�g�̃v���p�e�B��lj����܂��B�v���p�e�B��\�����u�A�N�e�B�u(Debug)�v�ƂȂ��Ă���\�����u�S�Ă̍\���v�ɐ�ւ��āA�uC++�v���u�S�ʁv���u�lj��̃C���N���[�h�f�B���N�g���v�ɁuC:\WINDDK\3790.1830\inc\wxp�v��ݒ肵�܂��B���l�Ɂu���ׂĂ̍\���v�ɑ��āA�u�����J�v���u�S�ʁv���u�lj��̃��C�u�����f�B���N�g���v�ɁuC:\WINDDK\3790.1830\lib\wxp\i386�v��ݒ肵�܂��B
���āA����ŏ��������ł��B�O��쐬�����{�^���Ńe���~������ꕔ�R�[�h�𗬗p���āA�v���O���~���O��i�߂Ă����Ɗy�ł��傤�B1/3�Â�����Ă����܂��B
#include "stdafx.h" #pragma comment(lib,"winmm.lib") #include <windows.h> //MIDI���L�̃G���f�B�A����ϊ�����}�N�� #define MIDIMSG(status,channel,data1,data2) ( (DWORD)((status<<4) | channel \ | (data1<<8) | (data2<<16)) ) #include "../../wiimote.h" //WiiYourself!����荞�� static HMIDIOUT hMidiOut; //MIDI�n���h�� static BYTE note=0x3C, velocity=0x40; //���K�Ɖ��� static BYTE program=0x0; //���F int _tmain(int argc, _TCHAR* argv[]) { wiimote cWiiRemote; HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTitle(_T("WiiRemote-Theremin Acceleration version")); printf("WiiRemote-Theremin Acceleration version by Akihiko SHIRAI\n"); //LICENSE printf("contains WiiYourself! wiimote code by \ gl.tter\nhttp://gl.tter.org\n"); //MIDI���J�� midiOutOpen(&hMidiOut,MIDIMAPPER,NULL,0,CALLBACK_NULL); //�ŏ��ɂȂ�����WiiRemote�ɐڑ����� while(!cWiiRemote.Connect(wiimote::FIRST_AVAILABLE)) { printf("WiiRemote�ɐڑ����Ă�������(0x%02X)\n",program); midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,0)); //�~���[�g Sleep(1000); program++; midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //���F�ύX midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); //�ڑ����Ȃ����і� } printf("�ڑ����܂����I\n"); printf("\n\t [B]�Ō� [Roll]���� [Pitch]���K [1]/[2]���F [Home]�I��\n"); Sleep(1000);
���āA�����܂ł͑O��̃{�^���Ńe���~���ƂقƂ�lj����ς��܂���B�]�T������e�L�X�g�\�������Ȃǂ��D���ɕς��Ă݂�Ƃ悢�̂ł͂Ȃ��ł��傤��(���������C�Z���X�\����ς��Ȃ��悤�ɒ���!)�B
//����̓{�^���{�����x�C�x���g���X�V��`���� cWiiRemote.SetReportType(wiimote::IN_BUTTONS_ACCEL); while(!cWiiRemote.Button.Home()) { //Home�ŏI�� //RefreshState�͓����X�V�̂��߂ɌĂ��K�v������ while(cWiiRemote.RefreshState() == NO_CHANGE) { Sleep(1); //���ꂪ�Ȃ��ƍX�V���������� } switch (cWiiRemote.Button.Bits) { //�{�^�����Ƃ�switch���� //���F(=program) [1]/[2] case wiimote_state::buttons::ONE : if(program>0) program--; midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); //���F�ύX break; case wiimote_state::buttons::TWO: if(program<0x7F) program++; midiOutShortMsg(hMidiOut,MIDIMSG(0xC,0,program,0)); break; default: //���� [�X��Pitch] velocity = \ (int)(127*(cWiiRemote.Acceleration.Orientation.Pitch+90.0f)/180.0f); if(velocity>0x7F) velocity=0x7f; if(velocity<0x00) velocity=0x00; //���K [�X��Roll] note = (int)(127*(cWiiRemote.Acceleration.Orientation.Roll+90.0f)/180.0f); if(note>0x7F) note=0x7F; if(note<0) note=0; if(cWiiRemote.Button.B()) { //[B]�Ō� midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,velocity)); } else { midiOutShortMsg(hMidiOut,MIDIMSG(0x9,0x0,note,0)); }
���Ӑ[���ǂ߂A����قǓ�����Ƃ͂��Ă��Ȃ����ƂɋC�Â��Ǝv���܂��B�ucWiiRemote.SetReportType(wiimote::IN_BUTTONS_ACCEL)�v�ŁA�O��̓{�^���X�V�������������|�[�g���[�h���A�{�^���Ɖ����x�̕ω����������Ƃ��Ƀ��|�[�g����A�Ƃ������[�h�ɕς��Ă��܂��B������u::�v���^�C�v����ƁAIntellisense�������ŕ\�����Ă���܂�����A�K�ȃ��[�h��I��������I�т܂��傤�B
�Ȃ��{�^���C�x���g�̓R�[���o�b�N�ŏ������Ă������̂ł����A�����̓ǎ҂̗����̂��߂Ɂuswitch (cWiiRemote.Button.Bits)�v�Ƃ��ĕ\�����Ă��܂�(�R�[���o�b�N�����������͌�́udemo.cpp�v���Q�l�ɂ���Ƃ悢�ł��傤)�BCase���ʼn��F�ύX�ɕK�v�ƂȂ�{�^��[1][2]���āA���F(program)��ύX���AMIDI�R�}���h�𑗐M���Ă��܂��B�Ȃ��O��̃{�^���łƈ���āA���F�̕ύX�����őŌ��͂��Ă��܂���B
�����Ă���switch���ɂ�����قƂ�ǂ̃C�x���g�́udefault:�v�ɗ���܂��B�����ʼn����x�Z���T�[�̒l�A����WiiYourself!�Ŏ擾�ł���p������ɂ��uPitch(�p�G����㉺�ɂ������)�v�ƁuRoll(���[���G������E�ɌX�������)�v�����̂܂܁u���ʁv�Ɓu���K�v�ɂ�肠�ĂĂ݂܂����B
�c�w���蓖�ĂĂ݂܂����x�Ƃ����\���������Ďg�����̂́A����͕ʂɁucWiimote.Acceleration.RawX�v�Ȃǂ̒l�ł��S�����Ȃ��A�Ƃ������Ƃł�(���̂ق����ϊ����s�v)�B���̏ꍇ�APitch��Roll��±90�x(-90�x�`+90�x)�̒l���Ƃ�܂��B
velocity = \ (int)(127*(cWiiRemote.Acceleration.Orientation.Pitch+90.0f)/180.0f); note = (int)(127*(cWiiRemote.Acceleration.Orientation.Roll+90.0f)/180.0f);
���̎����Q�l�ɂ��邱�ƂŁA�����Ă��̓��͎͂����̖]�݂̒l��ɕϊ��ł���悤�A��Ƃ��āA����͂��̂悤�ȕϊ����𗘗p���Ă��܂��B�C���^���N�V�������f�U�C�������ŁA�K�v�ȃ{�^���A�K�v�Ȋp�x�A�킩��₷�����p���@�ȂǂȂǓK�Ǝv����ϊ������l����K�v������܂��B�Q�l�ɂ��Ă��������B
//���W�w��e�L�X�g�\�� COORD pos = { 10, 7 }; SetConsoleCursorPosition(console, pos); printf("�����x X = %+3.4f[0x%02X] Y = %+3.4f[0x%02X] Z = %+3.4f[0x%02X] ", cWiiRemote.Acceleration.X, cWiiRemote.Acceleration.RawX, cWiiRemote.Acceleration.Y, cWiiRemote.Acceleration.RawY, cWiiRemote.Acceleration.Z, cWiiRemote.Acceleration.RawZ ); pos.X=10; pos.Y=9; SetConsoleCursorPosition(console, pos); printf("�p������ Pitch = %+3.4f Roll = %+3.4f Update=%d ", cWiiRemote.Acceleration.Orientation.Pitch, cWiiRemote.Acceleration.Orientation.Roll, cWiiRemote.Acceleration.Orientation.UpdateAge ); pos.X=10; pos.Y=11; SetConsoleCursorPosition(console, pos); printf("���F = [0x%02X] , ���K = [0x%02X] , �����x = [0x%02X] ", program,note,velocity); break; } } //�I�� midiOutReset(hMidiOut); midiOutClose(hMidiOut); cWiiRemote.SetLEDs(0); cWiiRemote.SetRumble(0); cWiiRemote.Disconnect(); printf("���t�I��\n"); CloseHandle(console); return 0; }
�Ō�̃p�[�g�́u�v���O�����̌����ځv�Ɋւ��ꏊ�ł��B�R�}���h���C���v���O�����ł�����n���ł������̂ł����A���݂̉����x�̕ϊ��O�̒l�A�܂�WiiRemote����̐��l�ł���uRawX�v�A�uRawY�v�A�uRawZ�v���ώ@���Č��鉿�l�͂���̂ŁA������16�i���ŕ\�����Ă��܂��B�n����16�i���\���ł͂Ȃ��A�e���~���炵���A���e�i��A�����h��Ȃ��̂�\������v���O�����ɕς��Ă��������Ă��S����肠��܂���B
�Ō�ɁA�I���p�[�g��MIDI����āALED��o�C�u���[�^�[���~�����Ă���ؒf���Ă��܂�(�o�C�u���[�^�[�͎g���Ă��܂��A�����Y���ƃo�C�u���[�^�[���g�����܂܁A�ԈႦ�ďI�����Ă��܂����Ƃ��ȂǑ�ςł�)�B
�Ȃ�cWiiRemote�I�u�W�F�N�g�̏I�����@�ł����A���ő����Ă��鑪��X���b�h�͕K�v�������Ȃ�Ύ����I�ɍ폜�����̂ŁA�uDisconnect()�v���R�[�����Đؒf�������Ă������̂܂I�����Ă��悢�悤�ł��B
�n���ȃR�}���h���C���v���O�����ł����uSetConsoleCursorPosition�v���g�����ƂŐ̉�������BASIC�ł�LOCATE���ɂ�����\���ʒu�w����������Ƃ��ł��܂��B�����ł͖ړI�̈ʒu��printf��\�������邽�߂����Ɏg���Ă��܂����A1980�N��̎q�������͂���Łu�u���b�N�����v���炢�͍�������̂ł��B���ɂ�WiiYourself!�́udemo.cpp�v�ɂ͐F��������A�_�ł�������A����炵����Ƃ��������N�̃R�}���h���C���v���O�����̋Z�������Ɍ����܂��B�ŋ߂̃O���t�B�b�N�X�́u�u���b�N�����v�̐����{�����𑜓x�ł����A�e�L�X�g�O���t�B�b�N�X(�������g�����G���)���g�����Ȃ��Ȃ��Ȃ��Ɂu�N�[���ȋZ�v�ɂȂ�̂ł͂Ȃ��ł��傤���B�c�P�ɐl�X�̑z���͂��ቺ���Ă��邾���Ȃ̂����H
���āA����Ńv���O�����͊����ł��B�����ɃR���p�C�����ʂ�����AWiiRemote��Bluetooth��ڑ����āA�J�b�R�悭�\���܂��傤�B�����ʔ������Ƃ������Łu��(��)�ƍ\���v�͔��ɏd�v�ł��B
�܂����̂������X�s�[�h�ʼn���������ł��Ă���̂������͂��ł��B
[B]�� [Roll]���� [Pitch]���K [1]/[2]���F [Home]�I�� �����x X = -0.3846[0x7B] Y = -0.5556[0x77] Z = +0.6923[0x97] �p������ Pitch = +35.0491 Roll = -23.4268 Update=0 ���F = [0x00] , ���K = [0x2E] , �����x = [0x58]
���̒l�͍����ɓ����Ă��鐔���͉��ł��傤�H�����ł��u�����x�Z���T�[�v�̒l�ł��B���̂������X�s�[�h�Ŏ擾�ł��Ă��邱�Ƃ��킩��܂��B���āA[B]�{�^���Łu�Ō��v(���Ղ�@������)�����Ă݂܂��傤�B�u�{���������[���v�ƁA��M�I���O�q�I�ȃs�A�m���t����������A�����ł��B���ɂ͎w���҂̂悤�ɁA���ɂ͕��x�̂悤�ɁA[B]�{�^���������Ȃ���AWiiRemote�ɋp��[���p��^���Ă݂܂��傤�B�r�̋Ȃ��L�����u���K�v�A�Ђ˂肪�u���ʁv�ɂȂ�ƂȂ����Ă͂܂��Ă���͂��ł�(����͂ƂĂ�����̂ł����A�s�\�ł͂Ȃ��͂�)�B[2]�{�^���������āA���F��ς����肵�Ď����Ă݂܂��傤�B�O����܂ŗV��[Home]�{�^���ŏI�����܂��B
�����̓ǎ҂͂����ŁA�����ɋL�q�����R�[�h��ύX���Ă݂����Ȃ����͂��ł��B���ꂪ�u�������v���O���~���O�p���v�ł��B���̃y�[�W�ɂ����������A�v�������A�e���~���̃`���[�j���O��A��ʂ̕\���f�R���[�V������ύX���ėV��ł��Ă��������B
�Ȃ����ǂ̃q���g�Ƃ��Ă͈ȉ��̂悤�ȗv�f������܂��B
�@�{�v���O������Win32�ɂ��MIDI����͂������Web�T�C�g�ł̉�����Q�l�ɂ��Ă��܂��B
��Windows�v���O���~���O������(kymats��)
�@http://www13.plala.or.jp/kymats/study/MULTIMEDIA/midiOutShortMsg.html
�@���ɂ�MIDI�𐧌䂷����@�͂�������܂����A������̃T���v���������Ƃ��u�e���~�������v�ł����B��������̎g����T���v����p�ӂ���Ă���A��҂�kymats����ɂ͂��̏�����肵�Ċ��ӂ��q�ׂ����Ă��������܂��B
�ȏ��WiiYourself!�ɂ��Win32��p�����e���~���̊J�����I���܂��BWin32�̎��Y�₻�̑��̃v���W�F�N�g�𗘗p�����ł̎��ۓI�ȏ����ɂȂ����ł��傤���H
�܂��Q�[���v���O���}�[�I�Ȏv�l��������́A�e���~���̎��s��ʂ��āuWiiRemote�͈�̂ǂꂮ�炢�̑��x�œ����Ă���낤�H�v�u�ǂ��������ő�̃p�t�H�[�}���X���o����̂��낤�H�v�Ƃ������^����o�Ă����̂ł͂Ȃ��ł��傤���H���̋^��ɑ���R�[�f�B���O�Ǝ����͎��̃Z�N�V�����ɑ����܂��B
�@�Ȃ��M�҂͂��̃Z�N�V������2���ߋ�v���O�������ł����̂ŁA�u�C���^���N�V�����Z�p�̌����ҁv�Ƃ����Ȋw�I�ȋ�������A�����̎q�������Ŏ��������Ă݂܂����B���ʂ����q�ׂ�ƁA6�̑��q�͂ǂ��炩�Ƃ����Ɖ����x�Z���T�[�ł̃e���~���̂ق����D���Ȃ悤�ł����B������2�̎q���̓{�^�����̂ق����f�R�D���ŁA���������F�́u�o�L����!�o�L����!�v�Ƃ���[0x7F]���m���ɚn�D���Ă��邱�Ƃ��ώ@���猩�Ď�邱�Ƃ��ł��܂����B�ǂ���̏ꍇ���A�팱��(�����Ă����Ă�)�́A��ʂ�PC�̃X�s�[�J�[�ƁA�茳��WiiRemote���W������Ƃ������Ƃ͊m���ɂ킩���Ă��܂������A�\������Ă�����̂����Ȃ̂��͗������Ă��Ȃ��悤�ł��B
�������̕ӃC���X�g�������ق����ǂ��ł����H��
�@�q���̚n�D�Ƃ����͓̂������ň���Ă��Ă��قȂ�܂����A�N��ɂ���Ă����̗�����y�����͈قȂ�܂��B�u������܂��̂��Ɓv�ł͂���܂����A���̎�̒n���Ȏ����́A�ŋ߂̃Q�[���f�U�C���ł́A�ӊO�ƖY����Ă���_�ł�����܂�(�ϗ��K��ɂ�郌�[�e�B���O�͂���܂����A�C���^���N�V�����\���H�y���߂邩�ǂ����H�Ƃ����_��)�B���������̂悤�ȁu�������������E�y���߂邩�v�Ƃ������_�ł̎����͍ŐV�̔F�m�Ȋw�̘b��ɃA�v���[�`����Ȋw�̎����ł���Ƃ�������ł��傤�B���ꂪ����Ȑ��\�s���炸�̃v���O�����ł��s����킯�ł��B
�@���������ӂ�����܂��B��ʂ̎q�����g�������̎�̐S��������f�[�^�擾�ɂ́A���ӏ��̎擾�Ȃǂ��K�v�ł�(�����T�C���������ł��Ȃ��N��ł͂�荢��ł�)�B�{���́A�f�ڂ����v���O�����𗘗p���������Ȃǂɂ�钼�ځE�ԐړI��Q�⑹�Q�ɂ��Ĉ�ؐӔC���܂���B�l�Ԃ��g��������(���Ȍ�����������u�l�̎����v)�Ɋւ��ϗ��K��ɂ��ċ�����������́u�w���V���L�錾�v���Q�l�ɂ���Ƃ悢�ł��傤�B������i�߂��ł̍l�����Ƃ��Ắu�|�P�������Ă�v�Ȃǂ̋K�����Ɋւ��ꂽ���������a�@�̓�r�����搶�ɂ��u�o�[�`�������A���e�B�͎q�ǂ��ɉ����ł��邩-�Տ���ʂł�VR-�v�Ȃǂ����ɂ悭�܂Ƃ܂��Ă��ĎQ�l�ɒl���܂��B���܂��܂ȃG���^�e�C�����g�Z�p�������Ώۂɂ����ł̊�{�I�ȍl�����Ƃ��Ĉ��p�ł���_���Ƃ��ẮA�M�҂̔��m�_���̈ꕔ�ł���u�G���^�e�C�����g�V�X�e���v(�|�p�Ȋw��_������3��vol.1)���Q�l�ɂȂ邩������܂���B
���̃Z�N�V�����ł�WiiYourself!�ɂ��R�}���h���C���v���O�������g�����ƂŁAWiiRemote����荂�x�Ȍv����Ƃ��ė��p���邱�Ƃɒ��킵�Ă݂܂��B
�d�́E�p���E������g���𑪒肷��v���O�������쐬���AWiiRemote�̍X�V�p�����[�^��ς��邱�ƂŁA�����x�Z���T�[���w���������ǂꂮ�炢�̑��x�œ����Ă���̂��H�x�𑪒肵�Ă݂܂��B
���̌�AWiiRemote���g�����Ȃ���Ŕ��ɏd�v�Ȏ����Ȃ̂ł����A���ɒn���ȏ�Ɂu��������肷���ĐQ�Ă��܂��܂��I�v�Ƃ����ǎ҂̓i�i���ǂ݂ł����܂��܂���B���������͑̂ɂ悭�Ȃ��̂ŁA���ʂ������p���܂��傤�B
��قǂ̉����x�Z���T�[�Ńe���~���Ɠ������A���x���܂��V�����v���W�F�N�g�uMeasurement�v���\�����[�V�����ɒlj����Ă݂܂��傤(��������������e���~�����Ă������̂ł���A�~�߂܂���)�B�ʓ|�Ȑl�͌��݁A�{�^���Ńe���~���ɂȂ��Ă���uWiiMyself�v��main.cpp��u��������`�ō쐬���Ă��悢�ł��傤(�����ł�����������l�́A�R�����g�A�E�g���Ċ��p����Ƃ悢�ł��傤)�B
����v���O������60�s���x�ł��B_tmain()�������g���܂���B�����̂��₷���Ɖ���̓s������2�̃p�[�g�ɕ����܂����A�e���~������̃\�[�X�����p�ł���ӏ������X����܂��̂ŁA�\�ł���Έ�C�ɃR�[�f�B���O���Ă��܂��Ƃ悢�ł��傤�B
#include "../../wiimote.h" #include <mmsystem.h> // for timeGetTime() #include <conio.h> // for _kbhit() int _tmain(int argc, _TCHAR* argv[]) { wiimote cWiiRemote; DWORD currentTime=0; //���݂̎������i�[����ϐ� //������g������p DWORD startTime=0, Refreshed=0, Sampled=0; float duration=0.0f; //�o�ߎ���[�b] bool continuous=false; _tprintf(_T("WiiRemote Measurement\n")); _tprintf(_T("contains WiiYourself! wiimote code by \ gl.tter\nhttp://gl.tter.org\n")); while(!cWiiRemote.Connect(wiimote::FIRST_AVAILABLE)) { _tprintf(_T("Connecting to a WiiRemote.\n")); Sleep(1000); } _tprintf(_T("connected.\n")); cWiiRemote.SetLEDs(0x0f); Sleep(1000); //�����������ݒ肳�ꂽ�ꍇ�A�������[�h�ɐݒ� if (argv[1]) { _tprintf(_T("ReportType continuous = true [%s]\n"), argv[1]); continuous = true; } //�{�^���������x�ɕω����������Ƃ��Ƀ��|�[�g����悤�ݒ� //��2������true�ɂ��邱�ƂŃf�[�^�X�V������(10msec���x)���� //�f�t�H���g��false�Ń|�[�����O(�f�[�^������Ƃ�����)��M���[�h cWiiRemote.SetReportType(wiimote::IN_BUTTONS_ACCEL, continuous); startTime=timeGetTime(); //�J�n���̎��Ԃ�ۑ�
�R�����g�ɂ��L�ڂ͂��Ă��܂����A�厖�ȂƂ����⑫���Ă����܂��B
WiiYourself!��API���uSetReportType()�v�̏ڍׂ��C�ɂȂ��Ă����ǎ҂�����Ǝv���܂��B���̊���2�̃t�H�[�}�b�g������A���܂܂ł́ubool continuous�v�������^�C�v���g���āA�{�^��������x�̕ω��Ƃ��������|�[�g���[�h���w�肵�Ă��܂����B�����E�N���b�N���āu�錾�ֈړ��v����ƁA�ȉ��̂悤��gl.tter���̃R�����g��ǂނ��Ƃ��ł��܂��B
//set wiimote reporting mode (call after Connnect()) //continous = true forces the wiimote to send constant updates, even when // nothing has changed. // = false only sends data when something has changed (note that // acceleration data will cause frequent updates anyway as it // jitters even when the wiimote is stationary) void SetReportType (input_report type, bool continuous = false); �y�Q�l��zWiiRemote�̃��|�[�g���[�h��ݒ肵�܂��AConnect()�̌�ɃR�[�����ĉ������B continuous��true�ɂ��邱�ƂŁAWiiRemote�ɕύX�����������ǂ����Ɋւ�炸�A�����I�ɍX�V�𑗂点��悤�ݒ�ł��܂��Bfalse�̂Ƃ��͉����ω����������Ƃ������f�[�^�𑗐M���܂��BWiiRemote���������肵���Ƃ���ɒu����Ă���Ƃ��̓r�N�r�N(jitter)���Ă��܂��܂����A�����x�f�[�^�͂悭(frequnet)�X�V������ł��傤�B
���́u�X�V���������Ƃ��������M�v�Ƃ����ʐM���@��ʐM�p��Łu�|�[�����O(polling)�v�Ƃ����܂��B���M�v�������f�o�C�X���w�����`�x�Ɠ������Ƃ������A���ۂɃf�[�^�������̂ŒʐM�ш��ߖ�ł��܂��B���ۂɃ{�^���A�����x�A�ԊO���A�g���[�q�c�ƃt���X�y�b�N�ł���uIN_BUTTONS_ACCEL_IR_EXT�v��錾����ƁABluetooth�̑ш���������Ă��܂����Ƃ�����悤�ł��̂ŁA����͒��ׂĂ݂Ȃ���Ȃ�܂���B
����ł͌㔼�̃R�[�h�A�ڑ���̃��[�v�ɑ����܂��B
//Home���������܂ŁA��������10�b�ԑ��� while(!cWiiRemote.Button.Home() && duration<10) { while(cWiiRemote.RefreshState() == NO_CHANGE) { Refreshed++; //���t���b�V�����ꂽ���L�^ Sleep(1); //CPU�ʂɐ�L���Ȃ��悤�� } Sampled++; //�f�[�^�ɕύX���������Ƃ��ɃJ�E���g�A�b�v cWiiRemote.SetRumble(cWiiRemote.Button.B()); _tprintf(_T("TGT:%d %+03d[msec] R:%d S:%d D:%1.0f Accel: X %+2.3f Y %+2.3f \ Z %+2.3f\n"), timeGetTime(), //���݂̎��� timeGetTime() - currentTime, Refreshed, Sampled,duration, cWiiRemote.Acceleration.X, cWiiRemote.Acceleration.Y, cWiiRemote.Acceleration.Z); currentTime = timeGetTime(); duration = (timeGetTime()-startTime)/1000.0f; } cWiiRemote.Disconnect(); _tprintf(_T("Disconnected.\n")); duration = (timeGetTime()-startTime)/1000.0f; printf("�ڑ�����%4.2f�b �X�V%d�� �f�[�^��M%d��\n �X�V���g��%.2fHz �T���v�����O%.2fHz\n", duration, Refreshed, Sampled, (float)Refreshed/duration, (float)Sampled/duration); while (true) if (_kbhit()) {break;} //�����L�[�������܂ő҂� return 0; }
���āA�R�[�f�B���O���I���A�R���p�C�����ʂ�����AWiiRemote��Bluetooth�ڑ����āA���̏�Ȃǂɗ��ĂĒu���Ă݂܂��傤�B���̎��s��ł́A�g���[�q�����ɂ��Ĉ��肵�����̏�ɗ��ĂĂ��܂��B
... TGT:189427129 +10[msec] R:4818 S:582 D:10 Accel: X +0.538 Y \ -0.407 Z -0.308 TGT:189427139 +10[msec] R:4823 S:583 D:10 Accel: X +0.423 Y \ -0.370 Z -0.231 TGT:189427149 +10[msec] R:4828 S:584 D:10 Accel: X +0.308 Y \ -0.222 Z -0.115 TGT:189427159 +09[msec] R:4833 S:585 D:10 Accel: X +0.231 Y \ -0.037 Z +0.115 TGT:189427168 +08[msec] R:4837 S:586 D:10 Accel: X +0.192 Y \ +0.148 Z +0.385 Disconnected. �ڑ�����10.21�b �X�V4837�� �f�[�^��M586�� �X�V���g��473.84Hz �T���v�����O57.41Hz
�����͎w�肵�Ă��Ȃ��̂Ń|�[�����O��M���[�h�œ��삵�Ă��܂��B�Ō�ɕ\������郁�b�Z�[�W�Ƃ��̉��߂ɂ��ĉ�����܂��B
�����{�^���������ƏI�����܂�(_kbhit��)�B����ȏꏊ�ɂ���ƁA�{���ɏ��������f�[�^������܂��A��Ɏ����Ă����肷��ƁA���̂����������Ńf�[�^������Ă���̂��킩��܂��B
�|�[�����O���[�h�ł͂Ȃ��A�������[�h(continuous)�������Ă݂܂��傤�B�f�o�b�O���̈����w��͊ȒP�ł��B�v���W�F�N�g�̃v���p�e�B�u�f�o�b�O�v���u�R�}���h�̈����v�ɉ��������������Ă����邱�Ƃ�true�ɂȂ�܂��B
���x��WiiRemote�������Ă��邩�ǂ����ɂ�炸�A�ȉ��̂悤�Ȍ��ʂɂȂ����̂ł͂Ȃ��ł��傤���H
�ڑ�����10.21�b �X�V5076�� �f�[�^��M993�� �X�V���g��497.16Hz �T���v�����O97.26Hz
�������[�h��10msec���Ƃ�1��f�[�^�𑗂�悤�ł�����A10�b��1000��A���g���ɂ���100Hz�ƂȂ�A��L�̌��ʂƂقڈ�v���܂��B
���ɂ����r���h���K�v�ɂȂ�܂����A���|�[�g���[�h�ɁuIN_BUTTONS�v��uIN_BUTTONS_ACCEL_IR_EXT�v�����āA�ω������Ă݂�Ɨǂ��ł��傤�B�Ȃ�WiiYourself!�Ŏ��������Ƃ���ł́A�ԊO���n���[�h�ɂ����Ă͎������[�h����{�ɂȂ��Ă���悤�ł��B
���āA���̐߂ł�WiiRemote�̉����x�Z���T�[���v����Ƃ��Ďg�����߂̎����v���O�������쐬���āA�e���|�[�g���[�h�̃x���`�}�[�N�I�Ȃ��Ƃ��s���Ă݂܂����BWiiYourself!�ɂ����Ă�API�Ƃ��ĉB������Ă���킯�ł͂Ȃ��̂ŁA���������������̂ł͂Ȃ��ł��傤���H
���肵�Ă݂�ƁAWiiRemote�͎������[�h�Ȃ�100Hz���炢�A�|�[�����O�Ȃ�60-80Hz���炢�œ���ł���悤�ł��B�Q�[���R���g���[����v����Ƃ��čl�����Ƃ��ɁA����͍����Ȃ̂ł��傤���H
���Ƃ��Ε��ʂ̃Q�[���@��1�b������30-60��̃O���t�B�b�N�X���X�V���AWeb�J������1�b������15-30��̉摜���擾���āA��������摜���������č��W�����o���Ă���킯�ł�����AWiiRemote�̓��쑬�x�́u���Ȃ葬���v�ƕ\���ł���̂ł͂Ȃ��ł��傤���B�T���v�����O�藝�����p����ƁA���s���g���̔{�͕K�v�A�Ƃ������Ƃŏ��Ȃ��Ƃ��Q�[���Ɏg���Ȃ�u�\���ȑ��x�v�Ƃ����邩������܂���B
�������A�v����Ƃ��Ă݂�Ƃ�����Ƒ���Ȃ���������܂���B�܂������x�Z���T�[��8bit(256���x��)����̂ł����A���̒��̌g�ѓd�b�ɂ�12bit(1024���x��)�Ƃ����̂���������Ă����肵�܂��B�ǂꂮ�炢�Ⴄ���Ƃ����ƁA�|�[�����O���[�h�̂Ƃ��ɁA���ɒu������u���[���Ɠ������Ă��f�[�^������v�Ƃ������x���ł��B�Z���T�[�̐��x�����ɂ��W������̂ň�T��bit���ł͌��܂��A�����I�Ȍv���Ƃ��āA�����x�Ǝ��Ԃ��킩��A�������瑬�x�Ƌ������Z�o�ł���͂��ł����AWiiRemote�̕���\�ł́u���[���Ɠ����������炢�Őj���ӂ�Ȃ��v�̂ŁA��ԍŏ��́u�����x�v�����Ă��Ȃ����ƂɂȂ�܂��B�܂肱�̕��@�ʼn����x�̐ώZ���瑬�x�⋗�����Z�o����̂͂ƂĂ�����ł��邱�Ƃ��z���ł���ł��傤(�ԊO����g�ݍ��킹��Εs�\�ł͂Ȃ��ł���)�B
���������̃Z�N�V�����ŏЉ���v���O�����̎��s���ʂ�����Ɓu�����ĕ��ʂɓ���������ԁv�ł͉����x�������Ɏ擾�ł��Ă���悤�ł��B����́u�d�͉����x�v�Ȃ̂ł����A���̒l���g�����ƂŁuWiiRemote�̎p���v������ł��܂����u�d�͉����x���������͂̓��́v���Ƃ��A�e�j�X�̃X�C���O��{�N�V���O�̃p���`�Ȃǂ��ȒP�Ɍ������邱�Ƃ��ł��܂��B�ǂ����������u�Q�[���̂��߂ɐv���ꂽ�f�o�C�X�v�Ȃ̂ł��傤�B
���ēǎ҂̑����͂��̐߂Łu������g���v��u�T���v�����O���g���v�ȂǕ��i�����Ȃ�Ȃ����t��ڂɂ����̂ł͂Ȃ��ł��傤���B���l�̃Q�[���v���O���}�[�⌤���҂ł���������A���i�͂������������Ƃɖڂ���������͂��Ȃ��Ǝv���܂��B�������v���O���~���O�̏�ŃC���^���N�V�������l����ƁA�����ɂ��̋��������ɂ��Ă͖�肪�o�Ă��܂��B
���Ƃ��ΗL���Ȋi���Q�[���u�X�g���[�g�t�@�C�^�[�v�V���[�Y�ɂ����āA�g�����⏸�����Ƃ������{�^���A�g�ɂ��C�x���g����������܂��B�Ⴆ�Δg�����̏ꍇ�́y���A���A���{���p���`�z�Ƃ������{�^���R���r�l�[�V�����ɂȂ��Ă���A������m���ɓ��͂ł��邱�Ƃ��Q�[����L���ɐi�߂�X�L���ɂȂ�̂ł����A����ŃQ�[���v���O���������̃{�^���R���r�l�[�V������F�����邽�߂ɂ́u�|�[�����O���ǂ����H�v�A�u�ǂꂮ�炢�̍X�V���x�Łv�A�Ƃ������𗝉����āA�Q�[���́w���슴�x(feeling of controling)��w�����Փx�x(difficulty of controlling)��ݒ肷�邱�Ƃ��d�v�ɂȂ�܂��B�������������������ޏ�ŁA���̎�̃��|�[�g���[�h�̐����A�����v���O�����̍쐬�́u���炵�����슴�v���������邽�߂ɔ��ɏd�v�ȍ���p�����[�^�[�ł���A�Q�[����Ђ̃G���W�j�A�ɂƂ��āA���̃v���O�����͂��̂��߂̗\�������Ȃ̂ł�(�n���ł���)�B
���ۂ̃Q�[���J���ɂ����ẮA�O���t�B�b�N�X�̑��x�Ȃǂ����̃v���O�����̏�ɍڂ��Ă��܂����A�ő�̃p�t�H�[�}���X(�Ⴆ�A�e�������`���Ɠ��삪�x���Ȃ邩�A�Ƃ������ő又���\��)��v�����ŁA�ǂ��ɕ`�惋�[�v�������A�����蔻��������A���͍X�V�������̂��A�Ƃ������v�́A�A�N�V�������̍����Q�[���̊J���̏����i�K�ɂ����āA�ō��ɏd�v�Ȏ����v�f�ɂȂ�܂��B��L�̃v���O�����ɂ�����uSleep(1)�v�̏ꏊ�ɂǂꂮ�炢�]�T������̂��A�Ƃ����b�ł��ˁB
WiiRemote�̉����x�Z���T�[���A���͊�{�͏������肷��{�^���ƍl�����ɂ��܂�ς��͂���܂���B�����x�Z���T�[���L�̃f�[�^���p(�Z�K�u���b�c�^�b�v�v�̂悤��)�ł͂Ȃ��A���͂��ꂽ�A�N�V�����ɑ��ă{�^�������蓖�Ă�悤�ȂƂ��́A�u�ǂꂮ�炢�̕b���Łv�A�u�ǂ̂悤�ȓ������������v�A�u�ǂꂮ�炢�̋��x�Łv�Ƃ����������A�����Ɂu�N�ł�����ł���悤�Ɂv�Ƃ����悤�Ɋ��蓖�Ă�K�v������܂��B����͂�if���Ȃǂŏ����Ă����̂͑�ςȍ�Ƃł����AWiiRemote���u���u���U���Ď����Ă��邤���Ɂu�����̓��삪�͂����Ĉ�ʓI�Ȃ̂��H�v�Ƌ^��ɂȂ��Ă��܂����Ƃ�����ł��傤�B���ۂ����������u���삪��ςȃQ�[���v��Wii�����ɂ͑�����������Ă���܂����A�u�V�����G���^�e�C�����g�̌������o�����Ɓv�Ɓu���[�U�C���^�t�F�[�X�Ƃ��Ă̈�ʐ����ێ����邱�Ɓv�Ƃ����̂͂ƂĂ�����g���[�h�I�t�ł��邱�Ƃ��킩��܂��B
�u���͕��������Ȃ�ł���...�v����ȓǎ҂̕��ɂ́A�ӊO�ɊȒP�Ȍ��_������܂��B�܂��u�|�[�����O�ł͂Ȃ��A�������[�h�v���g�����Ƃł��B������ɂ��v���O�����̋l�܂���y�����A10�~���b�Ɉ�x�m���ɒl���Ԃ��Ă���Ƃ������[�h�ł��B
������WiiRemote�̌v�����g�������ɂ��ẮA�������̃Z�N�V�����Ŏ������Ă��܂��܂����̂ŁA�u�擾�ł��������x�Z���T�[�̒l��1/100�b������̃f�[�^�ł���v�Ɛ��肵�Ă��܂��Ă悢�ł��傤(WiiYourself!���g�����ꍇ�́A�ł���)�B
�Ⴆ�A������̃��[�V��������͂����Ƃ��ɁA100��f�[�^����������A����́u1�b�����郂�[�V�����v�������A�Ƃ������Ƃł��B�u1�b�Ԃ�16��̃{�^���A�Łv����͂Ƃ��Č��o������������A�u6.25��̃T���v�����O�ɑ�1��{�^�����͂�Off-On-Off�������ł�������v�Ƃ������ƂɂȂ�܂��B�t��1/100�b�̍X�V�����Ȃ�ǂ�ȂɊ撣���Ă�(�Y�����Ă�)�A�_�����1�b�Ԃ�����50���{�^����On��Off�͓��͂��悤������܂���B��������w�╨�������A�������������Ƃ���������C���[�W�ł��邩�ǂ����̂ق����C���^���N�V�������x����Z�p�Ƃ��Ă͑厖�ŁA����Љ���悤�ȍׂ����������R��邱�ƂŁA�C���^���N�V�������x����v���O���~���O�Z�p�̓O���O���オ���Ă����܂��B
�����ɗ����o���Ă����܂��B�A�����J�̌Â��f��̃t�F�X�e�B�o���̃V�[���Ȃǂɂɏo�Ă���u�n���}�[�Œ@�����͂𑪒肷��Q�[���v���������ł��傤���B�������̂��킩��Ȃ��̂Łu�p���`�͑���v�Ƃ��Ă����܂��B���܂܂ł̑���v���O�����̉��p�ŁA���́u�p���`�͑���v�Q�[������邱�Ƃ��ł���͂��ł��B
�͂̑傫�����v�Z����ɂ́A�}�O�j�`���[�h�A����Ȃ��u�����x�Z���T�[�e���̗v�f���悵�����̘a�v�ŎZ�o�ł��܂��B
F = X * X + Y * Y + Z * Z;
����F���傫���Ȃ�Α傫���Ȃ�قǁA���莞�Ԃ�����̗͂��傫�����Ƃ��킩��܂�(���̎��͐��̒l�����Ƃ�܂���)�B���Ȃ݂ɁA�M�҂�WiiRemote�̐ݒu��Ԃł͏d�͉����x�͂��鎲�ɖ�1.0��Ō��o����A���̎��̓[���ɂȂ��Ă��܂�����uF��1.0�v�c���ꂪ�������Ă��Ȃ���Ԃ̒n��̏d�͂������Ă��܂��B���������G�ƌĂт܂��B
�����Ŏv��������WiiRemote�����肵��(�X�g���b�v�����Ă��������ˁI)�A�n���}�[��낵���w�u���b�x�ƍ~�肨�낵���Ƃ��̍ő��F��G�̉��{���A���Z�o���邱�ƂŁA�p���`�͑��肪�ł���킯�ł�(�����Ă݂�ƁA��������5G�`16G���Q�[���ɂȂ邠����ł�)�B
�ł͎��́A��������p���āu�e�j�X�̃��[�V�����v������Ă݂܂��傤�B���͂���͈Ӓn���ȗ��K���ł��B���ۂɍ���Ă����Ȑl�ő��肵�Ă݂�ƁA�e�j�X�̃��[�V�����́A�n���}�[�Q�[���Ƃ͎��ĈقȂ�A�����悤�ȉ����x�̐U�镑���Ƃ��đ��肳��܂���B�����̐l���A(�f�U��Ƃ͈قȂ�)�{�[����������ł��낤�u�C���p�N�g�̏u�ԁv�Ɂw�O�b�x�Ɨ͂����߂Ď~�߂Ă��܂��܂��̂ŁA��ԗǂ��u�Ԃɋt������G���������Ă��܂��̂ł��B�������A���̋t�����̗͂������炸�A���ꂢ�Ɂu�t�H���[�X���[�v����͂ł���l�����܂��B���̂��C���p�N�g�̏u�Ԃɂ˂����l�����܂��B�܂��Q�[���I�ɂ��p���`�͑���̂悤�Ɂu�����@���Ă��������I�v�Ƃ��������ɂ����Â炢�ł�(�{�[�����e�u�Ԃ��g���Ɨǂ��ł��傤)�B�ǂ̏u�ԂɃT���v�����O���J�n���āA�ǂꂮ�炢�̒����̋L�^�����āA�ǂ̂悤�Ȍ��o�A���S���Y�������̂��A�����܂Ŋw�F����͂��Ёuif���̃J�^�}���v�ȊO�ō���Ă݂邱�Ƃɒ��킵�Ă��������I
�����܂�WiiYourself!�̐[�݂������������Ȃ��͂����A�����x�Z���T�[�ɂ��Ċ�b�I�Ȃ��Ƃ͊w�Ԃ��Ƃ͂Ȃ��A�Ǝv����������܂���B�������ɂ����܂ł̃T���v���v���O�������g�����ƂŁu���b�c�^�b�v�v�̂悤�ȃA�N�V�����͍�ꂻ���ł�(�ڃR�s�ŃQ�[�����܂˂��ĊJ������̂̓v���O���~���O�̕��ɂ͂Ȃ�܂����A�{���ł͔����邱�Ƃɂ��܂��I)�B��L�̗��K���u�e�j�X�̃��[�V�����v�����Ђ���Ă݂Ă��������A�ȊO�Ɖ��[���ł��B
���ꂩ��A��w�ŐM������������Ă���l�́Aif���ɂ���������A�����ɂ��G���K���g�ȔF�����������āA���Ђ����ŐM�������̋Z�p��WiiRemote�ɓK�p���Ă݂Ă��������B�o���h�p�X�t�B���^�[�╪�ފ�A�@�B�w�K�Ƃ��������_���ʔ����قlj����x�Z���T�[�ɗ��p�ł��܂����A�܂��܂����J��̕����ł�����܂��B
�����Č����҂̃A�i�^�A�u����WiiRemote�����͂��s�����ꂽ�v�Ǝv���Ă��܂��H���͂܂��܂��\��������Ɗ����Ă��܂��B�F����HMM(Hidden Markov Model�G�B��}���R�t���f��)��SVM(Support Vector Machine)�Ȃǂ̕��ފ���g���邩������܂���B
�����ƁA�uSVM�v��uHMM�v���Ȃ��킩��Ȃ��l�́A���߂�Ȃ����B�ȒP�ɕ\������Ɓu�l�H�m�\��WiiRemote������͂��ꂽ�M����F���ł���v�Ƃ����b�ŁA����u���[�V����A�v�ƁA�ʂ́u���[�V����B�v�����ꂼ��T���v���Ƃ��Ċw�K������ƁA���̈Ⴂ�������I�ɔF�����āA�Ȍ�́u�Ȃ��悭�킩��Ȃ����́v�����͂���Ă��uA�v���uB�v�ɕ��ނ��邱�Ƃ��ł���Ƃ����d�g�݂ł��BHMM�͓��͂̑O��W�������Ŋl�����܂��BSVM�͎菑���F���Ɏg��ꂽ������Ă��܂��B
�ŋ߂ł͓��ɋ@�B�w�K�n�̘b��͖ʔ����A�h�C�c��Oldenburg��̊w��Benjamin Poppinga���ɂ��uWiiGee�v�Ƃ����v���W�F�N�g��Java5.0��JSR-82�Ƃ���Bluetooth���C�u�������g����HMM�𗘗p�������[�V�����F�����������Ă��܂��B
��WiiGee
http://www.wiigee.org/
�Ƃ���ŁuAiLive�v�Ƃ����Q�[���J���җp�̐��i��C�V�����烉�C�Z���X�Ĕ̔����Ă���A�����J�E�V���R���o���[�̉�Ђ�����܂��B���͂���Wii�{�̗p�̃Q�[���v���_�N�g�ɂ͗��p����͂��߂Ă���̂�������܂���ˁB
��AiLive(���{��y�[�W�L��)
http://www.ailive.net/
���Ȃ݂ɂ��̉�Ђ̗̍p�y�[�W�ł́uArtificial Intelligence Researcher(�l�H�m�\�̌�����)�v���W���Ă��܂��B�r�Ɏ��M������l�͍̗p�������Ă݂ẮH
���̃Z�N�V�����ł�WiiYourself!�����ݗL��������I�@�\�̂����ł��ł���i�I�ȁu�X�s�[�J�[�̍Đ��v�𗘗p���܂��B�����������I�@�\�Ȃ̂ŁA����������A�i�����\���ł͂Ȃ��ł����A�����Ă݂鉿�l�͏\���ɂ���܂��B
WiiRemote�ɓ��ڂ���Ă���T�E���h�v���Z�b�T�����ɓ���Ȃ̂ŁA���E���̃n�b�J�[���������킵�Ă��܂����A����̎��g���ȊO�炷�͔̂��ɓ���炵���AWiiYourself!������WAV�t�@�C������̍Đ��ɐ������Ă��܂��B�Ƃ͂����A�܂����S�ȏ�Ԃł͂���܂���B
�����̎�����WiiYourself!v1.01�Ŏ����Ă��܂��B�܂�TOSHIBA���X�^�b�N��Broadcom���X�^�b�N�ł̂ݎ������Ă��܂��B���g���̊��ŁuDemo.exe�v���N�����āu2�v�{�^����������DAISY���[�h�ʼn����������Ȃ����ł��ƁA���̎����͓k�J�ɏI��邩������܂���B
�܂��AWiiYourself!�ŗ��p�ł��鉹���t�@�C����p�ӂ��܂��傤�B���݂̂Ƃ���A�T�|�[�g���Ă���̂́u16�r�b�g�E���m�����v�̔kWAV�t�@�C���ŁA����ɃT���v�����O���g���́u2470�`4200Hz�v�ƂȂ��Ă��܂�(�ڍׂ�WiiYourself!�́uLoad16bitMonoSampleWAV�v�����Q��)�B����Ȍ`����WAV�t�@�C�����ȒP�Ɏ�ɂ͂���킯�ł͂���܂���̂ŁA�c�[�����g���ăR���o�[�g���܂��傤�B
����ȗp�r�̂��߂ɕ֗��ȃc�[���������܂����B�uKanaWave�v�Ƃ����A�D���ȂЂ炪�Ȃ���WAV�t�@�C�����쐬����c�[���ƁA�uSCMPX�v�Ƃ���ch3���̌��J���Ă���ăT���v�����O���\�ȃc�[���ł��B
��KanaWave(�͍��͌厁)
http://www.vector.co.jp/soft/win95/art/se232653.html
��SCMPX(CH3��)
http://www.din.or.jp/~ch3/
�uKanaWave�v�͐������s�v�Ȃ��炢�ȒP�ȃc�[���ł��B�Ђ炪�Ȃō�肽�����̕��͋C���[���ŏ����ƁA���̉��ɂ������g�`�����܂��B�����ł́u�����[��v�Ƃ�����������Ă݂܂���(��������ꂽ���́A���͋C���o�����߂ɉ��̍�����1�ڐ��肾�������Ă݂Ă��܂�)�B�Đ��{�^���������Ď������āA�C�ɓ�������uKanaWave�v���j���[����uWave�t�@�C���ɕϊ��v�Ƃ��ĕۑ����܂��B�����ł́uWiin.wav�v�Ƃ��܂����B
���ɕϊ��ł��B�uSCMPX�v���N��������uCONVERT�v����uSingle file...�v���uResample...�v��I��ł��������B�t�@�C���I���_�C�A���O���\������܂��̂ŁA��ق�KanaWave�Ő�������WAV�t�@�C���A�������͓���WAV�t�@�C�����Ȃ���uC:\Windows\Media�v��蕷�����ꂽWindows��WAV�t�@�C����I��ł��������B
�T���v�����[�g�́u4200�v(����WiiYourself!���T�|�[�g���Ă���ō�����)�A�ʎq���r�b�g�́u16bit�v�A�`�����l���́umono�v�ŕۑ����܂�(�����ł́uWiin_rs.wav�v�ɂȂ�܂���)�B
���̃t�@�C����WiiYourself!�́uDemo�v�t�H���_���uDaisy16 (3130).wav�v�ƒu�������邩�A�\�[�X�R�[�h��Load16bitMonoSampleWAV���ł̓ǂݍ��݃t�@�C�����uWiin_rs.wav�v�ƕύX���邱�ƂŃ��[�h���邱�Ƃ��ł��܂��B�t�@�C�������̌`���������ł��Ԉ���Ă���ƃG���[�ɂȂ��Ă��܂��܂����A��L�̕��@�ɏ]���Đ�������WAV�t�@�C���Ȃ�A�K�����̕��@�Ń��[�h�͐������܂��B�����̂���l��VC�̃f�o�b�O�@�\���g���č��C�悭�ǂ������邱�ƂŁAWAV�t�@�C���ǂݍ��݂̓�������������ł���̂Ō��l�ɂ͂����߂ł��B
�uDemo.exe�v���s���ɃG���[���o�Ȃ���u2�v�{�^�����������ƂōĐ�����܂��B���炩�ɉ����o�Ă��Ȃ��ꍇ�́uA�v�{�^���������āA��`�g(�s�[...)���o���Ă݂�ƁA���������肵�܂��B������ɂ���4.2KHz�ł����特���ɂ��Ă͉ۑ肪����܂��B�܂������t�@�C�����Đ����ɓˑRWiiRemote����ؒf���ꂽ������܂��B
�ȏ�Łu�X�s�[�J�[���p�����v�͏I���ł��B�{�������M���Ă��鎞�_�ł͈��萫�A�����ʑo���Łu���܂���p�I�ł͂Ȃ��v�ƕ\�����Ă����܂��傤�B������Wii�{�̂̃Q�[���v���_�N�g�ł́A���������̉����ŕ\���͖L���ɍĐ��ł��Ă��܂��̂ŁA�C�V�����Q�[���J���҂ɒ��Ă�������J���c�[���ł͔�r�I�ȒP�ɕϊ��ł��Ă��܂��̂�������܂���B�����I�ɂ͕s�\�ł͂Ȃ��̂ł��傤���A���ڂ��Ă���T�E���h�`�b�v�̉�͂��i�ށA�������͔g�`�Đ����ȂǁA�����ƋC������Ȃ��Ƃ����Ȃ����Ƃ�����̂�������܂���B������ɂ���A�{���ň����͈͂Ƃ��ẮA�����܂łłƂǂ߂Ă������Ƃɂ������܂��B
WAV�t�@�C������̍Đ��͏�L�̒ʂ�A�c�O�Ȃ��犮���ł͂Ȃ��̂ł����A�s�\�Ƃ��������Ԃł��B��������Âɍl����A�������ɁuDemo.exe�v�ŁuA�v�{�^����u1�v�{�^�����������ƂŁA��`�g��T�C���g�ȂǒP���Ȕg�`�͏o�͂ł���̂Łu�ڊo�܂����v�v���炢�Ɏg���邩������܂���(���̏ꍇ�͐ؒf�ꁕ�d�r��ɒ��ӂł�)�B�������������̃T�E���h�v���O���}���u���ꂮ�炢�̔g�`�v�����ł����ȉ��y������Ă�����j������܂��̂ŁA�ґ�͌����Ȃ��ł��傤�B
���āA����Ŗ{�͂͏I���ł��BWiiYourself!�ɂ��Ă��Ȃ�f�B�[�v�Ɏ��g��ł݂܂������A���Ă��邱�Ƃ��ł����ł��傤���H�R�}���h���C���v���O�����Ɋւ���ׂ����e�N�j�b�N�����Ȃ舵���܂����B������@���C++�ɂ��v���O���~���O����������ł����l�������̂ł͂Ȃ��ł��傤���B
�������AWiiYourself!�̓R�}���h���C���v���O�����̂��߂����ɂ���̂ł͂���܂���Bgl.tter����3D�V���[�e�B���O�Q�[���̗��������܂ł��Ȃ��A����̓l�C�e�B�uC���ꂪ�g������Ȃ�A���ɂł����p�ł��郉�C�u�����ł��B��̓I�ɂ�DirectX��OpenGL�Ƃ��������A���^�C��3DCG�AMaya��Virtools�Ƃ������R���e���c����\�t�g�E�F�A�̃v���O�C���ȂǁA���Ȃ蕝�L���g����킯�ł��B
�܂��A��҂�gl.tter���͂ƂĂ����I�Ȑl�ł��B�u�^�ʖڂȃn�b�J�[�v�ŁA���ł�WiiYourself!���X�V���Ă��܂�(�M�҂����Ȃ��`���Ă��܂����c)�B�߁X�V�����o�[�W�����������[�X����邱�Ƃ��m���ł����A�{�͂ł͈���Ȃ������A�ԊO���@�\���u4�_���o�{�傫���v�������܂��B�X�s�[�J�[�@�\�̊g����A�o�����X�{�[�h�̃T�|�[�g�Ȃǂ���荂�x�ɂȂ��Ă����ł��傤�B.NET�ɂ��WiimoteLib�Ƃ͂܂���������͂�����v���W�F�N�g�ł��̂ŁA�ǎ҂̊F���u���p���遨�Q�����遨�v������v�Ƃ����ւɓ��邱�ƂŁA�ǂ�ǂ@�\�ɂȂ��Ă����ł��傤�B���ꂩ����y���݂ȃv���W�F�N�g�ł��B