Powered by SmartDoc

WiiRemote�v���O���~���O��Programming on your WiiRemote��

����ŕF
shirai at mail.com
http://akihiko.shirai.as/projects/WiiRemote/

Version

����PDF�AHTML�t�@�C����SmartDoc�ɂ���� LATEX �Ő�������Ă��܂��B���������̃y�[�W�����‚��񂾂�A���M��Ƃ̂��߂ɉ��Ń��C�A�E�g����PDF�ł��BHTML���֌W�e�ʂɓ��e���m�F���Ă����������߂ɏo�͂��Ă��܂��B�‚܂�ŏI�I�ȏo�ŏ��ЂƂ͑S���قȂ���̂ł��B���쌠�͔���ŕF�Ƃ��̋����҂ɂ���܂��̂ŁA���f�R�s�[��z�z�͂��Ă͂����܂���B

�y���̔łɂ�����}��z

�y��ƃ����z(6/12)����270�y�[�W(1-7��)�A8�͂�Mouse�A400p�ł����v�B����max350!300-350��������PDF�{5�͂�30p���炢�A�O�t�����t��20p�Bpointer����

�uWii�v�{������Wii�͔C�V���̓o�^���W�ł��B

�ڎ�

WiiRemote�̃X�X��

�͂��߂�

�n�b�L���O�{�ł͂���܂���

�{������Ɏ���������ǎ҂̋M���A�܂��M���Ɏ�����������Ƃ������܂��B

�M���͂��̖{�ɂǂ�Ȋ��҂����Ă��܂����H

�wWiiRemote�v���O���~���O����x

�M������ɓ��ꂽ���m����WiiRemote�̎g�����H�v���O���~���O�H�l�ɕ����Ȃ����w�╨���H�C���^���N�V�����Z�p�̊J���e�N�j�b�N�H�͂��܂��~����ɂ��u���̂��ׂāv�ł��傤���H�܂��ŏ��ɃL�b�p���Ɛ錾�����Ă��������܂����A���̖{�͔C�V��Wii�R���\�[���Ɋւ���w�n�b�L���O�{�x�ł͂���܂���B�����{�ʂ�s���ɗ��v�𓾂�ړI�ŁA�Q�[��������������s���ȃR�s�[������s�ׂ́A�Q�[�����̂��̖̂ʔ�����D�������łȂ��A���̃Q�[���^�C�g���𐢂ɐ��ݏo�����߂ɍ�������Đ��삵���l�X�ɂ��A�[���߂��݂ƌo�ϓI�_���[�W��^���܂��B�M�����Q�[����������Ȃ�A����ȍs�ׂɎ��Ԃ��₵�Ă͂����܂���B

�n�b�L���O�ɂ������ȈӖ�������܂����A���ɕs���𓭂����߂́u�n�b�L���O�{�v������Ƃ���΁A���̖{���ڎw���Ƃ���́A���̐����΂́AWiiRemote���‚������y�����u�N�b�L���O�{�v�A��������܂���B

�Ώۓǎ�

���̖{��WiiRemote(Wii�����R���AWiimote�l�X�Ȍď̂�����܂����{���ł�WiiRemote�ɓ���)���g���āA�v���O���~���O���w�т܂��B�‚��łɐ��w�╨���̎g���������K��ʂ��Ċw�т܂��B

�ڕW�Ƃ��ẮA�M������D���ł��낤�A�R���s���[�^���g�����Q�[���A���̑z���͂�”\�����ő���ɉ������邽�߂́u�ŏ��̕���v��g�ɂ‚��邽�߂́u���������v��^���邱�Ƃ�ڎw���Ă��܂��B

�ǎ҂Ƃ��ẮA�ȉ��̂悤�ȕ��X��ΏۂƂ��đz�肵�Ă���܂��B

����ȓǎ҂̊F����ɁAWiiRemote���͂��߂Ƃ���V�����q���[�}���C���^�[�t�F�C�X���g�����A�G���^�e�C�����g�V�X�e���̐��E�́u�J��̖ʔ����v�A�w�Z�Ŋw�ԕ����␔�w�́u�g�����Ȃ����v�A�����Ăق�̂������u���E�̍L���v�𗝉����Ă��炦��΂������ȁA�ƍl���Ă��܂��B�C���^���N�V�����Z�p�́u�L���v�Ɓu�[���v��m�邱�Ƃ��A�����̐V�����G���^�e�C�����g�V�X�e�������̂ł��B

���łɃR���V���[�}�Q�[���@��PC�AFlash�ȂǂŃv�����̃Q�[���v���O���~���O���s���Ă���V�j�A�G���W�j�A�ȏ�̓ǎ҂̋M���́A�����Ƃ����܂œǂ�Łw�Ȃ��񂾁A���̖{�H���ɗ��‚̂��ȁH�x�Ǝv������������܂���B�O�q�̒ʂ�A���̖{�ɂ͔C�V���̎��`���ɂӂ��悤�Ȏ��͈�؏�����Ă��܂���BWii�Ɋւ�������d�l�Ɋւ��ẮA�C�V������񋟂���Ă�������̋Z�p�����������p���������B

�������A�C�V������񋟂��������̏��͂����܂ŃQ�[������邽�߂̊�{���̂͂��ł��B���悢�Q�[�����J�����邽�߂́A�z���ȏ��WiiRemote�̎g������A������Ƃ����C�Â��ɂȂ�悤�ȏ�񂪁A�{���ɏ����ł����݂���΍K���ł��B

�M�҂ɂ‚���

�M��(���A����ŕF)�́A1994�N���납��A�q���[�}���C���^�[�t�F�C�X�A���A���^�C���R���s���[�^�O���t�B�b�N�X�A�����V�~�����[�V�����A�G�o�C���^�t�F�[�X�Ƃ������o�[�`�������A���e�B�Z�p�𒆐S�Ƃ�����b�Z�p���G���^�e�C�����g�Y�Ƃ̎��p�̐��E�Ɏg����悤�ɂ��邽�߂̋Z�p�̌����J�����s���Ă��܂����B�Q�[���pCG�̍�����A��w�̌������A����������p�Z�p�̌����J���ɐg��u��������������܂����A�e�[�}�p�[�N�A�g���N�V�����̐݌v���s������A���{��t�����X�̑�w�Ō|�p�w����H�w�n�̊w�������w�@���܂ŕ��L���̊w���̎w���E��������Ă���������܂����B

���ł��A16�N�ȏ㑱���Ă���u���ۊw���΍R�o�[�`�������A���e�B�R���e�X�g(http://ivrc.org/)�v�̃v���f���[�X��ALaval Virtual ReVolution�Ƃ����t�����X�ŊJ�Â���Ă��鍑��VR��i����W�̃`�F�A�}���̌o����ʂ��āA���E������W�܂��������̐V�K�ȁi�V��ȁH�j�f�o�C�X���g�����C���^���N�e�B�u��i�̗����Ƃ��̊J�����s������҂ɏo��@��𓾂Ă��܂����B

���݂͉Ȋw�R�~���j�P�[�^�[�Ƃ����E�ƂŁA�Ő�[�̏��Ȋw�𐢊E���ɂ킩��₷���`����d�������Ă��܂��B���{�̌����҂͓��ɂ��́u�C���^���N�e�B�u�Z�p�v�̃Z���X������\�͂����ɍ����A���E���獂���]�����󂯂Ă��܂��B�d�����A���E�̃X�e�[�W�ɗ��‚��̍�҂�v���W�F�N�g���x�����邱�Ƃ������̂ł����A�������Ƃɓ��{��C�O�Ɍ��炸���̃N���G�C�^�[�́u�Ⴂ�w���v�������̂ł��B�܂��A�V�����\���A���΂炵���Z�p�v�V�𐶂ݏo���N���G�C�^�[���u�K�������\���Ȋ�{�Z�p��̌n�I�ɐg�ɂ‚��Ă���킯�ł͂Ȃ��v�Ƃ����󋵂ɂ��悭�������܂����B

�����ߋ��ɃQ�[���ƊE�œ����Ă����Ƃ��ɂ́A�d�����A�������̃Q�[���f�U�C����S��������n�̕��Ƃ��b������@����������̂ł����A�w�ʔ����̌����‚���m�E�n�E�x�́A�����Ă��N���́u���̒��v�ɒ~�ς���Ă���A���Љ��͓���Ƃ����b�𕷂����Ƃ���������܂����B�܂��ŋߔ��ɐl�C�̂���A���f�B�A�A�[�g�E�f�W�^���A�[�g�n�̑�w�̐搶�����A���ꂼ��A�[�g��f���Z�p�Ȃǂ̐��ƂȂ̂ł����u�̌n�I�ȃC���^���N�V�����Z�p�̊�b�v�͈ȊO�Ƌ��ȏ��I�ɂ܂Ƃ܂��Ă��Ȃ��A�Ǝ��ɂ��܂��B�펯�ɂƂ���Ă��Ă͐V�����Q�[����A�[�g�͑n��܂��񂪁A�C���^���N�e�B�u�Z�p�ɂ������n�[�h�ƃ\�t�g�̒��ԗ̈�ɁA��b�Z�p��̌n�I�ɓ`���鋳�ȏ���1�����炢�͗~�����ȁA�Ɖ��x�������Ă��܂����B

�M�҂͂��̖{�̎��M��ʂ��āA���݂́u�����̊w������v��������Ȃ��M�����A�����Q�[���J���̌���œ������̃G���W�j�A��A�����̃C���^���N�e�B�u�Z�p�Ɋv�V��^����A�[�e�B�X�g�ɂȂ邩������Ȃ��A�ƍl���Ȃ��玷�M���Ă��܂��B�F���񂪁A���ɋC�Â��A���𕐊�ɂ��āA�V�������E�̃t�B�[���h�ɗ����Ă����̂��A���̃m�E�n�E�����ЂƂ����J�^�`�ŋ��L���邱�Ƃ����݂Ă��܂��B�F������A�`�����X������Ήf����z�[���y�[�W�A�_���Ȃǂ̕��͂ɂ��āA���L�ɒ��킵�Ă݂Ă��������B

�{���̂˂炢

���̖{�ɏ�����Ă�����̑����́A��L�̂悤�ȁw�܂��N����������Ƃ��Ȃ��A�R���s���[�^���g���Ă����炵���\�������悤�I�x�Ƃ��Ă����҂ɑ΂��āw�U���͂�������g�C���^���N�V�����Z�p�h�Ƃ��������^���悤�I�x�Ƃ������_�ɂ���ď�����Ă��܂��B���������u�l�����̃q���g�v�͂Ȃ��Ȃ��܂Ƃ܂������Ђɂ͂��Â炢���̂ł��B�C���^���N�e�B�u�V�X�e���̍H�w�I�ȊJ���E�f�U�C���Ɋւ���܂Ƃ܂������Ђ�A�̌n�Â���ꂽ�w��́A�i���{�ł́j����10�N�ȏ�`�ɂȂ��Ă��Ȃ��󋵂ł��B���ꂾ�������r��ł���A�o����o�����Ɉˑ����鐢�E�ł����邩��ł��B

�����������͂��̏󋵂ɊÂ񂶂Ă����܂���B�ǎ҂݂̂Ȃ��񂪂����A��������Q�[���J���A�C���^���N�e�B�u��i�J���`�[���̐�y�G���W�j�A�Ȃ�A�ЂƂ�łł��邱�Ƃ͌����Ă��܂��B�N���������Ƃ��Ȃ��v���W�F�N�g�������߂邽�߂ɁA���ɂ́u���m���̌�y�v�ɑ΂��āA���鎞�͎��ׂ��Ƀ\�[�X�R�[�h��R�����A���鎞�͍��Z�́w���wI�x�̋��ȏ��������o���āA�M���ۂ����Ȃ���΂Ȃ�Ȃ��Ƃ�������ł��傤(�������J���̐^���Œ��ɁI)�B�{���́A���́w���΂炵���u�`�ʼn���ς݂�(�M���Ȃ�)1�b�ŗ����ł���悤�Ȑ�����������@�x��ڂ̑O�ɁA�������E���E���ƚX���Ă����y������Ƃ��ɁA�w���傤���Ȃ��ȃ@�A���̖{�ł��ǂ�ł���Ă݂��x�ƁA����ɕtⳕt���ł����Ă�������悤�ȁA����ȏ��ЂɂȂ�΂Ǝv���A�����n�߂܂����B

���ۂɁA���M�������߂Ă݂�ƁA����Ȃ���΂Ȃ�Ȃ���b�I�Șb�����܂�ɑ����A�Ȃ��Ȃ��‚����񂾎���₷���Ɏg���郌�V�s�΂�����Љ��̂͑�ςȍ�Ƃł��邱�Ƃ��킩��܂����B����ł��A�����̐l�ɁA�V�����w�ׂ镪����������Ƃ͂ł��Ă���Ǝv���܂��B�����A�{����ǂ�Łw���̏͂̂����˂�����ł��������I�x�Ǝv���l������΁A����͖{���̂˂炢�ʂ�ł��B���ЁA�����⌤�������āA�_���������A�{�����Q�l�����ɉ����Ă��������B

�܂��{���̈ꕔ�́A���򍂓����w�Z�̏��␒�V�搶�̂����͂ɂ��AWiiRemote���g�����A���S�Ҍ����̃X�e�b�v�o�C�X�e�b�v��C++�^C#�̃v���O���~���O���K�{�Ƃ��Ă��@�\���܂��B�w�{�����w�Z�̉��K�Ɏg���Ă��܂��I�x�Ƃ��������b������܂�����A����̂��߂Ƀt�B�[�h�o�b�N������������ƁA���Ɋ������v���܂��B

���ӎ���

WiiRemote�֌W�̋Z�p�͓��i�����A�b�i�����ł��B���E���̋Z�p�҂̓w�͂ɂ��A�g���Ȃ��������̂��g����悤�ɂȂ�����A�z�������Ȃ����΂炵�����ʂ𐶂ݏo�����Ƃ�����܂����A���J����Ă�����̂��s���ɂ���Ĕ���J�ɂȂ�����A�L���ɂȂ�����Ƃ��������Ƃ�����܂��B�{���͔��s���ɂ����ĉ”\�Ȍ���ŐV�̏����L�ڂł���悤�w�͂��Ă���܂����A�����ɂ킽��ۏ؂������̂ł͂���܂���B�܂��{���Ōf�ڂ���Ă���\�[�X�R�[�h��v���O�����A���e���������ɂ킽�萳�m�����ۏ؂������̂ł͂���܂���B

�����́u�v�����v�͈Ȍ�A���ɁuTM�v�Ȃǂ�W�L���܂��񂪁A�C�V��������Ђ̓o�^���W�ł��B�{���͔C�V��������ЂƂ͈�؊֌W������܂���B�{���ɋL�ڂ��ꂽ���e�����s�������ɂ��s���v���͑S�Đ��i�ۏ؂̑ΏۊO�ɂȂ�”\��������A���ׂĂ̓��[�U�[�̐ӔC�ł��邱�Ƃ����������������B

�ӎ�

���̖{�������グ��ɂ�����A���������X�ɂ����b�ɂȂ�܂����B�܂��A�Q�[���Y�Ƃɗ��j�I�v����^�����C�V���̊J���҂݂̂Ȃ���Ɍ��t�ɂł��Ȃ����ӂ̋C������`�������Ǝv���܂��B�����ĕҏW��S�������������B�����ē��Ɏ��M��R�[�h�񋟂ŋ��͂������������ؑ��G�h����A�������j����A���V�F������A����H�Ɛ�卂���w�Z�̏��␒�V�搶�A�ޗǐ�[�Ȋw�Z�p��w�@��w�̈䑺���F�搶�A���邭�錤�����݂̂Ȃ���A��N���ɂ킽��x�M�ȕM�҂ɍŌ�܂ł�����߂����‚��������������A���肪�Ƃ��������܂����B�X�e�L�ȕ\���C���X�g��`���Ă����������^�i�J���J������B�����āA���E����WiiRemote�J���҂݂̂Ȃ���A�{�����ɂĂ����b�ɂȂ����Z�p�Ƌ��ɁA�”\�Ȍ��肨���O�‚��ł��Љ�Ă��������Ǝv���܂��B�Ō�ɁA����Ȓ��Ԃ̎d���̍��Ԃ̐����Ȃ��x�ɁA�M�d�ȉƑ��Ƃ̎��Ԃ̍팸�ɕ���������Ȃ�������M��R�[�f�B���O���������Ă��ꂽ�ȁE�v���q�A���q�̐��F�Ɨ����ɁA���Ɗ��ӂ�`�������Ǝv���܂��B

�����A�ǎ҂̊F����A���͋M���������H�����[�V����(�v��)���N�����Ԃł��I

�{���̍\��

�{���͑�܂��ɁA3�‚̃p�[�g�ō\������Ă��܂��B

�y�p�[�g1�z��b�m���E������(��1�́`3��)���̃p�[�g�ł́AWiiRemote���‚������v���O���~���O���͂��߂�ɂ�����A�m���Ă����ׂ��m�����l�̊J�������v���W�F�N�g�A�c�[���ށA�����ĊJ���ɕK�v�ȃ\�t�g�E�F�A�̃Z�b�g�A�b�v���Љ��Ă��܂��B���܂ł�WiiRemote�ŊJ�����s�������Ƃ�����l�͓ǂݔ�΂��Ă����܂��܂���B

�y�p�[�g2�z�v���O���~���O��b��(��4��)���̃p�[�g�ł́A�I�[�v���\�[�X�ŊJ������Ă���I�[�v���\�[�X��API�v���W�F�N�g�uWiimoteLib�v�Ɩ����ŗ��p�ł���Microsoft Visual Studio Express�𗘗p����C++��C#�̃v���O�������������ƂŁAWiiRemote��PC���ǂ̂悤�ɒʐM���s���A�ǂ̂悤�ɂ��ăZ���T�[�ނ̒l���擾�ł���̂��ȂǁA��ՂƂȂ�Z�p���X�e�b�v�o�C�X�e�b�v�ŏڍׂɉ�����܂��B

�y�p�[�g3�z���p��(��5�́`9��)���̃p�[�g�ł́A4�͂ň���Ȃ�����DirectX�ɂ��3DCG�AFlash��Processing��p�����A����̓I�ȃA�v���P�[�V�����J���̗���Љ�܂��BDirectX��ActionScript3�Ȃǐ��̒m�����K�v�ɂȂ�܂��̂ŁA�����g�̗��p�������P�[�X�ɋ߂��T���v���𒆐S�ɓǂ݂قǂ����Ƃ������߂��܂��B

�֘A�����G�k�́u�R�����v�ɂ܂Ƃ߂Ă���܂��B

���{���̒��ň������T���v���v���O�������́A����\�Ƌ����I�[���Ђ�HP�u���ИA���^�_�E�����[�h�T�[�r�X�v�ɂē���ł���\��ł��B�K�₵�Ă݂Ă��������B

WiiRemote�̊�b�m��

�����ł́AWiiRemote���g�����v���O���~���O���w�ԑO�ɁA�܂�WiiRemote�̊�b�m�����܂Ƃ߂Ă����܂��B

�g�v���h�̎�l���uWii�����R���v

�uWii�v(�E�C�C)��2006�N���ɔ������ꂽ�A�C�V���̉ƒ�p�Q�[���@�ł��B�p��́uWe(�킽������)�v�Ɠ����I�ȃR���g���[���[�uWii�����R���v��\���uii�v�������āuWii�v�Ɩ��t����ꂽ�����ł��B

����Wii�����������ȑO�̊J���R�[�h�́uRevolution(�����H�����[�V�����F�v��)�v�ƌĂ΂�Ă��܂����B2005�N�̕č��uE3�v(Electronic Entertainment Expo�G�G���N�g���j�b�N�E�G���^�[�e�C�������g�E�G�L�X�|�A���{�ł̓����Q�[���V���[�ɂ�����Q�[���Y�Ƃɂ����鐢�E�I�Ȍ��{�s)�ł��̃R�[�h�l�[�������S�����\����܂����B

�u�v���v�Ƃ������ɂӂ��킵���ARevolution�͂��܂܂ł̉ƒ�p�Q�[���@�Ƃ͑傫���قȂ�R���Z�v�g�Ő݌v����܂����B�ڂ������u�В����u�� Wii�v���W�F�N�g(�C�V������HP)�v�ɁA�J���`�[���ƎВ��̑Βk�Ƃ����`���ŏڂ������J����Ă��܂����A�ȒP�ɃX�g�[���[���܂Ƃ߂�ƁA�C�V���E��c�В���2002�N���u���̂܂܃Q�[�������G�ɂȂ��Ă�������A�Q�[���ƊE�͏k������v�ƍl���A���̌��_�Ƃ��ĐV�����n�[�h�E�F�A�݌v�̂قƂ�ǑS�Ăɂ����Č��������s�����_���傫�ȁu�v���v�ɂȂ�܂����B�ΏۂƂ��郆�[�U�w���]���̐��N�w�����ׂĕ��L���ݒ肵�A�Q�[���̗V�ѕ��A��������͂ފ‹��A���\�̐ݒ�����d�͂ȂǁA���ׂ��ɍ��܂ł̉ƒ�p�Q�[���@�̐i���̗���������������ɐ݌v����Ă��܂��B

Wii�{�̂ɂ͏ȓd�́E�����펞�ڑ��l�b�g���[�N�@�\��c�u���f�U�C���A���\�Ȃǂ��܂��܂ȓ���������܂����A���ɂ��̒��ł��ł��傫�Ȗ����������Ă���u�g�v���h�̎�l���v�Ƃ������ׂ����݂��uWii�����R���v(�{���ł͈Ȍ�"WiiRemote"�ƕW�L)�ł��傤�B���������ꂽ�Ў�Ŏ��A���[�V�����Z���T���厲�ɂ������R���g���[���[�B���̂悤�Ɂu�w��ł͂Ȃ��A�S�g�̓���v�ɒ��ڂ����q���[�}���C���^�[�t�F�[�X(�@�B�Ɛl�Ԃ��‚Ȃ����u)���g�����V�ё̌��́A�_���X�Q�[���������΃��@�[�`�������A���e�B�Z�p��A�~���[�Y�����g�e�[�}�p�[�N�ȂǁA�����ꕔ�̑�^�G���^�e�C�����g�V�X�e���ɗ��p����Ă��邾���ŁA�܂��܂������ʼnƒ�p�Q�[���@�ɂȂ��ނƂ͎v���Ă͂��܂���ł����B���[�V���O�Q�[����ނ�Q�[���̂悤�Ȉꕔ�̃Q�[���W�������ɂ����āA�ʔ��̃R���g���[���[��K�v�Ƃ���������܂������A��͂�u�v���b�g�t�H�[�����񋟂���W�����ڃR���g���[���[�v�Ƃ������݂̓C���p�N�g������܂����B���‚Ă��̎�̃Q�[���p����f�o�C�X�͑����̌����ҁE�J���҂����g��ł��܂������A�ėp�I�ȗ��p���@�Ƃ��̉��i�ɖ�肪����A�Ȃ��Ȃ��������܂���ł����B��������������1000����ȏオ�����߂�V�n�[�h�ɍ̗p�����ƂȂ�ƁA���̃R���g���[���[���i��5000�~�ȉ��Ŕ̔�����܂�(����ʓI�Ƀn�[�h�̐����R�X�g�͔����̔������x�A���ƒR���g���[���[�̓Q�[���\�t�g���������i������ȉ��ɐݒ肳���ׂ�)�B�u���̃C���^���N�V�����v���b�g�t�H�[������C�ɉƒ�ɂ���Ă���I�v�A�u�ł��ǂ�����āH�v���E���̃q���[�}���C���^�t�F�[�X��G���^�e�C�����g�Z�p�̌����ҁE�J���҂͂��̃j���[�X�ɐF�߂������܂����B

���̌�AWii����������Ă���2�N�ȏオ�o�߂��Ă��܂����AWiiRemote�̑��݊��͑S�������Ă��܂���B�����̓X�g���b�v��W���P�b�g�𒅗p�����Ƀv���C�ŋ�������l�������A������ł̓e���r��j�󂵂���A�e�j�X�̂��߂��Ńq�W��ɂ߂�u�}��Wii�Ɂv�Ȃǃl�K�e�B�u�Șb��ł����킹�܂������A�o�[�`�����R���\�[���Ȃǂ̃N���V�b�N�R���g���[���[�𗘗p����ꍇ�������āAWiiRemote�ɑ΂���ے�I�ȃ��[�U�[�̈ӌ��͂قƂ�ǂ���܂���B�܂�WiiRemote�P�̂̔̔����i�����X�ɉ�����A���肵�₷���Ȃ��Ă��܂��B�Q�[���̗��j�ɂ�����v�����͂��܂�s�����𓾂Ă����ԂƂ�����ł��傤�B

WiiRemote�̂�����

���āA���̐߂ł�WiiRemote�̃n�[�h�E�F�A�I�Ȏd�g�݂�������܂��B�u���b�N�{�b�N�X���������Ȑ��i�Z�p�𗝉�����R�c�Ƃ��āA�܂��F���񂪁u�����O��z�肵�āA�����Ńf�o�C�X���J������‚���v�ɂȂ��Ă݂�Ƃ悢�ł��傤�B

�J���̗��j�ƌ����X�y�b�N

�O�q�̒ʂ�AWiiRemote�͊v���I�ȑ���̌���񋟂��‚‚��u5000�~��؂�̔����i�Łv�Ƃ����v���d�l���������悤�ł��B������WiiRemote�̓Q�[���̂��߂̃R���g���[���[�ł�����A�]���̃{�^���A�N�V�����₻�̑���̔������x���ێ����‚A����������������K�v������܂��B�܂��o�C�u���[�^�[���������ق��������ł����A�d�r���ł���Β��������ė~�����ł��傤�B�����͔��ɓ���v���ł��B

�R�[�h�l�[���uRevolution�v����A�u�R���g���[���[�ɂ̓��[�V�����Z���T���ڂ�炵���v�Ƃ����\�͂���܂����B�Q�[���{�[�C�u�R���R���J�[�r�B�v�ȗ��A�C�V���̃Q�[���^�C�g���ɍ̗p����Ă����A�e�L�T�X�C���X�c�������c(TI)�А��̉����x�Z���T�̂悤�Ȃ��̂����p����邱�Ƃ͑z������Ă��܂������A���ł�NEC�g�[�L���Ђ�����A�����x�Z���T�A�p���x�Z���T�A�n���C�Z���T��g�ݍ��킹���G���^�e�C�����g�p�r�����Z���T�[���i����������Ă��܂������A10���~�߂����鍂���ȕ��Łu�Z�p�I�ɂ͕s�”\�ł͂Ȃ����낤�v�Ɨ\�z�͂���Ă��܂������u�ǂ̂悤�Ȏd�l�Łv�A�u�ǂ��������z�肳��鉿�i���Ɏ��܂鐻�i�ɂȂ�̂��H�v�͑S���̓�ł����B�܂������̃Z���T�[�����ł͈ʒu���߂Ɏg���ɂ͐��x���\���ł͂���܂��񂵁A�ǂ�ȃQ�[���E�C���^���N�V�����ɂȂ�̂����z�����‚��܂���ł����B�C�V�������̊J���҂����낢��ȋ�J�ƌ������d�˂��悤�ł��B�ŏI�I��WiiRemote�ɂ́A�ԊO��������TV�̏�ɒu���u�Z���T�[�o�[�v���t���������A�ԊO��CMOS�Z���T�[�Ƃ����\���ɂȂ�܂����B�܂������̐݌v�ł͌��\����Ă��Ȃ������X�s�[�J�[�Ȃǂ��������A�ŏI�I�ɁAWiiRemote�͈ȉ��̂悤�ȃX�y�b�N�ɂȂ�܂����B

�T�C�Y �c148mm�A�� 36.2mm�A����30.8mm�i�ˋN���������j
�ʐM�@�\ Bluetooth�ɂ�閳���ڑ��A�ő�ڑ��䐔�F�S��
�v���C�”\���� �e���r����T��
�|�C���^�[ ��ʂ��w�������|�C���e�B���O�@�\
���[�V�����Z���T�[ �X���⓮���̕ω������o�i3���j
�{�^�� �f�W�^��11����(1�C2�CA�CB�C-�C+�CHome�C�\��)
�U���@�\ �o�C�u���[�^�[1��
�X�s�[�J�[ ���m�����X�s�[�J�[1��
�v���C���[�C���W�P�[�^ �FLED 4��
�g�����j�b�g�ڑ��”\ �k���`���N�A�N���V�b�N�R���g���[���[�Ȃ�

�X�y�b�N�ڍ�

�ȉ��͓Ǝ��ɒ��������A���ڍׂȃX�y�b�N�Ɖ���ł�(�����̎d�l�ύX�ɂ��ύX�����”\�������邩������܂���)�B

���[�V�����Z���T�[
�܂��u���[�V�����Z���T�[�v�ł����A3�������Ɋe8�r�b�g�̐��x�̉����x�Z���T�[����������Ă��܂��BMEMS(Micro-Electro-Mechanical Systems)�A�‚܂�}�C�N���}�V���Z�p�ɂ���đO��A���E�A�㉺�̊e���̉����x�����o���邱�Ƃ��ł��܂����A�\����A���ꂾ���ł͈ʒu���́A���Ƃ��΍��E�̐U��p�Ȃǂ͂��̃Z���T�[�ł͌��o�ł��܂���B���̂��ߌ�q����u�|�C���^�[�v���t���������Ă��܂��B
�����x�Z���T�[�̌��o��(Wiili.org���}�ؗp��)
�|�C���^�[
�u�|�C���^�[�v�́A�ԊO���𗘗p�����Ǝ��J����2�����Z���T�[�ɂ���Ď�������Ă��܂��BCMOS�ƌĂ΂���ނ̃Z���T�[�ł����A�r�f�I�J�����̂悤�ȃJ���[�摜���擾������̂ł͂���܂��񂵁A�r�f�I�̂悤��30�`60��/�b���x�̎B�e�X�s�[�h�ł͂ƂĂ��Q�[���ɂ͎g���܂���B���̃Z���T�[�̓s�N�Z���̂悤�ȌŒ�𑜓x�ɂ������f�l�ł͂Ȃ��A�Z���T�[�o�[���甭������ԊO�����A������p�x�ɂ�炸�A���E�ɓ��������̋��x�̏d�S�ʒu�𕡐��_�擾���܂��B�����2����PSD(Position Sensing Device)�ƌĂ΂��^�C�v�̔����̃Z���T�[�����ł����A��ʓI�ɂ͓����ɕ����̍��W���擾(MOT:Multi Object Tracking)���邱�Ƃ͂ł��܂���B�b��200�t���[���ȏ�Ŏ擾�ł��鍂���ȃf�o�C�X�ŁA��p�̐������PixArt�ЂƔC�V�����w�̖͂��ɐ��ݏo����CMOS�Z���T�[�ł�(�X�N�E�F�A�G�j�b�N�X����2003�N�ɔ������ꂽ�u���_�h���S���N�G�X�g�v�ɍ̗p���ꂽ�ԊO���Z���T�[�ɂ����l�̃Z���T�[���g���Ă��܂�����)�B�Ȃ��A�d�l����ɂ�2�ӏ��������o�ł��Ȃ��悤�Ɍ����邱�̃Z���T�[�ł����A�v���O���~���O�̏��������@�ɂ���ẮA�ő��4�ӏ��܂œ������o�ł��邱�Ƃ��킩���Ă��܂��B
�{�^��
�u�{�^���v��On/Off���������o�ł���f�W�^���X�C�b�`��11�‚‚��Ă��܂��B�A�i���O�W���C�X�e�B�b�N�ň�ʉ����Ă����X���b�g���⊴���Ȃǂ̃A�i���O���͂������x�Z���T�[�ȊO�A��ؑ��݂��Ȃ��̂�WiiRemote�̓����Ƃ����܂��B
�U���@�\
�u�U���@�\�v�͌g�ѓd�b�ȂǂŎg����ΐc�����‚������[�^�[��p�����o�C�u���[�^�[��1�Ž�������Ă��܂��BOn/Off��������ł��܂���1�‚����Ȃ��̂ŁA���G�ȕ\�����s���ɂ̓e�N�j�b�N���K�v�ł��B
�X�s�[�J�[
�u�X�s�[�J�[�v�͐�p�̃T�E���h�v���Z�b�T�����ڂ���Ă��܂��B4-bit��ADPCM�iAdaptive Differential Pulse Code Modulation;�K���I�����p���X�����ϒ�)�����ł���Ƃ����Ă��܂��BWii�ł̒ʏ�g�p�͂Ƃ������APC���痘�p����ꍇ�A�s�[...�Ƃ������ȂNj�`�g���o���̂͂���قǓ���͂Ȃ��̂ł����AWAV�t�@�C���Ȃǂ��Đ�����ɂ͎d�l�����J����Ă���킯�ł͂Ȃ��̂ŁA���R�ȉ����o���͍̂ŋ߂܂œ���󋵂ɂ���܂����B
�v���C���[�C���W�P�[�^
�u�v���C���[�C���W�P�[�^�v��4�‚̐FLED�ł��BWii�ŗ��p����ꍇ�̓v���C���[�P�`�S�̃R���g���[���[��\�����邽�߂ɗ��p����܂����APC����g���ꍇ�͔�r�I�ȒP�ɁA���R�ɓ_����Ԃ�ς��邱�Ƃ��ł��܂��B
�g���R�l�N�^
WiiRemote�����Ƀk���`���N��N���V�b�N�R���g���[����ڑ����邽�߂́u�g���R�l�N�^�v������A���Ӌ@���ڑ����邱�Ƃ��ł��܂��BI2C�iInter-Integrated Circuit�j�Ƃ����M���`�����g���Ă���A�d������������ԂŔ����������R(�����}��)�ŁA�����ȃV���A���ʐM���”\�ł��B
Bluetooth�R���g���[��
Wii�{�̂Ƃ̒ʐM���s���Ă���Bluetooth�R���g���[���́uBroadcom 2042�v�ł��邱�Ƃ��񍐂���Ă��܂��BBloadcom�Ђ̃z�[���y�[�W�Ō��J����Ă�����ɂ��ƁABCM2042�́A�K���^���g���z�b�s���O�ƍ����ڑ������Ȃ���Bluetooth 2.0���S�݊��d�l�ŁAPC�p�}�E�X��L�[�{�[�h���p�ɓK�����݌v�ɂȂ��Ă���`�b�v�ł���Ɖ������Ă��܂��B���ۂ̒ʐM�ɂ����ẮABluetooth1.2��HID�v���t�@�C���ŗ��p����Ă���A�{�^��������x�̓��͂��s��ꂽ�Ƃ��̂݁A�M���𑗂�܂��B���ʂȒʐM�𗬂������Ȃ��݌v���Q�[���R���g���[���[�Ȃ�ł́A�ł��ˁB
���̑�
���ɂ�Mii�f�[�^�Ȃǂ��i�[���邽�߂̃t���b�V���������[������܂����A���Ƀn�b�L���O�{�ł͂���܂���̂ŁA�{���ł͐G��܂���B

�ǂ��ł��傤�H�����Ȗ����ʐM���s����Bluetooth�R���g���[�������ł����͓I�Ȃ̂ɁA���ꂾ���̔\�͂����������W���[�����܂ސ��i��5000�~�ȉ��ŁA�������ϋv���̍����ʎY�i�Ƃ��Ĕ̔�����Ă��邱�Ǝ��̂������ł��B

����Ȃ��΂炵���f�o�C�X���J���E�̔����Ă���C�V���Ɍh�ӂ𕥂��A�������邽�߂ɂ�(�����̖{�ʼn�����Ă���PC�ł̗��p�𗬍s�����邽�߂ɂ�)�AWiiRemote�P�̂ł̍w�������Ђ��Ђ����߂������܂��B�������Wii�{�̂��B�]�k�ł����M�҂̃t�����X����̌������ł́AWii���������͖{�̂���ɓ��炸�A�����J���̂��߂�WiiRemote����1�_�[�X�قǍw����������������܂����B

WiiRemote�ʼn����n���H

���݁A���E���̗L�u�ɂ��AWiiRemote��PC�ŗ��p�ł���悤�ɂ�����g�݂�����Ă��܂��B�����āA�����̃c�[����I�[�v���\�[�X��API�𗘗p���āA���E���̊w���𒆐S�ɂ��܂��܂�WiiRemote���g�����v�V�I�ȃv���W�F�N�g���J������Ă��܂��B

�����ł͂܂�WiiRemote���g�����v���O���~���O�ŁA�ǂ�Ȋy�������Ƃ������ł��邩�A�ŐV�̊w���v���W�F�N�g�𒆐S�ɏЉ�Ă��������Ǝv���܂��B

����ȃC�J���{�b�g�uIKABO�v�𑀍삷��

�܂��͖k�C������A����ȃ��{�b�g��WiiRemote�ő��삷��v���W�F�N�g�u������IKABO Project�v���Љ�܂��B

����҂̂ЂƂ�A�͂����Ė�����̖����^�L����ɂ��Ɓw�݌v�}��d�l���̂悤�Ȃ��̂́A�w�����S���S����������̂Ȃ̂ł���܂���x�ƁA�����ς�B���Ƃ��Ƃ͢���{�b�g�t�F�X��C���͂����ģ�s���̉�Ƃ����g�D�����S�ƂȂ��č�����u�ό��p�̋���C�J���{�b�g�v�ŁA�͂����Ė�����w��3�N�������S�ƂȂ��āA�\�t�g�E�F�A�̕������J�����������ł��B���{�b�g�̏ڍׂ�IKABO�����T�C�g(http://ikarobo.com/)�ɋL�ڂ���Ă��܂����A�g��220cm�A�d�ʖ�200kg�A�G�A�V�����_�[�ɂ��A�N�`���G�[�^�[�ŁA��1�{�ɂ‚�3�‚̊֐߁A�����1�‚̊֐߂�3�‚̃G�A�V�����_�[�𓋍ڂ��Ă���A��1�{�ɂ‚�512�ʂ�̓���̎������Ă��܂��B����2�΂���܂��̂ŁA���킹�Ė�25���ʂ�̓���A����ɖڂ⓪�������܂��̂ŁAWiiRemote���g�����ƂŁA�C�J���{�b�g�Ɠ��̑��l�ȃ|�[�Y�̐ݒ肪�ł���悤�ɂȂ��Ă��܂��B

���̂悤�ȕ��G�ȃ��{�b�g�̑���ł����Ă��u�ǂ�Ȑl�ł��ȒP�ɑ���ł���悤�Ɂv�ƁA�ߋ��Ƀ^�b�`�p�l����p��������c�[�����J�������悤�ł��B���̌�AWiiRemote���‚������Ɠ��̑���Ƃ��āA�����WiiRemote�������A����҂��r�𓮂��������ɑΉ����āAIKABO�̑������삳������@�ɒH�蒅���܂����B����ɂ�葀��҂̓����ɍ��킹�����R�ȓ���A���G�ȓ����⃆�j�[�N�ȓ������������邱�Ƃ��ł���悤�ɂȂ��������ł��B

�C�J�^���{�b�g�uIKABO�v
WiiRemote���‚�����IKABO�𑀍삷��

�J���v���b�g�t�H�[����Visual C++ MFC�A�v���P�[�V�����ŁAAPI�́uWiiYourself! - native C++ Wiimote library v0.96b�v���g�p���Ă��܂��BWiiRemote����3�������x+�{�^���̏����擾���A3�������x����3���̌X�����Ƀv���O������ŕϊ����A�C�J���{�b�g�̘r�̓�������߂Ă��܂��B���̏���L���V���A���ʐM(USB)�������̓l�b�g���[�N(DirectPlay)�ŃC�J���{�b�g���@�֓���w����ʐM���A�C�J���{�b�g���ɂ���}�C�R���{�[�g�ɑ��M���Ă��܂��B

���ۂ̑���́A�C�J���{�b�g���ڂ̑O�ɂ���Ȃ�ڂŁA�����Ƃ���ɂ���Ȃ�A����\�t�g�ɑg�ݍ��񂾃��A���^�C������z�M�ɂ���ăC�J���{�b�g�������Ă���̂����čs�������ł��BWiiRemote�Ŏ����̃��{�b�g�𓮂������ƂŁA���[�U�̓������C�J���{�b�g���^���Ă����A�Ƃ����_���y���������ł��B

���ۂɒn���̂��Ղ�ł�����オ���Ă���悤�ŁAYouTube��ő�ϏO�̒��A�N�l�N�l����IKABO�̃A�c����������邱�Ƃ��ł��܂��ihttp://jp.youtube.com/watch?v=4P_alu527SY�j�B

���R�ɕX���𐶂₷�uGlaçon�v(�ޗǐ�[��)

�����āA�ޗǐ�[�Ȋw�Z�p��w�@��w(NAIST)���Ȋw�����Ȃ̊w���`�[���w�T�����l�����x(�猴���E����E������)���A��16�񍑍ۊw���΍RVR�R���e�X�g�iIVRC2008�Ahttp://ivrc.net/�j�Ő��삵���uGlaçon�v(�O���\��)���Љ�܂��B�uGlaçon�v�̓t�����X��Łu�X�E�c�����v���Ӗ����܂����AWiiRemote���g���āw���R�ɓV�䂩�琶����X�����̂΂����Ƃ��ł���x�Ƃ�����i�ł��B

�uGlaçon�v�̌��̗l�q
WiiRemote������������C�g��������Ɛ_��I�ȕX�����L�т�

�`�[����\�̋g�|��コ��ɂ��Ɓu���g���ɂ�莸���䂭�n���̐_�邳�▣�͂��A���f�B�A�A�[�g�I�ȃA�v���[�`�ɂ��\�����邱�Ƃ�ڎw���܂����B�u�[�X�̓V���WiiRemote���g�������C�g�^�f�o�C�X�ŏƂ炷���ƂŁA�V�䂩��c�������L�сA���H�����֓H��Ȃǂ̃C���^���N�V���������܂�܂��B�����l���������ăc�����Ɗւ�荇���ߒ��ɂ����āA���R���ۂ�‹������A�����Ď������������R�Ɗւ�荇�����ʼn����ł���̂����l���邫�������ƂȂ邱�Ƃ��肢�A���̍�i�͐��삵�܂����v�Ƃ̂��Ƃł��B

�J���v���b�g�t�H�[���́AViualStudio 2005(C++)�ABluesoleil 1.6.1�ŁA�I�[�v���\�[�X�Ȃǂ�API�͎g�p�����AWindows Driver Kit(WDK)���‚����Č������̃X�^�b�t�ƂƂ��ɊJ�����������ł��B

�C���^���N�V�����Z�p�Ƃ��ẮA���[�U�[���V����w�����Ƃɂ��A�w�����V��̈ʒu���v�Z����_�łȂ��Ȃ�������Ƃ��������Ă��܂��B�d�g�݂Ƃ��ẮA���Ɛ����ȕ���(��)�̃Z���T�ʂɐԊO��LED��4�_�A�����`�̊p�ƂȂ�悤�ɔz�u���A����4�_�̍��W��WiiRemote�Ŏ擾�A�����̈ʒu�֌W(�����`�̕ό`�̓x����)����Z���T�ʂɑ΂���WiiRemote�̓��ˊp���摜�������C�u�����uOpenCV�v���g���ċ��߂Ă��邻���ł��B���̊p�x��4�_�̍��W����V��̂ǂ̈ʒu��Wii�����R�����w���Ă��邩�𐄒肵�A�V��̂‚��𐧌䂷�郂�[�^����]��������A���̌��̔g��𔭐��������肵�Ă��܂��B

�c�O�Ȃ���R���e�X�g�ł͓����\�I�Ŕs�ނ��Ă��܂��܂������A��i�J���̗l�q��YouTube�Ō��邱�Ƃ��ł��܂�(http://jp.youtube.com/watch?v=waVNvmwKWaM)�B

�j�I�C�̐�����uLa flèche de l'odeur�v(���򍂐�)

�������IVRC2008�Ŕ��\���ꂽ��i�A�j�I�C�̐�����ŗV�ԃQ�[���uLa flèche de l'odeur�i���E�t���b�V���E�f�E���h�[�j�v�B�^�C�g������{��󂷂�Ɓw�j�I�C�̖�x�B�t�����X��Łw�j�I�C�E�_�[�c�x�Ƃ��󂹂܂��B����H�ƍ������w�Z�E���⌤�����ɂ��w���H�������H���Ȃ�����L��ω������A���L��p���ă����X�^�[��|���x�Q�[����i�ŁA����w���������Z���T�[��WiiRemote��g�ݍ��킹�ĊJ���������̂ł��B

�`�[�����[�_�[�̋���H�ƍ������w�Z�A���ۃR�~���j�P�[�V�������H�w�Ȋ�{��炳��ɃC���^�r���[�����Ƃ���u�l�ɕs�����⌙������������L�ɒ��ڂ��A���L����͂Ƃ����f�o�C�X�g������^�f�o�C�X�h�y�т�������p�����R���e���c�wLa flèche de l'odeur�x���Ă��܂����B������^�f�o�C�X�̓v���C���[���������ޑ����v�����邱�Ƃɂ���đ��̑����A�����ďL���Z���T��p���Č��L�̗v�f���v�����AWiiRemote��������^�f�o�C�X�̌��������o���Ă��܂��B�Q�[���̒��ł́A�X�N���[���Ɍ���郂���X�^�[���A������^�f�o�C�X�𐁂��Č��ނ��Ă����܂��B�����X�^�[�ɂ͎�_�ƂȂ�j�I�C�������āA�v���C���[�̓v���C���Ɏ��ۂɃ|�e�g�`�b�v��`�[�Y�Ȃǂ̐H�ו������H���Ȃ�����L��ω������ėV�т܂��B��l�����Ƀv���C���āA�����X�^�[�̎�_�ƂȂ��ނ̌��L�̐���������ɑI�ׂ΁A�����X�^�[�����Ɍ��ނ��邱�Ƃ��ł��܂��v�Ƃ������R�����g�����������܂����B

�Q�[���Ƃ��Ă̊����x�͔��ɍ����A����ȃO���t�B�b�N�X�̍Ō�Ɍ���郉�X�{�X�́u�i�������ł䂷���Łj"������"�œ|���v�ƃC���^���N�V�����f�U�C�����G��ł��B�O���t�B�b�N�X��DirectX�ŊJ�����A�ϋq�����A���^�C���œ��捇��������A��@�𐧌䂵����ƁAWiiRemote�̊��p�����łȂ����o�ʂ̋Z�p�I�����x�Ȃ��Ƃ��������Ă��܂��B

�uLa flèche de l'odeur�v�̃V�X�e���\���}�E���⌤������
�j�I�C�̏o��H�ו���H�ׂāA������𐁂��ăv���C�I
DirectX�ŊJ�����ꂽ�O���t�B�b�N�X�̍�荞�݂����΂炵��

�J���‹��́AWindows Vista�ɁAMicrosoft .Net Framework 2.0�AVisual C#�AMicrosoft XNA�AMicrosoft DirectX August 2007�Ƃ����g�ݍ��킹�ŁAWiiRemote�Ƃ̐ڑ�API�́uWiimoteLib�v���g�p���Ă��܂��B

�R���e�X�g�ł͌����ŏI�I�l�Ɏc��A����3�ʂɂ�����u�e�����s���܁v����܂��܂����B�Ȃ�����WiiRemote�ƏL���Z���T�[���g����������^�̃f�o�C�X�͓����\�����ŁA���f�B�A�A�[�g��i�̓o����ł���NHK-BS�u�f�W�^���X�^�W�A���v�ŏЉ���ȂǍ����]������Ă��܂��B�w��VR�R���e�X�g�̃X�|���T�[�ł���򕌌��e�����s�̖��Y�u�e�����L���`�v�̃j�I�C�ɒ��ڂ��ċr���𗁂т���ȂǁA�V���ȓW�J�����҂ł������ł��B��i�̊J����̌��̗l�q������Ō��J����Ă��܂�(http://jp.youtube.com/user/KosakaChannel)�B�Ȃ��A���̍�i�̐�����ďC��������H�ƍ������w�Z�̏��␒�V�搶�ɂ́A�v���O���~���O����҂ŋ��͂𒸂��Ă���܂��B

WiiFit���g�������w��i�w�l�Ԉ֎q�x

��������w��VR�R���e�X�gIVRC2008���A������w��w�@�̊w���ɂ��WiiFit�u�o�����XWii�{�[�h�v���g�����g���w��i�h�w�l�Ԉ֎q�x���Љ�܂��B���̍�i�͏�񗝍H�w�n�����Ȃ̉Ǝ��؂����ɂ��A�]�ː에���̏����w�l�Ԉ֎q�x�ɒ��z�𓾂��V�X�e���ł��B�w�l�Ԉ֎q�x�Ƃ����Z�ҏ����̃v���b�g�w����֎q�E�l�������̍쐻�����֎q�̒��ɉB��A��ɍ����Ă����l�X�Ȑl�̊��G��S�g�Ŋy���񂾁x�Ƃ�������A�‚܂�A�֎q�̒��ɐl�Ԃ��B��A��ɍ����Ă����l�̊��G���y���ނƂ����̌���񋟂��鋰�낵�����Ô��Ȕ��z�ɂ���i�ł��B�V�X�e���͐����֎q�ƈ����֎q��2�‚̈֎q�ō\������Ă���A�����֎q�ɍ������̌��҂́A�܂�ň����֎q�ɍ����Ă������1�l�̑̌��҂������̑������̏�ɍ����Ă��邩�̂悤�Ȋ��o�𓾂邱�Ƃ��ł���Ƃ����݌v�ł��B

���̉��������_�̍�i�̂ǂ��Ƀo�����XWii�{�[�h���g���Ă��邩�Ƃ����ƁA�����֎q�ɂ�������ʂւ̉׏d�̎擾�̂��߂ɁA2��̃o�����XWii�{�[�h���p�����Ă��܂��B����ɂ���ē�����׏d������ɂ��āA�����֎q�Ɏ������ꂽ���[�^�ƃx���g��p�����@�\�ɁA�d�����񎦂���܂��B�܂������ɁA��������ɂ����ꂽ�p�b�h���̃q�[�^�̔M�ő����������߂邱�ƂŁA�܂�Ŗ{���ɐl������Ă���悤�ȉ������Əd�����Č�����܂��B

�w�l�Ԉ֎q�x�E���̈֎q��2��̃o�����XWii�{�[�h����������Ă���

��i�̍ő�̓����́A�����w�l�Ԉ֎q�x�̑̌����Č����悤�Ƃ������Ƃɂ���ƌ�����ł��傤�B���̂悤�ȁu�l�ɏ�ɍ�����v�Ƃ����̌�����v�f�𒊏o���A����Ƀo�����XWii�{�[�h�Ƃ����A���肵�č����Ă���l�Ԃ̏�Ԃ��擾�ł���f�o�C�X���g���A2��̈֎q�ɂ���ăV�X�e�����\�z���邱�Ƃɂ���āA���̍�i�͑��ł͖��킦�Ȃ��u��ԓI�E���ԓI�ɗ��ꂽ�l�ɍ�����v�Ƃ������قȑ̌���񋟂��Ă��܂��B

�o�����XWii�{�[�h��p�������ɂ��A�׏d�̎擾���������ˆ���ɍs�����Ƃ��”\�ɂȂ��Ă���A�����֎q�ɍ������̌��҂́A�����֎q�ɍ������̌��҂̓��������A���^�C���Ɋ����邱�Ƃ��ł���B�o�����XWii�{�[�h���̂�4�{�̋r�ɉ����׏d��Ɨ��Ɏ擾�”\�Ȃ��߁A�̌��҂̗����̐K���A�G���Ƃ����v4�‚̉׏d���擾����ɂ͍Œ��1��̃{�[�h������΂悢�̂ł����A�l�X�ȑ̌��҂̑̌^�������ɑ΂��Ĉ���ɒl���擾���邽�߁A���̃V�X�e���ł�2��̃{�[�h��p���āA1��ɂ‚��Б��̐K���Ƒ�����2�‚̉׏d�l�̎擾���s���Ă��܂��B

���̂悤�ɂ��ē���ꂽ�v4�‚̉׏d�l����ɁA�����֎q�ɔz�u���ꂽ4�‚̃��[�^�ւ̏o�͓d�������肳��A���[�^��p���ăx���g���������A��������ɒu���ꂽ�p�b�h�𑾂����ɉ����‚���Ƃ����V���v���ȍ\���ɂ���āA�̌��҂̑������ɑ΂��ďd���̒񎦂��s���Ă��܂��B

�o�����XWii�{�[�h��p�����׏d�擾�ɂ́A����������w�̐�y�A���V���񂪌��J���Ă���uWiiBoard to PC ver.2.0�v���g�p����Ă��܂��B���̃T���v���v���O�����ɂ���āABluetooth��PC�Ɛڑ����ꂽ�o�����X�{�[�h����A�׏d�l���擾���邱�Ƃ��ł��܂��ihttp://minamizawa.jp/wii/�j�B

���č�i�w�l�Ԉ֎q�x�̓R���e�X�g�ł͍ŏI�I�l�܂ŏ����c�邱�Ƃ��ł��܂����B��i�̗l�q��IVRC�̌����T�C�g�Ō��邱�Ƃ��ł��܂�(http://ivrc.net/2008/�j�B

�ԊO�����‚��������[�V�����L���v�`���uSoundQuest�v(�t�����X�E�����@��)

�uSound Quest�v�V��ɂ��ԊO�����o�p��Wii�����R�����ݒu����Ă���

���{�̊w���̊��������ł͂���܂���B���E���̊w����WiiRemote���g���ĐV�����C���^���N�e�B�u�Z�p�𐶂ݏo���Ă��܂��B�t�����X�����̃����@��(Laval)�ɂ���ENSAM(�����H�|��)Presence��Innovation�������̊w������A�A���N�V�B�E�[���[�O(Alexis Zerroug)�́A�wSoundQuest�x�Ƃ���WiiRemote�̐ԊO���Z���T�[�������ȃ��[�V�����L���v�`���Ƃ��Ďg�����ƂŁw�f����S���g��Ȃ��Q�[���x���J�����܂����B�w���o���g��Ȃ��x�Ƃ����R���Z�v�g�̃e�[�}�p�[�N�̃A�g���N�V�����J���̂��߂̃v���g�^�C�v�ŁA�t�����X�Ŗ��N�J�Â���Ă��郈�[���b�p�ő�̃��@�[�`�������A���e�B�̃C�x���g�uLaval Virtual ReVolution 2008�v�Ŕ��\����܂����BWii�����R����V��ɒ݂�A���[�U�[�͕ʂ�WiiRemote���������ꂽ�����w�b�h�t�H���𑕒����܂��B�w�b�h�t�H���̏�ɂ͐ԊO���}�[�J�[���t���Ă���A�V���WiiRemote�Ń��[�U�[�̓������o�ł��郂�[�V�����L���v�`���Ƃ��ė��p���Ă��܂��B3����������Ԃ̒��ɂ��郔�@�[�`�����L�����N�^�[��T���o������A�茳�̃k���`���N�R���g���[���[���g���ăC���^���N�V��������Ƃ������́B

���[�V�����L���v�`���V�X�e���͐l�Ԃ̓����������ɂƂ炦�邱�Ƃ��ł��܂����A���z�ȑ��u�ŁA�����⑕���Ɏ��Ԃ�������̂ŁA��ʓI�ɂ͉f�������ЂȂǃv���p�r�ł����g���Ă��܂���B���̃v���W�F�N�g���G��Ȃ̂́A���S���~���郂�[�V�����L���v�`����������WiiRemote������ō���Ă���_�ł��B�V�䂩��݂���WiiRemote�ɂ���āA���ɂ‚����O�p�ɔz�u�����ԊO��LED�̃}�[�J�[�ɂ���āA���[�U�[�̓��̌��������o���Ă��܂��B�‚܂�A���Ƀw�b�h�z���𑕒����邾���ňʒu����������o�ł���̂ŁA���낢��ȉ��p���ł������ł��B

�����w�b�h�z����WiiRemote����������ԊO���}�[�J�[
SoundQuest�̃V�X�e���T�v�}

�J����Virtools�Ƃ����Y�Ɨp���@�[�`�������A���e�B�v���g�^�C�v�J���c�[���ōs���Ă��܂��BVirtools�͂��傤��Flash�̂悤�ȃR���e���c�I�[�T�����O�‹��Ȃ̂ł����A�t����SDK��C++���‚����ēƎ��̃v���O�C�����J�����A�@�\���g���ł��܂��BWiiRemote�ƒʐM����v���O�C�����J�����āA�ԊO��LED3�_����������Z�o����v���O�C�����J�����Ă��܂��B

���Ȃ݂ɂ��̃V�X�e�����J�������A���N�V�B�E�[���[�O���͕M�҂̃t�����X����̋����q�ł�����܂����A���݁A����ɗ��w���ł��B�J���̗l�q��YouTube�Ō��J����Ă��܂�(http://jp.youtube.com/watch?v=TMK7ULUG7S4)�B

���āA�����܂Ő��E���Ŏ��g�܂�Ă���WiiRemote���‚������w���v���W�F�N�g���Љ�Ă��܂����B�ǂ̃v���W�F�N�g���A���ɃG�L�T�C�e�B���O�ł��B�܂��Љ����Ȃ������ʔ��������������񂠂�܂��B���S�҂̓ǎ҂ɂƂ��ẮA���p��ȂǓ���_����������������܂��񂪁A��ŏЉ�����X�ɂ͌�ɑ����p�[�g�ʼn����T���v���쐬�ɋ��͂��Ă��������Ă���܂��̂ŁA�{����ǂݐi�߂Ă������ƂŁA�����ꎩ�����g�̃A�C�f�B�A���������邱�Ƃ��ł��邩������܂���B

�������́A�F����̔Ԃł��I

PC��ŗ��p����WiiRemote���n��

WiiRemote��PC�ŗ��p����

�����ł́AWiiRemote��PC�ŗ��p���邽�߂̎d�g�݂�������܂��B�n�[�h�E�F�A��\�t�g�E�F�A�A���̒��Ԃɂ���~�h���E�F�A�Ȃǂ̒m����������́A�ǂݔ�΂��Ă��������Ă����܂��܂���B

�n�[�h�E�F�A�\��

�܂��͎�Ɏg�p����n�[�h�E�F�A��������܂��B

�n�[�h�E�F�A�\��
�yWiiRemote�z
�{���̎���AWiiRemote�ł��B���̊v�V�I�ȃR���g���[�����g���ă{�^��������x�Z���T�[�A�ԊO�����W�Ƃ������f�[�^���APC��Bluetooth�ɂ�鍂���ʐM�o�R�ő��邱�Ƃ��ł��܂��B������WiiRemote�𓯎��g�p�ł��܂��B�܂��}�ɂ͂���܂��񂪁A�g���[�q���g���ăk���`���N�Ȃǂ�l�X�Ȋg���R���g���[���[�����p�ł��܂��B
�y�Z���T�[�o�[�z
"�Z���T�["�Ɩ��O���t���Ă��܂����A���̓Z���T�[�ł͂Ȃ��A2�_�̐ԊO��LED����������Ă��܂�(������LED��1�‚̓_���\��)�B�Z���T�[��WiiRemote��[�̍��������ɂ���A����2�“_�̍��W���擾�ł��܂��B�Ȃ��ԊO���͐l�Ԃ̖ڂɂ͌����܂���B
�y�p�\�R���z
�{���̂����ЂƂ�̎���A�p�\�R���ł�(�ȉ�PC�ƕW�L���܂�)�B�v���O�����������Ď��s������A�c�[�����g�����ƂŁAWiiRemote����̃f�[�^����M������A�o�C�u���[�^�[�𓮂������肷�邱�Ƃ��ł��܂��B�{����WindowsPC�𒆐S�ɉ�����܂����ALinux��MacOS�ł�WiiRemote�����p�ł��邱�Ƃ��킩���Ă��܂��B
�yBluetooth�z�X�g�A�_�v�^�z
���ۓI�Ȗ����K�i�̕W���ł���Bluetooth��PC�ŗ��p���邽�߂̃A�_�v�^�ŁAPC��USB�[�q�ȂǂɎ��t������A�m�[�gPC�{�̂ɓ�������Ă����肵�܂��BBluetooth�K�i�ɏ��������}�C�N���v���Z�b�T�ƃA���e�i�ō\������Ă��܂��B

�������g����PC���W����Bluetooth�𑕔����Ă���A���Œ�ɏЉ��WiiRemote�Ƃ̐ڑ������ɐ�������̂ł���΁A�V���ɉ������w������K�v�͂���܂���BPC��Bluetooth�z�X�g�A�_�v�^����������Ă��Ȃ��ꍇ�ɂ́APC�p�[�c�X�A�d��X�A�ʔ̓��ōw�����Ă݂Ă��������B��������2,000�~�ギ�炢����USB�^�C�v�̃A�_�v�^������”\�ł��BWiiRemote�ƒʐM���s�������̖ړI�ł���΁A�ŐV�E�����i�ł���K�v�͂���܂���B�������A�e��Bluetooth�X�^�b�N�ɂ���Đڑ��ɕȂ�����̂Œ��ӂ��K�v�ł�(���߂��Q�l�ɂ��Ă�������)�B

����WiiRemote�𕡐��g�p����̂ł���΁A�Q�[���V���b�v�ȂǂŒlj��w���”\�ł��B�K�v�ł���΃Z���T�[�o�[���C�V���z�[���y�[�W�ōw���ł��܂����A�T�[�h�p�[�e�B����l�X�ȃZ���T�[�o�[�݊��i����������Ă��܂��B

�\�t�g�E�F�A�\��

���āA���̓\�t�g�E�F�A�\���ł��B�uWiiRemote��PC�ŗ��p����v�Ƃ����Ă��AC++��C#�Ȃǂ��g���ăf�B�[�v�ɊJ��������A���ɃR���p�C������Ă���c�[�����g������AFlash�Ȃǂ̊O���̃A�v���P�[�V�����ƘA����������ƁA���낢��ȕ��@������܂��B

�\�t�g�E�F�A�K�w

���̑w����uWindowsPC�v�A�uBluetooth�X�^�b�N�v�A�uAPI�v�ƁuWin32�v�A�����āu�A�v���P�[�V�����^�c�[���v�ƂȂ��Ă��܂��B���ɍs���قǂ��n�[�h�E�F�A�ɋ߂��A��ɍs���قǂ��A�v���P�[�V�����ɋ߂��\�t�g�E�F�A�ɂȂ�܂��B�\�t�g�E�F�A�p��ŁAOS����w�A�A�v���P�[�V������艺�w�̃\�t�g�E�F�A���u�~�h���E�F�A�v�ƌĂԂ��Ƃ�����܂��BWiiRemote��PC�Ŏg���v���O�����ł́A���̃~�h���E�F�A�����ɑ傫�Ȗ������󂯎����܂��B

�yWindowsPC�z
�����ł�PC�n�[�h�E�F�A����OS�̊�{�I�ȕ����܂ł��w���܂��A�u�v���b�g�t�H�[���v�Ƃ��Ă΂�܂��B���̃v���b�g�t�H�[���A�Ⴆ��Linux�Ȃǂ̏ꍇ�́AOS���p�ӂ��Ă���h���C�o���o�R���āA�f�o�C�X�t�@�C���ւ̓ǂݏ����֐������ŃA�N�Z�X�ł���A�Ƃ������‹�������悤�ł��B
�yBluetooth�X�^�b�N�z
����̓n�[�h�E�F�A�ł���uBluetooth�z�X�g�A�_�v�^�v�ƒʐM����\�t�g�E�F�A�ł��B�ڑ�����Bluetooth�@�킻�ꂼ��̃N���X(���f���A�q���[�}���C���^�t�F�[�X�A�W���C�X�e�B�b�N�A�w�b�h�z���Ȃ�)�ɑ΂���T�[�r�X��񋟂��܂��B�P�Ɂu�h���C�o�v�ƌĂԂ��Ƃ��ł��܂����ABluetooth�̏ꍇ�͊e��Bluetooth�@���"�ςݏd�Ȃ�(�X�^�b�N)"�ڑ��ƃT�[�r�X���Ǘ�������������‚̂ŁA�ʏ�u�X�^�b�N�v�ƌĂт܂��B
�yHID�N���X�z
Bluetooth�X�^�b�N�́A�ڑ�����n�[�h�E�F�A�ɂ��킹�ėl�X�ȃN���X��񋟂��܂��BWiiRemote�Ƃ̐ڑ��̏ꍇ�AHID(�q���[�}���C���^�t�F�[�X�f�o�C�X)�Ƃ����N���X�𗘗p���܂��B�N���X�̓v���t�@�C���A�‚܂�e�X�̃n�[�h�E�F�A�̎�ނɊ֌W���Ă��܂��B����HID�N���X�́uHID�v���t�@�C���v�‚܂�A�}�E�X��L�[�{�[�h�Ɠ����q���[�}���C���^�[�t�F�C�X�̃v���t�@�C���Ƃ��āA�n�[�h�E�F�A�ƒʐM���܂��B�Ȃ�USB�ڑ���Bluetooth�͖����ƗL���ňقȂ�܂����u�L�������ɂ�����炸�AHID�N���X�ɑ΂��ēǂݏ�������v�Ɗo���Ă����Ɨ]�v�Ȃ��Ƃ��l�����ɂ��݂܂�(�f�B�[�v�Ƀv���O���~���O�����������́A��ɏЉ��DDK��HID�N���X�̃T���v����h�L�������g��ǂ�ł݂�Ɨǂ��ł��傤)�B
�yAPI�^Win32�z
HID�N���X�o�R���āAWiiRemote�Ƃ̒ʐM�����镔���ł��B�uAPI(Application Programming Interface)�v�ƕ\�����Ă��܂����A�A�v���P�[�V�����J���̂��߂֗̕��ȃv���O���~���O�C���^�t�F�[�X�A�N���X�\�z�̂��߂̃R�[�h�ł��B���E�̃n�b�J�[�������uWiimote�h���C�o�v�A�uAPI�v�A�u�~�h���E�F�A�v�ȂǗl�X�Ȍď̂ŌĂсA�������̃I�[�v���\�[�X�v���W�F�N�g���J������Ă��镔���ł�(�{���ł́uAPI�v�œ���)�B�����x�Z���T�[�ւ̃A�N�Z�X�ȂNJ�{�I�ȋ@�\�ɓI���i�������̂�A�T�E���h�Đ��܂ŃT�|�[�g����悤�ȍ��@�\�Ȃ��̂ȂǗl�X���݂��܂��B
�y�A�v���P�[�V�����^�c�[���z
���́u�A�v���P�[�V�����^�c�[���w�v���{������Ɏ�����F���񂪍ł������̂��镔���Ȃ̂ł͂Ȃ��ł��傤���HWiiRemote���‚������Q�[���ȂǁA�l�Ԃ����ۂɂ����v���O�����̕����ł��B���ɂ��A�c�[���Ƃ��Ă͌�ɏЉ��uWiiFlash�v��uGlovePIE�v�ȂǁA���̃v���O�����ƘA�g�E�ʐM������c�[�������݂��܂��B

WindowsPC�v���b�g�t�H�[���ɂ����āA�~�h���E�F�A�����́A�˂��l�߂��Win32�̊֐��A���DDK(Driver Development Kit)��WDK(Windows Driver Kit�ADDK�Ƀe�X�g�c�[�����������ꂽ)�𗘗p���ăR�[�f�B���O����Ă��܂��B

�{���ł́A��L�̊e��API�𗘗p�����l�X�ȃA�v���P�[�V�����̏��������Љ�܂��B�傫��������ƁAC#.NET��C++���g�����l�X�ȃA�v���P�[�V�����AWiiFlash�Ƃ���Bluetooth-�l�b�g���[�N�Ԃ̃v���N�V���s���\�t�g�E�F�A���g����Flash��ł̗��p�A������WiiFlash�̒ʐM��Processing�ŗ��p������4��ނł��B

������񑼂ɂ�Java��Visual Basic�APython���g���ăA�v���P�[�V�����^�c�[�����J�����邱�Ƃ��”\�ł����A�{���ł͎�Ƃ��Ĉ����܂���B������WiiRemote���g����ł̊�{�͑��̌���E�‹��ł��ς��܂���B�Q�[����A�[�g��i�ȂǁA�A�C�f�B�A�����������ŁuWindows����Ȃ���_���v�A�uC#/C++�łȂ���΃_���v�Ƃ������Ƃ͂Ȃ��̂ł��I�F���񂪓��ӂƂ��Ă���OpenGL��SDL�ADirectX�AWin32��MFC�A�R�}���h���C���v���O������C++/CLI�AVB�AC#�AJava�AProcessing�A�e��X�N���v�g����A������Flash��MaxMSP�Ƃ������l�X�ȃc�[����R���e���c�N���G�C�V�����‹��ŗ��p���邱�Ƃ��ł��邱�Ƃ��񍐂���Ă��܂��B

�ȏ�̂悤�ɁuWiiRemote��PC�ŗ��p����v�ƂЂƂ��ƂŌ����Ă��A���L���A�S�Ă�ԗ�����ɂ̓n�[�h�E�F�A�̒m�����K�v�ɂȂ�܂��B

���ɃO���t�B�b�N�X���S�Ƃ��Ă����Q�[���v���O���}�[�ɂƂ��ẮAAPI��艺�w�̂��Ƃ��l���Ȃ���΂Ȃ�Ȃ��󋵂͏��X�ꂵ�������m��܂���(���傤�Ǐ�̐}��DirectX��艺��GPU(�O���t�B�b�N�v���Z�b�T)�𒼐ڃR�[������悤�ȃC���[�W������ł��傤��)�B�������AWiiRemote�o�ꓖ���ɔ�ׂāA�����肵�č��@�\��API���������o�ꂵ�Ă��܂����A�Ȃɂ��C�V�����R���V���[�}�[�v���b�g�t�H�[���Ƃ��ĊJ���������Ă���WiiRemote�́A���Ɉ��肵���n�[�h�E�F�A�ł��B

���������Ӗ��ł�WiiRemote�̓f�o�C�X�E�n�[�h�E�F�A���̃v���O���~���O���w�Ԃɂ͂����Â��̊‹��Ƃ�������ł��傤�B���l�̃O���t�B�b�N�X�v���O���}�[����ɂƂ��Ă��A�w�Ԃ��ƁA���p�ł��邱�Ƃ͑�R����͂��ł��B

WiiRemote��PC�Ŏg���͈̂�@�H

�uWiiRemote��PC�ŗ��p����͈̂�@�ł́H�v�Ƃ����l�����܂��B�����Ȃ�u��@�v�Ȃ�Č��߂‚�����ƃh�L���Ƃ��Ă��܂��̂ł����A�[�I�ɕM�҂̌l�I�������q�ׂ�ƁuNo�v�ł��B�����I�ɂ͈�@�ƂȂ�”\�������邩������܂��񂪁A���{���܂߂����ɂ���Ă͈�@����₤�͓̂���ƍl���܂��B�܂�WiiRemote�̎g�p�ɂ�����A�g�p�҂͉��̌_������Ă��܂���B�C���X�g�[�����Ȃǂ�EULA�i�G���h���[�U�[���C�Z���X�������j��ǂ݁A���ӂ��Ă���킯�ł�����܂���B

��{�I�ɂ́u���[�U�[�̃��X�N�ɂ����āA�T�|�[�g�O�̍s�ׁv�ł���Ƃ����܂��B������s�����ƂŔ�������s���̏�̏C����⑹�Q���������[�U�[���������Ȃ���΁A���R�ł�(�{�������l�A���̕ۏ؂�����܂���I)�B�������ɁA�������ɂ���ȏ�̌��������݂���̂ł���΁A�p�b�P�[�W���J���邱�ƂŐ�������u�V�������N���b�v�_��v�Ȃǂōw���O�ɖ��������ׂ��ł��傤�B

�������Ɩ��I�ɁuWii�v���b�g�t�H�[���ɂ����ăQ�[�����J�����Ă���J���ҁv�͕ʂł��B���̂悤�ȊJ���҂́A���ꂼ��̏��������ƂƔC�V����Q�[���\�t�g�����ۂɔ̔�����p�u���b�V���Ԃɂ����āA���`���_�񂪌��΂�Ă��܂��B�{�����e�B�A�⎩���̋Z�p�I�����Ŋ������Ă��鐢�E���̃n�b�J�[�Ƃ͖{���I�ɗ��ꂪ�قȂ�܂��B

�{���̓ǎ҂̑����ɊY������ł��낤�A�z�r�[�v���O���}�ɂ����āA�C���‚���ׂ����́u�����I�ȉ��Q�҂ɂȂ�Ȃ����Ɓv�ł͂Ȃ��ł��傤���B�uWiiRemote���Ԃ̉^�]�Ɏg���Ă݂��v�Ȃ�ăE�P�_���Ŏ�������͎̂��ȐӔC�ł����A�������̎Ԃ����̂��N�����āA�l�̖���D�����Ƃ�����c�c�H����Ȃ��ƂɂȂ�Ȃ��悤�ɁA�C���‚��Ă��������ˁI

Bluetooth���i��I��

WiiRemote���g����PC��̃v���W�F�N�g�̊J��������������ŁA�ł��ǂ��X�^�[�g�𓾂���@�́w���т̂���Bluetooth���i��I�Ԃ��Ɓx�ł��B�R���V���[�}�[�Q�[���@���Ӌ@��Ƃ͂����A���������͉��̕ۏ؂��Ȃ����E�ł��B��l�̒m�b�����L���A�s�v�ȘJ�͂�����邽�߂ɂ��A�܂��͈��肵�ē��삷��‹����������܂��傤�B

�����ł͑O�߂ŏЉ�����e������̓I�ɁAWiiRemote��WindowsPC�ŗ��p���邽�߂�Bluetooth�ڑ��ɂ‚��ĉ�����܂��BBluetooth�ڑ��Ɋւ����́APC���WiiRemote�ł��낢��ȃA�v���P�[�V�������J�������ŁA��ɓ���Y�܂���u���b�N�{�b�N�X�ƂȂ邱�Ƃ������̂Łw�����̊‹��ł͖��Ȃ��g���Ă����I�x�Ƃ����l�����̃X�e�b�v�ŁA�m���Ƃ��Ēm���Ă������Ƃ������߂��܂��B

IVT BlueSoleil

���E���̃n�b�J�[�ɂ�郌�|�[�g��ǂ�ł���ƁA�uIVT BlueSoleil(�u���[�\���C��)�vBluetooth�X�^�b�N���h���C�o���ł��悭�g���Ă���悤�ł��BIVT�Ђ̃z�[���y�[�W�ɂ��ƁA1999�N����Bluetooth�\�t�g�E�F�A���i�̊J�������[�h�������Ă���ABlueSoleil��2008�N4���̏��ł�2500�����C�Z���X���̔�����Ă��邻���ł��B���ہABlueSoleil��Bluetooth�z�X�g�A�_�v�^�𐻕i�ɂ��Ă�����Ӌ@�탁�[�J�[��OEM�Ƃ��č̗p����Ă��āA�����̐��i�ɂ����āA�w������USB Bluetooth�A�_�v�^�Ƀh���C�o�Ƃ��ē�������Ă��܂�(�ꕔ�@�\����ł̏ꍇ������)�B�������BlueSoleil�̃z�[���y�[�W�ɂ����ăI�����C���w�����邱�Ƃ��ł��܂��B

BlueSoleil�̃z�[���y�[�W(http://www.bluesoleil.com/)

2009�N�Ɍ��J����Ă��郁�W���[�o�[�W�����́uBlueSoleil 6�v�V���[�Y�ŁA���i��19.95���[���ł��BWiiRemote�Ƃ̐ڑ��ȊO�ɂ��A�g�ѓd�b�Ƃ̐ڑ��⃏�C�����X�w�b�h�Z�b�g�Ȃǂɂ����p�ł��܂��̂ŁA�莝����Bluetooth���i���s���ŁA���‰^�ǂ�BlueSoleil���T�|�[�g���Ă���΁A�����Ă����͂Ȃ��ł��傤(����WindowsXP����Vista�ɏ�芷�����ꍇ�Ȃ�)�BBlueSoleil�̃z�[���y�[�W����uDownload�v��I�ԂƐ��i�łƓ����\�t�g�E�F�A���_�E�����[�h�ł��܂��̂ŁA���삪�m�F�ł����烉�C�Z���X���w������Ɨǂ��ł��傤�B�ŋ߂ł�Linux�ł�CE�ł���������Ă���悤�ł��B

�����X�^�b�N

����Bluetooth�X�^�b�N

DELL��Lenovo�Ȃǂ̃m�[�gPC�ɑ�������Ă������Bluetooth�X�^�b�N�Ƃ��āA�悭�g���Ă�����̂́AOEM��������Ă���uTOSHIBA���X�^�b�N�v�ł��BBluesoleil�Ƃ͎኱�قȂ������������邽�ߒ��ӂ��K�v�ł����A������V���v���ň����₷���AWiiRemote�Ƃ̐ڑ��͉”\�Ȃ��̂������悤�ł��B�M�҂������������Ő��X�^�b�N�̖��́u4�ˆȏ��WiiRemote�Ɠ����ڑ��ł��Ȃ��v�Ƃ����_�ł�(�\�t�g�I�Ȗ��Ȃ̂ŏ����I�ɂ͉������邩������܂����)�B

Microsoft���X�^�b�N

�R���g���[���p�l���́uBluetooth�f�o�C�X�v�A�C�R��

Windows XP Service Pack 2�ȍ~��Windwos Vista�ɂ́A�R���g���[���p�l���ɁuBluetooth�f�o�C�X�v�Ƃ����A�C�R��������܂��B�������Microsoft����Bluetooth�X�^�b�N�ŁA�Ή����Ă���Bluetooth���i�ƑΉ��h���C�o���C���X�g�[������Ă���Ɠ��삵�܂�(���݂��Ȃ��ꍇ�̓R�����uBluetooth�R���g���[���p�l�����Ȃ��Ƃ��́v���Q��)�B�ߋ��ɂ���Microsoft���X�^�b�N��WiiRemote�Ƃ͑����������ƌ����Ă��܂����BWindows Vista�‹��ɂ����Ă̓y�A�����O�Ɏ��s����A�ڑ��ł��Ă��l�̎擾�Ɏ��s����A�Ƃ����������̕s����񍐂���Ă��܂������A�ŋ߂ɂȂ��Đ��i�t���̃h���C�o��WindowsUpdate�Ȃǂ��o�R���đ����̖�肪��������Ă��Ă���悤�ł��B���Ƀy�A�����O�ɃR�c������w�ڑ������S�ɏI������܂Łx1�{�^����2�{�^�����w�������ςȂ��ɂ��邱�Ɓx�ł��܂��ڑ��ł��܂��B���̌��ۂ́AMicrosoft��Bluetooth�X�^�b�N���A�T�[�r�X��񋓂�PIN(���p�X���[�h)�����߂Ă���ԂɁAWiiRemote�̓������[�h���I�����Ă��܂��Ƃ������Ƃ������̂悤�ł��B���̊Ԃ̈������Ԑ؂ꌻ�ۂɑ΂��āAWiiRemote�́u1,2�{�^��������������v���Ƃœ������[�h���p�����A���ɐڑ����邱�Ƃ��ł��܂��B

�R�����FBluetooth�R���g���[���p�l�����Ȃ��Ƃ���

WindowsXP Service Pack2�ȍ~��������Windows Vista�����g���̕��ŁA�R���g���[���p�l���ɁuBluetooth�v�̃A�C�R�����Ȃ��ꍇ�ɂ‚��āAMicrosoft�̃i���b�W�x�[�X�ɂ����‚��̑Ώ����@�����J����Ă��܂��B

�”\���Ƃ��ẮuBluetooth�T�|�[�g�T�[�r�X�v���J�n����Ă��Ȃ����A���̃T�[�r�X�����[�J���Ǘ��҃A�J�E���g���g�p����悤�ɁA�\������Ă��Ȃ��Ƃ������Ƃł��B

�uBluetooth�T�|�[�g�T�[�r�X�v�̐ݒ��ύX

Windows�L�[�{R�������āu�t�@�C�������w�肵�Ď��s�v�_�C�A���O���g���A�uservices.msc�v�Ɠ��͂��Ǘ��R���\�[��(MMC)�X�i�b�v�C�����J���܂��B[Bluetooth�T�|�[�g�T�[�r�X]����~���Ă���ꍇ�A�_�u���N���b�N���T�[�r�X���J�n�����܂��BBluetooth����Ɏg���̂ł���΁u�X�^�[�g�A�b�v�̎�ށv���u�����v�ɂ���Ɨǂ��ł��傤�B����Ɂu���O�I���v�^�u���N���b�N���u���[�J���V�X�e���A�J�E���g�v���I������Ă��邱�Ƃ��m�F���Ă��������B�Ō�ɁA�R���s���[�^���ċN�����ē�����m�F���Ă݂Ă��������B

�T�[�r�X�́u���O�I���v�^�u���m�F����

Broadcom���X�^�b�N

Broadcom�Ђ�Bluetooth�ƊE�ł͑��ł��BWiiRemote�{�̂̒��Ɏg���Ă���Bluetooth�R���g���[���[�`�b�v�͂��Ƃ��A���Ӌ@��Ƃ��Ĕ̔�����Ă���Bluetooth�A�_�v�^��A�ŋ߂�ThinkPad�̓����i�Ȃǂ��܂��܂Ȑ��i��OEM�Ƃ��č̗p����Ă��܂��BMicrosoft���̃X�^�b�N�Ɠ������ꂽ�h���C�o���đg�ݍ��܂�Ă��邱�Ƃ������A���[�U�[�͋C���‚��Ȃ����Ƃ����邩������܂���B

���͂��‚āABroadcom�̃X�^�b�N�́uWidcomm�v�Ƃ������i���œW�J����Ă���AWiiRemote�Ƃ͑������ǂ��Ȃ��Ƃ����Ă��܂������A�ŋ߂ł͖��Ȃ��ڑ��ł��鐻�i�������o�ꂵ�Ă��܂��B

�ȉ��͕M�҂����p���Ă���WindowsXP����ThinkPad�ɂ�����R���g���[���p�l���̗�ł��B�u�R���g���[���p�l���v�ɂ́uBluetooth�ݒ�v�Ƃ����A�C�R��������A�u�f�f�v�^�u������ƁuBroadcom Corporation�v�A�u�t�@�[���E�F�A���r�W����Version 2.1.211.299�v�ƕ\������Ă��܂��B

ThinkPad�ɓ��ڂ���Ă���Broadcom�А�Bluetooth�X�^�b�N

���̃R���g���[���p�l�������^��Bluetooth�Ǘ��\�t�g�E�F�A�́A�^�X�N�g���C�Ȃǂɏ풓����Bluetooth�A�C�R������ڑ�����^�C�v�̑��А��X�^�b�N�Ƃ͈قȂ�A�u�}�C�R���s���[�^�v�́u�}�CBluetooth�v����ڑ�����A�G�N�X�v���[���[�����^�ɂȂ��Ă���Ƃ�������������܂��B

�u�}�C Bluetooth�v����WiiRemote�����o
�u�w���v�v�Ńo�[�W��������\���������Ƃ���

���̑��̊‹��ɂ‚���

���̑��A��L�ŏЉ�̂Ȃ��X�^�b�N�ɂ‚��ẮA�����Ă݂������݂̂Ƃ��됬�����Ă��Ȃ��AWiiRemote�Ƃ̃y�A�����O���������Ȃ��A���i�������I�����Ă���A���{�Ŏg�p�ł��Ȃ��ȂǁA�l�X�Ŗ{���ł͎�舵���܂���ł����B�����莝����Bluetooth���i�Ő������Ă�����̂�����΁AWiiLi.org�Ȃǂŋ��L���������ǂ��ł��傤�B�Ȃ��A�����������f�o�C�X����{�����Ŏg�p���邱�Ƃ͓d�g�@�Ɉᔽ����”\��������܂��B�Z�p��K���ؖ����x�����K�v�ł��B

�܂��{���ł̓��C���ň����܂��񂪁AWindows�ȊO�̊‹��ł�MacOS��Linux�ł���r�I�ȒP��WiiRemote�����p�ł��܂��B

MacOS�ł�Bluetooth��OS�̕W���@�\�ŗ��p�ł��A�ڑ��c�[���A�A�v���P�[�V�����ȂǗl�X�ȃ\�t�g�E�F�A���o�ꂵ�Ă��Ă��܂��B�uOSX Wiimote Enabler�v�Ƃ����A�߂��ɂ���WiiRemote�����‚��ăy�A�����O���Ă����\�t�g�E�F�A�Ȃǂ͕֗������ł��B

Linux�‹��ł�Bluetooth�Ƃ̐ڑ��ɓ��ʂȃ\�t�g�E�F�A�͕K�v����܂���B���ɍŋߋ}���Ƀ��[�U���������Ă���f�B�X�g���r���[�V�����uUbuntu�v�ł�Ubuntu7.10(Gutsy)�ȍ~�A�W���I�ȃ\�t�g�E�F�A�ŗ��p�ł���悤�ɂȂ��Ă��Ă��܂��B

WiiLi.org��Bluetooth�ڑ����

���Ƃ��Ƃ�Wii��Linux�𓮂������I�Ƃ����v���W�F�N�g�̃|�[�^���ł����A���Ȃ菉���ɗ����オ�������Ƃ�����AWiiRemote�Ɋւ�������������񈵂��Ă��܂��B������̃y�[�W�ɂ͓���m�F����ꂽBluetooth�f�o�C�X�̃��X�g������܂��Bhttp://www.wiili.org/index.php/Compatible_Bluetooth_Devices�Ȃ��ߋ��ɍ쓮���Ȃ�����Bluetooth�f�o�C�X�ł��A�\�t�g�E�F�A�A�b�v�f�[�g�ɂ��A���삷��”\��������Ƃ���Ă��܂��B

�C�V��������WiiRemoteAPI�H

���͔C�V����������WiiRemote����ʂ̃��[�U�[�����p���邽�߂̎d�l�����J���Ă��܂��BWii�{�̂�Web�u���E�U�@�\�ł���u�C���^�[�l�b�g�`�����l���v�ɂ�����WiiRemote�ł��B����Ɋւ��Ă̋Z�p�d�l�͔C�V���̃z�[���y�[�W�u�C���^�[�l�b�g�`�����l���̊g���@�\�ɂ‚��Ēm�肽���v(http://www.nintendo.co.jp/wii/q_and_a/093.html)�Ɍf�ڂ���Ă��܂��B

�Z�p�d�l�ɂ�JavaScript�ɂ��{�^������Z���T�[�o�[���‚������J�[�\���̈ʒu��X���̎擾���@���L�ڂ���Ă��܂��B�܂��u���p��̒��Ӂv�Ƃ��āu���Ђ́A���̊g���@�\�Ɋւ��āA���̏��i����L���Ă��邱�ƁA����̖ړI�ւ̓K������L���Ă��邱�ƁA��O�҂̒m�I���Y���i�������A���쌠�A���W���j��N�Q���Ă��Ȃ����Ɠ����܂߁A��؂̖@����̕ۏ؂��s���܂���B���̊g���@�\���g�p�������Ƃɂ���Ĕ�邢���Ȃ鑹�Q�ɑ΂��Ă��A���Ђ͐ӔC�𕉂��܂���B���Ђ́A���̊g���@�\���g�p������ɑ΂��āA�����Ȃ錠�������t�^������̂ł͂���܂���B���Ђ́A���̊g���@�\�Ɋւ���T�|�[�g�͈�؍s���Ă���܂���v�ƋL�ڂ���Ă��܂��B

�@�I�Ȍ�����̃O���[�̓O���[�̂܂܁A�Ƃ��Ă����ق����ǂ����Ƃ�����܂��B�u�����ɕۏ؂��܂���A�ӔC�𕉂��܂���v�ƌ����؂��������A����̃l�b�g�Љ�̕����ɍ����Ă��Č����Ƃ�������������ł��傤�B

������ɂ��挻�݂̂��̐݌v�̂�������WiiRemote�͊J���ꂽ�v���b�g�t�H�[���Ƃ��ė��p���邱�Ƃ��ł���킯�ł����AWiiRemote�������̃Q�[���R���g���[���[�ȊO�̎g���������邱�ƂŁA���ʂƂ���WiiRemote�P�̂̔���グ�ɂ͋��͂ł��Ă���̂�������܂���B

�����WiiRemote�t�@���ƔC�V���A�J���҂̊ԂɁA�ԐړI�ł͂��邯���Win-Win-Win�̊֌W���ۂĂ�Ƃ����ł��ˁB

�R�����F�����߂�Bluetooth�A�_�v�^�́H

WiiRemote���‚������v���O���~���O�̍����ɂ���"PC�Ƃ̐ڑ�"�́ABluetooth�X�^�b�N���o�R����HID�N���X�̗��p�ł��邽�߁A�u���b�N�{�b�N�X�I�v�f�������Ȃ��Ă��܂��܂��B������WiiRemote�v���O���~���O�‹��͕s�‰��ȓ����g���u���Ƃ��������ƂɔY�܂����󋵂����ɑ�������܂����B���J����Ă���t���[�E�F�A�Ȃǂ��A�v���P�[�V������҂������̊‹��ŗ��p���Ă���n�[�h���������Ă��炸�A����̊‹��ł��������Ȃ��c�Ƃ��������Ƃ�����܂����B�ŋ߂ł�Windows XP SP2�ȍ~�̃T�|�[�g����ɂ��A���Ȃ�󋵂͉��P����Ă��܂����A����ł��u�m���ɐڑ��������������v�Ƃ������k���悭�󂯂܂��B

�M�҂��l�I�Ɉ��p���Ă���̂̓v�����X�g���e�N�m���W�[�Ђ́uPTM-UBT3S�v�ł��B�ƂĂ�������USB�R�l�N�^�T�C�Y��Bluetooth�z�X�g�A�_�v�^�ŁA�d�Ԃ̒��Ńv���O�������������������M�҂�(���E�̏�q��USB���Ԃ‚��炸)�ƂĂ��d�󂵂Ă��܂��B��������Ă���X�^�b�N�͓��Ő��ŁAWindows Vista�ł̓���m�F���Ƃ�Ă��܂��B

�v�����X�g���e�N�m���W�[�ЁuPTM-UBT3S�v

���݂�PTM-UBT3S�͔̔��I���Ƃ̂��ƂŁA���݂ł͂��̌�p�Ƃ��āA�����100���[�g���̍ő�ʐM�����ABluetooth Ver2.1+EDR�Ή��́uPTM-UBT5�v����������Ă��܂�(http://www.princeton.co.jp/product/network/ptmubt5.html�j�B������m�F�\��B

�{����Bluetooth���i���ꂼ��ɓ���m�F�����o����Ηǂ��̂ł����A���ׂĂ݂�Ɛ��i�̃p�b�P�[�W�ɂ͓�������Ă���X�^�b�N�̎�ނ܂ł͋L�ڂ���Ă��܂���B�������Ă��A���i�̃o�[�W�����⃊�r�W�����A�C���X�g�[������鑤��OS�ɂ���đS���قȂ�A�Ƃ����P�[�X������܂��B�����炭��������\�t�g�E�F�A�̃��C�Z���X�������i���i�̑傫�ȕ������߂邩��ł��傤�B

�K���Ȃ��Ƃ�Bluetooth���i�͓��X�A�ቿ�i�����i��ł��܂��B�w���Ɏ��s�����甃�������Ă�����قǒɂ����i�ł͂Ȃ��Ȃ��Ă��܂����B

�\�t�g�E�F�A�̃A�b�v�f�[�g�Ŏg���邱�Ƃ�����܂�����A�܂��́u�Ă�����A�����Ă݂邪�Ղ��v�ł��傤���B

�܂��͎������Ă݂悤

WiiRemote��PC��Bluetooth�Őڑ�����

�����ł͑O�߂ŏЉ�������‚���Bluetooth�X�^�b�N���g���āA���ۂ�WiiRemote��PC�ɐڑ�������@���X�e�b�v�o�C�X�e�b�v�ʼn�����Ă����܂��B���łɂ��g����Bluetooth�‹��Ŗ��Ȃ��ڑ��ł��Ă���ǎ҂͓ǂݔ�΂��āA���߂̃c�[�����‚����������ɐi��ł��������Ă����܂��܂��񂪁A���߂Ď�������Ƃ���A�V����������Bluetooth�A�_�v�^�𗘗p����ꍇ�́A���Њ֘A�����ނ̉������ǂ��邱�Ƃ������߂��܂��B�h���C�o�t���̃E�B�U�[�h�����ł͂ǂ����Ă��ڑ��ł��Ȃ��u������Ƃ����R�c�v������Ƃ�������܂��B

Bluetooth���C���X�g�[�����鎞�̒���

���݁A������Bluetooth�z�X�g�A�_�v�^��USB�C���^�t�F�[�X�̌`������Ă��܂��B�C���X�g�[���͐��i�t���̃}�j���A����ǂ��ǂ�ōs���Ă��������B��ʓI��USB�������ȂǂƈقȂ�ABluetooth�z�X�g�A�_�v�^�͏��߂đ}������u�O�Ɂv�A�t���\�t�g�E�F�A�̃C���X�g�[����K�v�Ƃ���ꍇ���قƂ�ǂł��B

�����l�����ɁABluetooth�n�[�h�E�F�A��USB�|�[�g�ɑ}�����Ă��܂��ƁA�����Ńh���C�o�[��ݒ肳��Ă��܂����肵�āA�\�t�g�E�F�A�̃Z�b�g�A�b�v�ŋl�܂邱�ƂɂȂ�܂��B�܂��́A���i�ɓ�������Ă���}�j���A������ǂ��܂��傤�B�����̏ꍇ�͂܂��A�\�t�g�E�F�ACD-ROM�̃C���X�g�[���[���g���āA�\�t�g�E�F�A���Z�b�g�A�b�v���邱�ƂɂȂ�͂��ł��B

�܂�Bluetooth�@��̃h���C�o�[�̓T�[�r�X�Ƃ��ăC���X�g�[���������̂������̂ŁA�C���X�g�[����͕K���ċN�����܂��傤�B�܂��C���X�g�[�����̃I�v�V�����ŁABluetooth�w�b�h�z���Ȃǂ̉����֌W�̃T�[�r�X��A�t�@�C���]���֌W�̃T�[�r�X��I���ł���ꍇ������܂��B����WiiRemote�����ŗ��p����̂ł���΁A�����̃T�[�r�X�͑S���K�v�������A�g�p���܂���̂ŁA�lj��C���X�g�[��������A�T�[�r�X�������N������ݒ�ɂ���K�v�͂���܂���(�������⏈���̐ߖ�ɂȂ�܂�)�B

�����ɃC���X�g�[�����I���A�ċN��������A�^�X�N�o�[��f�X�N�g�b�v�A�}�C�R���s���[�^���ɂ���Bluetooth�A�_�v�^�̃A�C�R������ABluetooth�X�^�b�N�̗l�X�ȃT�[�r�X�𗘗p�ł���悤�ɂȂ�܂��B

PTM-UBT3S(���Ő��X�^�b�N)�ł̃y�A�����O

�����ł͎�y�ɓ���ł���USB�O�t���^�C�v��Bluetooth�A�_�v�^�uPTM-UBT3S�v(�v�����X�g���e�N�m���W�[)���g���āA�X�e�b�v�o�C�X�e�b�v��WiiRemote��PC�̃y�A�����O��������܂��B

�M�҂��w������PTM-UBT3S�ɓ�������Ă����X�^�b�N�͓��Ő��ł����B�^�X�N�o�[�̎��v�̋߂��ɂ���Bluetooth�̃A�C�R�����_�u���N���b�N����ƁuBluetooth�ݒ�v�Ƃ����E�C���h�E���N�����܂��B���j���[�́u�w���v���o�[�W�������v��I�Ԃ��ƂŁuBluetooth Stack for Windows by Toshiba Version v5.10.15�v�Ƃ������o�[�W���������m�F���邱�Ƃ��ł��܂��B

���Ő�Bluetooth�X�^�b�N�̃��C�����
���Ő�Bluetooth�X�^�b�N�̃o�[�W�������

���̓��Ő��X�^�b�N��DELL�̈ꕔ�̋@��ɂ��̗p����Ă���AWiiRemote�o�ꓖ��������肵���ڑ����s���Ă��邱�ƂŗL���ł����B�����AWiiRemote�Ɛڑ����Ă݂܂��傤�B

�S�Ă�Bluetooth�@��́u�y�A�����O�v�Ƃ����ڑ��F�؂��z�X�g���ƘA�g���čs���K�v������܂��B����͗l�X�ȋ@�킪���݂���ߋ��������ʐM�ɂ����āA�K�؂Ȏ��Ӌ@�킪�A�K�؂ȃ��[�U�Ɋm�F���ꂽ��ŁA�ڑ�����邱�Ƃ�ۏ؂��邽�߂ɂ���܂��B�g�ѓd�b�Ȃǂ̋@��́A����ɐڑ������Ɠd�b���̉{����A���M�Ȃǂ������Ă��܂����߁A�ڑ���PIN(�p�X�R�[�h)���K�v�ɂȂ邱�Ƃ������̂ł����AWiiRemote�̏ꍇ�ɂ́A�Q�̖��������̓��̓C���^�t�F�[�X�Ȃ̂ŁAPIN�͐ݒ肳��Ă��܂���B��{�̓z�X�g���ƃ^�C�~���O�����킹�ē����{�^�������������Ńy�A�����O�ł��܂��B

�uBluetooth�̐ݒ�v�̃��j���[����u�V�����ڑ��v���N���b�N����Ɓu�V�����ڑ��̒lj��E�B�U�[�h�v���N�����܂��B�u�G�N�X�v���X���[�h(��������)�v�̂܂܎��ɂ����߂܂��傤�B

�y�A�����O�̊J�n
������WiiRemote�𓯊����[�h�ɂ���

�uBluetooth�@���T���Ă��܂��v�ƕ\�����ꂽ��A��������WiiRemote�́u1�v�{�^���Ɓu2�v�{�^���𓯎��ɉ����܂��傤�BWiiRemote�̓d�r�t�^���J�����Ƃ���ɂ���A�Ԃ��uSync�{�^���v�ł����܂��܂���B�v���C���[�C���W�P�[�^(WiiRemote�����ɂ���4�‚̐FLED)���_�ł��A�O������̐ڑ��v���𐔕b�Ԃ̊ԁA�󂯓���邱�Ƃ��Ӗ�����u�ڑ��F�ؑ҂��v�̏�ԂɂȂ�܂��B

�gNintendo RVL-CNT-01�h�‚܂�WiiRemote���\�����ꂽ

���Ɂu�g�p����Bluetooth�@���I�����Ă��������v�Ƃ����_�C�A���O���\������A�}�̂悤�Ƀf�o�C�X���̈ꗗ�ɁuNintendo RVL-CNT-01�v������܂��B���ꂪ�\�����ꂽ��N���b�N����WiiRemote��I�����A�u���ցv���N���b�N���Ă��������B

���̎���WiiRemote�͐ڑ��F�ؑ҂�(LED�_��)�ł��邱��

�uBluetooth�@��ɐڑ����Ă��܂��v�Ƃ����_�C�A���O���\�����ꂽ��AWiiRemote���݂āA�FLED���_�ł��Ă��邱�Ƃ��m�F���܂��B�����_�ł��Ă��Ȃ�������A�ēx�u1�v�{�^���Ɓu2�{�^���v�𓯎��ɉ������ςȂ��ɂ��āA�ڑ��F�ؑ҂��̏�Ԃ�ۂ��Ă��������B

Bluetooth�@��Ƃ���WiiRemote���\�����ꂽ

PIN�R�[�h�͕K�v�Ȃ��̂ŁA�����I�ɐڑ������̏�ԂɂȂ�͂��ł��B����Ŗ����ڑ��ł��܂����B�r�����x���u1�v�u2�v�{�^�����������ςȂ��ɂ���Ƃ��낪����܂������AWiiRemote�̗����ɂ���d�r�t�^�����ɂ���uSync�v�{�^���ł��������삪�ł��܂�(�܂����������@�\�ł�)�B

���āAWiiRemote�ɂ͐ߓd�@�\������A���΂炭�̊ԁA�ʐM��{�^�����삪�Ȃ��ƁA�����I�ɐڑ����I�����A�d���f�̏�ԂɂȂ�܂��B���̐ؒf��Ԃł́ABluetooth�Ǘ��\�t�g�E�F�A�ł̕\���͉��̂悤�ȕ\���ɂȂ�܂��B

WiiRemote�́u�o�^����Ă��邪�ؒf�v�Ƃ������

���̏�Ԃ́uWiiRemote�͓o�^����Ă��邪�ؒf����Ă���v�Ƃ�����Ԃł��B�_�u���N���b�N����ƁA

WiiRemote�́u1�v,�u2�v�{�^���������čĐڑ�

�uHID�f�o�C�X�̐ڑ��̏��������Ă���OK�{�^���������Ă��������v�ƕ\������܂��B�����ōēxWiiRemote�́u1�v,�u2�v�{�^���𓯎��������āA�ڑ��F�ؑ҂��̏��(4�‚̐FLED���_��)�ɂ��Ă���AOK�{�^���������΍Đڑ��ł��܂��B

�Ȃ�������WiiRemote�����݂���”\��������ꍇ�A�s�v�Ȑڑ��ݒ�͉E�N���b�N�Ń��j���[��\�����u�폜�v���Ă����Ɨǂ��ł��傤�B���܂��ڑ��ł��Ȃ��Ƃ����A��U�ݒ���폜���āA�ŏ��̃X�e�b�v�����蒼���Ɨǂ��ł��傤�B

�o�^���ꂽWiiRemote�ڑ��̏ڍ׏��

�܂��E�N���b�N�̃��j���[����u�ڍׁv��\�����邱�Ƃ��ł��܂��B�����ɂ�WiiRemote�̌‘̔ԍ��u�f�o�C�X�A�h���X�v�Ȃǂ��\������Ă��܂�(�l�b�g���[�N�J�[�h��MAC�A�h���X�ɑ�������ŗL��ID)�B������WiiRemote�����݂���‹����ƁA�X��WiiRemote����������ɂ͂��̃f�o�C�X�A�h���X�������ł��B��4���Ȃǂ��V�[���Ȃǂɂ��ē\���Ă����ƍ������Ȃ��ėǂ��ł��傤�B

Lenovo ThinkPad�ł̃y�A�����O

���ɁA��\�I�ȃm�[�gPC�uThinkPad�v�W������Bluetooth�A�_�v�^�ł̐ڑ�����Љ�܂��B�����ł͕M�҂��g�p���Ă���WindowsXP����ThinkPad X61���ɂ��Ă��܂��B

�u�R���g���[���p�l���v�ɂ́uBluetooth�ݒ�v�Ƃ����A�C�R��������A�u�f�f�v�^�u������ƁuBroadcom Corporation�v�A�u�t�@�[���E�F�A���r�W����Version 2.1.211.299�v�Ƃ���܂����B

ThinkPad�ɓ��ڂ���Ă���Broadcom�А�Bluetooth�X�^�b�N

�������̒i�K�Ő������\������Ă��Ȃ��ꍇ�ABluetooth�A�_�v�^���̏Ⴕ�Ă��邩�A�����@�\���n�[�h�E�F�A�X�C�b�`��OFF�ɂȂ��Ă���ABIOS�ŗL���ɂ���Ă��Ȃ��A�������́A�f�o�C�X�����݂��Ȃ��Ƃ������”\��������܂��B����BIOS��\�t�g�E�F�A�X�C�b�`�ł̖������͌����Ƃ������Ȃ̂ŁA�m�F���Ă݂�Ɨǂ��ł��傤(�����̏�Ԃ�Fn+F5�L�[�Ŋm�F���邱�Ƃ��ł��܂�)�B

���Ɂu�N���C�A���g�A�v���P�[�V�����v�̃^�u���N���b�N���Ă݂܂��傤�B���ꂩ�痘�p����uHID(Human Interface Device)�v�̃Z�L�����e�B�ی삪�u�s�v�v�ɂȂ��Ă��邱�Ƃ��m�F���Ă��������B

�N���C�A���g�A�v���P�[�V�����̃^�u��\��

�����ɍ쓮���Ă���悤�ł�����A���ۂɐڑ����Ă݂܂��傤�B�u�}�C�R���s���[�^�v�Ɂu�}�CBluetooth�v�Ƃ����A�C�R��������͂��ł��̂ŁA�_�u���N���b�N���ĊJ���Ă��������B�ŏ��͉����\������܂���̂ŁAWiiRemote�́u1�v�Ɓu2�v�̃{�^���������āA�����”\��Ԃɂ�����ԂŁu�͈͓��̃f�o�C�X�̌����v�����s���Ă݂Ă��������B

Broadcom�А�Bluetooth�X�^�b�N�F�͈͓��̃f�o�C�X�̌���

�߂���WiiRemote��g�ѓd�b�Ȃǃy�A�����O�”\�ȃf�o�C�X�����݂���ƃA�C�R�����\������܂��B���̃A�C�R���Ƀ}�E�X�|�C���^���߂Â�����A�v���p�e�B������ƃf�o�C�X�A�h���X�����邱�Ƃ��ł��܂��B

���āA�����ł‚��A���̃A�C�R�����_�u���N���b�N���āu�f�o�C�X�̐ڑ��v�����s���Ă��܂������Ȃ̂ł����A���̕��@�ł͉i����WiiRemote�Ƃ̃y�A�����O���������邱�Ƃ͂ł��܂���B���̗���ł����ƁA�y�A�����O�̂��߂�PIN�R�[�h��K�{�Ƃ��ėv�������̂ł����AWiiRemote�ɂ́u�󔒂̃p�X���[�h�v���ݒ肳��Ă��邽�߁A�󔒂̃p�X���[�h���󂯕t���Ȃ����̃X�^�b�N�ł͔F�؂��ł��Ȃ��̂ł��B����͂����炭Broadcom�̃X�^�b�N�ɂ�����o�O���d�l�~�X�Ȃ̂ł����A������Ƃ����R�c�Őڑ�������@������܂��B

Broadcom�А�Bluetooth�X�^�b�N�F���̃G���[���\�������ɐi�߂Ȃ�

�܂��A��x�A�������ʂ̌X�̃f�o�C�X�A�C�R���ł͂Ȃ��󔒕������N���b�N���Ă��������B����ƍ����̃^�X�N�̈ꗗ�ɁuBluetooth�f�o�C�X�̒lj��v�Ƃ����^�X�N������܂��B������N���b�N����ƁuBluetooth�Z�b�g�A�b�v�E�B�U�[�h�v���N�����܂��B

Broadcom�А�Bluetooth�X�^�b�N�F�Z�b�g�A�b�v�E�B�U�[�h

�������J�n���AWiiRemote�����ꂽ�炻�̃A�C�R�����N���b�N���āu���ցv�̃{�^���������܂��B��������WiiRemote�́u1�v�Ɓu2�v�̃{�^�����������ςȂ��ɂ��Ďw���͂Ȃ��Ȃ��ł��������B

�\�����ꂽ�uRVL-CNT-01�v���N���b�N���āu���ցv

PIN��v�������ʂ��\������܂����AWiiRemote�̃{�^����Ў�ʼn������܂܁u�X�L�b�v�v���N���b�N���܂��B���̂܂�3�b�قǑ҂��Ă݂Ă��������B

�u1�v,�u2�v�{�^�����������܂܁u�X�L�b�v�v���A3�b�قǑ҂�

����ƁA�G���[��ʂ͕\�����ꂸ�A�����AWiiRemote��HID�T�[�r�X��I�������ʂ��\������܂��B�`�F�b�N�{�b�N�X��ON�ɂ��āu�����v���Ă��������B

���̃T�[�r�X�I����ʂ��\�������܂ő҂‚̂��R�c

���̗���Ŗ���Broadcom�Ђ̃X�^�b�N�����p�ł���悤�ɂȂ�܂��BPIN���v��������ʂŁu1�v+�u2�v�{�^�����������ςȂ��ɂ��Ă����̂��|�C���g�ł��B�Đڑ��̏ꍇ�������菇�Őڑ��ł��܂����A��x�y�A�����O�ɐ������Ă���΁A�}�C�R���s���[�^���̃}�CBluetooth�A�C�R������A�ڑ�������WiiRemote�̃A�C�R�����N���b�N���āu�I������Bluetooth�f�o�C�X�̒lj��v�Ƃ��āA�u1�v�Ɓu2�v�{�^�����������ςȂ��ɂ��Ă����΁A�Z���X�e�b�v�ōĐڑ��ł��܂��B

�Ȃ��A���̌�u�}�CBluetooth�v�E�B���h�E�ɂ͉����\������܂��񂪁A�u�͈͓��̃f�o�C�X�̕\���v�Ƃ���Bluetooth�^�X�N���N���b�N���Ă݂Ă��������B�u�}�CBluetooth\Bluetooth Neighborhood�S�́v�Ƃ����ꏊ�ɂ̓����N��Ԃ������u�����v���t�����ꂽWiiRemote�̃A�C�R�����\������Ă���͂��ł��B�ؒf����ꍇ�̓f�o�C�X�̃A�C�R�����N���b�N���āu�������v��I��ł��������B�Đڑ��́A�f�o�C�X�̃A�C�R�����N���b�N����Bluetooth�^�X�N����u�I������Bluetooth�f�o�C�X�̒lj��v��I�ԂƁA�E�B�U�[�h���ēx�N�����܂��B��L�̎菇�Ɠ������A�u1�v,�u2�v�{�^�����������ςȂ��ɂ��āA�u�X�L�b�v�v��I�񂾌�A���̂܂܃{�^��������������HID�T�[�r�X���\�������܂�3�b�قǑ҂‚̂�Y��Ȃ��悤�ɂ��Ă��������B

�ȏ�ŁAThinkPad�ɓ��ڂ���Ă���Broadcom�Ђ̃G�N�X�v���[���[�����^�̃X�^�b�N�ɂ�����ڑ����@�̉�����I���܂��B���N�̎��тƌ��S���Ől�C��ThinkPad�ł����A�M�҂̎g�p���Ă���‹��͂��������Â��̂�������܂���B�V�X�e���̃f�o�C�X�}�l�[�W���[����Bluetooth�f�o�C�X�����̃h���C�o�̃v���p�e�B������ƁA���[�J�[�͊m����Broadcom�ł����A���t���u2006/12/19�v�A�o�[�W�������u5.1.0.2900�v�ƂȂ��Ă���܂��B

�f�o�C�X�}�l�[�W���[�Ńh���C�o�o�[�W�������m�F
Broadcom�А�Bluetooth�X�^�b�N�A������Ƃ����b

Broadcom�Ђ�Bluetooth�ƊE�ł͑��ŁAWiiRemote�{�̂ɂ����̃`�b�v�����ڂ���Ă��܂��B�܂�Broadcom����������h���C�o�\�t�g�E�F�A�͎��Ӌ@��Ƃ��Ĕ̔�����Ă���Bluetooth�A�_�v�^��A�����̃m�[�gPC�ɍ̗p����A�h���C�o�̃o�[�W���������X�i�����Ă���AWiiRemote�o�ꓖ���ɔ�ׂāA���w�̃h���C�o�ɂ͉��̕s�����Ȃ��̂ł����A�Ƃ�����|���̕\����GUI�̓���ňӖ��s���ȂƂ��������܂�(��������WiiRemote��ڑ�����e�X�g���h���C�o�J���҂��W���I�ɍs���Ă���Ƃ��v���܂���...)�B���̂Ƃ���HID�T�[�r�X���񋓂����܂Łw1+2���������ςȂ��ɂ��Ȃ��ƃ^�C���A�E�g����x�Ƃ����e�N�j�b�N�͋��ʂ̂悤�ł��B�M�҂��̌������ʔ���Bloadcom�X�^�b�N�̌o���Ƃ��ẮA�f�o�C�X�̗񋓎��ɕ����������N�����A�{�^�����\�����ꂸ�A�������ėǂ��̂��킩��Ȃ��A�Ƃ������i������܂����B����Ȏ��́uAlt+C�v��uAlt+S�v�A�uAlt+N�v�Ȃǁu�X�L�b�v�v��u���ցv�ɂ�����V���[�g�J�b�g�������Ă݂�Ƃ悢�ł��傤�B

ASUS EeePC S101�ł̃y�A�����O

�����āA�ŋߘb��̃l�b�g�u�b�N�̑�\�Ƃ�������ASUS�А��uEeePC 901�v�ł̃y�A�����O���Љ�܂��B��������Ă���Bluetooth�A�_�v�^��ThinkPad�̗�Ɠ�����Broadcom�Ђł����A�o�[�W�������قȂ�A���Windows�̃G�N�X�v���[���[�ɓ�������Ă��܂��B�ڑ��͂ł���̂ł����A������Ƃ����R�c������܂��̂ŁA�����ݒ肩�������܂��B

�܂��́A���߂�Bluetooth�Őڑ�����ꍇ�A�R���g���[���p�l���́u�V�X�e���v����u�f�o�C�X�}�l�[�W���v���N�����A�ǂ̂悤��Bluetooth�f�o�C�X���C���X�g�[������Ă���̂��m�F���Ă����Ɨǂ��ł��傤�B

�f�o�C�X�}�l�[�W���uBluetooth�f�o�C�X�v�Ńh���C�o�̏ڍׂ͊m�F�ł���

���āA����PC�ŏ��߂�Bluetooth���g�p����ꍇ�A�����ݒ肪�K�v�ɂȂ�܂��B�R���g���[���p�l���́uBluetooth�ݒ�v���_�u���N���b�N����ƁA�����ݒ�̂��߂̃E�B�U�[�h���N�����܂��B

�����ł̃`�F�b�N�͂��D�݂�

�uWIDCOMM Bluetooth Software 5.1.0.5500�v�Ə������\������Ă��܂����A�܂��͂���PC��Bluetooth�z�X�g�Ƃ��Ă̖��O�ƃR���s���[�^�̎�ނ�ݒ肵�܂��B�����ł́uEee�v�Ƃ������O�́u���b�v�g�b�v�v�Ƃ��܂����B�����ăT�[�r�X�̐ݒ�ɓ���܂��B

Bluetooth�����ݒ�E�B�U�[�h
�u���ցv���N���b�N���ăT�[�r�X�̐ݒ�ɐi��

�����ł�WiiRemote�s�̐ڑ��ɕK�v�ȃT�[�r�X�͂���܂���̂ŁA�S�Ẵ`�F�b�N���O������ԂŁu���ցv�i�݂܂��B�T�[�r�X�͌�ł��R���g���[���p�l���uBluetooth�̐ݒ�v����u���[�J���T�[�r�X�v�Őݒ肷�邱�Ƃ��ł��܂��̂ŐS�z�͗v��܂���B

�K�v�ȃT�[�r�X�͂Ȃ��̂ł��ׂă`�F�b�N���O���āu���ցv

�����A�����ݒ�͏I����Ă��܂��B�E�B�U�[�h�͂��̂܂ܑ����ăf�o�C�X�Ƃ̐ڑ����s�����Ƃ��ł��܂��BWiiRemote���������āu���ցv�i�݂܂��BWiiRemote�́u1�v�{�^���u2�v�{�^���𓯎��������āA�ڑ��ҋ@���[�h(�FLED4�‚��_��)�̏�Ԃɂ��܂�(1+2�{�^������͎�𗣂��Ȃ��ق����ǂ��ł��傤)�B�^�C�~���O������Ȃ��Ƃ��̓E�B�U�[�h�́u�Č����v�������Ă݂܂��傤�B

WiiRemote���茳�ɏ������āu���ցv

�}�E�X�ƃL�[�{�[�h�̃A�C�R���Ƌ��ɁuNintendo RVL-CNT-01�v���������ꂽ��A���΂₭�N���b�N���āu���ցv�������܂��B���̂Ƃ��A�‚��u1�v+�u2�v�{�^�������𗣂��Ă��܂����Ƃ������̂ŋC���‚��Ă��������B

WiiRemote�����o���ꂽ��A�C�R�����N���b�N���āu���ցv

�������班���f������𓮂����K�v������܂��B�_�C�A���O���\������y�A�����O�ɓ���܂��B�u�������g�ݍ��킹�v�ƕ\������Ă��܂����A����PIN�������Ȃ�WiiRemote�Ƃ͂��̗���ł͐ڑ��ł��܂���B�����ł́u�X�L�b�v�v��I�����܂��B����Ƃ��΂炭�����\������Ȃ��̂ŁA�u1�v+�u2�v�{�^�����������ςȂ��ɂ��Ă��Ă��������B

�Z�L�����e�B�R�[�h�́u�X�L�b�v�v����

������WiiRemote�̃T�[�r�X�񋓂ɐ�������ƁA�}�̂悤�ɁuNintendo RVL-CNT-01�FBluetooth�Ή��}�E�X�A�L�[�{�[�h�A���̑��̃C���^�t�F�[�X�f�o�C�X���g�p���܂��B�v�ƕ\������܂��B�u1�v+�u2�v�{�^���������Ă�̂ő�ς�������܂��񂪁A�`�F�b�N���āu���ցv�������܂��傤�B

�g�p����T�[�r�X�������̂Ń`�F�b�N���āu���ցv
�����ɐڑ�����������

���āA����Ŗ����ڑ������ł��BWiiRemote�̃{�^�������𗣂��Ă����v�ł��B�u�}�CBluetooth\Bluetooth Neighbourhood�S�́v�Ƃ����E�B���h�E��WiiRemote��\���uNintendo RVL-CNT-01�v���\������Ă���͂��ł��B

�ڑ����Ȃ̂Łu�����v���\������Ă���

�_�u���N���b�N����ƁA�X�e�[�^�X�\���ł��܂��B�X�e�[�^�X�ɂ͐M�����x��A�N�e�B�r�e�B���\������܂��BWiiRemote�̃{�^���������Ǝ�M�f�[�^��������l�q�����鎖���ł��܂��B�Ȃ����̃X�^�b�N�̂悤��MAC�A�h���X�����邱�Ƃ͂ł��Ȃ��悤�ł��B

�X�e�[�^�X�\���F�{�^���������Ɓu��M�v��������

�E�N���b�N�Łu�������v��I�ԂƐؒf��ԂɂȂ�܂��B�ēx�ڑ�����Ƃ��́u�}�C�R���s���[�^�v�́u�}�CBluetooth�v����uBluetooth�f�o�C�X�̒lj��v�Ƃ����E�B�U�[�h�`���̂��̂�I��ł��������B�uBluetooth�f�o�C�X�̌����v��uBluetooth Neighborhood�S�́v��I��ł��ǂ������Ȃ��̂Ȃ̂ł����A�y�A�����O�́u�X�L�b�v�v�Ƀo�O������悤�ŁA��ɐi�ނ��Ƃ��ł��܂���B

�}�C�R���s���[�^�́u�}�C Bluetooth�v�ł́u�f�o�C�X�̒lj��v��I��

�Đڑ��ł����Ă��u�f�o�C�X�̒lj��v�E�B�U�[�h��I�ԁA�Ƃ����_�ɂ����C���‚��Ă��������B�ڑ��̗��ꎩ�͍̂Đڑ��ł��S���ς��܂���B�u1�v+�u2�v�{�^�����������ςȂ��ɂ���̂�Y�ꂸ�ɁB�ڑ�����Ă���ꍇ�́uBluetooth Neighborhood�S�́v�ɕ\������܂��B

���āA������Bluetooth�ڑ��̗��ꂪ�����ł��܂����ł��傤���H�Ō�ɏЉ��ThinkPad��EeePC�̗��Broadcom�Ђ̃X�^�b�N�ɂ�����o�O�̂悤�Ȃ��̂�����A�y�A�����O�Ɂu�{�^���������ςȂ��v��u�Đڑ������E�B�U�[�h�v�Ȃǂ̃R�c���K�v�ł������A��x�o���Ă��܂��Γ�Ȃ����p�ł��܂��B���Ƀl�b�g�u�b�N�ł�Visual Studio���g�����J���Ȃǂ͂��܂茻���I�ł͂���܂��񂪁A�W����Bluetooth�A�_�v�^��������Ă���̂ŁA�W����v���W�F�N�g�Ȃǂł͕֗��Ɏg���邱�Ƃ�����ł��傤(���������ł��I)�B

�����ŏЉ��Bluetooth�ڑ������܂������Ȃ��������́A�ł���΂��̃X�e�b�v�Ŏg�������Ȃ��̂𒲒B���Ă������Ƃ������߂��܂��B������Bluetooth�ڑ��ɐ��������l�́A���̂܂܎��̐߂̎����ɐi��ł��������B

���̑��̃X�^�b�N

BlueSoleil�́AWiiRemote�o�ꓖ���͉��Ăōł�������т̂���X�^�b�N�ł����B��p�̐ڑ��A�v���P�[�V�����������I�ŁA���ɓ�Ȃ��ڑ��ł���̂ʼn���͂������܂���B

�܂�Windows Vista�ɂ����āA�ꎞ���AWiiRemote���ڑ��ł����A������߂Ă����l�����邩������܂��񂪁ASP1�ȍ~���瓮�삷�邱�Ƃ��񍐂���Ă��܂��̂ŁA������߂��Ɏ����Ă݂�Ƃ悢�ł��傤�B

���Ȃ݂�MacOS��Ubuntu�Ȃǂ�Linux�ł�OS�̕W���̋@�\�����Ŗ��Ȃ��ڑ��ł��܂��B

WiinRemote�Ŏ���

���E�ő����J�̃c�[���uWiinRemote�v

WiinRemote��2006�N12��2���AWii�{�̂��������ꂽ���̓��Ɍ��J����A���E�ł����Ƃ��L���ɂȂ���WiiRemote��PC�ŗ��p�ł���t���[�E�F�A�ł��Btokkyo����ɂ���ĊJ������u���Ȃ����������v(http://onakasuita.org/wii/)�ɂČ��J����Ă��܂��BWiiRemote���g����Windows�̃J�[�\���𓮂�������A�����x�Z���T��ԊO���Z���T�̏�Ԃ��ώ@���邱�Ƃ��ł��܂��B

2007�N1��13���Ɍ��J���ꂽ�uWiinRemote_v2007.1.13.zip�v�����݂̂Ƃ���ŏI�łŁABorland Delphi 6�ɂ��\�[�X�R�[�h�����J����Ă��܂��B�ł��������J����A�\�[�X�R�[�h���v�����Ă��邾���łȂ��A�c�[���Ƃ��Ă��l�X�ȋ@�\�����肵�ė��p�ł���̂ŁA���݂ł������̃��[�U�ɗ��p����Ă��܂��B

WiinRemote�̓���ƃC���X�g�[��

WiinRemote�́u���Ȃ����������v(http://onakasuita.org/wii/)�ɂĖ����Ŕz�z����Ă��܂��B�u--�_�E�����[�h�v�̍ł��V�����o�[�W�����uWiinRemote_v2007.1.13.zip�v���N���b�N���ă_�E�����[�h���܂��B�_�E�����[�h�����t�@�C�����𓀂��܂��B�ꏊ�͂ǂ��ł��ǂ��A�C���X�g�[���͕s�v�ł��B���Ƃ́uWiinRemote.exe�v�����s���邾���ł��B

WiinRemote���_�E�����[�h���ĉ�

�O�߂Ŗ�����WiiRemote��Bluetooth�ڑ��ڑ��ł��Ă���΁A�X�N���[���V���b�g�̂悤�ɉ����x�̒l�������O���t���\������܂��BWiiRemote���u���u���ƐU���āA�������ω����邱�Ƃ��m�F���܂��傤�B

�uWiinRemote�v�̃X�N���[���V���b�g

WiinRemote���g�����Ȃ���

WiinRemote�ɂ͗l�X�ȋ@�\������܂��BWiiRemote�̊�{�I�ȓ��͏����m�F���邾���łȂ��A�}�E�X�̑���Ƃ��Ă�����x�̑��삪�ł���悤�ɂȂ��Ă��܂��B�܂��A���낢�뎎���O�ɁuCtrl+S�v(�R���g���[���L�[�������Ȃ���uS�v)�ŁA�}�E�X���͋@�\��On/Off��؂芷������̂��o���Ă����ƍQ�ĂȂ��ōς݂܂��B

WiinRemote�F�e�����

������WiiRemote�̎ʐ^���A���݂̉�����Ă���{�^����\�����Ă��܂��B�{�^�����������Ɣ��s���N�ŕ\������܂��B

�uMotion Sensor�v�ƕ\������Ă���G���A�������x�Z���T�[�̃��A���^�C���̒l�ł��BBlue,Red,Green�����ꂼ��WiiRemote��X,Y,Z���Ɋ��蓖�Ă��Ă��܂��B���̃Z�N�V�����ł͂�����g���Ă�����Ƃ��������̎������s���܂��B�uMotion Sensor�v�̉E���ɕ\������Ă��鍕�������A���肳�ꂽWiiRemote�́u�p���v��\���Ă��܂��B

�uIR Sensor�v�ł́A�ԊO���Z���T�[���擾�������W�l��\�����Ă��܂��B���܎茳�ɏ����̃Z���T�[�o�[���Ȃ��Ă��AWiiRemote���g���Ď����T���Ă݂Ă��������B�����������镨�����邩������܂���B�g�߂ȕ��ł͗Ⴆ�΁A���z�┒�M�d���Ȃǂ��ԊO���𔭂��Ă��܂��B

�k���`���N�R���g���[���[���ڑ�����Ă���ꍇ�uNunchuk�v�̃G���A�ɉ����x�Z���T�[�ƃA�i���O�X�e�B�b�N�̒l���\������܂��B

���j���[�́uOptions�v�ŁuPreferences�v��������Ctrl+P�ŁA�ݒ��ʂ��\������܂��B

WiinRemote�F�ݒ���

������A�uGeneral�v�́uCursor�v�ŁA�J�[�\�����[�h���̃}�E�X�|�C���^�����ő��삷�邩��I�ׂ܂��B�f�t�H���g�͉����x�Z���T�[�ɂ��X���ł��B�Z���T�[�o�[���g��Ȃ��Ă��悢�̂ł����A����͂��܂葀�삵�₷�����̂ł͂���܂���B�ԊO���ő��삷��uIR Sensor�v�������̓k���`���N�̃A�i���O�X�e�B�b�N�ő��삷��uNunchuk Analog Stick�v�����Ў����Ă݂Ă��������B���̑��̃`�F�b�N�{�b�N�X�̋@�\�͈ȉ��̒ʂ�ł��B

���� �Ӗ�
Enable Cursor at Startup �J�[�\�����[�h���N��������g�p
Minimize at Startup �N�����ɍŏ���
Draw Graph �O���t��`��
Rumble on Edge �}�E�X�J�[�\������ʒ[�ɗ����Ƃ��Ƀo�C�u���[�^��U��

�uMotion Sensor�v���ڂ́A�����x�Z���T�[�Ń}�E�X�𑀍삷��Ƃ��ɕK�v�ɂȂ�p�����[�^�[�ł��B

���� �Ӗ�
Motion sensor threshold �����x�Z���T�[�̔����Ȓl���ǂ��܂Ŗ������邩
Invert Horizontal �����������t�]
Invert Vertical ���������𔽓]
Cursor Speed �J�[�\���ړ����x�̍ő��ƍŏ�(���ɂ���ƒx��)
When button pressed B�{�^����������Ă���Ƃ��J�[�\���𑬂�/�x����I��
Re-Calibrate on Cursor On/Off �J�[�\�����[�h�̐؂�ւ����ɃL�����u���[�V���������s

�uButton Assign�v�ł́AWiiRemote�̊e�{�^���ɋ@�\�����蓖�Ă��܂��B�V���v���ł����Ȃ��Ȃ����͂ȋ@�\�ŁA�Ⴆ��Button���uHOME�v�AAssign���uKeys�v�ɂ��āA�uKeys�v�ɂ���uPress Keys Here�v���N���b�N���āuAlt�v�L�[�������Ă���uF4�v�L�[�������Ă݂܂��傤�B���̉��ɁuAlt+F4�v�ƕ\�����ꂽ��uSet�v�������܂�(�Ō�ɁuApply�v�L�[�������Đݒ�ۑ�)�B�����HOME�L�[����������A���̃E�B���h�E��‚���@�\���ł��܂����B�����悤�Ȏ菇�Łu�{�v�u�|�v�L�[�ɉ��ʂ����蓖�Ă���A�u1�v�u2�v�L�[�ɍD���ȃA�v���P�[�V���������蓖�Ă邱�Ƃ��ł��܂�(�uExecute�v�Ŏ��s�t�@�C����I��ł���uSet�v����̂�Y�ꂸ��)�B

�uIR Sensor�v�ł́u�ԊO���������Ȃ��Ƃ��͉����x�Z���T�[���g���v�Ƃ����`�F�b�N�{�b�N�X�ƁALED�����E�̊O�ɏo���ꍇ�̈��萫�𒲐����邽�߂́u�����������̒����g��\��(��������)�v������܂��B

�uNunchuk�v�ł̓A�i���O�X�e�B�b�N���J�[�\�����[�h�Ŏg�p�����ꍇ�̑��x�ƁA�㉺���E�����̋t�]�p�`�F�b�N�{�b�N�X������܂��B

�d�͂��ώ@���Ă݂悤

���āA�����قǏЉ���uMotion Sensor�v�ł́A�����x�̃��A���^�C���l��3�F{X,Y,Z}��{��,��,��}�ŕ\�����Ă��܂��BWiiRemote��X,Y,Z���Ƃ͂��ꂼ��A�{�^���̕t���Ă���ʂ����̏�ɒu�����Ƃ��āA���ʂ̃{�^�����t���Ă��Ȃ�������X�A�ԊO���Z���T�[���t���Ă��������Y�A�{�^���ʂ̏㉺������Z�ƂȂ�܂��B

�����āA�悭�݂�ƁA3�‚̐F�̐��͂��‚��������x���ɂ͂���܂���B�{�^���ʂ���ɂ��Ă��鎞�͗΂����ɔ�ׂď����Ⴍ�A�E�������ɂ��邩�����ʼn��ɐQ������Ɛ‚��Ⴍ�A�����ĐԊO���Z���T�[���������ɂ��ė�������ƁA�Ԃ��Ⴍ�Ȃ�܂��B

WiinRemote�ŏd�͂��ώ@

����͂����������ł��傤�H�����ł��I���ꂪ�n����̑S�Ă̕����ɓ����w���L���́x�ł��B���i�͒��ډ�X�̖ڂɌ����Ȃ��d�͉����x���A�e���̉������ɓ��������x�Ƃ��Ċώ@�ł��Ă���Ƃ����܂��B������O�̂��ƂȂ̂ł����A������Ƃ������������킦�܂��񂩁H����𗘗p���邱�ƂŁAWiiRemote�̌X�������o�ł��܂��B�����x�Z���T�[�O���t�̉E���ł͂��̂悤�ɂ��Ďp���𐄒肵�Ă���悤�ł��B�������A�C���‚��Ȃ���΂Ȃ�܂���A���ɂ͐l�Ԃ�WiiRemote�������U��Ƃ��ɂ͏d�͂����傫�Ȓl����͂��邱�ƂɂȂ�܂��B����ȂƂ��A���̎p������͂ǂ�ȗl�q�ɂȂ邩�A�ώ@���Ă݂Ă��������B

PowerPoint�Ńv���[���e�[�V����

���āA�V���v���Ńp���t���ȁuWiinRemote�v�ł����A���p�I�Ɏg�����߂ɁA�����ݒ肵�Ă݂܂��傤�B�����ł̓v���[���e�[�V�����\�t�g�uPowerPoint�v�ł̗��p��z�肵�Ă݂܂��B

�܂��́uHOME�v�{�^���Ńp���[�|�C���g���N���ł���悤�ɂ��܂��傤�BCtrl+P�Őݒ��ʂ�\�������āuButton Assign�v�́uButton�v��I��ŁuHome�v�ɕύX�A�����Ă������́uAssign�v���uExecute�v�ɕύX���܂��B����ɉ���Execute�ɁuC:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE�v���t�@�C���u���E�U�Ȃǂ��g���Đݒ肵�A�Ō�ɁuSet�v�������܂��B�uApply�v�������āA��������ݒ��ʂ�‚��āAHOME�{�^������������p���[�|�C���g���\�������̂��m�F���܂��傤�B�\�����ꂽ��A�D���ȃv���[���e�[�V�����t�@�C�����J���Ă����Ƃ悢�ł��傤�B

�����v�̂ŁA�ȉ��̂悤�Ɋ��蓖�ĂĂ݂Ă��������B

Button Assign �@�\
Up Up �X���C�h�߂�(�ύX�Ȃ�)
Down Down �X���C�h����(�ύX�Ȃ�)
Right Keys [PgDn] �y�[�W����
Left Keys [PgUp] �y�[�W�����߂�
A Mouse->Left Click �}�E�X�N���b�N(�ύX�Ȃ�)
B Cursor On/Off��Speed �J�[�\�����[�h�����x�ؑ�(�ύX�Ȃ�)
Plus Mixer->Volume Up �Đ����ʃA�b�v
Minux Mixer->Volume Down �r�f�I���̍Đ����ʃ_�E��
1 Keys [Esc] �����Ƃ����Ƃ��̂��߂̏I��
2 Keys [F5] �v���[���e�[�V������

�ǂ��ł��傤�H���‚���PowerPoint���A���J�b�R�悭����ł���悤�ɂȂ�܂����B���̉��p�ŁA���Ƀv���O�����������Ȃ��Ă��A�l�X�ȃA�v���P�[�V�����p��WiiRemote���g����悤�ɃJ�X�^�}�C�Y���邱�Ƃ��ł��܂��B

�����ł̓t���[�E�F�A�uWiinRemote�v���g���āAWiiRemote�̐ڑ���̓���m�F�ƁAPowerPoint��WiiRemote�ő��삷�邽�߂̐ݒ��������܂����BWiinRemote�̓V���v���ł����A�X�^�[�g�������������Ƃő����̐l�X�Ɏx�����A�l�X�ȃX�^�b�N�ň��蓮�삷�邱�Ƃ������ł��B�C���X�g�[�����s�v�ŁA�T�C�Y���������̂ŁA�����Ƃ����Ƃ��̓���m�F�̂��߂Ɏ��������Ă����ƕ֗��ł��B

���̂悤��WiinRemote�͗l�X�ȃA�v���P�[�V�����ɍ��킹�āAGUI�����Ń{�^���̊��蓖�ĂȂǂ�ݒ肷�邱�Ƃ��ł��֗��ł����A���̌ŗL�̐ݒ��ۑ����Ă��Ƃœǂݍ��񂾂�A�؂芷�����肷�邱�Ƃɂ͌����Ă��܂���B�܂��W���C�X�e�B�b�N�̑���̐M�����o�����Ƃ��c�O�Ȃ���ł��܂���B���̂悤�ȗp�r�ɂ͎��߂ʼn������uGlovePIE�v���K���Ă���ł��傤�B

�悭�����g�L�����u���[�V�����h���ĉ��H

�u�L�����u���[�V�����v�Ƃ́A�f�o�C�X�n����ł͂悭�o�Ă���p��ł��B�Z���T�[�⑪���ȂǁA����M���̓��͂Ƒ���̑ΏۂƁA�o�͂����l�Ƃ̊֌W���A�Č����̂����ɍ��킹�Č���t�����Ƃł��B�f�o�C�X����n�̃v���O���~���O�ł́A�f�o�C�X�́u���̒l�v(raw data)���A�g�p�ł���f�[�^�ɕϊ����邽�߂̑���Ƃ������܂��B

���̕ϊ��͗p�r������ɂ�肳�܂��܂ȕϊ������{����܂��B�����l�⌴�_���Z�b�g����΂������̂���A�r���Ȑ��Ƃ������񎟋Ȑ��𗘗p������@�A����l�悾���𗘗p����o���h�p�X�t�B���^��g�ݍ��킹�����@�ȂǁA���̒������@�ɂ‚��Ă͂��܂��܂ł��B

�Ȃ��̂́u�r���v�Ƃ��W�L����Ă��܂������A�ߔN�ł͌v�ʖ@�Łu�Z���v�ƕ\�L����Ă���A�����ɂ́u�Z���v�̊T�O�ɂ́u�����v���܂܂�Ȃ������ł��B����čŋ߂ł́u�L�����u���[�V�����v�̂܂܃J�^�J�i�|�󂳂�鎖�������悤�ł��B

���[�U�[�C���^�[�t�F�[�X�ȂǂŃL�����u���[�V��������A�Ƃ������ꍇ�͂����Ă����_�̃��Z�b�g�Ȃǂ��s���āA��������ɂ���A�Ƃ����s���ł��邱�Ƃ������ł��B�Ⴆ�΃^�u���b�gPC�Ȃǂ̃^�b�`�p�l�������߂Ďg���Ƃ���ʂɕ\�����ꂽ�u�{�v���N���b�N���Ă��������A�Ƃ������b�Z�[�W������o�邱�Ƃ�����܂����A�����ł�4�_�̕\����̈ʒu�ƁA�^�b�`�p�l���f�o�C�X���瑗���Ă���M����K�������邽�߂́u�L�����u���[�V�����v���s���Ă��܂��B

WiiRemote�͌v���@��ł͂Ȃ��A�Q�[���p�̃C���^�[�t�F�C�X�ł�����A���ʂ�d�͂̍Č����͂����������Ƃ߂��܂����A�����قǂł͂���܂���B�Č����̕s����A�o�N�ω��ȂǂŌ�肪�������Ƃ��Ă��A�����悤�ȑ̌����Č��ł���΂����킯�ł��B

���̂��߁AWiiRemote�ɂ́A�����x�Z���T�[�̏d�͂ɑ΂���␳�l���ۑ�����Ă���悤�ł��B�܂��ԊO���Z���T�[�̋��x�͋����A���Ȃ킿�g�p���镔���̋�ԂɈˑ����܂��̂ŁAWii�{�̑���4�i�K�ɐݒ肷�邱�Ƃ��ł���悤�ł��B���̑��A�K�v�ɂȂ�L�����u���[�V�����̎d�g�݂̓A�v���P�[�V�����J���ґ��ōl���Ď�������K�v������܂��B�������L�����u���[�V�����̕K�v�̂Ȃ��A�ɗ͏��Ȃ��菇�ň��肵�ė��p�ł���d�g�݂������ł���΂��΂炵���ł��B

GlovePIE�Ŏ���

GlovePIE�Ƃ�

GlovePIE�͍ł��g�p����Ă���AWiiRemote���T�|�[�g����R���g���[���G�~�����[�^�[�ł��BCarl Kenner�ɂ���ĊJ������Ă��܂��BGlovePIE�Ƃ́uGlove Programmable Input Emulator�v�̈Ӗ��ŁA���Ƃ��ƃ��@�[�`�������A���e�B�̂��߂̃f�[�^�O���[�u���i�u5DT�v���g���āA���܂��܂ȃQ�[�����v���C���邽�߂ɃW���C�X�e�B�b�N��}�E�X���G�~�����[�V�������邽�߂ɊJ������Ă����悤�ł��B���̐����̉ߒ���WiiRemote���T�|�[�g���A�L���ɂȂ�܂����B�����Ƃ��āA���ׂẴG�~�����[�V�������p�̃X�N���v�g�ŋL�q���܂��B�Ⴆ�΁uA�{�^�����V���b�g�AB�{�^�����{���Ɂv�Ƃ������Q�[�����ꂼ��̊��蓖�Ă��A�����ŏ������Ƃ��ł���̂ł��B

�Ⴆ�΁A�uDOOM�v�Ȃǂ̈�l�̃V���[�e�B���O�Q�[���ł悭�g����[W][A][S][D]�L�[�����ꂼ��O�㍶�E�̈ړ��L�[�Ɋ��蓖�Ă��Ă���ꍇ�AGlovePIE�X�N���v�g�ł́A�f�[�^�O���[�u�̈ʒu���g����

W = glove.z > -50 cm
S = glove.z < -70 cm
A = glove.x < -10 cm
D = glove.x > 10 cm

�ƕ\�����邱�Ƃ��ł��܂��B���ɂ��W���C�X�e�B�b�N��}�E�X�A�L�[�{�[�h�������̃L�[���͂�A�������}�N���Ƃ��Ĉ������ƂȂǂ��ł��ASAPI(�����o��API)��A�d�q���y�Ŏg����MIDI��OpenSound Control(OSC)�Ȃǂ̏o�͂��T�|�[�g���Ă���A���ɍ��@�\�ȃc�[���Ƃ����܂��B

GlovePIE�̃C���X�g�[��

GlovePIE�̃C���X�g�[���͔��ɊȒP�ł��B�����z�[���y�[�W�ɍs���A�ŐV�ł��_�E�����[�h���A�A�[�J�C�u��W�J���邾���ł��B

GlovePIE�̃z�[���y�[�W

http://carl.kenner.googlepages.com/glovepie_download

�ŐV�ł̓o�[�W����0.30�Ȃ̂ł����A�[���ȃo�O(�ԊO���Z���T�[�g�p���ɉ����x�Z���T�[�L�����u���[�V�����ɕs�)�𗝗R�Ɍ��J�����~����Ă��܂��B�W�F�X�`���[�F���Ȃǂ�������̐V�@�\�����荞�܂�Ă���悤�Ȃ̂ł����A�u���J�����܂ł̊�0.29�����g�����������v�Ə����ꂽ�܂܁A�����Ԃ�ƒ������Ԃ��o���Ă��܂��Ă��܂��BVer.0.29�̌��J��2007�N1��4���Ə��X�Â��̂ł������ɖ��͂Ȃ��̂ŁA��������_�E�����[�h���܂��傤�B

GlovePIE�̃z�[���y�[�W�F�_�E�����[�h�Ɋւ���

�_�E�����[�h�̃����N���ш�̐����Ȃǂ�4�ӏ�����܂��̂ŁA�m���Ƀ_�E�����[�h�ł��Ă��邩�ǂ����m�F���Ȃ���uGlovePIE029.zip�v���_�E�����[�h���Ă��������B

GlovePIE ver.0.29��W�J�����Ƃ���

�_�E�����[�h����ZIP�t�@�C����W�J����ƁA��������̃t�@�C��������܂��B���s�t�@�C���́uGlovePIE.exe�v�ł����A�܂��̓��C�Z���X�֌W���m�F���邽�߂Ɂureadme.txt�v���J���܂��傤�B

���C�Z���X�Ɋւ��ẮA�ȉ��̂悤�ɋL�q����Ă��܂��B

This software is copyright (c) Carl Kenner, except for scripts by other \
    authors.
By using this software you agree to obey the following license conditions:

* You can't make money using this software as part of a baseball \
    simulation. This is for contractual reasons. But you can make as much \
    money as you like using it for anything else.

* You may not use this software directly or indirectly for any military \
    purpose. This includes, but is not limited to, training, research and \
    development, controlling military hardware, directing military \
    personel, or troop entertainment. You may not use this software \
    anywhere on a military base or vessel. This applies to all versions of \
    PIE.

* You may not export this software to Israel, or use it in Israel \
    (including the occupied territories), until Israel has ended its \
    occupation of the West Bank, Gaza Strip, Lebanon, Syria, and anywhere \
    else it may occupy. If you try to run it in Israel it will give you an \
    error.

* Missionaries may not use this software. It may not be used for any \
    missionary purpose. Or any other genocidal purpose.

* You may not use this software to cheat at online or multiplayer games. \
    What constitutes cheating depends on the game and the server. Just \
    using a different input device shouldn't be considered cheating, but \
    complex scripted actions to make things easier may be considered \
    cheating. Don't get GlovePIE banned, or you will hurt everyone who \
    wants to play with a VR glove. But feel free to cheat at single player!

�Ӗ󂷂�ƁA�ȉ��̂悤�ɂȂ�܂��B�u���̃\�t�g�E�F�A�̃R�s�[���C�g��(c)Carl Kenner�ł��B���̒��҂ɂ�钘��(�X�N���v�g)�������܂��B���̃\�t�g�E�F�A���g�p���邱�Ƃɂ��A�ȉ��̃��C�Z���X�����ɏ]�����Ƃɓ��ӂ��܂��B���Ȃ��́A���̃\�t�g�E�F�A��싅�V�~�����[�V�����̈ꕔ�̂悤�ɂ��āA������ׂ��邱�Ƃ��ł��܂��񂪁A����͌_���̗��R�ł��B���̉����Ɏg�����ƂŁA�D���Ȃ���������ׂ���@�\��L���܂��B���ڂ܂��͊ԐړI�ɁA���̃\�t�g�E�F�A���R�p�ړI�Ɏg�p���Ă͂����܂���B����̓g���[�j���O�A�����J���A�R�p�n�[�h�E�F�A�̐���A�����w���A�����̌�y�Ȃǂ��܂݁A���肳��܂���B���̃\�t�g�E�F�A���R�p��n�������͌R�p�͓��Ŏg�p���Ă͂����܂���B�����PIE�̂��ׂẴo�[�W�����ɊY�����܂��B���̃\�t�g�E�F�A���A�C�X���G�����E�G�X�g�o���N(�����_���쐼��)�̂��̐�́A�K�U�n��A���o�m���A�V���A�Ƒ��̐�̋�̐�L���I����܂ŁA�C�X���G���ɗA�o�������̓C�X���G��(��L���ꂽ�̓y���܂�)�Ŏg�p���Ă͂����܂���B�������Ȃ������̃\�t�g�E�F�A���C�X���G���Ŏ��s���悤�Ƃ���΁A���Ȃ��ɃG���[��^���܂��B�鋳�t�́A���̃\�t�g�E�F�A���g�p���Ă͂����܂���B�����Ȃ�`���ړI�A�������͑��̂����Ȃ��ʋs�E�ړI�ɂ��g���Ă͂����܂���B�I�����C���܂��̓}���`�v���[���[�Q�[���ł������܂����邽�߂ɁA���̃\�t�g�E�F�A���g�p�͂��Ă͂����܂���B�s���s�ׂ��Ӗ�����Ƃ���́A�Q�[���ƃT�[�o�[�Ɉ˂�܂��B���i�ƈقȂ���̓f�o�C�X���g�����Ƃ͕s���s�ׂƂ����ׂ��ł͂���܂��񂪁A���������ȒP�ɂ��邽�߂́A���G�ȃX�N���v�g�����ꂽ�A�N�V�����͕s���s�ׂɂȂ�ł��傤�BGlovePIE���֎~����Ȃ��悤�ɂ��Ă��������B�����AVR�O���[�u�ł݂�Ȃ����‚���V�т��������Ȃ�A�V���O���v���[���[�ŕs���s�ׂ������Ȃ�����Ă��������I�v

�{����ǂ�ł�����������ŁA���̃��C�Z���X�𕶂����ɂȂ�l�͂܂����Ȃ��ł��傤�B�������̃\�t�g���g���Ă��������ɂȂ����Ȃ�Ă����b����������A�z�[���y�[�W�́uDonate�v����A��҂�Carl Kenner���ɕ��������Ƃ悢��������܂���B���ɁA�V�����@�\�ɂ‚��ẴA�C�f�B�A�Ȃǂ�����Ƌ��ɕ�W���Ă��܂��B

GlovePIE�̊�{����

�܂��A3.1�̗͂���ɉ����āAWiiRemote��Bluetooth�ڑ����Ă��������B�����ڑ����I�������uGlovePIE.exe�v���N�����܂��B

GlovePIE���N�������Ƃ���

���̌�A�T���v���X�N���v�g��ǂݍ���ŁA���ۂ�WiiRemote���g���đ�����s���������s���܂��B�����Œ��ӂł��B�X�N���v�g���z��O�̓�������邱�ƂŁA����ȑ��삪�ł��Ȃ��Ȃ�”\��������܂��B�����Ȃ����Ƃ��ɍQ�ĂȂ����߂�[Shift+P+I+E]��������[Alt+R]��[S]�Łu�X�N���v�g�̒�~�v���ł��邱�Ƃ��o���Ă����Ƃ悢�ł��傤([Shift+PIE]�͓��삵�Ȃ����Ƃ�����܂�)�B

�܂��͍ł��ȒP��WiiRemote���g���T���v���X�N���v�g�������Ă݂܂��傤�B�uFile�v���j���[����uOpen�v��I��ŁAGlovePIE�Ɠ����K�w�ɂ���uWiimoteScripts�v�t�H���_���ɂ���uWiibrator.PIE�v�����[�h���܂��B�Ȃ����̃f�B���N�g���ɂ͑�ʂ̖ʔ������ȃt�@�C����������ł��܂��BPIE�X�N���v�g�Ƃ����e�L�X�g�t�@�C���ŁA�l�X�ȃQ�[���̃G�~�����[�^�[��AWindows���WiiRemote���g�����߂̃T���v�����p�ӂ���Ă��܂��B�������Ȃǂ̃e�L�X�g�G�f�B�^�ŊJ������ҏW���邱�Ƃ��ł��܂����A���̍ۂȂ̂Łu.PIE�v�Ƃ����g���q��GlovePIE�Ɋ֘A�Â��Ă��܂��̂��悢�ł��傤�B

�T���v���uWiibrator.PIE�v�����[�h

�X�N���v�g�����[�h�����ƁA�ȉ��̂悤�ɕ\������Ă���͂��ł��B

Wiibrator.PIE
//Wiibrator 
//By deceased 

// Does not control mouse so feel free to surf ^^ 

// D pad up turns it on 
// D pad down turns it off 
if wiimote.Up 
  wiimote.Rumble = 1 
endif 
if wiimote.Down 
  wiimote.Rumble = 0 
endif

���āA���̃X�N���v�g�͏\���L�[���g���ăo�C�u���[�^�[��On/Off���邾���̃X�N���v�g�ł��̂ň��S���Ď��s�ł��܂��B[F9]�������́A���j���[��[Run!]����[Run!]��I��Ŏ��s���Ă݂܂��傤�B

�΂̎O�p��󂪁uRun�v����uStop�v�ɕς��A�X�N���v�g�\���G���A���O���[�ɂȂ�������s���ł��B�ڑ�����WiiRemote�̏\���{�^���̏�(POWER�{�^����)�������Ă݂܂��傤�B�o�C�u���[�^�[���쓮���܂��B����Ă��\���{�^���̉�(A�{�^����)�������ƁA�~�܂�܂��B���x�ł��J��Ԃ��V��ł݂Ă��������B�ЂƂƂ���V�񂾂�AGlovePIE�E�B���h�E���́uStop�v�������ăX�N���v�g���~�߂܂��傤�B

���āA�X�N���v�g��������Ă݂܂��B�u//�v�Ŏn�܂�s�̓R�����g�Ȃ̂ŁA����6�s�̃X�N���v�g�ł��B�܂��APIE�X�N���v�g�͔��ɓ��I�Ń��[�U�[�t�����h���[�ȃX�N���v�g�ŁA�قƂ�ǂ̃P�[�X�ŏ������R�[�h���s�v�ł��B��ԏォ����s����A��ԉ��܂ł����ƁA�܂��ォ����s����܂��B���̏ꍇ���錾�⏉�����Ȃǂ��Ȃ��Ă�

if wiimote.Up

�Ƃ��邱�ƂŁAWiiRemote������������A���݂̃{�^���̏�Ԃ��uwiimote.Up�v�Ŏ擾���邱�Ƃ��ł��܂��B�������uTrue/1�v�ɂȂ����Ƃ��Ɂuwiimote.Rumble = 1�v�ƂȂ�o�C�u���[�^�[���쓮���A�uendif�v��if���𔲂��܂��B�����������ꍇ�‚܂�uif wiimote.Down�v�̏ꍇ�����l�ŁA�o�C�u���[�^�[�̐U�����Ӗ�����uwiimote.Rumble�v���u0�v�ɂ��邱�ƂŐU�����~�߂܂��B

�Ⴆ�΁A�����ŐV�����V���v���ȃX�N���v�g���쐬���Ă݂܂��傤�B�uFile�v���j���[����uNew�v��I�т܂��B�uClear text box without saving changes?(�ۑ����Ȃ��Ă������ł����H)�v�Ƃ������₪�o����uYes�v�Ŗ�肠��܂���B�V�����X�N���v�g�Ƃ��Ĉȉ����e�L�X�g�{�b�N�X�ɏ����܂��B

wiimote.Rumble = wiimote.A

��������s�̃X�N���v�g�ł����AA�{�^���������Ă���Ԃ����A�o�C�u���[�^�[���‚�܂��BGlovePIE�̓X�N���v�g�L�q�ɂ‚��Ă��x���@�\������A�uwiimote.�v�Ƃ������悤�ɗ\�񂳂ꂽ�N���X���ƃs���I�h�܂ŏ����ƁA�����I�ɂ��̐�̃v���p�e�B���Ȃǂ����X�g���Ă���܂��B����Ń}�j���A�����Ȃ��Ă��ȒP�ɃX�N���v�g�������܂����A�܂��V���^�b�N�X�G���[(�����̏��������ɂ��ԈႢ)���傫�����炷���Ƃ��ł��܂��B

�����I�������A�܂��̓V���^�b�N�X���m�F���܂��傤�B���j���[�́uRun!�v����uCheck for errors�v��I�т܂��B�����ԈႢ������ƁA�Y������s���s���N�F�ɕς��܂��B�ԈႢ���Ȃ���Ή����N���܂���̂ŁA[F9]�Ŏ��s���܂��傤�B�����ɁAA�{�^���������Ă���Ԃ����o�C�u���[�^�[���‚�ΐ����ł��B�uA�{�^���A�ŁI�v�Ȃǂ��Ă݂āA�o�C�u���[�^�[�̖‚����m�F���Ă݂�Ƃ悢�ł��傤�B

�������������������A�������Ȃ��A�Ƃ������Ƃ��́A�ڑ����m�F���邽�߂ɁAWiinRemote�ȂNJm���ɓ����c�[�����N�����Ă݂�Ƃ悢�ł��傤�BBluetooth�����Ԑ؂�Ŏ����ؒf����Ă���ꍇ������܂��B�P���ȃX�N���v�g�Ȃ̂ŁA���������������Ƃ��́A�P��GlovePIE��PC���ċN�����Ă݂�̂�������ɂȂ�Ƃ�������܂��B

�o�C�u���[�^�[���g�\���h�����Ă݂悤

�����Ńo�C�u���[�^�[�Ɋւ��钍�ӂ�������ʂ��Ċm�F���܂��B�o�C�u���[�^�[���N��������ԂŃX�N���v�g���~�߂�Ɖ����N����ł��傤�H��L�̃X�N���v�g�ł́AA�{�^�����������ςȂ��ɂ�����ԂŁAGlovePIE���X�N���v�g���~�����܂��B����ƃX�N���v�g�͏I�����Ă���̂ɁA�o�C�u���[�^�[�͖‚葱���܂��B��ςł��B�\����Ԃł��B���̏�Ԃł��΂炭�����Ă����Ƃ����Ƃ����Ԃɓd�r���؂�Ă��܂��܂��B�������A�X�N���v�g���ēx�N�����Ă��AA�{�^����A�ł��Ă��A�o�C�u���[�^�[�͎~�܂�Ȃ���������܂���(����̓o�O�ł͂Ȃ����ƌ��Ă��܂�)�B

���������Ƃ��́A�Q�Ă��������AGlovePIE���I�����܂��B�X�N���v�g�̕ۑ����K�v�Ȃ�ۑ������Ă����܂��B�����āA�ēx�AGlovePIE���N�����uWiibrator.PIE�v�Ȃǂ̃o�C�u���[�^�[���g�p����X�N���v�g��ǂݍ���ŁARun����΃o�C�u���[�^�[�̖\���͎~�܂�܂��B

GlovePIE�ł‚���u���@�\�ԊO���}�E�X�v

���̃Z�N�V�����ł́AGlovePIE���g���āA���@�\�ȐԊO���}�E�X���쐬���Ă����܂��B���H�I�ȊJ����ʂ��āAWiiRemote�J���̃R�c��GlovePIE�̋��͂ȃX�N���v�e�B���O�@�\��GUI�ɂ��x���@�\���X�e�b�v�o�C�X�e�b�v�Ŋw�Ԃ��Ƃ��ł��܂��B

���@�\�ԊO���}�E�X��݌v����

�܂��͂��ꂩ��쐬����ԊO���}�E�X�ɂ‚��āA�ȒP�Ɏd�l�����߂Ă����܂��傤�B��{����Ƃ��ẮAWiiRemote���Z���T�o�[��ԊO�������Ɍ����āA�}�E�X�̂悤�ɂ��Ďg���^�C�v�̂��̂ɂ��܂��B�����������̂ł�����t�@�C�������PowerPoint�̃v���[���e�[�V�����Ɏ��ۂɎg���鍂�@�\�Ȃ��̂�z�肵�܂��B

WiiRemote������ ���蓖�Ă鑀��
�ԊO�� �}�E�X�|�C���^�̈ړ�
�\���L�[ �J�[�\���L�[
A�{�^�� �}�E�X���{�^��
A�{�^���E�_�u���N���b�N Enter�L�[
B�{�^�� �}�E�X�E�{�^��
B�{�^���E�_�u���N���b�N Delete�L�[
A+B�{�^���������� �f�X�N�g�b�v��\��
�{�{�^�� �A�v���P�[�V�����؂�ւ�[Alt+Tab]
�|�{�^�� �A�v���P�[�V�����I��[Alt+F4]
Home�{�^�� �X�N���v�g�I��
1�{�^�� GlovePIE�ŏ����^�ő剻
2�{�^�������� PowerPoint���N��
2�{�^���E�V���O���N���b�N Esc�L�[(�v���[���e�[�V�����I��)
2�{�^���E�_�u���N���b�N �v���[���e�[�V�����J�n[F5]

WiiRemote�Ȃ�ł͂́A��R����f�W�^���{�^�������p���āA�������A�_�u���N���b�N�AA+B�{�^�����������Ȃǂ̃R���r�l�[�V�������g�����g���₷������𐷂荞��ł��܂��B������񂱂̃Z�N�V�����̑̌���ʂ��āA�����g�̃A�C�f�B�A�ŐV�����@�\�𐷂荞��ł������Ƃ��”\�ł��B

�{�^���A�N�V�����̎���

�܂��͎�n�߂ɁuHome�{�^���ŏI���v���������Ă݂܂��傤�B�V�����X�N���v�g�Ƃ��Ĉȉ����L�q���Ď��s���Ă݂Ă��������BGlovePIE�X�N���v�g�͑啶���E�������͖�������܂��B

if Wiimote.Home then
 ExitScript
end if

�L�q������WiiRemote��ڑ����Run���āAHome�{�^���ŏI���ł��邩�ǂ��������Ă݂Ă��������B�uExitScript�v�Ƃ͎��s����GlovePIE�X�N���v�g���I��������R�}���h�ł��B�ڂ����́AGlovePIE�Ƃ��Ȃ��f�B���N�g���ɂ���}�j���A��(Documentation.rtf)�ɋL�ڂ���Ă��܂��B��{�I�ȃR�}���h�͂��̃Z�N�V�����ʼn�����Ă����܂��̂ŁA���܂́u���������֗��ȕ�������񂾁v�Ƃ��������ł悢�ł��傤(�{�Z�N�V�����̍Ō�ɂ܂Ƃ߂ďЉ�܂�)�B

���āA���͏\���L�[�ɃJ�[�\���L�[�����蓖�Ă܂��傤�B��قǂ̂悤��if�����‚����Ɩ��m�ɏ����₻�̌�̏������L�q�ł��܂����A����̓{�^���C�x���g�ɑ΂���L�[�A�N�V�������ʂɐݒ肵�Ȃ���΂Ȃ�܂���̂ŁA�����ƊȒP�ȋL�q�����ŏ��������Ă݂܂��B

//WiiRemote IR mouse

//Key Binds
ExitScript = Wiimote.Home
Key.Up     = Wiimote.Up
Key.Down   = Wiimote.Down
Key.Left   = Wiimote.Left
Key.Right  = Wiimote.Right

���̂悤�Ɂu=�v�ł‚Ȃ����ƂŁA�L�[���͂Ɋ��蓖�Ă�A�N�V������1�s�ŕ\���ł��܂��B�܂��u//�v�Ŏn�܂�s�̓R�����g�s�ł�(���{��͕\���㉻���Ă��܂��܂�)�B

���́u�{�{�^���v�ŃA�v���P�[�V������؂芷���A�u�|�{�^���ŃA�v���P�[�V�����I���v�ł���悤�ɂ��܂��B�uAlt+Tab�v�̂悤�ɕ����̃L�[���g���ꍇ�͈ȉ��̂悤�ȕ\�L�����܂��B

Key.Alt+Tab = Wiimote.Plus
Key.Alt+F4  = Wiimote.Minus

�ȒP�ł��ˁI�������uKey.Alt+Key.Tab�v�ƕ\�L���Ă����܂��܂���B

�����āA����́uWiiRemote��A�{�^����B�{�^���𓯎��ɉ������Ƃ��ɁA�f�X�N�g�b�v��\������v�Ƃ����A�N�V�����ł��B

Key.Windows+D = Wiimote.A and Wiimote.B

���́AWiiRemote��A,B�{�^���̃_�u���N���b�N���g����Enter��Delete����͂ł���悤�ɂ��܂��B

Key.Enter  = DoubleClicked(Wiimote.A)
Key.Delete = DoubleClicked(Wiimote.B)

�uDoubleClicked()�v�Ƃ����֐����g�����ƂŁA�_�u���N���b�N�𔻒�ł��܂��B�����Ŏ��ۂɓ�����������߂ɁA�������Ȃǂ����s���Ă���X�N���v�g��Run���Ă݂āA�{�{�^���ŃA�v���P�[�V������؂芷���A�\���{�^����_�u���N���b�N�������Ă݂�Ƃ悢�ł��傤�B�Ō��Home�{�^���ŃX�N���v�g���~���܂��B

���́A�u2�{�^���v�ɂ��낢��ȋ@�\�����蓖�ĂĂ݂܂��B�������A�V���O���N���b�N�A�_�u���N���b�N�ŁA���ꂼ��PowerPoint�̋N���AEsc�L�[�AF5�L�[�Ɋ��蓖�Ă܂��B

2�{�^����PowerPoint���N��
Execute("C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE")
 = HeldDown(Wiimote.Two, 1s)
Key.Escape = SingleClicked(Wiimote.Two)
Key.F5     = DoubleClicked(Wiimote.Two)

HeldDown(�Ώ�,�b��)�Ƃ��邱�ƂŁA�����������o�ł��܂��B�P�ʂ͕b�ł��B�u0.5�v�Ȃǂł��悢�ł��傤�BExecute("���s�t�@�C����")�ŔC�ӂ̃A�v���P�[�V�������N���ł��܂��B�V���O���N���b�N�A�_�u���N���b�N�����l�Ɋ֐����g���Č��o���邱�Ƃ��ł��܂��̂ō��܂łƓ����悤�Ɋ��蓖�Ă܂��B

���āA���ۂɁu2�{�^���v�𒷉������APowerPoint�������オ������A���x�̓_�u���N���b�N�Ńv���[���e�[�V�������N���A����ɃV���O���N���b�N�Ńv���[���e�[�V�����I���A�u�|�{�^���v��PowerPoint�I���A�Ǝ����Ă݂Ă��������BEsc�L�[�͑��̃A�v���P�[�V�����Ȃǂł��悭�g���܂��̂ł����Ɋ��蓖�ĂĂ����͕̂֗������ł��B

PowerPoint���C���X�g�[������Ă��Ȃ��ꍇ�͑��̃A�v���P�[�V�����Ŏ����Ă݂܂��傤�B�Ⴆ�΁uExecute("mspaint.exe")�v�Ƃ��邱�ƂŁu�y�C���g�v���N�����܂��BPrintScreen�L�[�ƒ���t��(Ctrl+V)�ł��ʔ����ł��傤�B

�y�C���g�Ŏ����ꍇ�̃X�N���v�g
Execute("mspaint") = HeldDown(Wiimote.Two, 1s)
Key.PrintScreen = SingleClicked(Wiimote.Two)
Key.Ctrl+V      = DoubleClicked(Wiimote.Two)

�u�|�{�^���v�������ďI������Ɓu�ۑ����܂����H�v�Ƃ�����܂����A�\���L�[�̉E�A�����āuA�{�^���v�̃_�u���N���b�N�Łu�������v��I�����邱�Ƃ��ł��܂��B�����ȒP�ȑ���Ȃ�Ȃ�ł�WiiRemote�łł������ł��ˁI

�Ō�ɁA���E�̃}�E�X�{�^�������ꂼ��A,B�{�^���ɁA�����āu1�{�^���v�ɂ�GlovePIE�̕\���؂�ւ��@�\�����蓖�Ă܂��B

UnMinimizePie = HeldDown(wiimote.One, 1s)
MinimizePie   = wiimote.One

Mouse.LeftButton  = Wiimote.A
Mouse.RightButton = Wiimote.B

�����܂ł̍�ƂŃX�N���v�g�͈ȉ��̂悤�ɂȂ��Ă���͂��ł��B

WiiRemote�{�^���A�N�V����(������)
//WiiRemote IR mouse (part for buttons)

//Key Binds
ExitScript = Wiimote.Home
Key.Up     = Wiimote.Up
Key.Down   = Wiimote.Down
Key.Left   = Wiimote.Left
Key.Right  = Wiimote.Right

//combination
Key.Alt+Tab = Wiimote.Plus
Key.Alt+F4  = Wiimote.Minus
Key.Windows+D = Wiimote.A and Wiimote.B

//Double Clicks
Key.Enter  = DoubleClicked(Wiimote.A)
Key.Delete = DoubleClicked(Wiimote.B)

//Multifunctions on Two-Button
Execute("C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE") = \
    HeldDown(Wiimote.Two, 1s)
Key.Escape = SingleClicked(Wiimote.Two)
Key.F5     = DoubleClicked(Wiimote.Two)

//Hide and Show by One-Button
UnMinimizePie = HeldDown(wiimote.One, 1s)
MinimizePie   = wiimote.One

//Mouse Buttons are linking to A and B
Mouse.LeftButton  = Wiimote.A
Mouse.RightButton = Wiimote.B

�������ł��傤���HGlovePIE�X�N���v�g�̒Z���L�q�����ŁA���Ȃ荂�@�\�ȃc�[�����‚���邱�Ƃ������ł����ł��傤���H

�f�o�b�O�@�\�E�֐��E�t�B���^�̊��p

���āA�{�^���A�N�V��������ʂ�g�����Ȃ���悤�ɂȂ��āA���񂾂�y�����Ȃ��Ă����Ƃ���ł��傤�I�������܂����̏�Ԃł́A�}�E�X�|�C���^�͑��ς�炸�����܂���B�Z���T�[�o�[�̐ԊO����WiiRemote�������āA���݂Ƀ}�E�X�|�C���^������ł�����ǂ�ȂɊy�����ł��傤���B

�͂��C������}���āA�܂��́u�f�o�b�O�@�\�v���w�т܂��傤�B

��قǂ̃X�N���v�g�̈�ԉ��Ɉȉ��̋L�q�𑫂��Ă݂܂��傤�B

Debug = mouse.x

���s����ƁAGlovePIE�́uRun�{�^���v�̉E���ɁA�Ȃɂ�琔�����\�������悤�ɂȂ����͂��ł��B����͌��݂̃}�E�X��X(������)�̒l�ł��B�����Ń}�E�X�𓮂����Ă݂܂��傤�B�l�͍�����E�ɍs���ɂ‚�A�[������1�ւ̏������Ƃ�͂��ł�(�����l��[0,1]�ƕ\�����܂�)�B�uDebug=�v�Ƃ��邱�ƂŁA�f�o�b�O�p�ɓ����̒l��\������@�\�ł��B

�����āA�ȉ���DebugPrint()�֐��������Ă݂܂��傤�B

Debug = mouse.x
DebugPrint("X="+mouse.x+" Y="+mouse.y)

����͕ʂ̃E�B���h�E���J���A���n��ł�葽���̃f�[�^��ǂނ��Ƃ��ł��܂��B�p�r�ɍ��킹�Ďg��������Ƃ悢�ł��傤�B

���āA����ł͂‚��ɃZ���T�[�o�[���g���āA���̃f�o�b�O�E�B���h�E�ɐԊO���Z���T�[�̒l��\�����Ă݂܂��傤�B��قǂ̃e�X�g�R�[�h���ȉ��̂悤�ɏ��������܂��B

Debug = "mx="+mouse.x+" my="+mouse.y
if Wiimote.dot1vis then
 DebugPrint("X="+Wiimote.dot1x+" Y="+Wiimote.dot1y)
end if

�udot1vis�v���u�ŏ���1�_�ڂ������邩�ǂ����v�A�udot1x�v�Ɓudot1y�v�͂��̍��W��\���Ă��܂��B

�����������Ă݂܂��傤�B�Œ�ł�1�_�̐ԊO��������������΂悢�̂ŁA�߂��ɃZ���T�[�o�[���Ȃ��ꍇ�́A���z����d�������Ȃǂ�T���Ă�����s���܂��傤�B�����Ƃ��Ďg���邩�ǂ����s���ȂƂ��́A���炩����WiinRemote���g���Ċm�F����ƕ֗��ł��B

�ʃE�B���h�E�\���ɐԊO���Z���T�[�̒l���\�������

�ԊO�������Ɍ������Ƃ��A�f�o�b�O�E�B���h�E�ɒl������������Ă����l�q��������ΐ����ł��I�l������������Ȃ��ꍇ�́AWiinRemote���‚����ĐԊO�����������F���ł��Ă��邩�����Ă݂܂��傤�B�E�B���h�E�����‚���Ȃ��Ƃ��́AGlovePIE�̃E�B���h�E�̗����ɉB��Ă��邱�Ƃ�����̂Œ��߂��Ă݂܂��傤�B

���āA�����I�ɂ͂���dot1x,dot1y���}�E�X��x,y�Ɋ��蓖�Ă�Ί����A�Ƃ������ƂȂ̂ł������ۂɂ͂����P���ł͂���܂���B

���̂܂܂ł̓}�E�X�|�C���^�͏�ɉE���ɍs���Ă��܂�
Mouse.x = Wiimote.dot1x
Mouse.y = Wiimote.dot1y

���͂��̂܂܂ł͉�ʏ�̃}�E�X�|�C���^��WiiRemote�̐ԊO���Z���T�[���擾����l�Ƃ̃X�P�[���������Ă��܂���B����ɓ�������̋ɐ�(����)�������Ă��܂���B����̃C���[�W�Ƃ��ẮAWiiRemote����Ɍ�������}�E�X�|�C���^����ɁA���Ɍ�������}�E�X�|�C���^�����ɍs���ė~�������������܂�(������Wii�p�Q�[���������ł���悤��)�B���̂��߁A�X�P�[�����O�����āA����ɂ��鎲�̐����𔽓]������K�v������܂��B

WiinRemote��A�f�o�b�O�o�͂Ŋώ@�ł���悤�ɁAWiiRemote�̐ԊO���Z���T�[�͐�������X��[0,1023]�̒l��A��������Y��[0,767]�̒l����Ƃ�܂��BWiiRemote���Z���T�[�o�[�Ɍ������ďォ�牺�Ɍ�����Ƃ��AWiinRemote����݂���ԊO���̓_���͏㕔���牺���A���lX�̓[������͂��܂���767�Ɍ������đ������Ă����܂��B�܂�������E�Ɍ������Ƃ��AWiinRemote����݂���ԊO���̓_���͉E�����獶���ցA���lX��1023����n�܂��ă[���Ɍ������Č������Ă����܂��B

�΂��č��ӑ��̃}�E�X�|�C���^�̍��W�͍����(0,0)�A�E����(1,1)�Ƃ���[0,1]�̒l��ƂȂ��Ă��܂��B�����قȂ�l����X�}�[�g�ɂ‚Ȃ��֐����uMapRange(x, a,b , c,d )�v�ł��Bx�Ƃ����l��[a,b]���Ƃ���Ƃ̓��͒l���A�l��[c,d]�ɕϊ����邱�Ƃ��ł��܂��B����āA�ȉ��̂悤�Ɋ֐����L�q���邱�ƂŁA���������슴��������悤�ɕϊ�����܂��B

�������ϊ�����鎮
Mouse.x = MapRange(Wiimote.dot1x, 1023,   0 , 0,1)
Mouse.y = MapRange(Wiimote.dot1y,    0, 767 , 0,1)

���āA����Ŋ����I�Ǝv������A���s���Ă݂�Ɓc�ǂ��ł��傤�H������a���͂���܂��񂩁H�l�ɂ���Ă͊����Ȃ���������܂��񂪁A���ۂɂ��̐ԊO���}�E�X���g���āA�t�H���_���J���A�t�@�C�����ړ����āc�Ƃ���������������Ă݂�Ƃ悢�ł��傤�B����ƃ|�C���^���A�����Ƀu���u���ӂ邦�Ĕ��ɑ��삵�Â炢�͂��ł��B���́u�ӂ邦�v�ɂ͂����Ȍ���������܂��B��‚͐ԊO���Z���T�[�̃m�C�Y(���Ɂg�h���t�g�m�C�Y�h�ƌĂ΂�邱�Ƃ�����܂����A�Z���T�[�̓������킩��킯�ł͂Ȃ��̂ŒP�Ɂg�m�C�Y�h�Ƃ��Ă����܂��傤�j�A���ꂩ��l�Ԃ̎肻�̂��̂������Ă�������Ȑk���ł��B�}�E�X�̏ꍇ�͊��̏�̖��C�ŋC�ɂȂ�Ȃ��̂ł����AWiiRemote�̏ꍇ�͋󒆂ŁA���������Ȃ荂�������x�̌v�����s���̂ŁA���̂悤�Ȑl�Ԃ̎�̐k���̑��݂��������Ȃ���������Ă����K�v������܂��B�M�������̒m���͂��̂悤�ȃP�[�X�Ŕ��ɖ��ɗ��‚ł��傤�B���̏ꍇ�͋}���ȓ����ł��鍂���g��������������u���[�p�X�t�B���^�v�����ʓI�ł͂Ȃ��ł��傤���B

����b�͂��Ă����A���[�p�X�t�B���^�͕��ς��Ƃ邱�ƂŎ����ł��܂��BGlovePIE�X�N���v�g�ɂ͂����������֗��Ȋ֐�����������������Ă��܂��B

Smooth(x, [ExtraFrames, [DeadbandDistance]])
Smooths�֐��͒lx���ߋ���[ExtraFrames]�̌����������‚����ĕ��ς��Z�o���܂��B����[DeadbandDistance]�ȏ�̕ύX���Ȃ���΁A�S�Ăɂ����ĕύX���Ȃ��������̂Ƃ��Ĕ��f���܂�(�ȗ����̃f�t�H���g[DeadbandDistance]��0)�B

��قǂ�Mouse�ւ̑���̎��ɂ����āASmooth�֐���������Ă݂܂��傤�BExtraFrames��3�ɂ��Ă����܂��B����ʼnߋ�3�t���[���̒l���g���ĕ��ς��Ƃ�܂��B�f�o�b�O�o�͂��A�ȉ��̂悤�ɂ������萮�����܂��B

���[�p�X�t�B���^������
if Wiimote.dot1vis then
 Mouse.x = MapRange(Smooth(Wiimote.dot1x, 3), 1023,    0, 0,1)
 Mouse.y = MapRange(Smooth(Wiimote.dot1y, 3),    0, 767 , 0,1)
Debug = "mx="+Mouse.x+" my="+Mouse.y+" IRX="+Wiimote.dot1x+" \
    IRY="+Wiimote.dot1y
end if

�ǂ��ł��傤���H�����ƈ��芴�̂���}�E�X�|�C���^�ɂȂ����̂ł͂Ȃ��ł��傤���H�M�������̗��_�ł́A�K�؂�ExtraFrames���Z�o������@������܂����A����̏ꍇ�͌o���I�ɓ���Ă��S�����Ȃ��ł��傤�B3�`10���x�Ŏ����Ă݂�Ƃ悢�ł��傤(�l���傫���Ȃ�ƃX���[�X�ɂ͂Ȃ�܂����A���̕��������d�����Ȃ�܂�)�B

���āA����ō��@�\�ԊO���}�E�X�͈�U�����ł��B�����܂ł̑S�ẴX�N���v�g���f�ڂ��܂��B

���@�\�ԊO���}�E�X(������)
//WiiRemote IR mouse (basic)

//Key Binds
ExitScript = Wiimote.Home
Key.Up     = Wiimote.Up
Key.Down   = Wiimote.Down
Key.Left   = Wiimote.Left
Key.Right  = Wiimote.Right

//combination
Key.Alt+Tab = Wiimote.Plus
Key.Alt+F4  = Wiimote.Minus
Key.Windows+D = Wiimote.A and Wiimote.B

//Double Clicks
Key.Enter  = DoubleClicked(Wiimote.A)
Key.Delete = DoubleClicked(Wiimote.B)

//Multifunctions on Two-Button
Execute("C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE") = \
    HeldDown(Wiimote.Two, 1s)
Key.Escape = SingleClicked(Wiimote.Two)
Key.F5     = DoubleClicked(Wiimote.Two)

//Hide and Show by One-Button
UnMinimizePie = HeldDown(wiimote.One, 1s)
MinimizePie   = wiimote.One

//Mouse Buttons are linking to A and B
Mouse.LeftButton  = Wiimote.A
Mouse.RightButton = Wiimote.B

//Assign Infrared as mouse input
if Wiimote.dot1vis then
 Mouse.x = MapRange(Smooth(Wiimote.dot1x, 3), 1023,    0, 0,1)
 Mouse.y = MapRange(Smooth(Wiimote.dot1y, 3),    0, 767 , 0,1)
Debug = "mx="+Mouse.x+" my="+Mouse.y+" IRX="+Wiimote.dot1x+" \
    IRY="+Wiimote.dot1y
end if

���āA���ۂɎg������Ń{�^���A�T�C����ׂ��ȃp�����[�^�[�Ȃǂ�ύX���Ă݂�Ƃ悢�ł��傤�B�Ȃ����̃X�N���v�g�͐ԊO���������Ȃ��Ƃ��̓}�E�X�����D���܂���̂ŁA�}�E�X�Ƌ�����Ƃ��邱�Ƃ��ł��܂��B���s�����܂܃^�X�N�o�[�ɂ��܂��Ă�����(�ŏ����{�^���̍��Ƀ^�X�N�o�[�i�[�{�^��������܂�)�A�����ƕ֗��ŃJ�b�R�C�C�ł��B

A+B�{�^�����������Ńf�X�N�g�b�v��\�����A�{�{�^���ŃA�v���P�[�V������؂芷���AB�{�^���ʼnE�N���b�N�A�\���L�[�ōׂ��ȍ�Ƃ����AA�{�^���̃_�u���N���b�N�Ō���A2�{�^����Esc�c�Ƃ����������Ŋ����Ɖ����ɂȂ��Ă��܂��B�X�N���v�g��Home�{�^���������΂��‚ł��I���ł��܂��B

GUI���‚������X�N���v�g�L�q�x��

���āA�����قǍŌ�ɐԊO���̍��W�n���}�E�X�̍��W�n�ɍ��킹�邽�߂ɁA�V����MapRange�Ƃ����֐����g���܂����BGlovePIE�͔��ɍ��@�\�ȃX�N���v�g�‹��𑕔����Ă���̂ŁA���������umouse�v�Ƃ������L�[���[�h��֗��Ȋ֐��A�R�}���h�Ȃǂ��A�t���̃}�j���A�������ŒT���Ă���̂�(�������u�������v�Ɩ��L����Ă��܂�...)�A�Ȃ��Ȃ����̐܂���Ƃł��B

GlovePIE�̐V�@�\�Ƃ��āuGlovePIE GUI�v����������Ă��܂��B�O���t�B�J���Ȋ‹��ŁA���o�͂̊֌W�����т‚���Ǝ����I�ɃX�N���v�g���쐬����A�ڑ��֌W�Ȃǂ��Ǘ����Ă����悤�ł��B�}�j���A�����悭�ǂ�ł����ƁuWiiRemote�֌W�̋@�\��GUI���g��Ȃ������ǂ��v�Ə�����Ă���̂ł����A�M�҂����������o�ł́AWiiRemote���L�[�{�[�h�E�}�E�X���Ɏg���̂ł���Ώ\���g���܂����A�ŏI�I�Ƀe�L�X�g�ŕ\�������X�N���v�g���S�ĂȂ̂ŁAGlovePIE�̋@�\��f�������ׂ��ł͂��Ȃ�𗧂Š‹��ł��̂ŏЉ�Ă����܂��B

���K�̂��߂ɁA��قǍŌ�ɍ쐬����WiiRemote���}�E�X�̕ϊ�����GUI�ō쐬���Ă݂܂��傤�B�܂��͐�قǍ쐬�����u���@�\�ԊO���}�E�X�v��ۑ����āA��UGlovePIE���N���������Ă��������B�V����GlovePIE���N��������A���j���[�́uEdit�v�̉�������ɂ���uGUI�v�Ƃ����^�u���N���b�N���Ă��������B�{�^����2�‚���܂����uDetect Output Emulate�v�������ƁA�g�p�”\�ȏo�̓f�o�C�X�����X�g����܂��̂ŁA�uOutput Device�v����uMouse�v��I��ł��������B���ɂ�������̑���”\�ȃv���p�e�B������܂��̂ł�������ux�v��I�сuEdit Manualy�v�{�^���������܂��B

GlovePIE GUI

�uInput Device�v�Ƃ����v���_�E��������܂��̂ŁA��������uWiimote�v��I�т܂��B�uNumber�v�͕�����WiiRemote��ڑ������ꍇ�ł��̂ŋ󔒂̂܂܂ŁA���ׂ̗́uPart of device, or a numeric value, or expression:�v�Ɂudot1x�v�Ə����Ă݂Ă�������(���͎x���@�\�����łɓ����Ă���͂��ł�)�B�v���_�E������I������̂��悢�ł��傤�B

����ɁuMore�v�Ƃ����{�^���������āA�ڍׂ�\�����܂��B�uFunction:�v�Ƃ����v���_�E���ŁuSmooth�v��I�ԂƁuFrames�v������܂��̂Łu3�v��ݒ肵�A�Ō�ɁuConvert from source range�v����[min]��[max]�����ꂼ��A�f�t�H���g�œ����Ă���[0,1023]����[1023,0]�ɏ��������āA�Ō�ɁuApply�v�Ƃ����傫�ȃ{�^���������Đ��b�҂��܂��B

GUI�^�u����uUntitled�v�ƕ\������Ă���ʏ�̃X�N���v�g�^�u�ɖ߂�܂��B����ƁA

Mouse.x = MapRange(Smooth(Wiimote.dot1x, 3), 0,1023, 0,1)

�Ƃ����悤�ɁA��قǂƑS�������X�N���v�g��������������Ă��邱�Ƃ��m�F�ł��܂��B���������s���ł��܂����A�����菇���ēx�uGUI�v�^�u�ɖ߂��āumouse�v���uy�v���uEdit Manualy�v���uWiimote�v�c�Ƃ����悤�ɑI��Ŋ��������Ă݂Ă��������BGUI�ō쐬�����X�N���v�g�͕K�������Ɍ����悤�ł�(GlovePIE���̂��葱���^����ł͂Ȃ��̂ŁA���Ԃ����ɂȂ邱�Ƃ͂��܂�Ȃ�)�B

����͐V�K�X�N���v�g�Ŏ������܂������A�����̃X�N���v�g�ł��\���ɗ��p�ł��܂��B�V�@�\��lj�����Ƃ��A�V�����L�[�{�[�h�Ɋ��蓖�Ă��������̂��킩��Ȃ��Ƃ��A�K�؂Ȓl���������������{�I�Ȓl�𒲂ׂ�̂��ʓ|�ȂƂ�...�Ȃǂɔ��ɖ��ɗ����܂��BWiiRemote�ւ̏o��(�Ⴆ��LED��o�C�u���[�^�[�A�X�s�[�J�[�Ȃ�)���܂��T�|�[�g����Ă��܂��񂪁AMIDI�Ȃǂ͂��Ȃ萮������Ă���悤�Ȃ̂ŁA����A�A�b�v�f�[�g�����悤�ł���΋@�\���������҂����Ƃ���ł��B

�������悤�FLED�A�X�s�[�J�[�Ńo�C�u���[�^�[

���������́A�]�͂̂���l�����ł��܂��܂���BGlovePIE�̂��—l�X�ȋ@�\�𗘗p���āA��葽���̋@�\���������Ă݂܂��傤�B

�T���v���X�N���v�g��ǂ���

���āA���@�\�ԊO���}�E�X�����͂Ŋ���������ꂽ���Ȃ��́A��������PIE�X�N���v�g��ǂނ̂�����Ȃ��Ȃ��Ă���͂��ł��B�uWiimoteScripts�v�t�H���_�̒��ɂ��邳�܂��܂ȗ��ǂ�ł݂邱�Ƃ������߂��܂��B������PC�Q�[���̃L�[�{�[�h�E�}�E�X�̃G�~�����[�V�����������̂ł����A���ȒP�ɑ���ł���悤�l�X�ȃX�N���v�e�B���O�e�N�j�b�N���ǂݎ��܂��B���ɂ����̃f�B���N�g���ɂ́AWiiRemote�̊�{�@�\�ɑ΂������I�ȃX�N���v�g�A�Ⴆ�΃o�b�e���[�c�ʂ�\������uWiiBattery.PIE�v��AMidi�Ƒg�ݍ��킹���ȈՃh�����Z�b�g�uWiiDrums2.PIE�v�A�k���`���N�܂Ŏg�����{�i�M�^�[�uWiitar�v�A�����x���狗�������߂悤�Ƃ���uTestVelocityPos.PIE�v�ȂǎQ�l�ɂȂ���̂�����܂�(�Ȃ�Ȃ����̂���R����܂��I)�B

�E�B���h�E�̋��E��U���Œʒm

�o�C�u���[�^�[�͍ŏ��Ɏ������Ƃ���uWiimote.Rumble�v�Ő���ł��܂��̂ŁA�}�E�X�|�C���^�����݂̃E�B���h�E�̋��E�ɂԂ‚�������A�U������悤�ȃX�N���v�g��lj����Ă݂܂��B

�E�B���h�E�̋��E�Ńo�C�u���[�^�[��‚炷
 var.hit = false;
var.hit = mouse.CursorPosX<Window.Left or \
    mouse.CursorPosX>Window.Left+Window.Width
var.hit = var.hit or mouse.CursorPosY<Window.Top or \
    mouse.CursorPosY>Window.Top+Window.Height
 Wiimote.Rumble =var.hit;

�ϐ�var.hit�͌��݂̃}�E�X�|�C���^�̈ʒu�ƁA���݂̃E�B���h�E���E���ׂāA�|�C���^���O�ɂ���ꍇtrue�ɂȂ�܂��B�����Wiimote.Rubmle��w�‚Ȃ��Ă��܂��B

��������p����Ύ㎋�̕��≽�炩�̗��R�Ń}�E�X���g���Ȃ�����(�Ⴆ�ΎY�܂ꂽ�΂���̐Ԃ�V����������Ă���...)�ł��G�N�X�v���[���[�̂悤��GUI���G��₷���Ȃ邩������܂���B

LED�Ń^�C�}�[�����

�w��ȂǂŃv���[���e�[�V���������Ă���Ƃ��ɁA�‚��‚����ԃI�[�o�[���Ă��܂����肵�܂��񂩁H�ł����{�ԂɂȂ�Ƌt�Ɏ��Ԃ��C�ɂȂ肷���āA���X�Ƙb���ł��Ȃ�������c�B���̃X�N���v�g�́A�茳�Ɏ����Ă���ł��낤WiiRemote��LED���g���āA�c�莞�Ԃ�\�����܂��B

LED�ɂ��^�C�}�[�\��
Wiimote.Led1 = HeldDown(true, 5s);
Wiimote.Led2 = HeldDown(true, 10s);
Wiimote.Led3 = HeldDown(true, 20s);
Wiimote.Led4 = HeldDown(true, 1 minutes);

���̗�ł�WiiRemote�̐FLED�������珇�ɁA5�b�A10�b�A20�b�A1���c�Ƃ����悤�ɓ_�����čŌ��4�‘S�_�����܂��BWindows�̃v���O���X�o�[�̂悤�ȃC���[�W�ł��ˁB���炩���߃v���[���e�[�V�����̍\���Ƌ��ɁA�K�؂ȃ��b�v�^�C����ݒ肵�Ă����Ƃ����̂��悢�ł��傤�B

�X�s�[�J�[��‚炷

�Ō�ɃX�s�[�J�[���g���Ă݂܂��BGlovePIE�Ŏg����WiiRemote�̃X�s�[�J�[�@�\�͔��ɒ჌�x���ȋ@�\�����񋟂���Ă��܂���B���g���ƃ{�����[����ݒ肵�A���ꂪ�K�؂Ȓ��������Đ������悤�Ɏ����ŊǗ�����K�v������܂��BWAV�t�@�C�����Đ��ł���悤�ȋ@�\�����̂����o�Ă���̂�������܂��񂪁c�B���̃X�N���v�g�͂��̍\���𗝉����邽�߂����̖ړI�ŏ�����Ă��܂��B1�{�^�����������їl�X�ȉ�(�m�C�Y�H)���‚�܂��B

if Wiimote.One then
 Wiimote.Volume = 1.00
 Wiimote.SampleRate = 3640 Hz
 while ( true )
  if var.f<=0 then
   var.f=360
  end if
// wait 10ms
debugprint("f="+var.f + "Cos:"+cos(var.f)+" \
    Freq:"+abs(500*cos(var.f)+1000));
  Wiimote.Frequency =abs(500*cos(var.f)+1000)
// Wiimote.Frequency = 261.62
  var.f=var.f-10;
 end while
else
 wait 1000ms
 Wiimote.Frequency = 0Hz
end if

�R�����g�A�E�g����Ă��܂����A�����‚��̎��g��(���Ƃ���261.62Hz)�ȂǂŃL���C�ɕ������鉹�����݂��܂��B�C���^�[�l�b�g��T���Ɖ��K�Ǝ��g���̊֌W�ɂ‚��Ẵf�[�^������܂��̂ŁA���̎��g�����g���Ή��K��\�����邱�Ƃ��”\�ł��傤(��͂艹���͂��������ł���...)�B

�R�}���h���C���ɂ��N��������

PIE�X�N���v�g����荞��ł����ƁA���x��GlovePIE����ǂݍ���Ŏ��s�c�Ƃ������ꂪ�ʓ|�ɂȂ��Ă���͂��ł��B�A�[�g��i�̓W���ȂǂɎg���ꍇ�͂��ЂƂ������N�����������Ƃ���ł��BGlovePIE�̓R�}���h���C������̋N�����T�|�[�g���Ă��܂��B

�N�����̃I�v�V�����ŁA�ȉ��̂悤�ɉ������Ă��܂��B

GlovePIE.exe�ɑ����Ĉȉ���3��ނ̕��@�Ńt�@�C�������w�肵�܂��B�󔒂Ȃǂ�����ꍇ�̓N�H�[�e�[�V�����u"�v�ň͂ނ̂�Y�ꂸ�ɁB�g���q�u.PIE�v�͊܂�ł��܂܂Ȃ��Ă��悢�悤�ł��B

filename.PIE
�N�����ɊJ���Ă���PIE�X�N���v�g���w��B�uRun�v���j���[����uRun!�v��I�΂Ȃ�������s����Ȃ��B
-filename.PIE
��L�Ɠ��l�A�N����͎����ŃX�N���v�g���J�n����
/r:filename.EXE
PIE���N�������Ƃ��ɁA�����J�n���鑼�́u.EXE�v�`���̎��s�t�@�C�����w��B�Ⴆ�΃Q�[����PIE�X�N���v�g�𓯎��N���ȂǁB

�Ⴆ�Έȉ��̂悤�ȃo�b�`�t�@�C���������Ă����΁A�����ɍ쐬�����ԊO���}�E�X���g���܂��B

startIRmouse.bat
"C:\GlovePIE029\GlovePIE.exe" -"C:\GlovePIE029\IRmouse"

�������IRmouse.PIE�͎w�肵���ꏊ�ɕۑ����Ă����Ă��������B

GlovePIE�̉”\����GlovePIE�X�N���v�g�̎g�����Ȃ��ɂ���Ƃ����Ă��ߌ��ł͂���܂���B�{����WiiRemote�ɂ��v���O���~���O�̂��߂̖{�ł����A���̃Z�N�V�����Ŋw�񂾂Ƃ���AGlovePIE�ɂ��X�N���v�e�B���O�����ł����Ȃ�̂��Ƃ��ł��܂��B�܂��AGlovePIE��MIDI�����łȂ��W���C�X�e�B�b�N��f�[�^�O���[�u�AOSC��SpeechAPI�Ƃ��������̃C���^���N�V�����Z�p�ł��g���Ă���悤�Ȋ�{�I�ȃ��[�U�[�C���^�t�F�[�X���Ӌ@��̃G�~�����[�^�[��R���o�[�^�[�Ƃ��Ẵ|�e���V�������ƂĂ������\�t�g�E�F�A�ł��B�܂��A���Ȃ�l�X�Ȍ���̎d�l����荞��ł���̂ŁA�v���O���~���O����}�j�A�Ƃ��Ă��׋��ɂȂ�܂��B

����ł��̏͂͂����܂��ł��BBluetooth�ڑ���WiinRemote��GlovePIE�ȂǁA��{�ƂȂ�c�[���̎g�����͂�������Ɨ����ł����ł��傤���H���̐�̃v���O���~���O�҂ɓ���O�Ɂu�킩�����‚���v��E���Ă����Ă��������B�܂������ł̒m���́A���ۂɐV�����n�[�h�E�F�A���w��������A�V������i���������A�W�����s����ł̉������s������Ƃ������Ƃ��ɂ��̏͂Ŋw�񂾓��e�͕K�����ɗ��‚��̂ł��B

C++��C#�ł܂Ȃ�WiiRemote�v���O���~���O

���̏͂ł�WiimoteLib�Ƃ���API�𗘗p���āAWiiRemote�̃v���O���~���O�̊�b��������Ă����܂��B�v���O���~���O�‹��Ƃ��āA�����ŗ��p�ł���uVisual C++ 2008 Express Edition�v�������́uVisual C# 2008 Express Edition�v���g���܂��B�‚܂�v���O���~���O����Ƃ��āAC++��C#�𓯎��ɕ��񂵂Ĉ����܂��B

�܂��A�{�͂�C#.NET�ɂ��v���O���~���O�T���v���͋���H�Ɛ�卂���w�Z�̏��␒�V�搶(http://www.kosaka-lab.com/)�̋��͂ɂ����̂ł��B�v���O���~���O���S�҂ł��킩��₷�������ł���悤�ɁA�ł��邾�������̃T���v���𒚔J�ɏ���ǂ��ĉ�����邱�ƂŁAWiiRemote�v���O���~���O��̌����邱�Ƃ��ł���悤�ɂȂ��Ă��܂��B

�v���O���~���O�‹��̃Z�b�g�A�b�v

���̃Z�N�V�����ł́A�����ŗ��p�ł���uVisual C++ 2008 Express Edition�v�ƁuVisual C# 2008 Express Edition�v���Z�b�g�A�b�v���܂��B���ɂ����̐��i�̏�ʃo�[�W����(Standard Edition�Ȃ�)���C���X�g�[������Ă������AC++�AC#�̂����ꂩ�����K�v�łȂ����́A�K�v�ȂƂ��낾���Q�Ƃ��Ă��������B

Visual C# 2008 Express Edition�̃Z�b�g�A�b�v

Visual C# 2008 Express Edition�̃Z�b�g�A�b�v�ɂ‚��ẮA�}�C�N���\�t�g�̌����T�C�g�ɒ��J�ɉ������Ă���܂��B

http://www.microsoft.com/japan/msdn/vstudio/express/beginners/2008/vcsharp.aspx

Express Edition��Web�C���X�g�[�����_�E�����[�h���A���v��\������A�v���P�[�V���������ۂɍ���Ă݂邱�Ƃ��ł��܂��BC#�͂��΂炭�g���\��͂Ȃ�����ǂ��A�C���X�g�[�����Ă݂悤�A�Ƃ������͐��񎎂��Ă݂Ă��������B

Visual C++ 2008 Express Edition�̃Z�b�g�A�b�v

�����ł�Microsoft Visual C++ 2008 Express Edition�̃Z�b�g�A�b�v�A�T���v���J���ɂ‚��ĉ�����܂��B����Visual C++��.NET�Ƃ������J���‹������g���̕��́A�ǂݔ�΂��Ă��������Ă���肠��܂���B

�܂��}�C�N���\�t�g�̃z�[���y�[�W����Microsoft Visual C++ 2008 Express Edition���_�E�����[�h���܂��B

Visual C++ 2008 Express Edition

http://www.microsoft.com/japan/msdn/vstudio/express/

Microsoft Visual Studio Express���i�̃z�[���y�[�W

�uWeb�C���X�g�[��(�_�E�����[�h)�v���N���b�N����ƁAWeb�C���X�g�[���ŃZ�b�g�A�b�v�t�@�C���uvcsetup.exe�v���_�E�����[�h���邱�Ƃ��ł��܂��B���̃z�[���y�[�W�ɂ�Visual Studio���i���g����ł̖��ɗ���񂪂������񂠂�܂��B�Ƃ肠����VC2008���g���Ă݂������́u�͂��߂Ă̕��̂��߂̃C���X�g�[�����@�v��ǂ�ł݂�Ƃ���Ɨǂ��ł��傤�B

�K�v�ȃn�[�h�f�B�X�N�e�ʂ̊m�F�A�N�����̃A�v���P�[�V�����̏I���Ȃǂ��s���Ă���C���X�g�[���E�B�U�[�h�uvcsetup.exe�v���N�����܂��B

VC2008�C���X�g�[�� �E�B�U�[�h(step1)

�u�Z�b�g�A�b�v�̕i������v���O�����v�̓`�F�b�N���Ă����Ȃ��Ă��A�ǂ���ł����܂��܂���B�u���ցv���N���b�N���Đi�݂܂��B

VC2008�C���X�g�[�� �E�B�U�[�h(step2)

���C�Z���X�������悭�ǂ�Łu���ӂ���v��I��ł��������B�܂��uVisual Studio�ŃI�����C����RSS�R���e���c����M���ĕ\���ł���悤�ɂ���v�����ɖ�肪�Ȃ���΃`�F�b�N���܂��傤�B�C�x���g��T�[�r�X�p�b�N�Ȃǂ̍X�V���VC2008�N������ɕ\�������X�^�[�g�y�[�W�Ɏ����I�ɕ\�������悤�ɂȂ�܂��i�����ł�RSS��M�̐ݒ�͌�ł��I�v�V�������‹����X�^�[�g�A�b�v�ŕύX�ł��܂��j�B�u���ցv���N���b�N���Đi�݂܂��B

VC2008�C���X�g�[�� �E�B�U�[�h(step3)

�u�C���X�g�[���I�v�V�����v��I�����܂��B�����ŕ\������Ă���3�‚̃I�v�V�����́A�ǂ���C���X�g�[�����Ȃ��Ă���肠��܂���B�uMSDN Express���C�u�����v��F1�L�[�ŌĂяo����h�L�������g�ŁA�I�����C���ł̕����[�����Ă���̂ł����A�M�҂͓d�Ԃ̒��ŃR�[�f�B���O�����邱�Ƃ������̂ŃC���X�g�[�����Ă��܂��i�I�����C���łƓ������ė��p�ł��܂��j�B�uSQL Server 2005�v�A�uSilverlight�v�͎g���\�肪�Ȃ���΃C���X�g�[�����Ȃ��ėǂ��ł��傤�B�u���ցv���N���b�N���Đi�݂܂��B

VC2008�C���X�g�[�� �E�B�U�[�h(step4)

�u�R�s�[��t�H���_�v�ƃ_�E�����[�h�p�b�P�[�W�̃��X�g�ł��B�u�C���X�g�[������t�H���_�v�͖{���ł̓f�t�H���g�̂܂܂Ƃ��ĉ�����܂��B�_�E�����[�h���X�g�̒��ɁuWindows SDK�v�������Ă���̂�������܂�(�ȑO��Express Edition�ł͕ʓr�C���X�g�[������K�v������܂���)�B�u�C���X�g�[���v���N���b�N����ƃ_�E�����[�h�ƃC���X�g�[�������s����܂��B

VC2008�C���X�g�[�� �E�B�U�[�h(step5)

�ȏ��WindowsXP�V���[�Y�ɂ�����VC2008�Z�b�g�A�b�v�̗���ł��iWindows Vista�̏ꍇ�́u�Ǘ��Ҍ����Ŏ��s�v������K�v������_�Ȃǂ����‚��ׂ����_���قȂ�܂����قړ�������ł��j�B�������������VC2008�̃E�B�U�[�h��I�����C���`���[�g���A���Ȃǂ��g���ĊȒP�ȃv���O���~���O�������Ă݂�Ɨǂ��ł��傤�B

�R�����FVC���݊‹�����������Version Selector

�����A����Visual C++��Visual Studio�̉ߋ��̃o�[�W����(.NET2003/2005�Ȃ�)�����g���ŁA����2008�N���_�̍ŐV�łł���Visual C++ 2008 Express�i�ȉ�VC2008�j�������Ă݂����̓ǎ҂́A�����ł�����Ɖ�蓹�����Ď����Ă݂邱�Ƃ��������߂��܂��BVC2008��Version Selector�Ƃ����@�\������A�قȂ�o�[�W������Visual Studio���i�̍��݂��”\�ɂ��܂��B�e�o�[�W�����ɂ����ă\�����[�V�����t�@�C���͊g���q�u.sln�v�ƕς��܂��񂪁A�����I�ɂ��̊g���q�u.sln�v�Ɋ֘A�Â���ꂽ�A�v���P�[�V�����ł���uVersion Selector�v���t�@�C�������̃o�[�W�����L�q�������I�ɓǂݎ��A�t�@�C�����_�u���N���b�N���ꂽ�Ƃ��͓K�؂ȃo�[�W������VC���N�����܂��B���̋@�\�̂������ŕ����̃o�[�W�����̊J���‹������S���ăC���X�g�[���ł���悤�ɂȂ�܂��B

WiimoteLib�̊T�v

WiimoteLib��Brian Peek(http://www.brianpeek.com/)�ɂ��.NET�‹��ŗ��p�ł���API�I�[�v���\�[�X�v���W�F�N�g�ł��BMicrosoft���x������I�[�v���\�[�X�v���W�F�N�g�x���T�C�g�uCodePlex�v(http://www.codeplex.com/)�Ō��J����Ă��܂��BWiimoteLib��p���邱�ƂŁA.NET�‹��ŊȒP��WiiRemote�𗘗p����A�v���P�[�V�������J�����邱�Ƃ��ł��܂��BVersion1.6.0.0�����WiiRemote�����łȂ�Wii Fit�o�����X�{�[�h�ɂ��Ή����Ă��܂��B

WiimoteLib��.NET�ŊJ�����ꂽAPI�ł���A����Ɉˑ����܂��񂪁AC#��Visual Basic�����C���̃^�[�Q�b�g�̂悤�ł��BC++�ł̃T���v���͔z�z����Ă��炸�A�܂��l�b�g��̏������܂葶�݂��Ȃ��̂ł����A�{�͂�ǂݐi�߂Ă������ƂŁA������ԂŖ��Ȃ����p�ł��邱�Ƃ��킩��ł��傤�B

C++����ɂ͂��܂��܂Ȍ���d�l�����݂��܂����A�{�͂ł͓���.NET�v���O���~���O�Ƃ��Ĉ����₷���uC++/CLI�v�������܂��BCLI�Ƃ́uCommon Language Infrastructure(���ʌ�����)�v�̗��ŁAC++�Ɋ���e���񂾃v���O���}�[�ɂ��A��a���̏��Ȃ��`�Ő�i�I��.NET�v���O���~���O�‹���񋟂��Ă��܂��B�{�͂ł͂��̓����𗘗p���A������{�I�ȃv���O���~���O��C++��C#�Ƃ���2�‚̌���ʼn������Ƃ����킯�ł��B

WiimoteLib�̃��C�Z���X

WiimoteLib�̃��C�Z���X�́uMicrosoft Permissive License (Ms-PL)�v�ł��BMs-PL�́A�ł������̊ɂ��}�C�N���\�t�g�̃\�[�X�R�[�h���C�Z���X�ŁA�\�[�X�R�[�h�����p�܂��͔񏤗p�̖ړI�ŕ\���A�ύX�A�ĔЕz�ł��܂��B�܂���]����ꍇ�́A�ύX�����\�[�X�R�[�h�ɑ΂��ă��C�Z���X�����ۋ����邱�Ƃ��ł��܂��B�ȉ��ɏ𕶂̓��{��Q�l������p���Ă����܂�(http://www.microsoft.com/japan/resources/sharedsource/licensingbasics/permissivelicense.mspx)�B

Microsoft Permissive License (Ms-PL)�@���J��: 2007�N7��9��

�{���C�Z���X�́A�t������\�t�g�E�F�A�̎g�p�ɓK�p����܂��B�{�\�t�g�E�F�A���g�p����ꍇ�́A�{���C�Z���X�ɓ��ӂ������̂Ƃ݂Ȃ��܂��B�{���C�Z���X�ɓ��ӂ��Ȃ��ꍇ�A�{�\�t�g�E�F�A���g�p���邱�Ƃ͂ł��܂���B

1.��`

�{���C�Z���X�ł́A"��������"�A"����"�A"�񎟓I���앨"�A�����"�Еz"�Ƃ����p��́A�č��̒��쌠�@�̉��Ŏg����ꍇ�Ɠ����Ӗ���L���܂��B"�R���g���r���[�V����"�Ƃ́A�I���W�i���̃\�t�g�E�F�A�A�܂��̓\�t�g�E�F�A�ɑ΂���lj��������͕ύX���Ӗ����܂��B"�R���g���r���[�^�["�Ƃ́A�{���C�Z���X�̉��Ŏ���̃R���g���r���[�V������Еz����҂��Ӗ����܂��B"�Ώۓ���"�Ƃ́A�R���g���r���[�V���������ڒ�G����A�R���g���r���[�^�[�̗L����������̐����͈͂��Ӗ����܂��B

2.�����̕t�^

(A)���쌠�Ɋւ��鋖��-��3���u��������ѐ����v���܂ޖ{���C�Z���X�̏����ɏ]���āA�e�R���g���r���[�^�[�͎g�p�҂ɑ΂��A�R���g���r���[�V�����𕡐����A�R���g���r���[�V�����̓񎟓I���앨���쐬���A�R���g���r���[�V�����܂��͍쐬�����񎟓I���앨��Еz����A��Ɛ�I�A���E�S��A�����̒��쌠���C�Z���X��t�^���܂��B(B)�������Ɋւ��鋖��-��3���u��������ѐ����v���܂ޖ{���C�Z���X�̏����ɏ]���āA�e�R���g���r���[�^�[�͎g�p�҂ɑ΂��A�{�\�t�g�E�F�A�̃R���g���r���[�V�����܂��͖{�\�t�g�E�F�A�̃R���g���r���[�V�����̓񎟓I���앨���쐬���A�쐬�����A�g�p���A�̔����A�̔����Ă��A�A�����A�����/�܂��͂��̑��̕��@�ŏ�������A�Ώۓ����Ɋ�Â���Ɛ�I�A���E�S��A�����̓��������C�Z���X��t�^���܂��B

3.��������ѐ���

(A)���W�̏��O-�{���C�Z���X�ł́A�R���g���r���[�^�[�̖��O�A���S�A�܂��͏��W���g�p���錠���͗^�����܂���B

(B)�g�p�҂��A�{�\�t�g�E�F�A�ɂ��N�Q���咣��������Ɋւ��A�R���g���r���[�^�[�ɑ΂��ē����N�Q���咣����ꍇ�A���Y�R���g���r���[�^�[�ɂ��{�\�t�g�E�F�A�ɂ‚��Ă̎g�p�҂ɑ΂���������C�Z���X�͎����I�ɏI�����܂��B

(C)�{�\�t�g�E�F�A�̑S���܂��͈ꕔ��Еz����ꍇ�A�{�\�t�g�E�F�A�ɕt�����邷�ׂĂ̒��쌠�A�������A���W�A����яo���̕\����ێ�����K�v������܂��B

(D)�{�\�t�g�E�F�A�̑S���܂��͈ꕔ���\�[�X�R�[�h�̌`���ŔЕz����ꍇ�́A�Еz���ɖ{���C�Z���X�̊��S�Ȏʂ����܂߂���ŁA�{���C�Z���X�̏����̉��ł̂ݔЕz���邱�Ƃ��ł��܂��B�{�\�t�g�E�F�A�̑S���܂��͈ꕔ���R���p�C���ς݂܂��̓I�u�W�F�N�g�R�[�h�`���ŔЕz����ꍇ�́A�{���C�Z���X�ɒ�G���Ȃ������̃��C�Z���X�̉��ł̂ݔЕz���邱�Ƃ��ł��܂��B

(E)�{�\�t�g�E�F�A�͌���L�p�ɂă��C�Z���X����܂��B�{�\�t�g�E�F�A�̎g�p�ɔ����댯�́A���ׂĎg�p�҂��������̂Ƃ��܂��B�R���g���r���[�^�[����̖����I�ȕۏ؂܂��͏����͈�؂���܂���B�g�p�n�̖@���Ɋ�Â��A�{���C�Z���X�ł͕ύX�ł��Ȃ����̑��̏���҂̌��������݂���ꍇ������܂��B�g�p�n�̖@���Ɋ�Â��ċ��‚����͈͂ŁA�R���g���r���[�^�[�́A���i���A����ړI�ɑ΂���K�����A��N�Q�ɂ‚��āA�َ��I�ȕۏ؂�ے肵�܂��B

(�{�T�C�g��http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx�̎Q�l��ł�)

WiimoteLib�̃Z�b�g�A�b�v

���C�Z���X���m�F������AWiimoteLib���_�E�����[�h���܂��B���e�o�Ŏ��_�ł̍ŐV�ł�2009�N1��19���Ɍ��J���ꂽWiimoteLib v1.7�ł��B

http://www.codeplex.com/WiimoteLib

WiimoteLib�̃z�[���y�[�W

�z�[���y�[�W�㕔�ɂ���uDownload�v�̃����N���N���b�N����ƁA�_�E�����[�h�y�[�W���{���ł��܂��B�z�z�p�̃p�b�P�[�W�ƃ\�[�X�R�[�h���z�z����Ă��܂����A�\�[�X�R�[�h�ł͂Ȃ��ق��uWiimoteLib V1.7 (787K)�v���_�E�����[�h���Ă��������B

�_�E�����[�h����t�@�C��

�N���b�N����ƁA���C�Z���X�𕶂��p��ŕ\������܂��̂�(�m�F������)�uI Agree�v�N���b�N���A�_�E�����[�h���J�n���܂��B

WiimoteLib1.7�̓����t�@�C��

�_�E�����[�h����ZIP�t�@�C����W�J������A�܂��͓���m�F�����܂��B���g����Bluetooth�X�^�b�N�Ǘ��\�t�g�E�F�A���N�����āAWiiRemote��1��ڑ����܂��B�ڑ��ł�����A�W�J�����t�H���_�̒��ɂ���uWiimoteTest.exe�v���_�u���N���b�N���Ď��s���Ă݂Ă��������B

WiimoteLib�̃f���v���O�����uWiimoteTest.exe�v

���������s�ł���ƁA���b�Ԃ̏������̌�A�}�̂悤�Ȏ��s��ʂ��\�������͂��ł��BWiiRemote��U������A�{�^�����������ƂŁA���A���^�C���Œl���擾�ł��Ă��邱�Ƃ��m�F�ł��܂��B

�t�H�[���̉E��u×�v���N���b�N����ƏI�����܂��B�����茳�ɕ�����WiiRemote��Z���T�[�o�[�A�k���`���N�A�M�^�[�R���g���[���[�AWiiFit�o�����X�{�[�h�Ȃǂ���܂�����A���Аڑ����ē���������Ă݂Ă��������B

�����WiimoteLib���g���邱�Ƃ��m�F�ł��܂����B�G���[�����������ꍇ�A���ɁuError reading data from Wiimote...is it connected?�v�ƕ\�����ꂽ�ꍇ�́ABluetooth�ł̐ڑ��ɖ�肪����܂��BBluetooth�X�^�b�N��������WiiRemote��ڑ����Ă��邩�ǂ����A�m�F���Ă݂Ă��������B

�uWiimoteTest.exe�v�̋N���Ɏ��s������ڑ����m�F���悤

���āA�W�J�����t�@�C���̂����uWiimoteLib.dll�v����ԏd�v�ȃt�@�C���ł��B�uWiimoteTest.ext�v������DLL�������f�B���N�g���ɑ��݂��Ȃ���ΐ��������삵�܂���B�Ȃ�WiimoteLib���J���ŗ��p����ɂ�����A���ɃC���X�g�[���[�Ȃǂ͂���܂���̂ŁA�W�J�����t�H���_���Ɓu�}�C�h�L�������g\Visual Studio 2008\Projects\WiimotLib_1.7�v�Ɉړ����Ă����Ƃ��̂��Ƃ̍�Ƃ��y�ɂȂ�ł��傤�iWiimoteLib.dll�����ł������̂ł����A�w���v�╡���̃o�[�W������DLL�����݂���ƌ�X���ł��j�B�Ȃ��udocs�v�t�H���_�ɂ���uWiimoteLib.chm�v���w���v�t�@�C���ł��B�h�L�������g����������Ɛ�������Ă��܂��B

����ŃZ�b�g�A�b�v�͏I���ł��I���̐߂���͎��ۂɁA�܂���Visual C#��p����WiiRemote�𐧌䂵�Ă����܂��B

WiimoteLib���v���W�F�N�g�ɑg�ݍ��ށyC#�ҁz

���̐߂ł́AVisual C# 2008 Express(�Ȍ�uC#�v�ƕW�L)���g���āAWiimoteLib�ł̃v���O���~���O��̌����Ă����܂��B

��̃v���W�F�N�g�̍쐬

Visual C# 2008 Express Edition���N�����܂��B

Visual C#���N�������Ƃ���

[�t�@�C��(F)]��[�V�����v���W�F�N�g(P)]��[Windows�t�H�[���A�v���P�[�V����]��I�����܂��B

�V�����v���W�F�N�g���쐬

�u�v���W�F�N�g���v�ɁuWiimoteLib01�v�Ƃ������O��t����[OK]�{�^�����N���b�N���܂��B

�u�v���W�F�N�g���v�ɁuWiimoteLib01�v�Ƃ������O��t����[OK]

���b�҂‚ƐV�����v���W�F�N�g���쐬����܂��B����������΂�����[F5]�L�[�������āA���s���Ă݂�Ɨǂ��ł��傤�B

�V�����v���W�F�N�g���쐬���ꂽ�Ƃ���

WiimoteLib�̒lj�(C#��)

��قǍ쐬������̃v���W�F�N�g��WiimoteLib��g�ݍ���ł����܂��傤�B�E���ɕ\������Ă���A�\�����[�V�����G�N�X�v���[����[�Q�Ɛݒ�]���E�N���b�N�A[�Q�Ƃ̒lj�(R)...]��I�����܂��B

[�Q�Ɛݒ�]���E�N���b�N

�Q�Ƃ̒lj�����[�Q��]��I�����AWiimoteLib.dll��I�����܂��B�}�C�h�L�������g�́uVisual Studio 2008\Projects�v�ɂ������uWiimoteLib_1.7\WiimoteLib.dll�v��I����[OK]�{�^�����N���b�N���܂��B

WiimoteLib.dll�̃t�@�C�����w�肷��

����Ń\�����[�V�����G�N�X�v���[���̎Q�Ɛݒ��WiimoteLib���lj����ꂽ�͂��ł��B

�\�����[�V�����G�N�X�v���[���[�Ɍ��ꂽWiimoteLib

����ł͍ŏ����̃v���O�����̎��s���ʂ�\�����邽�߂̃t�H�[�����쐬���܂��傤�B�\�����[�V�����G�N�X�v���[���́uForm.cs�v���E�N���b�N���āu�R�[�h�̕\���v�ŕ\�������C#�̃R�[�h�ɁA�ł��d�v�ȍŏ���1�s�uusing WiimoteLib;�v��lj����܂��B

  using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Linq;
  using System.Text;
  using System.Windows.Forms;

| using WiimoteLib;    //������1�s�lj����܂�

  namespace WiimoteLib01  {  //���w�肵���v���W�F�N�g��
    public partial class Form1 : Form {

    public Form1() {
      InitializeComponent();
    }

  }
}

�ȏオC#�‹���WiimoteLib��p���邽�߂̍ŏ��̈���̑���ł��B�܂�WiiRemote�炵�����Ƃ͉����ł��܂��񂪁A�����WiimoteLib�̃N���X�����p�ł���悤�ɂȂ�܂����B���̃X�e�b�v�ŁA���ۂɓ�����m�F���Ă݂܂��傤�B

�v���O�����̎��s

[F5]�L�[�A�܂��́A[�f�o�b�O(D)]��[�f�o�b�O�J�n(F5)]�������ăv���O���������s�����Ă݂܂��傤�B

[�f�o�b�O(D)]��[�f�o�b�O�J�n(S)]

�v���O�����ɃG���[���Ȃ���Ή��}�̂悤�ɕ\�������͂��ł��B

�����Ȃ��t�H�[�����\�����ꂽ

���̃v���O�����͒P�Ƀt�H�[���𐶐�����v���O�����ł��B�u×�v�{�^���������ăt�H�[����‚��ăv���O�������I�������܂��傤�B�Ȍ�A���̃v���O�������x�[�X��WiiRemote�𐧌䂷��v���O������lj����Ă����܂��B

WiimoteLib���v���W�F�N�g�ɑg�ݍ��ށyC++�ҁz

����Visual C++ 2008 Express(�Ȍ�uC++�v�ƕW�L)���g���āAWiimoteLib�ł̃v���O���~���O��̌����Ă����܂��B��x������o������A�Ȍ�͋��ʂł��B�����C++��C#�A�ǂ���ł����܂��܂���B�����g���g���₷�������I��ł݂Ă��������B

��̃v���W�F�N�g�̍쐬

Visual C++ 2008 Express Edition���N�����܂��B

�V�K�v���W�F�N�g�̍쐬[C++]

[�t�@�C��(F)]��[�V�����v���W�F�N�g(P)]����A[CLR]��[Windows�t�H�[���A�v���P�[�V����]��I�����܂��B

�u�v���W�F�N�g���v�ɁuWiimoteLib01cpp�v�Ƃ������O��t����[OK]�{�^�����N���b�N���܂��B

�V�����v���W�F�N�g���쐬����܂����B����������΂�����[F5]�L�[�������āA���s���Ă݂�Ɨǂ��ł��傤�B�����Ȃ��t�H�[�����\������A�u×�v�{�^���������ƏI�����܂��B

WiimoteLib�̒lj�[C++]

��قǍ쐬�����v���W�F�N�g��WiimoteLib��g�ݍ���ł����܂��傤�B�\�����[�V�����G�N�X�v���[���Ńv���W�F�N�g(�����ł́uWiimoteLib01cpp�v)���E�N���b�N����[�Q��]��I�����܂��B

�v���W�F�N�g���E�N���b�N����[�Q��]�ݒ�

�v���W�F�N�g�̃v���p�e�B�y�[�W����[�V�����Q�Ƃ̒lj�(N)...]���N���b�N���A[�Q��]�^�u���N���b�N���A�t�@�C���I���_�C�A���O�ŁA�}�C�h�L�������g�́uVisual Studio 2008\Projects�v�ɂ������uWiimoteLib_1.7\WiimoteLib.dll�v��I����[OK]�{�^�����N���b�N���܂��B

WiimoteLib��lj�
WiimoteLib���Q�Ɛݒ�ɒlj����ꂽ

���ɁAWiimoteLib�̏������R�[�h�������܂��B�\�����[�V�����G�N�X�v���[���́uForm1.h�v���E�N���b�N���āu�R�[�h�̕\���v��I�ԂƁAForm1.h�̃R�[�h���\������܂��B���̃R�[�h�̐擪12�s�ڂɈȉ��̂悤�ɁA�K�v��1�s�����������Ă��������B

WiimoteLib�N���X��錾(Form1.h)
#pragma once

namespace WiimoteLib01cpp { //���w�肵���v���W�F�N�g��

  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;

| using namespace WiimoteLib;  //�����1�s�lj����܂�

���ȉ�����

�ȏオC++/CLI��WiimoteLib��p���邽�߂̕K�v�Œ���̃v���O�����ł��B[F5]�L�[�������ăv���O���������s�����Ă݂܂��傤�B

�v���O�����ɃG���[���Ȃ����C#�Ɠ��l�A�����Ȃ��t�H�[�����\�������͂��ł��B���܂̂Ƃ���A���̃v���O�����͒P�Ƀt�H�[���𐶐����邾���̃v���O�����ł����AWiimoteLib�̃N���X��using namespace�錾�ɂ���Ė��Ȃ��g�ݍ��܂�Ă��邱�Ƃ��킩��܂��B�Ȍ�A���̃v���O�������x�[�X��WiiRemote�𐧌䂷��v���O������lj����Ă����܂��B

�o�C�u���[�^��ON/OFF

��������́A�����WiimoteLib��API��p���ăv���O���~���O���s���Ă����܂��B�����C++��C#����񂵂ĉ�����Ă����܂����A.NET�t���[�����[�N�̂�������GUI�̐݌v�Ȃǂ͂܂�������������ŊJ����i�߂邱�Ƃ��ł��܂��B

�܂��APC��ʏ�ɕ\�������Form�{�^���ɂ���āAWiiRemote�̐U���@�\(�o�C�u���[�^�[)�̓��������‚邷��v���O���������܂��B

WiimoteLib�̐錾�Ɛڑ�

�O�߂̂Ƃ���AWiimoteLib��g�ݍ��񂾃v���W�F�N�g�̃��C���̃R�[�h�iForm1.cs��������Form1.h�j�Ɉȉ���3�s��lj����܂��B

Form1.cs[C#]
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
|   using WiimoteLib;	//WiimoteLib��錾

    namespace WiimoteLib01 {
     public partial class Form1 : Form {

|       Wiimote wm = new Wiimote();	//Wiimote�N���X�̍쐬

      public Form1() {
       InitializeComponent();
|       wm.Connect();      	//Wiimote�ɐڑ�
      }
     }
    }
���ȉ�����
Form1.h[C++]
#pragma once
namespace WiimoteLib01cpp {
	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;
|	using namespace WiimoteLib;	//WiimoteLib��錾
��������
	public ref class Form1 : public System::Windows::Forms::Form
	{
|	public:	Wiimote^ wm;	//Wiimote�N���X�̓��ꕨ
	public:
		Form1(void)
		{
|			wm = gcnew Wiimote(); //Wiimote�N���X�̍쐬;
			InitializeComponent();
			//
			//TODO: �����ɃR���X�g���N�^ �R�[�h��lj����܂�
			//
|			wm->Connect();	//Wiimote�ɐڑ�
			
		}
���ȉ�����

C#��C++�������̋L����\���͈Ⴆ�ǁA�قƂ�Ǔ����ł��邱�Ƃ��������肢���������ł��傤���HC++�ł�wm�Ƃ������ꕨ��Form1�N���X��Public�����o�[�Ƃ��ėp�ӂ��Ă��܂��B

�o�C�u���[�^�[ON/OFF�{�^���̍쐬

�܂��A�t�H�[���Ƀ{�^����\��t���Ă��������BC#�ł́A�c�[���{�b�N�X����h���b�O����Form1�̍D���Ȉʒu�ɔz�u���܂��B(C++�ł����l�ł�)�\������Ă��Ȃ��ꍇ�A[�\��]����[�f�U�C�i]�Ƃ���Form1�̃f�U�C����\�����A�ēx[�\��]����[�c�[���{�b�N�X]��I�Ԃ��ƂʼnE���Ƀc�[���{�b�N�X�E�B���h�E������܂�(C++�͍���)�B�u�R�����R���g���[���v�ɁuButton�v������܂��̂ŁA�t�H�[���̏�Ƀh���b�O���Ă��������B

�c�[���{�b�N�X����{�^�����h���b�O���Ĕz�u

���ɁA�\��t�����ubutton1�v�̃v���p�e�B�V�[�g�́uText�v���ubutton1�v����uON�v�ɕύX���܂��B����Ńt�H�[����̃{�^���ɏ�����Ă���e�L�X�g���uON�v�ɕς��͂��ł��B

Text�̃v���p�e�B���ubutton1�v����uON�v�ɏ���������

Form1��ɔz�u�����{�^���uON�v���_�u���N���b�N����ƁA�{�^���N���b�N���̃C�x���g���w�肷��R�[�h�������I�ɕ\������܂��̂ʼn��L�̂悤�ɋL�q���܂��B

Form1.cs[C#]
  private void button1_Click(object sender, EventArgs e) {
   wm.SetRumble(true);  //�o�C�u���[�V����ON
  }
Form1.h[C++]
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, \
    System::EventArgs^ e) {
    wm->SetRumble(true);  //�o�C�u���[�V����ON
  }
 };
}

�C���͂����͂�����[F5]�L�[�����������Ȃ邩������܂��񂪁A�����͎̂��̃X�e�b�v�܂Ői��ł���ɂ��܂��傤�I���̂܂܂ł́ABluetooth�ڑ�����Ă��܂��񂵁A�o�C�u���[�^�[���쓮���Ă��܂��~�߂���@���������Ă��܂���̂ŁA�u���u���‚���ςȂ��̍�������ԂɂȂ��Ă��܂��܂��B

�o�C�u���[�^�[���~������uOFF�v�{�^�����쐬���܂��B��قǂƓ��l�ɁA�c�[���{�b�N�X����{�^����z�u���܂��B

�uOFF�v�̂��߂̃{�^�����h���b�O�Ŕz�u

��قǂƓ������A�\��t�����ubutton2�v�̃v���p�e�B��Text���ubutton2�v����uOFF�v�ɕύX���܂��B

Text�̃v���p�e�B���ubutton2�v����uOFF�v�ɏ���������

�Ō�ɁA�\��t�����ubutton2�v���_�u���N���b�N���A���L�̂悤�ȃR�[�h���L�q���܂��B

Form1.cs[C#]
  private void button2_Click(object sender, EventArgs e) {
    wm.SetRumble(false);  //�o�C�u���[�V����OFF
 }
Form1.cs[C#]
private: System::Void button2_Click(System::Object^ sender, \
    System::EventArgs^ e) {
    wm->SetRumble(false);	//�o�C�u���[�V����OFF
  }

�ȏ�ŏI���ł��B���ꂾ���̃v���O������WiiRemote�̃o�C�u���[�V�����@�\��ON/OFF���䂪�”\�ɂȂ�܂��B

Form1.cs��C#�\�[�X(�S��)
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Windows.Forms;
| using WiimoteLib;	//WiimoteLib�̓ǂݍ���

 namespace WiimoteLib01  {
  public partial class Form1 : Form {
|   Wiimote wm = new Wiimote();   //Wiimote�̐錾
   public Form1() {
    InitializeComponent();
|    wm.Connect();	//Wiimote�̐ڑ�
   }

   private void button1_Click(object sender, EventArgs e) {
|    wm.SetRumble(true);    //�o�C�u���[�V����ON
   }

   private void button2_Click(object sender, EventArgs e) {
|    wm.SetRumble(false);   //�o�C�u���[�V����OFF
   }
  }
 }
Form1.h��C++�\�[�X(�ύX�_�̂ݔ���)
#pragma once

������
|	using namespace WiimoteLib; //WiimoteLib��錾
������
  public ref class Form1 : public System::Windows::Forms::Form
  {
| public: Wiimote^ wm;        //Wiimote�N���X�̓��ꕨ
  public:
    Form1(void)
    {
|     wm = gcnew Wiimote();   //Wiimote�N���X�̍쐬;
      InitializeComponent();
      //
      //TODO: �����ɃR���X�g���N�^ �R�[�h��lj����܂�
      //
|     wm->Connect();	//Wiimote�ɐڑ�

    }
������
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|     wm->SetRumble(true);   //�o�C�u���[�V����ON
  }
private: System::Void button2_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|     wm->SetRumble(false);  //�o�C�u���[�V����OFF
  }
 };
}

���s���Ă݂悤

�܂��A���g����Bluetooth�X�^�b�N����WiiRemote��ڑ����܂��B

Bluetooth�ڑ�(�}�͓��Ő��X�^�b�N)

�����āAVisual C#/C++����uF5�v�L�[�������ăv���O�������N�����܂��B�G���[���Ȃ���Ή��̂悤�ȃt�H�[�����N������͂��ł��B

�uON�v�ƁuOFF�v�����ƒt�H�[�����\�������

�������̂悤�ȃG���[����������ꍇ��WiiRemote���������ڑ�����Ă��邩�m�F���Ă��������B

�ڑ����s�FBluetooth�ڑ����m�F���悤

�����ɋN���ł����ꍇ�A�uON�v�{�^�����N���b�N����ƁA�o�C�u���[�V������ON�ɂȂ�WiiRemote���U�����܂��B����Ă��������uOFF�v�{�^�����N���b�N���āAWiiRemote�̐U�����Ƃ߂܂��傤�B

�ǂ��ł��傤���H���ɊȒP��WiiRemote�̃o�C�u���[�V��������v���O���������܂����B���̂悤��WiimoteLib��C++/CLI��C#.NET�̑g�ݍ��킹�ŁA�ȒP�ɃA�v���P�[�V�������J�����Ă������Ƃ��ł��܂��B

WiimoteLib�ɂ̓o�C�u���[�^�[�̐���ȊO�ɂ�WiiRemote�����䂷�邽�߂̊֐����������񑵂��Ă��܂��B

�ȒP�Ƀv���O�����̗����������܂��ƁA�܂��uConnect()�֐��v��WiiRemote�Ƃ̐ڑ����s���܂��B���̂Ƃ�WiiRemote���������ڑ��A�F������Ă��Ȃ������ꍇ�A��O(Exception)���������܂��B����͗�O�������s���Ă��܂���̂ŁA���ۂ̃A�v���P�[�V�����ł͕K�v�ɉ����ė�O������lj����Ă��������B�{�^�����������Ƃ��ɁA�uSetRumble()�֐��v��WiiRemote�̃o�C�u���[�V�����𐧌䂵�܂��B()�̈����Ɂutrue�v������ƃo�C�u���[�V�������U�����A�ufalse�v������ƃo�C�u���[�V��������~���܂��BPWM����(�p���X���ϒ�:Pulse With Modulation)��p���邱�Ƃɂ���ăo�C�u���[�V�����ɋ����t���邱�Ƃ��ł��܂��B�ȒP�ɐ�������ƍ�����ON��OFF���J��Ԃ����Ƃɂ���ăo�C�u���[�V�����ɋ�����‚��鐧����@�ł��B�����ł͂����Đ������܂��񂪁A�]�͂̂���l�̓`�������W���Ă݂Ă��������B

����FAPI�֐�

�ȉ��A���̃v���O�����Ŏg����WiimoteLib��API�֐��ł��B

C# C++ ���
using WiimoteLib; using namespace WiimoteLib; �l�[���X�y�[�X�錾
public Wiimote wm; public: Wiimote^ wm; �N���X�̐錾
wm = new Wiimote(); Wiimote^ wm = gcnew Wiimote(); �N���X�V�K�쐬
wm.Connect(); wm->Connect(); WiiRemote�ɐڑ�
wm.SetRumble(true); wm->SetRumble(true); �o�C�u���[�^�[�쓮
wm.SetRumble(false); wm->SetRumble(false); �o�C�u���[�^�[��~

�������ł��傤�A.NET�‹��ɂ����āAC#��C++�ł͉������̂Ȃ����Ƃ��悭�킩��܂��BGUI�ɂ��t�H�[���쐬���A�}�E�X�h���b�O�ƃv���p�e�B�̐ݒ�A�_�u���N���b�N�ɂ��Y���R�[�h�̎�������������܂��̂Ŕ��ɉ��K�ɃR�[�f�B���O�ł��܂��B���̃X�e�b�v�ł͓����v�̂ŁALED�̓_���𐧌䂵�Ă����܂��B

LED�̓_���Ə���

����WiiRemote��LED����ɂ‚��ăv���O���~���O���s���Ă����܂��B�����ł́AForm�{�^�����N���b�N���閈��WiiRemote�́u�v���C���[�C���W�P�[�^�[�v�ƌĂ΂��FLED���J�E���g�A�b�v�����Ă����܂��B

�����ɂ������Ă̊�{�I�ȃv���O���~���O�̗���͑O�߂̃o�C�u���[�^�[�̐���̏ꍇ�Ɠ����ł��B�V�����v���W�F�N�g���쐬���A�v���W�F�N�g�̃N���X�̎Q�Ɛݒ��WiimoteLib��lj����A�ȉ��̏������R�[�h�����������Ă��������B

WiimoteLib�̐錾�Ɛڑ�

Form1.cs�Ɉȉ��̕�����lj�[C#]
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
|using WiimoteLib;  //WiimoteLib�̎g�p��錾

namespace WindowsFormsApplication1 { //���v���W�F�N�g���ɂ���ĈقȂ�
 public partial class Form1 : Form {

|Wiimote wm = new Wiimote();   //Wiimote�̐錾
|int count=0;                  //�J�E���g�̐錾

  public Form1() {
   InitializeComponent();
|      wm.Connect();	//WiiRemote�֐ڑ�
  }
 }
}
Form1.h�Ɉȉ��̕�����lj�[C++]
#pragma once
namespace WLCLED { //���v���W�F�N�g���ɂ���ĈقȂ�

  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;

| using namespace WiimoteLib;	 //WiimoteLib�̎g�p��錾
������
  public ref class Form1 : public System::Windows::Forms::Form
  {
| public: Wiimote^ wm;  //Wiimote�I�u�W�F�N�gwm�̐錾
| public: int count;    //LED�J�E���g�p�̕ϐ�count�̐錾
  public:
    Form1(void)
    {
|     wm = gcnew Wiimote(); //Wiimote�C���X�^���X�̍쐬
      InitializeComponent();
      //
      //TODO: �����ɃR���X�g���N�^ �R�[�h��lj����܂�
      //
|     wm->Connect();	//WiiRemote�֐ڑ�
    }

  protected:
������
 

�m�F�̂��߂ɂ�����WiiRemote��Bluetooth�ڑ����s���A[F5]�L�[�Ŏ��s�������Ă݂邱�Ƃ������߂��܂��B�R���p�C���G���[��WiimoteLib.dll�̒lj��킷��ȂǁA�����̋󔒂̃t�H�[�����\������邾���̏�Ԃł����A�m�F�͑厖�ł��B������A���̏������R�[�h�쐬�܂ł̗��ꉽ�x���s���܂��̂ŁA�J���_�Ŋo���Ă��܂��܂��傤�B

�Ȃ�C++�ł́Aint�^�̕ϐ�count��AWiimote�I�u�W�F�N�g���i�[����wm�̐錾���AForm1�̃C���X�^���X�Ƃ͕ʂɍs���K�v������܂��B�������Ȃ���Α��̃��\�b�h���爵�����Ƃ��ł��܂���B����A�ׂ����Ƃ����C#�ƈႢ���o�Ă��܂��̂Œ��ӂ��Ă��������i�����̂���l�́A�킴�ƊԈႦ�Ă݂�̂��׋��ɂȂ��Ă�����������܂��񂪁j�B

LED�J�E���g�A�b�v�{�^���̍쐬

����C#/C++�ŋ��ʂ̍�Ƃł��B��قǂ̃o�C�u���[�^�[�̗�Ɠ��l�Ƀt�H�[���uForm1�v�Ƀ{�^����\��t���Ă��������B�{�^�����������ѕ\�����ς��d�g�݂�������܂��̂ŁA�{�^���͏����傫�ځA�����ɂ��Ă����Ɨǂ��ł��傤�B

�t�H�[���ɑ傫�߂ȃ{�^����z�u[C#]
�t�H�[���ɑ傫�߂ȃ{�^����z�u[C++]

���ɓ\��t�����ubutton1�v���_�u���N���b�N���āA�ȉ��̃R�[�h��lj����܂��B

�{�^���N���b�N���̏�����lj�[C#]
   private void button1_Click(object sender, EventArgs e) {
    this.button1.Text ="wm.SetLEDs("+ count+") ��\����";
   this.wm.SetLEDs(count);
   count++;
}
�{�^���N���b�N���̏�����lj�[C++]
private: System::Void button1_Click(System::Object^ sender, \
    System::EventArgs^ e) {
	button1->Text = "wm->SetLEDs("+ count +")��\����";
	wm->SetLEDs(count);
	count++;
}

�ȏ�ŃR�[�f�B���O�͏I���ł��B���������ꂾ���̃v���O������WiiRemote��LED���䂪�”\�ɂȂ�܂��B

��������Form1.cs[C#]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
|using WiimoteLib;

namespace WL_LED
{
    public partial class Form1 : Form
    {
|        Wiimote wm = new Wiimote();
|        int count = 0;
        public Form1()
        {
            InitializeComponent();
|            wm.Connect();
        }
        private void button1_Click(object sender, EventArgs e)
        {
|            this.button1.Text = "wm.SetLEDs(" + count + ")��\����";
|            wm.SetLEDs(count);
|            count++;
        }
    }
}
��������Form1.h[C++]
#pragma once
namespace WLCLED { //�쐬�����v���W�F�N�g���A���R�B
  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;
| using namespace WiimoteLib;
  /// <summary>
������
  /// </summary>
  public ref class Form1 : public System::Windows::Forms::Form
  {
|  public: Wiimote^ wm;	//Wiimote�I�u�W�F�N�gwm�̐錾
|  public: int count;    //LED�J�E���g�p�̕ϐ�count�̐錾
   public:
    Form1(void)
    {
|    wm = gcnew Wiimote();
     InitializeComponent();
      //
      //TODO: �����ɃR���X�g���N�^ �R�[�h��lj����܂�
      //
|     wm->Connect();	//WiiRemote�֐ڑ�
    }
  protected:
    /// <summary>
    /// �g�p���̃��\�[�X�����ׂăN���[���A�b�v���܂��B
    /// </summary>
   ~Form1()
   {
   if (components)
    {
     delete components;
    }
   }
    private: System::Windows::Forms::Button^  button1;
    protected: 
������
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|   button1->Text = "wm->SetLEDs("+ count +")��\����";
|   wm->SetLEDs(count);
|   count++;
   }
  };
}

�኱C++�̂ق����R�[�h�������Ȃ�܂����A�����Œlj����ꂽ�ȊO�̉ӏ��̈Ӗ�������C#�ł�C++�ł��A�قړ����ł��邱�Ƃ��킩��܂��B

���s���Ă݂悤

����ł͑������s���Ă݂܂��傤�B

���ɁAVisual C#/C++��[F5]�L�[�������Ď��s���Ă��������B���s����Ɖ��}�̂悤�ȃA�v���P�[�V�������N�����܂��B

�傫�ȃ{�^�����ЂƂ‚����̃t�H�[�����\�������

�������}�̂悤�ȃG���[����������ꍇ��WiiRemote���������ڑ�����Ă��邩�m�F���Ă��������B

Bluetooth�ڑ���Y���ƃG���[�ɂȂ�

�t�H�[���ɕ\�������{�^�����N���b�N���Ă����ƁAWiiRemote������LED�����X�ƌ����Ă����܂��B

�t�H�[���ɕ������\�������

�u×�v���N���b�N���ďI�����܂��B

����FLED�̓_������

LED�̓_���Ə����͂���API�𗘗p���܂��B

 SetLEDs(int32 leds); 

���̊֐��̈����uleds�v��int32�`���̐��l�������邱�ƂŁA�Ή�����LED���ω����܂��B���̃v���O�����ł͕ϐ�count�̒l�����uSetLEDs(count);�v�Ƃ��Ă��܂��BForm�ɔz�u���ꂽ�{�^�����N���b�N����ƁAcount�l��+1����Ă����܂��B

�����͐���(int32�`��)�ŗ^���܂����A�����WiiRemote���t���܂ɂ�����Ԃ̊eLED��4�r�b�g��2�i���ŕ\�����āA�e�r�b�g��0����15�܂ő����Ă��������̂ł��B2�i���ɓ���݂��Ȃ����̂��߂ɁA�\�ŕ\�����Ă݂܂����i���������A�����_���ł��j�B

LED�̓_���ł܂ȂԁA2�i���Ή��\
10�i��(int) LED4 LED3 LED2 LED1
0 �� �� �� ��
1 �� �� �� ��
2 �� �� �� ��
3 �� �� �� ��
4 �� �� �� ��
5 �� �� �� ��
6 �� �� �� ��
7 �� �� �� ��
8 �� �� �� ��
9 �� �� �� ��
10 �� �� �� ��
11 �� �� �� ��
12 �� �� �� ��
13 �� �� �� ��
14 �� �� �� ��
15 �� �� �� ��

�t�H�[����̃{�^�������������āAcount��10�i����16�ɂȂ�ƁALED0�`LED4�̌��͂��ꂼ��0�ɂȂ�LED�͑S�ď����܂����A����ȏ�̒l(17,18,19,...)�������Ă��A�܂����ʃr�b�g�ɒl������܂��̂ŁALED�̓J�E���g�A�b�v���‚Â��܂��B

�v���O�����ɂ���Ă�2�i����10�i���ł͂Ȃ��A�X��LED���w�肵�Č��点�����Ƃ�������ł��傤�B�����������Ƃ��́A�֐��t�H�[�}�b�g���قȂ�ȉ��̌`���𗘗p���܂��F

 SetLEDs(bool led1 ,bool led2 ,bool led3,bool led4); 

�����֐��ł��A������4�Žw�肷�邱�ƂŁA�e�X��LED�𐧌䂷�邱�Ƃ��”\�ɂȂ�܂��B(�v���O���~���O�p��ł́A���̂悤�Ȋ֐��̗��p�̎d�����I�[�o�[���[�h�Ƃ����܂��j

�ȏ��LED�̐���͏I���܂��B���ɃV���v���ł����A�A�C�f�B�A����ł��낢��Ȃ��Ƃ��ł��܂��̂ŁA���Д��z��L���ɂ��ĉ��Ɏg���邩�l���Ă݂Ă��������B�܂����̕\���ɍ��킹���֗��ȏo�͗p�֐�������Ă݂�Ƃ悢�ł��傤�B�Ⴆ�΁A�M�҂́uSetLEDbyValue(int)�v�Ƃ����֐�������āA4�i�K�̒l��\���ł���悤�ɂ��܂����B�u���[�X�Q�[���ł̃V�[���h�c�ʁv��u�󂯂��_���[�W�̕\���v�A���ꂩ�珈���̒i�K��\���v���O���X�o�[�ɂ�LED���g���܂��B

�w���v�t�@�C�������p���悤

��L�́uSetLEDs�v�̂悤��WiimoteLib�Ɏ�������Ă���API�֐����ꂼ��̋@�\�́AWiimoteLib�́udocs�v�t�H���_�ɂ���w���v�t�@�C���uWiimoteLib.chm�v���Q�Ƃ��邱�ƂŒT�����Ƃ��ł��܂��B�Ⴆ�΁A����API�֐��̏ꍇ�͈ȉ��̂悤�ɋL�ڂ���Ă��܂��B

��Wiimote.SetLEDs Method��Overload List

Name Description
SetLEDs(Int32) Set the LEDs on the Wiimote
SetLEDs(Boolean Boolean Boolean Boolean) Set the LEDs on the Wiimote

See Also Wiimote Class Wiimote Members WiimoteLib Namespace

�‚܂�֐��uSetLEDs()�v�ɂ́A����̂悤��Int32�̒l1�‚Ŏw�肷������ƁABoolean�‚܂�_�����邩�ǂ����̐^�U(true/false)��4�‚Ŏw�肷����@��2��ނ��p�ӂ���Ă���Ƃ������Ƃł��B�ǂ�����������ʂł͂���̂ł����A���̂悤�ɂ��āAWiimoteLib�Ȃǂ�API��������l�͕֗��ɃA�N�Z�X�ł���悤�ɁA��������̋C�̗������֐����J�����Ă���Ƃ������Ƃł��ˁB���́uSee Also�v�ɂ͏������Ă���N���X�⃁���o�[�֐��Ȃǂւ̃����N������܂��B

�킩��Ȃ����Ƃ���������u����ȋ@�\�Ȃ����ȁH�v�Ǝv�����Ƃ��́A���̃w���v�t�@�C�������p���܂��傤�B���̃w���v�t�@�C���̓v���O�����R�[�h���玩����������Ă���悤�ł����A�����@�\�������Ă���AC#��VB�̃R�[�h���܂܂�Ă��āA�׋��ɂȂ�܂��B

�{�^���C�x���g�̎擾

���̃X�e�b�v�ł�WiiRemote�̃{�^�����͂ɂ‚��Ċw�т܂��B�{�^����ON/OFF���擾���āA�t�H�[���ɕ\������V���v���ȃv���O�������쐬���܂��B

���x���̍쐬

�����قǂ܂ł̃v���O�����Ɠ��l�ɁA�V�����v���W�F�N�g���쐬���A�Q�Ɛݒ��WiimoteLib��lj����ď������ł�����A�uForm1�v�Ƀ��x��(Label�R���g���[��)��4�“\��t���Ă��������B

�V�����v���W�F�N�g�Ƀ��x����4�”z�u

����Label�̕����́A��قǃv���O���������珑�������܂��̂Őݒ�͕s�v�ł��B

�v���O����

WiiRemote�̃{�^�����������Ƃ��ɔ�������C�x���g�𗘗p���āA���̃��x����\������l��ύX���邱�ƂŁA���݂̃{�^�����͂̏�Ԃ�\������Ƃ����݌v�Ńv���O����������Ă����܂��B

Form1.cs(C#)��������Form1.h(C++)�Ɉȉ��̕�����lj����܂��B

�{�^�����͂ɑΉ�������(Form1.cs)[C#]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
|using WiimoteLib;    //WimoteLib�̎g�p��錾

namespace WiimoteLib_Sample  //���쐬�����v���W�F�N�g��
{
  public partial class Form1 : Form
  {
|   Wiimote wm = new Wiimote(); //Wiimote�N���X���쐬
    public Form1()
    {
|    Control.CheckForIllegalCrossThreadCalls = false; //���܂��Ȃ�
     InitializeComponent();
|    wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
|    wm.Connect();                          //WiiRemote�Ɛڑ�
    }
|   //Wii�����R���̒l���ω������Ƃ��ɌĂ΂��֐�
|   void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args)
|   {
|    WiimoteState ws = args.WiimoteState;    //WiimoteState�̒l���擾
|    this.DrawForms(ws);            //�t�H�[���`�ʊ֐���
|   }
|   //�t�H�[���`�ʊ֐�
|   public void DrawForms(WiimoteState ws)
|   {
|    this.label1.Text = "Button A:" + (ws.ButtonState.A);  //�{�^��A
|    this.label2.Text = "Button B:" + (ws.ButtonState.B);  //�{�^��B
|    this.label3.Text = "Button 1:" + (ws.ButtonState.One);//�{�^��1
|    this.label4.Text = "Button 2:" + (ws.ButtonState.Two);//�{�^��2
|   }
  }
}
�{�^�����͂ɑΉ�������(Form1.h)[C++]
#pragma once
namespace WiimoteLib_Sample {     //���쐬�����v���W�F�N�g��
  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;
| using namespace WiimoteLib;  //WimoteLib�̎g�p��錾
	/// <summary>
������
	/// </summary>
  public ref class Form1 : public System::Windows::Forms::Form
  {
|  public: Wiimote^ wm; //Wiimote�I�u�W�F�N�gwm���쐬
   public:
   Form1(void)
    {
|    Control::CheckForIllegalCrossThreadCalls = false; //���܂��Ȃ�
|    wm = gcnew Wiimote();  //Wiimote�N���X���쐬
     InitializeComponent();
|    //�C�x���g�֐��̓o�^
|    wm->WiimoteChanged +=
|    gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|     this, &Form1::wm_WiimoteChanged);
|    wm->SetReportType(InputReport::Buttons, true); //���|�[�g�^�C�v�̐ݒ�
|    wm->Connect(); //WiiRemote�Ɛڑ�
|   }
  public:
| void wm_WiimoteChanged(Object^ \
    sender,WiimoteLib::WiimoteChangedEventArgs^ args){
|    WiimoteState^ ws;
|    ws = args->WiimoteState;
|    this->DrawForms(ws);
|   }
| public: void DrawForms(WiimoteState^ ws) {
|    this->label1->Text = "Button A:" + (ws->ButtonState.A); 
|    this->label2->Text = "Button B:" + (ws->ButtonState.B);
|    this->label3->Text = "Button 1:" + (ws->ButtonState.One);
|    this->label4->Text = "Button 2:" + (ws->ButtonState.Two);
| }
 protected:
������

���s���Ă݂悤

���āA���s���Ă݂܂��傤�B�܂����g����Bluetooth�X�^�b�N����AWiiRemote��Bluetooth��PC�ɐڑ����܂��B�ڑ����m�F�ł�����AVisual C#/C++���[F5]�L�[�������Ď��s���܂��B�R���p�C�����Ƃ���A���������s�����Ɖ��}�̂悤�ȃA�v���P�[�V�������N�����܂��B���������ŃG���[����������ꍇ�A�قƂ�ǂ�Bluetooth�ڑ������܂��ڑ�����Ă��Ȃ��P�[�X�ł��BWiiRemote���������ڑ�����Ă��邩�m�F���Ă��������B

���s����A���x���̕\���ɒ���

WiiRemote��A�{�^�������������܂��B

���x���̕\�����ς��

�t�H�[����́uLabel1�v�̉ӏ��ɁuButton A: True�v�ƕ\�������ΐ����ł��B�����WiiRemote�̂��ׂẴ{�^�������𗣂��āA���ׂẴ{�^���������Ȃ���Ԃɂ����Ƃ��A�t�H�[����̃{�^���̃X�e�[�^�X��\���\�����S�āuFalse�v�ɂȂ�ΐ����ł��B

�{�^�������𗣂��ƁA���ׂ�False�ɂȂ�

WiiRemote��A�{�^����B�{�^���𓯎��ɉ�������ł݂܂��B

A,B��True�ɂȂ�

�Ō�ɁAWiiRemote��1�{�^����2�{�^���𓯎��ɉ�������ł݂܂��B

1,2��True�ɂȂ�

��ʂ�̎������I�������A�}�E�X�Łu×�v���N���b�N���邩�A�L�[�{�[�h����[Alt+F4]�������āA�v���O�������I�������܂��B

����F�{�^���C�x���g�̎擾

Wii�����R���̃{�^����ON/OFF�ɂ����Form�̃��x����ω������Ă��܂��BFalse��OFF(��𗣂������), True��ON(����)�ɑΉ����Ă��܂��B�ȉ��A���p����API�֐���������܂��B

�C�x���g�֐��̓o�^
[C#]  wm.WiimoteChanged += wm_WiimoteChanged;
[C++] wm->WiimoteChanged +=
            gcnew System::EventHandler<WiimoteChangedEventArgs^>(
            this, &Form1::wm_WiimoteChanged);

WiiRemote�̃{�^���������ꂽ�A�����x�Z���T�[�̒l���ς�����A�ȂǁA��Ԃɕω����������Ƃ��ɌĂ΂��֐���o�^���Ă��܂��B�v���O���~���O�p��Łu�R�[���o�b�N�֐��v�Ƃ����A�֐�����o�^���邱�ƂŁA���̃C�x���g�����������Ƃ��Ɏ����I�ɂ��̊֐������s�����悤�Ɍ��߂�ꂽ���@�Ŏw�肵�܂��B�����ł́AWiiRemote�̃{�^����Ԃɕω����������ꍇ�uwm_WiimoteChanged�v�Ƃ����֐����Ă΂��悤�ɐݒ肵�Ă��܂��B�J�b�R������Ȃǂ͂��炩���ߋK�肳�ꂽ�`���ɉ����Ă��܂��̂ŁA�֐�����n�������ł����ł悢�̂ł�(C++�̃R�[�h�����������̂͂��̂��߂ł�)�B

WiimoteState�̒l���擾
[C#]  WiimoteState ws = args.WiimoteState;
[C++] WiimoteState^ ws;
      ws = args->WiimoteState;

������Wii�����R���̃X�e�[�^�X(���)��ws�Ƃ������O��"�C�����m"�ɂƂ肱��ł��܂��B�����ɂ͂����Ŏg���Ă���WiimoteState�̓N���X�ł����A���̖��O����z���ł���悤�ɁA�C�x���g�Ŕ��������{�^���Ȃǂ̒l����荞�܂�܂��B�ȉ��A�g���������Ă݂܂��傤�B

�{�^���̏�Ԃ��擾
[C#]  this.label1.Text   = "Button A: " + (ws.ButtonState.A);
[C++] this->label1->Text = "Button A:" + (ws->ButtonState.A); 

WiiRemote��A�{�^���̒l��label1�ɕ\�����Ă��܂��B�{�^����������Ă�����ATrue��\�����܂��B�{�^����������Ă�����AFalse��\�����܂��B���ۂɂ́uws.ButtonState.A�v���Ӗ�����l��True��False�Ƃ����^�U�̒l�ł����A�������ulabel1.Text�v�Ȃ̂Ŏ����I�ɕ�����ɕϊ�����Ă��܂�(.ToString()����K�v�͂Ȃ�)�B

���l�Ɂuws.ButtonState.b�v�ȂǂƂ��邱�Ƃ�WiiRemote��B�{�^���A���̑��S�Ẵ{�^���̏�Ԃ��擾���邱�Ƃ��ł��܂��B

�ǂ��ł��傤�H�Ƃ��Ă��ȒP�ł��ˁI���̃C�x���g�̃R�[���o�b�N�֐��ŃX�e�[�g���擾������@�͑��̂��낢��ȓ��͂ɉ��p�ł��܂��B�������A���̊��������R�[���o�b�N�̎d�g�݂��ȒP�ɗ��p�ł���w�i�ɂ́A�l�X�ȕ��G�ȃv���O���~���O�̓����̋Z�p������܂��B���̓t�H�[���̃R���X�g���N�^�ŁA1�‚����A���܂��Ȃ������Ă��܂����B

���܂��Ȃ�
[C#]  Control.CheckForIllegalCrossThreadCalls  = false;
[C++] Control::CheckForIllegalCrossThreadCalls = false;

�]�T�̂���l�́A���̍s���R�����g�A�E�g���āA���s���Ă݂Ă��������B�Ȃ������s���Ƀ{�^���������ƃG���[���o�Ă��܂��܂��B����́A�}���`�X���b�h(�X���b�h;Thread�������̗���)�Ɋւ����ł��B��̃{�^���̏�Ԃ�ǂݍ���WiimoteLib�̃X���b�h�ƁA�t�H�[���̏����������s���X���b�h�����ꂼ��قȂ�̂Łu�X���b�h�Z�[�t�łȂ��v�‚܂�A�����̃X���b�h�ɂ����鏈���̏����Ȃǂ��ۏ؂ł��Ȃ����ߎ��s���G���[�ɂȂ��Ă��܂��܂��BWiimoteLib�̌����ŏЉ��Ă�����@�ŁA

Invoke(),delegate()���g�����@
//Wii�����R���̒l���ω������Ƃ��ɌĂ΂��֐�[C#]
void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args){
  WiimoteState ws = args.WiimoteState;    //WiimoteState�̒l���擾
  if (this.IsHandleCreated) {
    this.Invoke( (MethodInvoker)delegate() {
    this.DrawForms( ws );            //�t�H�[���`�ʊ֐���
  });
 }
}

���̂悤�ɁAInvoke()�Ƃ������\�b�h���g�����@������܂����A������Ə��S�҂ɂ͕s���Ăȏ������ł��B�����N���Ă��āA�ǂ�ȃ��X�N�����邩(�t�H�[���̏����������X���b�h�Z�[�t�łȂ��㏑�������)�Ƃ������Ƃ��킩���Ă���Ȃ�

Control.CheckForIllegalCrossThreadCalls=false;

�Ƃ��āA�s���ȃX���b�h�ԃR�[���̃`�F�b�N�����Ȃ��A�Ɛ錾������@������̂ŁA�{�͂ł́u���܂��Ȃ��v�Ƃ��ĈȌケ�̕��@���̗p���邱�Ƃɂ��܂��B

WiimoteState�̃����o�[

������WiimoteState�ŎQ�Ƃł��郁���o�[��\�ŏЉ�Ă����܂��B

WiimoteState�̃����o(WiimoteLib ver.1.7)
���� ���
AccelCalibrationInfo ���݂̉����x�Z���T�[�̃L�����u���[�V�������
AccelState ���݂̉����x�Z���T�[�̏��
BalanceBoardState ���݂�WiiFit�o�����X�{�[�h�̏��
Battery �Z�o���ꂽ���݂̃o�b�e���[���x��
BatteryRaw ���݂̃o�b�e���[���x���̌v�Z�O�̒l(���l)
ButtonState ���݂̃{�^���̏��
ClassicControllerState ���݂̊g���N���V�b�N�R���g���[���[�̏��
DrumsState ���݂̊g���h�����R���g���[���[�̏��
Extension �g���R���g���[���[���}������Ă��邩
ExtensionType �g���R���g���[���[���}������Ă���ꍇ���̎��
GuitarState ���݂�GuitarHero�g���M�^�[�R���g���[���[�̏��
IRState ���݂̐ԊO���Z���T�[�̏��
LEDState ���݂�LED�̏��
NunchukState ���݂̊g���k���`���N�R���g���[���[�̏��
Rumble ���݂̃o�C�u���[�^�[�̏��

WiimoteLib�ɂ͎��ɗl�X�Ȋg���R���g���[���[����������Ă���A���̃����o�[�����Ԃ��擾�ł��邱�Ƃ��킩��܂��B�����̒l�⃁�\�b�h�Ȃǂ́AVisual Studio��Intellisense�@�\���g���Ăǂ�ǂ���������Ă����܂��傤�B��قǂ̃{�^���̗�Ȃǂ��A�uws.ButtonState.�v�Ɓu.�v���������u�Ԃɂ͐������W�L�̑I����������܂��B�{�^���̖��̂Ȃǂ͂��������o���Ă����܂���̂ŁA���ɕ֗��ł��B�Ȃ�Intellisense��Ctrl+Space�ł��‚ł��ǂ��ł��Ăяo���܂��B�S�ẴO���[�o���ȃI�u�W�F�N�g���\������܂��B��������Ɏg���Ƃ悢�ł��傤�B

Intellisense�ɂ��⊮�@�\���g�����Ȃ���

�����`���[�����

���āA����܂�WiimoteLib���g���āA��{�I�ȓ��o�͂��w��ł��܂����B���̂�����ŁA���p�I�ȃv���O�����̗�Ƃ��āu�����`���[�v���쐬���Ă݂܂��傤�B�{�^�����������тɁAWindows�̃A�N�Z�T���u�������v��u�d��v�ȂNJO���v���O�������N������v���O�����ł��B

�O���v���O�����̋N��

�O�߂́u�{�^���C�x���g�̎擾�v�Ɗ�{�͓����ł��BWiimoteLib�̐錾���s���A�R�[���o�b�N�֐����ŊO���v���O�������N��������A�A�v���P�[�V�������g���I���������肵�܂��B

�V�����v���W�F�N�g���쐬���AWiimoteLib���Q�Ƃɒlj����AForm1���E�N���b�N���āu�R�[�h��\���v���A���̃R�[�h���L�q���܂��B�O�߂̃v���O�����̉�������n�߂Ă��ǂ��ł��傤�B

�{�^���C�x���g�ŊO���v���O�������N������(Form1.cs)[C#]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
|using WiimoteLib;    //WimoteLib�̎g�p��錾

namespace WL_Launcher
{
    public partial class Form1 : Form
    {
|        Wiimote wm = new Wiimote(); //Wiimote�N���X���쐬
        public Form1()
        {
|            Control.CheckForIllegalCrossThreadCalls = false; //���܂��Ȃ�
            InitializeComponent();
|            wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
|            wm.Connect();                          //WiiRemote�Ɛڑ�
        }
|        //Wii�����R���̒l���ω������Ƃ��ɌĂ΂��֐�
| void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args)
|        {
|            WiimoteState ws = args.WiimoteState;    //WiimoteState�̒l���擾
|            //A�{�^���������ꂽ�烁�������N��
|            if (ws.ButtonState.A == true)
|            {
|                System.Diagnostics.Process.Start("notepad.exe");
|            }
|            //B�{�^���������ꂽ��d����N��
|            if (ws.ButtonState.B == true)
|            {
|                System.Diagnostics.Process.Start("calc.exe");
|            }
|            //HOME�{�^���������ꂽ�炱�̃A�v�����I��
|            if (ws.ButtonState.Home == true)
|            {
|                Environment.Exit(0);
|            }
|        }
    }
}
�{�^�����͂ɑΉ�������(Form1.h)[C++]
#pragma once

namespace WLCLauncher {
  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;
| using namespace WiimoteLib;  //WimoteLib�̎g�p��錾

  public ref class Form1 : public System::Windows::Forms::Form
  {
| public: Wiimote^ wm; //Wiimote�I�u�W�F�N�gwm���쐬
  public:
   Form1(void)
    {
|    Control::CheckForIllegalCrossThreadCalls = false; //���܂��Ȃ�
|    wm = gcnew Wiimote();  //Wiimote�N���X���쐬
     InitializeComponent();
|    //�C�x���g�֐��̓o�^
|    wm->WiimoteChanged +=
|      gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|        this, &Form1::wm_WiimoteChanged);
|    wm->SetReportType(InputReport::Buttons, true); //���|�[�g�^�C�v�̐ݒ�
|    wm->Connect(); //WiiRemote�Ɛڑ�
|   }
  public:
void wm_WiimoteChanged(Object^ sender,WiimoteLib::WiimoteChangedEventArgs^ \
    args){
|     WiimoteState^ ws;
|     ws = args->WiimoteState;
|     //A�{�^���������ꂽ�烁�������N��
|     if (ws->ButtonState.A) {
|       System::Diagnostics::Process::Start("notepad.exe");
|     }
|     //B�{�^���������ꂽ��d����N��
|     if (ws->ButtonState.B) {
|       System::Diagnostics::Process::Start("calc.exe");
|     }
|     //HOME�{�^���������ꂽ�炱�̃A�v�����I��
|     if (ws->ButtonState.Home) {
|       Environment::Exit(0);
|     }
|   }
���ȉ�����

���s���Ă݂悤

�܂��́A���‚��ʂ�WiiRemote��ڑ����Ă��������B������Visual Studio��[F5]�L�[�������āA�쐬�����v���O���������s���܂��B���������ŃG���[����������ꍇ��WiiRemote���������ڑ�����Ă��邩�m�F���Ă��������B

WiiRemote��A�{�^���������ƁA���������N�����AB�{�^���������ƁA�d�삪�N�����܂��B

WiiRemote��B�{�^���𐔉񂨂��ƁA�������񐔂����A�d�삪�N�����܂��B

B�{�^�����������񐔂����d�삪�N������

WiiRemote��Home�{�^���������ƁA�����`���[�v���O�������I�����܂��B

���̃v���O�����́unotepad.exe�v��ucalc.exe�v���D���ȊO���v���O�����ɏ���������΁A���ł��N���ł���Ƃ����킯�ł��ˁB�Ȃ񂾂����낢��Ȃ��Ƃ��ł������ł��B�y�����Ȃ��Ă��܂��񂩁H

����F�{�^���C�x���g�ɂ��A�v���N��

WiiRemote�̃{�^����������邱�Ƃɂ���Đݒ肵���A�v���P�[�V�������N�����邽�߂ɂ́A��قǂ̃v���O������DrawForm()�ŏ��������悤�ȁA���x���̃e�L�X�g���������������ɁA.NET�ŗp�ӂ���Ă���d�g�݂𗘗p���āA�O���v���O�������N�����܂��B

if (ws.ButtonState.A == true) {
     //A�{�^���������ꂽ�烁�������N��
      System.Diagnostics.Process.Start("notepad.exe");
}

�uSystem.Diagnostics.Process.Start()�v�ɂ‚��Ă͂��낢��ȉ��p������܂��B�e�L�X�g�t�@�C���Ȃǂ��w�肷�邱�ƂŊ֘A�Â���ꂽ�v���O�������g���ĊJ�����ƂȂǂ��”\�ł��B�ڂ����̓C���^�[�l�b�g�Ō��J����Ă���.NET Framework�N���X���C�u�����̃}�j���A����uProcess.Start�v���L�[���[�h�Ɍ������Ă݂�Ɨǂ��ł��傤�B

�ȏ�́AC#�ł̋L�q�ł����AC++/CLI�ł��S����a���Ȃ��݊������ۂ���Ă��܂��BC++��Home�{�^���������ďI������ӏ��̃R�[�h�����Ă݂܂��傤�B

 //HOME�{�^���������ꂽ�炱�̃A�v�����I��
 if (ws->ButtonState.Home) {
   Environment::Exit(0);
 }

�ȏ�̂悤�ɁuEnvironment::Exit(0);�v�ŁA�������g�̃A�v���P�[�V�������I���ł��܂��B

���āA����ȕ֗��ȃR�[�����o����ƁA�����`���[�ŋN�������v���O�����̏I���Ȃǂ�����Ă݂����Ȃ�Ǝv���܂��B

���̐�̐ԊO���|�C���^��p���ă}�E�X���쐬�������w�K���Ă���A����ɍ��@�\�ɉ������Ă݂�Ƃ悢�ł��傤�B

�����x�Z���T�[���g��

�����x�Z���T�[�ɂ‚���

���́AWiiRemote�̉����x�Z���T�[���g�����v���O���~���O���������Ă����܂��B2�͂ʼn�������Ƃ���AWiiRemote�ɂ�X���AY���AZ���ɑΉ�����3���̉����x�Z���T�[����������Ă��܂��B

�����x�Z���T�[(��http://www.wiili.org���ؗp)

WiiRemote�ɓ������ꂽ3���}�C�N�������x�Z���T�[�́A���ꂼ��̎��ɑ΂���8bit�A�‚܂�0�`255�̒l�������܂��B���̃Z�N�V�����ł́A�܂��l���Ƃ��v���O�������쐬���A���̌�A���p�A�v���P�[�V�����̊J����ʂ��āA�����x�Z���T�[�̊�{�I�ȗ��p�ɒ��킵�܂��B

�����x�Z���T�[�̒l��\��

�����ł́A�܂���n�߂ɁAWiiRemote�̉����x���擾����v���O�������쐬���܂��B��قǂ܂łƓ��l�AVisual Studio(C#/C++�ǂ���ł����܂��܂���I)�ŁA�V�����v���W�F�N�g���쐬���A�Q�ƂɁuWiimoteLib�v��lj����܂��B�����I�ɐ�������Ă���t�H�[���uForm1�v�ɁA�c�[���{�b�N�X���烉�x��(Label)��3�“\��t���Ă��������B�����ɉ����x�Z���T�[X,Y,Z�̃��A���^�C������l��\�����܂��B

�����ăR�[�f�B���O�ł��BForm1���E�N���b�N���āu�R�[�h��\���v���āA�ȉ��̃v���O�����̃R�����g�A�E�g���Ă���ӏ������������Ă����܂�(�����������ꂽ�R�����g�s�͊������Ă��܂�)�B�܂��`����using��ɂ��N���X�̐錾�ł����A�ŏ����K�v�ȕ��݂̂ɂ��Ă��܂��B

�����x�Z���T�[�̒l��\������(Form1.cs)[C#]
  using System;
  using System.Windows.Forms; 
| using WiimoteLib;    //WimoteLib�̎g�p��錾

namespace WL_Accel
{
  public partial class Form1 : Form
  {
|   Wiimote wm = new Wiimote(); //Wiimote�N���X���쐬
    public Form1()
    {
|     Control.CheckForIllegalCrossThreadCalls = false; //���܂��Ȃ�
      InitializeComponent();
|     wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
|     wm.SetReportType(InputReport.ButtonsAccel, true); //���|�[�g�^�C�v�̐ݒ�
|     wm.Connect();                          //WiiRemote�Ɛڑ�
    }
|   //Wii�����R���̒l���ω������Ƃ��ɌĂ΂��֐�
|   void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) {
|     WiimoteState ws = args.WiimoteState;    //WiimoteState�̒l���擾
|     this.DrawForms(ws); //�t�H�[���`��֐���
|   }
|   //�t�H�[���`��֐�
|   public void DrawForms(WiimoteState ws)  {
|     this.label1.Text = "X��:" + (ws.AccelState.Values.X);
|     this.label2.Text = "Y��:" + (ws.AccelState.Values.Y);
|     this.label3.Text = "Z��:" + (ws.AccelState.Values.Z);
|   }
  }
}
�����x�Z���T�[�̒l��\������(Form1.h)[C++]
#pragma once
namespace WLCAccel {
  using namespace System;
  using namespace System::Windows::Forms;
| using namespace WiimoteLib;  //WimoteLib�̎g�p��錾

  public ref class Form1 : public System::Windows::Forms::Form
  {
| public: Wiimote^ wm; //Wiimote�I�u�W�F�N�gwm���쐬
  public:
    Form1(void) {
|     Control::CheckForIllegalCrossThreadCalls = false; //���܂��Ȃ�
|     wm = gcnew Wiimote();  //Wiimote�N���X���쐬
      InitializeComponent();
|     //�C�x���g�֐��̓o�^
|     wm->WiimoteChanged +=
|       gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|       this, &Form1::wm_WiimoteChanged);
|     wm->SetReportType(InputReport::ButtonsAccel, true); //���|�[�g�^�C�v�̐ݒ�
|     wm->Connect(); //WiiRemote�Ɛڑ�
    }
| public:
| void wm_WiimoteChanged(Object^ \
    sender,WiimoteLib::WiimoteChangedEventArgs^ args){
|     WiimoteState^ ws;
|     ws = args->WiimoteState;
|     this->DrawForms(ws);
|   }
| public:
|   void DrawForms(WiimoteState^ ws) {
|     this->label1->Text = "X��:" + (ws->AccelState.Values.X);
|     this->label2->Text = "Y��:" + (ws->AccelState.Values.Y);
|     this->label3->Text = "Z��:" + (ws->AccelState.Values.Z);
|   }
���ȉ�����

���s���Ă݂悤

����ł͎������Ă݂܂��傤�B�܂�WiiRemote�����g����Bluetooth�X�^�b�N�Őڑ����Ă��������B

����Visual Studio���[F5]�L�[�������Ď��s���Ă��������B�������v���O������������Ă��炸�A�G���[�Ȃǂ��o��ꍇ�͂悭�m�F���āA�C�����Ă��������B

�t�H�[�����\�����ꂽ��AWiiRemote��U��܂킵�Ă݂Ă��������B���̂Ƃ��A���q�ɏ���ĐU��񂵂����Ĕ��ł����Ɗ댯�Ȃ̂ŁA��U�肷��Ƃ��͕K���X�g���b�v�����Ă��������B

�t�H�[���ɒ���t�����A�����x��X,Y,Z�̒l���f���������Ă��邱�Ƃ��킩��܂��B

�y���Ӂz�N������3�‚̒l���[���̂܂܂������ꍇ�A��U�쐬�����A�v���P�[�V�������I�������āAWiimoteLib�̃T���v���uWiimoteTest.exe�v�����s���Ă݂Ă��������B��x���̃T���v�����N�����Ă���A����쐬�����A�v���P�[�V�������N������ƒl���Ƃ�邱�Ƃ�����܂�(�G���[�����⏉�����𒚔J�ɂ��Ă��Ȃ����炩������܂���)�A�s����������Ƃ��͎����Ă݂Ă��������B

�܂��A�I�����ɁuDispose�v�Ɋւ���G���[���o��Ƃ�������܂����A��������܂̂Ƃ��떳�����Ă��܂��܂���B

Dispose�ŃG���[�����邪���͖���

����F���|�[�g�^�C�v�Ɖ����x�Z���T�[

WiiRemote��3���̉����x�Z���T�[�̃��A���^�C���l��\�����܂����B

���|�[�g�^�C�v�̐ݒ�
[C#]   wm.SetReportType(  InputReport.ButtonsAccel, true); 
[C++]  wm->SetReportType(InputReport::ButtonsAccel, true);

���|�[�g�^�C�v�A���Ȃ킿�C�x���g���N�����Ƃ��ɕ񍐂���悤��WiiRemote�ɂ��肢����u��ށv�������Őݒ肵�Ă��܂��B�uButtonsAccel�v�͉����x�Z���T�[�ƃ{�^���C�x���g���擾���Ă��܂��B

�����x�Z���T�[�̐��l�擾
[C#]  ws.AccelState.Values.X
[C++] ws->AccelState.Values.X

WiiRemote�ɓ������ꂽ�����x�Z���T�[�e���̐��l��float�Ŏ擾���܂��B

���܂��Ȃ�
[C#]  Control.CheckForIllegalCrossThreadCalls = false;
[C++] Control::CheckForIllegalCrossThreadCalls = false;

�O��Ɠ������A�ʂ̃X���b�h����t�H�[�������������邱�Ƃ����‚��܂��B

���|�[�g�^�C�v�ɁuButtonsAccel�v���w�肵�Ă���̂ŁA���̏�ԂŃ{�^���C�x���g�Ȃǂ��擾�ł��܂��B�]�͂̂���l�͎����Ă݂܂��傤�B�����āA���ۂɂǂꂾ���̒l���o�͂���邩�������Ă݂܂��傤�B�u���u���U���Ă݂�ƁA�����ł�������±5���x�̒l���v������܂��BWiiRemote�𒼗�������ƁAX,Z�Ȃ�2�‚̒l�̓[���ɂȂ�܂����A�����ЂƂ‚̎��A���Ƃ���Y���ɂ͂��Ȃ炸±0.9���x�̒l���c��܂��B

Y���Ɍ��o����Ă���̂�...�u�d�͉����x�v

����͉��ł��傤�c�c�H�����ł��A�d�͉����x�ł��I���i�͖ڂɌ����Ȃ��d�͉����x��ڂŌ��邱�Ƃ��ł��܂��B

�R�����F���|�[�g�^�C�v�Ƃ́H

�u���|�[�g�^�C�v�v�Ƃ�WiiRemote�ɖ₢���킹����Ƃ��̃��[�h�̂��ƂŁA���̃��|�[�g�^�C�v�ɂ���āAWiiRemote���Ԃ��Ԏ����قȂ�܂��B

WiimoteLib1.7�ł�InputReport���ňȉ��̃��|�[�g�^�C�v����`����Ă���悤�ł��B

���|�[�g�^�C�v�́A�f�[�^�̃t�H�[�}�b�g��ݒ肷��ړI�̑��ɂ��A���肠��ʐM�ш�⏈�����x���œK�ɐݒ肷��ړI������悤�ł��B��L��WiimoteLib�Ŏ�������Ă��郌�|�[�g�^�C�v�ȊO�ɂ��A�킩���Ă��邾���ł��A�{�^���݂̂̓��o�͂���A�����x�Z���T�[3��A�k���`���N�t��6��A�ԊO���t�����ǂ����A�Ƃ�������荂���ŃV���v���ȓ��o�̓��[�h����A��������̒l�����Ƃ肷�郂�[�h�܂ŁA�e�푵���Ă��܂��B�܂��ԊO���Z���T�[�ɂ‚��Ă��A�ő�4�_�܂ň����郂�[�h�ɑ΂���2�_�������[�h�ȂǁA�B�����[�h�I�ȃ��|�[�g�^�C�v�����݂���悤�ł�(WiimoteLib�ł�4�_�̂݃T�|�[�g���Ă��܂�)�B

�����x�Z���T�[�ō��WiiRemote����

��������WiiRemote�̓����̂ЂƂ‚ł�������x�Z���T�[�̒l���擾�ł���悤�ɂȂ����̂Łu���ۂ��ǂ��v������Ă݂܂��傤�B���ۂƌĂԂɂ͑傰����������܂��񂪁A�����x�Z���T�[�ɓ��͂��ꂽ����������苭���Ȃ��...���Ƃ��ΐ�قǂ̎�����±5���x�̒l������ł��܂����̂ŁA���̒l�𒴂����ꍇ�ɁAWAV�t�@�C�����Đ����邱�Ƃɂ��܂��B

���p�F�U���WAV�t�@�C������

��قǂ̉����x�Z���T�[���g���v���O�����̑�������n�߂�Ɨǂ��ł��傤�B�t�H�[���uForm1�v�̃R�[�h��\�����āA�ȉ��̂悤�ɒNjL���܂��B

�U���WAV�t�@�C������(Form1.cs)[C#]
  using System;
  using System.Windows.Forms;
| using WiimoteLib;    //WimoteLib�̎g�p��錾
| using System.Media;  //System.Media�̐錾

namespace WL_Taiko
{
  public partial class Form1 : Form
    {
|     Wiimote wm = new Wiimote(); //Wiimote�N���X���쐬
|     string path = null;         //Wav�t�@�C����
|     SoundPlayer wavePlayer;     //SoundPlayer��錾

      public Form1() {
        InitializeComponent();
|       wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
|       wm.SetReportType(InputReport.ButtonsAccel, true); //���|�[�g�^�C�v�̐ݒ�
|       wm.Connect();                           //WiiRemote�Ɛڑ�
|       path = @"C:\WINDOWS\Media\chord.wav";   //������WAV�t�@�C�����w��
|       wavePlayer = new SoundPlayer(path);     //�v���C���[��WAV�t�@�C����n��
      }
|     //Wii�����R���̒l���ω������Ƃ��ɌĂ΂��֐�
|     void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) {
|       WiimoteState ws = args.WiimoteState;    //WiimoteState�̒l���擾
|       //WAV�t�@�C�����ǂݍ��܂�Ă��邩�m�F
|       if (this.path != null) {
|         float AX = Math.Abs(ws.AccelState.Values.X); //X���̐�Βl
|         float AY = Math.Abs(ws.AccelState.Values.Y); //Y���̐�Βl
|         float AZ = Math.Abs(ws.AccelState.Values.Z); //Z���̐�Βl
|         //X,Y,Z���̉����x�Z���T�̐�Βl�̍��v��5�𒴂��鎞�ɁA�U�����Ɣ���
|         if ((AX+AY+AZ) >= 5) {
|           wavePlayer.PlaySync();  //����‚炷
|         }
|       }
|     }
    }
}
�U���WAV�t�@�C������(Form1.h)[C++]
#pragma once
namespace WLCTaiko {
  using namespace System;
  using namespace System::Windows::Forms;
| using namespace WiimoteLib;  //WimoteLib�̎g�p��錾
| using namespace System::Media;  //System.Media�̐錾

  public ref class Form1 : public System::Windows::Forms::Form
  {
|   public: Wiimote^ wm; //Wiimote�I�u�W�F�N�gwm���쐬
|   public: String^ path;         //WAV�t�@�C���p�X�i�[�p
|   public: SoundPlayer^ wavePlayer;  //SoundPlayer��錾
    public:
      Form1(void) {
|       wm = gcnew Wiimote();  //Wiimote�N���X���쐬
        InitializeComponent();
|       //�C�x���g�֐��̓o�^
|       wm->WiimoteChanged +=
|         gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|           this, &Form1::wm_WiimoteChanged);
|       wm->SetReportType(InputReport::ButtonsAccel, true); //���|�[�g�^�C�v�̐ݒ�
|       wm->Connect(); //WiiRemote�Ɛڑ�
|       path ="C:\\WINDOWS\\Media\\achord.wav";   //������WAV�t�@�C�����w��
|       wavePlayer = gcnew SoundPlayer(path);     //�v���C���[��WAV�t�@�C����n��
      }
  public:
void wm_WiimoteChanged(Object^ sender,WiimoteLib::WiimoteChangedEventArgs^ \
    args){
|       WiimoteState^ ws;
|       float AX, AY, AZ;
|       ws = args->WiimoteState;
|       if (this->path!=nullptr) {
|         AX = Math::Abs(ws->AccelState.Values.X); //X���̐�Βl
|         AY = Math::Abs(ws->AccelState.Values.Y); //Y���̐�Βl
|         AZ = Math::Abs(ws->AccelState.Values.Z); //Z���̐�Βl
|         //X,Y,Z���̉����x�Z���T�̐�Βl�̍��v��5�𒴂��鎞�ɁA�U�����Ɣ���
|         if ((AX+AY+AZ)>=5) {
|           wavePlayer->PlaySync();		//����‚炷
|         }
|       }
|     }
���ȉ�����

Visual C#��[F6]�AVisual C++��[F7]�L�[�������ăR���p�C���G���[���Ȃ����ƂȂǂ��m�F������ABluetooth�X�^�b�N����WiiRemote��ڑ����Ă�������(�ؒf����Ă��Ȃ���΂��̂܂ܑ��s���Ă��܂��܂���)�B

Visual Studio��[F5]�L�[�������Ď��s���Ă��������B�����ɃG���[�Ȃ����s�����ƁA�t�H�[�����\������܂��B���̃t�H�[���͍���g�p���܂��񂪁AWiiRemote��U���Ă݂�ƁA�U��ɍ��킹�āA�Ȃ񂾂��������������Ƃ̂��鉹���‚�܂��B

���

WiiRemote��3���̉����x�Z���T�̒l���擾���āA�w�肵�������x�����o����Ǝw�肵��WAV�t�@�C����‚炵�܂��B

������WAV�t�@�C�����w��
[C#]   path = @"C:\WINDOWS\Media\achord.wav"; 
[C++]  path ="C:\\WINDOWS\\Media\\achord.wav"; 

���́u@�v�́[email protected] string�v�Ƃ����āA���ꂪ�擪�ɒ����Ă��镶����́u\�v���o�b�N�X���b�V�������ȕ����Ƃ��Ăł͂Ȃ��A�t�@�C���p�X�Ƃ��ĊȒP�ɏ����ł��܂��BC++�ɂ͂���ɊY������W�L���Ȃ��悤�Ȃ̂Łu\\�v�Ƃ��āu\�v����ʂ�1�����Ƃ��Ĉ����Ă��܂��B

���Ă����ōĐ�����t�@�C�����w�肵�Ă��܂��B�‚炵����WAV�t�@�C�����w�肵�Ă��������B���̃v���O�����ł�Windows�ɗp�ӂ��ꂽWAV�t�@�C���Ƃ��āAWindows�̃V�X�e���ɍŏ���������Ă���WAV���w�肵�܂������A�����g�ŗp�ӂ��ꂽ���y����ʉ����w�肵�Ă��ǂ��ł��傤�B

��Βl
[c#]  float AX = Math.Abs(ws.AccelState.Values.X); //X���̐�Βl
[c++] AY = Math::Abs(ws->AccelState.Values.Y);     //Y���̐�Βl

WiiRemote��X,Y,Z���̒l���擾���A���̐�Βl���Ƃ�܂��B

����
//X,Y,Z���̉����x�Z���T�̐�Βl�̍��v��5�𒴂��鎞�ɁA�U�����Ɣ���
if ((AX+AY+AZ)>= 5) {
	wavePlayer.PlaySync();
}

X,Y,Z���̉����x�̐�Βl�̘a��[5]�𒴂���Ɖ���‚炷�Ƃ́A�����ɂ��ȒP�ł��B����[5]�Ƃ����l���A����������Ώ��Ȃ�����Ŕ������܂��B���΂ɑ��₹�΁A�傫������Ŕ������܂��B�����̍D�݂̐����ɒu�������Ă݂āA�������Ă݂Ă��������B�Ȃ�����́A�����Đ�����WiiRemote��U���Ă��������܂���(�Đ����ɂ�����A���Đ��������ꍇ�̓X���b�h�����Ȃǂ�p����K�v������܂�)�B

�ԊO���Z���T�[���g��

���āA�����x�Z���T�[���Ђƒʂ�g�����Ȃ������Ƃ́A�ԊO���Z���T�[�ɒ��킵�Ă݂܂��傤�B�ԊO���͐l�Ԃ̖ڂŌ��邱�Ƃ��ł��܂���B�������ŏ��ɍ쐬����v���O�����u�ԊO���T�m�@�v�́A�ԊO����WiiRemote�̎��E�ɂ͂���ƁA�o�C�u���[�^�[��‚炷���Ƃ��ł��܂��B���ɍő�4�_�̐ԊO���������J�E���g���A���̌��ʂ�LED�ɕ\������v���O���������܂��B����ɂ�������p���A�O���t�B�b�N�X�ɑg�ݍ��ފ�b���w�сA�Ō�ɐԊO���Z���T�[���g�����}�E�X����v���O�������X�e�b�v��ǂ��ĊJ�����Ă����܂��B�ڂɌ����Ȃ��ԊO�����A�ƂĂ��ʔ�������`���郁�f�B�A�ɂȂ邱�Ƃ�̊����Ă����܂��傤�I

�ԊO���T�m�@

�����v���O���~���O���n�߂܂��傤�B������O��ɍ쐬���������x�Z���T�[�̃v���O���������҂��Ă��悢�̂ł����A�V�K�ō��ق����׋��ɂȂ��Ă悢�ł��傤�B�\�����[�V������V�����쐬����K�v�͂Ȃ��A�\�����[�V�������E�N���b�N���āu�lj��v���u�V�����v���W�F�N�g�v�ŐV�����v���W�F�N�g��(�����ł́uIR1�v)��^���āA�v���W�F�N�g���ł�����������A�v���W�F�N�g���E�N���b�N���āu�X�^�[�g�A�b�v�v���W�F�N�g�ɐݒ�v���A�Q�Ɛݒ��WiimoteLib��lj����܂��B���̃v���W�F�N�g�̃R�[�h��t�H�[�����ԈႦ�ĕҏW���Ȃ��悤�A��U�J���Ă���\�[�X�R�[�h�̃E�B���h�E�����ׂĕ‚��܂��B����ŏ����͂ł�������ł��B����m�F�̂��߂�[F5]�L�[�������Ď��s���Ă݂Ă��悢�ł��傤�B

���̃v���W�F�N�g�ł͂܂��AWiiRemote�ւ́u�ڑ��v�u�ؒf�v�{�^�����쐬���܂��B�t�H�[���Ƀ{�^��2�’���t���Ă��������B

�t�H�[���Ƀ{�^����2�”z�u����

�\��t������A�ubutton1�v�̃v���p�e�B��Text���u�ڑ��v�ɁA�ubutton2�v�̃v���p�e�B��Text���u�ؒf�v�ɐݒ肵�܂��B

�ubutton1�v��text�v���p�e�B���u�ڑ��v��
�ubutton2�v��text�v���p�e�B���u�ؒf�v��
�{�^���̊���

�t�H�[���uForm1�v���E�N���b�N���āu�R�[�h�̕\���v�����Đ錾�ƁA�ڑ����̏����A�ԊO�����������Ƃ��̃o�C�u���[�^�[�̏��������������܂��傤�B

�ԊO���T�m�@(Form1.cs)[C#]
//�s�v��using�錾�͍폜���Ă��܂��܂���
  using System;
  using System.Windows.Forms;
| using WiimoteLib;    //WimoteLib�̎g�p��錾

namespace IR1
{
  public partial class Form1 : Form
  {
|   Wiimote wm = new Wiimote(); //Wiimote�N���X���쐬
    public Form1()
    {
      InitializeComponent();
|     //���X���b�h����̃R���g���[���Ăяo������
|     Control.CheckForIllegalCrossThreadCalls = false;
    }
|   //�ڑ��{�^���������ꂽ��
    private void button1_Click(object sender, EventArgs e) {
|     wm.Connect();                            //Wiimote�̐ڑ�
|     wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
|     wm.SetReportType(InputReport.IRExtensionAccel, true);//���|�[�g�^�C�v�̐ݒ�
    }
|   //�ؒf�{�^���������ꂽ��
    private void button2_Click(object sender, EventArgs e) {
|     wm.WiimoteChanged -= wm_WiimoteChanged; //�C�x���g�֐��̓o�^����
|     wm.Disconnect();  //Wiimote�ؒf
|     wm.Dispose();     //�I�u�W�F�N�g�̔j��
    }
|   //Wii�����R���̒l���ω�����x�ɌĂ΂��
|   void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args)  {
|     WiimoteState ws = args.WiimoteState;    //WiimoteState�̒l���擾
|     //�����ԊO�����P�”���������
|     if (ws.IRState.IRSensors[0].Found)  {
|       wm.SetRumble(true);     //�o�C�u���[�^ON
|     } else {
|       wm.SetRumble(false);    //�o�C�u���[�^OFF
|     }
|   }
  }
}
�ԊO���T�m�@(Form1.h)[C++]
#pragma once
namespace IR1 {
  using namespace System;
  using namespace System::Windows::Forms;
| using namespace WiimoteLib;  //WimoteLib�̎g�p��錾
  public ref class Form1 : public System::Windows::Forms::Form
  {
| public: Wiimote^ wm; //Wiimote�I�u�W�F�N�gwm���쐬
  public:
    Form1(void)
    {
|     wm = gcnew Wiimote();  //Wiimote�N���X���쐬
      InitializeComponent();
|     //���X���b�h����̃R���g���[���Ăяo������
|     Control::CheckForIllegalCrossThreadCalls = false; 
    }
  protected:
    ~Form1()
���ȗ���
#pragma endregion
| //�ڑ��{�^���������ꂽ��
private: System::Void button1_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|   wm->Connect(); //WiiRemote�Ɛڑ�
|   wm->WiimoteChanged +=
|     gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|       this, &Form1::wm_WiimoteChanged);
|   wm->SetReportType(InputReport::IRExtensionAccel, true); //���|�[�g�^�C�v�̐ݒ�
  }
|   //�ؒf�{�^���������ꂽ��
private: System::Void button2_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|   wm->WiimoteChanged -=
|     gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|        this, &Form1::wm_WiimoteChanged); //�C�x���g�֐��̓o�^����
|     wm->Disconnect();  //Wiimote�ؒf
|     wm->Dispose();     //�I�u�W�F�N�g�̔j��
  }

| //WiiRemote�̒l���ω�����x�ɌĂ΂��
| public:
| void wm_WiimoteChanged(Object^ \
    sender,WiimoteLib::WiimoteChangedEventArgs^ args){		
|     WiimoteState^ ws = args->WiimoteState;         //WiimoteState�̒l���擾
|     //�����ԊO�����P�”���������
|     if (ws->IRState.IRSensors[0].Found) {
|       wm->SetRumble(true);     //�o�C�u���[�^ON
|     } else  {
|       wm->SetRumble(false);    //�o�C�u���[�^OFF
|     }
|   }
  };
}

�����F�ԊO�������Ă݂悤

���āA���s���Ă݂܂��B�܂����͂ɐԊO��������p�ӂ��Ă��������BWii�{�̕t���̃Z���T�[�o�[������Ύ����葁���̂ł����A�Ȃ��ꍇ�͎���ɂ���Ɩ��A���z���Ȃǂɂ�������‚��Ă݂܂��傤�BBluetooth�X�^�b�N����WiiRemote��ڑ����āAVisual Studio��[F5]�L�[�������Ď��s���Ă��������B�t�H�[�����\�����ꂽ��A[�ڑ�]�{�^���������Ă��������BWiiRemote���Z���T�[�o�[�ȂǐԊO�������Ɍ����Ă��������B�Z���T�[�o�[���Ȃ��ꍇ�́A���z�A�n���Q�������v�Ȃǂ̔M���Ɩ��A���C�^�[�̉΁A�e���r�̃����R���A�g�ѓd�b�̐ԊO���ʐM�ȂǂɌ����Ă݂Ă��������B��肭���o�ł���ƁA�o�C�u���[�^�[���‚�܂��B�o�C�u���[�^�[���‚��Ă��Ȃ���Ԃ�[�ؒf]�{�^���������Ă���I�����܂��傤�B

���C�^�[�⃍�E�\�N�Ȃǂ�p���ĐԊO�������ɂ���ꍇ�́A�Ύ���Ώ��Ȃǂɏ\���C���‚��Ď������s���Ă��������B�܂��A�e���r�����R����p����ꍇ�́A�{�^���������ꂽ�Ƃ��ɂ����ԊO���𑗐M���܂���̂ŁA���x���A�ł��Ċm�F�������Ȃ��Ƃ悢�ł��傤�B

���낢��ȕ����Ɍ����Ă݂܂��悤�B���i�͌����Ȃ��ԊO���ł����A�g�̉��ɂ���l�X�ȕ��ɗ��p����Ă��邱�ƂɋC���‚����Ƃł��傤�B

�{�^���������Ă������N���Ȃ����́H

��L�̃R�[�h�����̂܂܃R�s�[���Ă��܂��񂩁H�{�^�����������Ƃ��̏����́AForm1�̏�ɂ���{�^�����_�u���N���b�N���āAWindows�t�H�[���f�U�C�i�������Ő��������R�[�h���g���ď����Ă����̂��m���ł��B�����P�ɁA��L�̃R�[�h���R�s�[����ƁA�ڑ��{�^���������Ă��A�K�؂ȏ����Ƀv���O����������Ă����܂���B���̎d�g�݂Ɂw�ǂ�����!?�x�Ǝv�����l�́A�v���W�F�N�g�̒��ɂ���uForm1.Designer.cs�v��`���Ă݂܂��傤�B�����Ɂu#region Windows�t�H�[���f�U�C�i�Ő������ꂽ�R�[�h�v�Ƃ����f�t�H���g�Ŕ�\���ɂȂ��Ă���p�[�g������܂��B

Form1.Designer.cs�Ŏ�����������Ă���R�[�h[C#]
#region Windows �t�H�[�� �f�U�C�i�Ő������ꂽ�R�[�h
�c
this.button1.Click += new System.EventHandler(this.button1_Click_1);
�c
this.button2.Click += new System.EventHandler(this.button2_Click);

�����ɂ́AGUI�ō쐬�����t�H�[���ɂ‚��Ă̈ʒu��傫���Ȃǂ̃v���p�e�B���L�ڂ���Ă��܂��B�厖�Ȃ̂́A�{�^�����������Ƃ��̃C�x���g�̔����ł��B

this.button1.Click+=new System.EventHandler(this.button1_Click_1);

�܂���WiiRemote�̃C�x���g�̒lj��Ɠ����悤�ɁA�N���b�N���̃C�x���g��lj����Ă��܂��B�������A��̗�ł́ubutton1_Click_1�v�Ƃ����֐��ɂȂ��Ă��܂��B�u_1�v�̕����́A���̊����̊֐��Ɩ��O���Փ˂��Ȃ��悤�A�����Ő�������܂��B�‚܂菟��Ɂubutton1_Click�v�Ƃ����֐��������Ă����Ƃ��Ă��A�{�^�����������Ƃ��̃C�x���g�Ƃ��ăR�[������邱�Ƃ͂���܂���B

�w�Ȃ񂾁A�킴�킴GUI�Ń_�u���N���b�N���Ȃ��Ƃ����Ȃ��̂��I�x�Ǝv���邩������܂��񂪁A�Ǘ����ʓ|�ȃC�x���g�n���Ȃǂ������Ő����E�Ǘ����Ă����A.NET�X�^�C���̊J�����u�����܂ŗ������āv�g�����Ȃ��A�Ƃ����̂��J�b�R�C�C�̂ł͂Ȃ��ł��傤���B

���:���|�[�g�̐ݒ�^�ԊO��4�_���o

���̃v���O�����̎d�g�݂͒P���ł��B�R�[���o�b�N�֐���ݒ肵�āAWiiRemote�̐ԊO���Z���T�[���ЂƂ‚ł����‚�������A�o�C�u���[�^�[��ON�ɂ��܂��B

���|�[�g�^�C�v�̐ݒ�
[C#]  wm.SetReportType ( InputReport.IRExtensionAccel, true); 
[C++] wm->SetReportType(InputReport::IRExtensionAccel, true);

���|�[�g�^�C�v���uIRExtensionAccel�v(�ԊO���{�g���{�����x)�擾���[�h�ɐݒ肵�܂��B���̃R�[���͂��Ȃ炸wm.Connect();�̌�ɋL�q���Ă��������Bwm.Connect();���O�ɋL�q����ƐԊO���Z���T�[�����������삵�܂���B

�ԊO���̌��o
[C#]    ws.IRState.IRSensors[0].Found
[C++]  ws->IRState.IRSensors[0].Found

���̃v���p�e�B��True/False��Ԃ��܂��̂ŁAif�����g���ĐԊO�������o���邱�Ƃ��ł��܂��B�܂�WiimoteLib�́A������4�_�܂ŐԊO�����������o���邱�Ƃ��ł��܂��B�X�̌�������肷�邱�Ƃ͂ł��܂��񂪁uIRSensors[3].Found�v���ꂪTrue�Ȃ�4�‚̐ԊO�������������Ă���A�Ƃ������Ƃł��B

�ԊO���𐔂���

�����āA�쐬������{�I�ȃv���O���������p���āA�ԊO���̌��𐔂���v���O�����Ɋg�����܂��BWiimoteLib�ɂ͓�����4�_�܂ł̐ԊO�����v�����邱�Ƃ��ł��܂��B�����܂ł̃v���O�����ł�1�_�ł��ԊO���������Z���T�[�̎��E�ɓ���ƁA�o�C�u���[�^�[���U������悤�ɂȂ��Ă��܂������A�FLED(�v���C���[�C���W�P�[�^)���‚����āA���_���o���Ă��邩��\������v���O������lj����܂��B

�ԊO���T�mLED�\��(Form1.cs, ����)[C#]
void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args)
{
  WiimoteState ws = args.WiimoteState;  //WiimoteState�̒l���擾
  //�����ԊO�����P�”���������
  if (ws.IRState.IRSensors[0].Found)  {
     wm.SetRumble(true);     //�o�C�u���[�^ON
  }  else  {
     wm.SetRumble(false);    //�o�C�u���[�^OFF
  }
| //���o���ꂽ�ԊO������Wii�����R����LED�ɕ\������
| wm.SetLEDs(ws.IRState.IRSensors[0].Found, ws.IRState.IRSensors[1].Found,
|            ws.IRState.IRSensors[2].Found, ws.IRState.IRSensors[3].Found);
}
�ԊO���T�mLED�\��(Form1.h, ����)[C++]
public:
void wm_WiimoteChanged(Object^ sender,WiimoteLib::WiimoteChangedEventArgs^ \
    args){		
 WiimoteState^ ws = args->WiimoteState;  //WiimoteState�̒l���擾

  //�����ԊO�����P�”���������
  if (ws->IRState.IRSensors[0].Found) {
    wm->SetRumble(true);     //�o�C�u���[�^ON
  } else {
    wm->SetRumble(false);    //�o�C�u���[�^OFF
  }
| //���o���ꂽ�ԊO������Wii�����R����LED�ɕ\������
| wm->SetLEDs(ws->IRState.IRSensors[0].Found, \
    ws->IRState.IRSensors[1].Found,
| ws->IRState.IRSensors[2].Found, ws->IRState.IRSensors[3].Found );
}

�����ł͐�ق�LED�̓_������Ŏg�����uSetLED��()�v�֐��̂����A4�����̂��̂��g���Ă��܂��BWiiRemote�̐ԊO���Z���T�[�ɕ����̐ԊO�������������ƁA�o�C�u���[�^�[�̐U���Ƌ���LED�C���W�P�[�^���g���ĐԊO�����o����\�����܂��B

���W��`��

���āA�ԊO�������̗L����A���̃J�E���g���ł���悤�ɂȂ����̂ŁA���͐ԊO���Z���T�[�ɂ��������W�̎擾���s���A�t�H�[�����ɃO���t�B�b�N�X�@�\���g���ĕ`�悵�܂��B��قǂ̃v���W�F�N�g�����̂܂܉��ǂ��ĊJ�����邱�Ƃɂ��܂��傤�B

PictureBox��Size�v���p�e�B

�܂��A�t�H�[���̃f�U�C����ύX���܂��B�͂��߂Ďg���V�����R���g���[����z�u���܂��B�u�c�[���{�b�N�X�v�́u�R�����R���g���[���v����uPictureBox�v��Form1�ɒ���t���܂��B�v���p�e�B�́uSize�v���u200, 200�v�ɂ��܂��B���̃{�^����t�H�[���̃o�����X���Ƃ��Ĕz�u���܂��B

Form1�ɔz�u����PictureBox�ƃ{�^��

�v���O�����̂ق��͂܂��A�`����using�錾�ŁuSystem.Drawing�v���錾����Ă��邱�Ƃ��m�F���Ă��������B��������{�^���C�x���g�͂��̂܂܂ŁAWiiRemote�̏�Ԃ��ω������Ƃ��ɌĂ΂��֐��uwm_WiimoteChanged()�v�ƃt�H�[���`��֐��uDrawForms(ws)�v�ɁA�`��̂��߂̃R�[�h�����M���܂��B

�ԊO���|�C���^�`��(Form1.cs)[C#]
  using System;
  using System.Windows.Forms;
| using System.Drawing; //�`��̂��߂ɕK�v
| using WiimoteLib;     //WimoteLib�̎g�p��錾

  namespace IR4 {       //�쐬�����v���W�F�N�g����
    public partial class Form1 Form {
|     Wiimote wm = new Wiimote(); //Wiimote�N���X���쐬
    public Form1) {
     InitializeComponent();
|    //���X���b�h����̃R���g���[���Ăяo������
|    Control.CheckForIllegalCrossThreadCalls = false;
    }

|   //WiiRemote�̏�Ԃ��ω������Ƃ��ɌĂ΂��֐�
|   void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) {
|     WiimoteState ws = args.WiimoteState;  //WiimoteState�̒l���擾 
|     DrawForms(ws);                        //�t�H�[���`�ʊ֐���
|   }
�����F�{�^���C�x���g�֌W��
|   //�t�H�[���`�ʊ֐�
|   public void DrawForms(WiimoteState ws) {
|     Graphics g =this.pictureBox1.CreateGraphics(); //�O���t�B�b�N�X�擾
|     g.Clear(Color.Black);                          //��ʂ����F�ɃN���A
|     //�����ԊO�����P�”���������
|     if (ws.IRState.IRSensors[0].Found) {
|       //�ԐF�Ń}�[�J��`��
|       g.FillEllipse(Brushes.Red,
|       ws.IRState.IRSensors[0].Position.X * 200,
|       ws.IRState.IRSensors[0].Position.Y * 200, 10, 10);
|     }
|     //�����ԊO�����Q�”���������
|     if (ws.IRState.IRSensors[1].Found) {
|       //�F�Ń}�[�J��`��
|       g.FillEllipse(Brushes.Blue,
|       ws.IRState.IRSensors[1].Position.X * 200,
|       ws.IRState.IRSensors[1].Position.Y * 200, 10, 10);
|     }
|     //�����ԊO�����R�”���������
|     if (ws.IRState.IRSensors[2].Found) {
|       //���F�Ń}�[�J��`��
|       g.FillEllipse(Brushes.Yellow,
|       ws.IRState.IRSensors[2].Position.X * 200,
|       ws.IRState.IRSensors[2].Position.Y * 200, 10, 10);
|     }
|     //�����ԊO�����S�”���������
|     if (ws.IRState.IRSensors[3].Found) {
|       //�ΐF�Ń}�[�J��`��
|       g.FillEllipse(Brushes.Green,
|       ws.IRState.IRSensors[3].Position.X * 200,
|       ws.IRState.IRSensors[3].Position.Y * 200, 10, 10);
|     }
|     g.Dispose();//�O���t�B�b�N�X�̉��
| }
 }
}
�ԊO���|�C���^�`��(Form1.h)[C++]
 #pragma once
 namespace IR4 {  //�쐬�����v���W�F�N�g����
  using namespace System::Windows::Forms;
| using namespace System::Drawing;
| using namespace WiimoteLib;  //WimoteLib�̎g�p��錾
  public ref class Form1 : public System::Windows::Forms::Form
  {
|   public: Wiimote^ wm; //Wiimote�I�u�W�F�N�gwm���쐬
    public:
     Form1(void) {
|      wm = gcnew Wiimote();  //Wiimote�N���X���쐬
       InitializeComponent();
|      //���X���b�h����̃R���g���[���Ăяo������
|      Control::CheckForIllegalCrossThreadCalls = false; 
     }
    protected:
    /// <summary>
������
#pragma endregion
|   //�ڑ��{�^���������ꂽ��
private: System::Void button1_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|     wm->Connect(); //WiiRemote�Ɛڑ�
|     wm->WiimoteChanged +=
|       gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|         this, &Form1::wm_WiimoteChanged);
|       //���|�[�g�^�C�v�̐ݒ�
|       wm->SetReportType(InputReport::IRExtensionAccel, true);
    }
|   //�ؒf�{�^���������ꂽ��
private: System::Void button2_Click(System::Object^ sender, \
    System::EventArgs^ e) {
|     wm->WiimoteChanged -=
|       gcnew System::EventHandler<WiimoteChangedEventArgs^>(
|         this, &Form1::wm_WiimoteChanged); //�C�x���g�֐��̓o�^����
|       wm->Disconnect();  //Wiimote�ؒf
    }
|   //WiiRemote�̒l���ω�����x�ɌĂ΂��
|   public:
| void wm_WiimoteChanged(Object^ \
    sender,WiimoteLib::WiimoteChangedEventArgs^ args){		
|       WiimoteState^ ws = args->WiimoteState;  //WiimoteState���擾
|       DrawForms(ws);
|   }
|  public: 
|     void DrawForms(WiimoteState^ ws) {
|       //�O���t�B�b�N�X���擾
|       Graphics^ g = this->pictureBox1->CreateGraphics();
|       g->Clear(Color::Black);//��ʂ����F�ɃN���A

|       if (ws->IRState.IRSensors[0].Found) {  //�ԊO����1�”���������
|         //�ԐF�Ń}�[�J��`��
|         g->FillEllipse( Brushes::Red ,
|           (float)ws->IRState.IRSensors[0].Position.X * 200.0f ,
| (float)ws->IRState.IRSensors[0].Position.Y * 200.0f , 10.0f , 10.0f );
|       }
|       if (ws->IRState.IRSensors[1].Found) {  //�ԊO����2�”���������
|         //�F�Ń}�[�J��`��
|         g->FillEllipse( Brushes::Blue ,
|           (float)ws->IRState.IRSensors[1].Position.X * 200.0f ,
| (float)ws->IRState.IRSensors[1].Position.Y * 200.0f , 10.0f , 10.0f );
|       }
|       if (ws->IRState.IRSensors[2].Found) {  //�ԊO����3�”���������
|         //���F�Ń}�[�J��`��
|         g->FillEllipse( Brushes::Yellow ,
|           (float)ws->IRState.IRSensors[2].Position.X * 200.0f ,
| (float)ws->IRState.IRSensors[2].Position.Y * 200.0f , 10.0f , 10.0f );
|       }
|       if (ws->IRState.IRSensors[3].Found) {  //�ԊO����4�”���������
|         //�ΐF�Ń}�[�J��`��
|         g->FillEllipse( Brushes::Green ,
|           (float)ws->IRState.IRSensors[3].Position.X * 200.0f ,
| (float)ws->IRState.IRSensors[3].Position.Y * 200.0f , 10.0f , 10.0f );
|       }
|     }
  };
}

�������悤

�܂��ԊO��������p�ӂ��āABluetooth�X�^�b�N����WiiRemote��ڑ����Ă��������BVisual Studio����[F5]�L�[�������ăv���O���������s���܂��B�\�����ꂽ�t�H�[����[�ڑ�]�{�^�����N���b�N���āAWiiRemote���Z���T�[�o�[��d���Ȃǂ̐ԊO�������Ɍ����Ă��������B

�ԊO���Ɍ������4�F�̃}�[�J�[������

�ԊO�������o�����Ɛ}�̂悤�Ƀ}�[�J�_���\�����܂��B�}�[�J�̓���������������ꍇ�́AWiiRemote�ƃZ���T�[�o�[�Ƃ̋�����2m�`3m�܂ŗ����Ă��������B�����������قLj��肵���������s�����Ƃ��ł��܂��B

�Ȃ�Wii�{�̕t���̕W���̃Z���T�[�o�[�ɂ͐ԊO��LED�����E2�O���[�v��������܂���i��������4�_���o�ł���Ƃ����@�\�����݂���Ƃ��낪�����ł��I�j�B�����̐ԊO�������‚���Ȃ��ꍇ�́A�����i���z�Ɍ�����Ȃǁj�ɑ��̊O�Ɍ�����ƕ����̐ԊO�������o�ł���Ǝv���܂��B���z�̌��𗐔��˂��Ă���l�q�Ȃǂł������_���擾�ł��邱�Ƃ�����܂����A�ԊO���������m���߂�����ƂЂƂ‚̃O���[�v�Ƃ��Č�F������m�C�Y�̌����ɂȂ�܂��̂ŁA������x���肵�Ď擾�ł�������⋗���𒲂ׂĂ݂�̂��悢�ł��傤�B��̐}�ł́A�Ƃ���X�܂̓V��ɒ݂��Ă���4�‚̃n���Q�������v�̗l�q�ł��B�I������ꍇ�́A�ؒf�{�^���������Ă���I�������Ă��������B

����F�ԊO�����W�̎擾

WiiRemote�̐ԊO���J�����̒l���擾���āA�ԊO���𔭌��������ʂɕ`�悵�Ă��܂��B

�ԊO�����W�̎擾
[C#]   ws.IRState.IRSensors[0].Position.X 
[C++] ws->IRState.IRSensors[0].Position.X

�ԊO���̍��W(x,y)�̈ʒu(Position)�́A{0.0�`1.0}�̒l����Ƃ�܂��B�O���t�B�b�N�X�Ƃ̑g�ݍ��킹���ӊO�ƊȒP�������̂ł͂Ȃ��ł��傤���B�{�v���O�����ł́A���̒l��pictureBox�̉����Ƃ��Đݒ肵��200x200�ɍ����悤�ɁA200���|���ďo�͂��Ă��܂����A�t�H�[����Size��ύX�����肵�āA���D�݂̉�ʃf�U�C���ɂ��Ă݂�Ƃ悢�ł��傤�B

�Ȃ��AWiiRemote�̐ԊO���Z���T�[�͔��ɍ����\�ł��B�����ł�4�_�̌��o���s���Ă��܂����A���ۂɐԊO���������W�������Ă���X�s�[�h�͔��ɑ������Ƃɒ��ڂł��B�ʏ�̃r�f�I�J��������1�b��15-30����x�̎B�e���s���Ă���̂ɑ΂��AWiiRemote��200����x�̍��W�擾�������s���Ă���悤�ł��B�������Q�[���p���̓f�o�C�X�ł��A���x����؂ł��I

�{�͂ł͔�r�I���S�҂̓ǎ҂Ɍ����āAVisual Studio���g���AC#��C++�Ƃ��������̌���‹����g����.NET�ŊJ�����ꂽWiimoteLib��ʂ��āA��{�I��WiiRemote�v���O���~���O���w�т܂����BWiimoteLib�͌���ł������x�̍���API�̂ЂƂ‚ŁA���Ɉ��肵�ē��삵�܂��B.NET�Ƃ����‹�����uC#��p�H�v�ƍl�����Ă��܂����A�{���Ɍ�����C++/CLI�ɂ����������[�������܂���(�����炭���E���I�ł�)�B

WiimoteLib���g�����T���v���A��̓I�ȊJ�����8�͂ł������Ă����܂��B

[K]Wii Flash���g���Ă݂悤(ActionScript��)

WiiFlash�̊�{�@�\

�‹��ݒ� (CS3�̃Z�b�g�A�b�v DL�ƃC���X�g�[��)

WiiFlash�̃_�E�����[�h�ƃZ�b�g�A�b�v

Wii�����R����Flash�Ƃ‚Ȃ��邱�ƂŁAWeb�T�C�g�̂悤�ȃR���e���c��Wii�����R���ň������Ƃ��ł��܂��B���̏͂ł�Windows(XP

Professional SP2)��Macintosh(OSX 10.5)�y���y�[�W���z�ɕ�����Flash�ɐڑ�����܂ł����Љ�܂��B

-WiiFlash�̎d�g��WiiFlash��G��O�ɁAWiiFlash�̎d�g�݂ɂ‚��ė������܂��傤�BWiiFlash��Wii�����R����Flash��ʐM���邽�߂̒�������܂��B

WF.png

���͂ň������悤�ɁABluetooth�𗘗p���āAWii�����R���ƃp�\�R�����q���܂����BFlash��Wii��WiiFlash�Ƃ����\�t�g�𗘗p���āA�q���邱�Ƃ��ł��܂��B

WiiFlash�Ƃ�Joa Ebert��Thibault Imbert�Ƃ����Q�l�̃f���F���b�p�ɂ��AWii�����R����Flash® applications���q������悤�ɊJ�����ꂽ�����Ŏg����v���W�F�N�g�ł��BWiiFlash�͂Q�‚̃p�[�g�ɕ������Ē񋟂���Ă��܂��BWiiFlash Server C++�������́A.NET server�𗘗p���č��ꂽ�o�C�i���\�P�b�g�T�[�o�[�ŁAWii�����R������̏���Flash��������`�ɕω����ĒʐM���܂��B

WiiFlash ActionScript API (SWC component) WiiFlash�T�[�o�[����̒ʐM�ɑ΂��āA�v���O�������₷���悤�ɒ񋟂���Ă���̂��A����ActionScript(Flash�̃v���O���~���O����) API�ɂȂ�܂��B����API�ɂ��A���܂�ʐM�����Ă��鎖���ӎ������ɁA�v���O�������ł��܂��B

�܂��AWindows��Macintosh(�ȉ�Mac)�ɑΉ����Ă��܂��̂ŁA��葽���̊‹��Ŋy���ނ��Ƃ��ł��܂��B������Windows��Mac�ł͂ł��鎖���Ⴄ�̂Œ��ӂ��܂��傤�B

���‹��ݒ聛FlashCS3�̃C���X�g�[���܂��͈�ʓI��Flash�̊J���‹��ł���Adobe Flash CS3(http://www.adobe.com/jp/products/flash/)���p�\�R���C���X�g�[�����܂��傤�B�\�t�g�E�F�A�͍w�����Ȃ��Ƃ��A�̌��ł����p�ł��܂��B�̌��ł�1�����L���ł��̂ŁA�����C�ɓ�������w�����܂��傤�B

-Adobe Flash CS3 Professional�̃_�E�����[�h�P�DAdobe�T�C�g���J���܂��B(http://www.adobe.com/jp/downloads/) [FlashR CS3 Professional]-[�̌���]��I��

���_�E�����[�h�ɂ�Adobe ID���K�v�ɂȂ�܂��B

�Q.�C���X�g�[���_�E�����[�h�����p�b�P�[�W�iZIP�t�@�C���j���𓀂��A�t���̃C���X�g�[���K�C�h�iReadme.txt�j���Q�Ƃ̏�C���X�g�[�����Ă��������B

�R�D�A�v���P�[�V�������N���C���X�g�[��������������A�v���P�[�V�������N�����Ċm���߂Ă��������B�̌��ŗ��p�̏ꍇ�ɂ̓\�t�g�E�F�A�̃��C�Z���X�L�[�m�F��ʂ��o�܂����A30���ȓ��ł�����[�̌��łƂ��Ďg�p����]���N���b�N����΁A�ʏ�łƓ����@�\���g���܂��B���̌��ŃL���v�`��

WiiFlash�𗘗p����

-.NET Framework 3.0���K�v�ł��B��Windows�̂�

WiiFlash Server�́uMicrosoft .NET Framework 3.0 Redistributable Package�v���K�v�ɂȂ�܂��B(http://www.microsoft.com/japan/msdn/windowsvista/general/netfx30.aspx)

-�_�E�����[�h�P�DWiiFlash�T�C�g���J���܂��B(http://wiiflash.bytearray.org/)�����̃��j���[�ɂ���[PAGES]-[Download]��I�����܂��B���T�C�g�L���v�`��

��ʂ���[Download WiiFlash]���N���b�N���A�t�@�C�����_�E�����[�h���܂��B���M���̃o�[�W�����i�����������j���T�C�g�L���v�`��

��WiiFlash�̓W�J-�t�@�C�����e�ɂ‚��āEWiiFlash Server (latest version)�EWiiFlash API (SWC, sources)�EDocumentation�ECS3 Examples (.fla)

���‹��ݒ�yMacintosh�z��FlashCS3�̃C���X�g�[��Windows�Ɠ����ł��B

��WiiFlash�𗘗p����-�_�E�����[�h�P�DWiiFlash�T�C�g���J���܂��B(http://wiiflash.bytearray.org/)�����̃��j���[�ɂ���[PAGES]-[Download]��I�����܂��B���T�C�g�L���v�`��

��ʂ���[Download WiiFlash]���N���b�N���A�t�@�C�����_�E�����[�h���܂��B���M���̃o�[�W�����i�����������j���T�C�g�L���v�`��

��WiiFlash�̓W�J-�t�@�C�����e�ɂ‚��āEWiiFlash Server (�ŐV�o�[�W����)�EWiiFlash API (SWC, sources)�E�g�����h�L�������g�ECS3 Examples (.fla)

��WiiFlash�̊�{�@�\

�����R�����n���@�\Windows Macintosh

Wii�����R���y�C�x���g�n�z�ڑ����ł��Ă���̂�

O O

�ڑ����ł���O O

�ڑ����؂ꂽO O

�k���`���N���ڑ�����Ă��邩O O

�k���`���N���ڑ����ꂽO O

�k���`���N���O�ꂽO O

�ԊO���P�_�ڊ��mO

�ԊO���P�_�ڏ���O

�ԊO���Q�_�ڊ��mO

�ԊO���Q�_�ڏ���O

�y�{�^���n�z�\���L�[�i�㉺���E�jO O

A�{�^��O O

B�{�^��O O

�{�{�^��O O

�|�{�^��O O

HOME�{�^��O O

?�{�^��O O

?�{�^��O O

�d���{�^��X X

�y3�������x�Z���T�[�zX���̉����xO O

Y���̉����xO O

Z���̉����xO O

Yaw�lO O

Pitch�lO O

Roll�lO O

�y�ԊO��-IR�z�P�_��O

�Q�_��O

�P�_�ڂ�X�lO

�P�_�ڂ�Y�lO

�Q�_�ڂ�X�lO

�Q�_�ڂ�Y�lO

�y���̑��z�o�b�e���[���x��O O

�o�C�u���[�V����O O�k���`���N�y�{�^���n�zStickX O O

StickY O O

C�{�^��O O

Z�{�^��O O

�y3�������x�Z���T�[�zX���̉����xO O

Y���̉����xO O

Z���̉����xO O

Yaw�lO O

Pitch�lO O

Roll�lO O

�o�����X�{�[�h����̈���

�E��̈���

�����̈���

�E��̈���

��WiiFlash�̃f���t�@�C���Ńe�X�g����-Wii�����R���Ńe�X�g����܂���Wii�����R���Ńe�X�g���܂��傤�BWiimote Demo.fla Wii�����R�����p�\�R���Ɍq���āAWiiFlash�T�[�o�[�𗧂��グ�܂��傤�B����Ɖ��L��ʂ̂悤�Ɂu1 Wiimote(s) found�v�ƕ\�������Όq�����Ă���̂ŁA��WiiFlash Server�L���v�`��(Windows)

WiiFlash Server�L���v�`��(Mac)

�_�E�����[�h�����p�b�P�[�W�̒��ɂ���[cs3-examples]-[Wiimote Demo.fla]���J���܂��傤�B���̃t�@�C���ł́A�d���{�^���������AWii�����R���̃{�^���S�ĂƁuSensor X�v�uSensor Y�v�uPitch�v�uRoll�v�uYaw�v�ƁuBattery level�v���m�F�ł��܂��B�{�^���������ē�����m�F���܂��傤�B

�m�F���ł�����A���x�̓t�@�C���̍\�������Ă݂܂��傤�B

�V�K��WiiFlash���g�p�����A�v���P�[�V���������ۂɂ́A�K��API�������Ă���[org]�t�H���_��fla�t�@�C���Ɠ����f�B���N�g���ɓ���č쐬���J�n���܂��傤�B�܂��A���C�u������[synchronize]�Ƃ������[�r�[�N���b�v���K�v�ƂȂ�܂��̂ŖY�ꂸ�ɃR�s�[���܂��傤�B

���v���O�����̉�����̃T���v���t�@�C���̃X�N���v�g�ɂ‚��ďd�v�ȕ����݂̂�������܂��傤�B

WiiFlash�̃��C�u�������C���|�[�g����Bimport org.wiiflash.Wiimote; import org.wiiflash.events.ButtonEvent; import org.wiiflash.events.WiimoteEvent; import flash.events.*;

Wii�����R�����C���X�^���X�����āA�g����悤�ɂ��܂��Bvar myWiimote:Wiimote = new Wiimote();

WiiFlash Server�ɐڑ����܂��BmyWiimote.connect ();

�G���[��ڑ��󋵂Ȃǂ��Ǘ�����[synchronize]�Ƃ������[�r�[�N���b�v���C���X�^���X�����A��ʂɔz�u���܂��Bvar mySynchronize:Synchronize = new Synchronize(); addChild( mySynchronize ); mySynchronize.x = (stage.stageWidth - mySynchronize.width) / 2; mySynchronize.y = (stage.stageHeight - mySynchronize.height) / 2

�G���[�Ȃǂ̃C�x���g�n���h����o�^���܂��BmyWiimote.addEventListener( Event.CONNECT, onWiimoteConnect ); myWiimote.addEventListener( IOErrorEvent.IO_ERROR, onWiimoteConnectError ); myWiimote.addEventListener( Event.CLOSE, onCloseConnection );

������̃e�X�g���T���v���L���v�`���y�{�^���z�{�^�����g���ɂ͂܂��A�C�x���g�̓o�^�����܂��B�����ɁAA�{�^���̉����Ɖ�ʂ̐F���ς��T���v��������Ă݂܂��傤�B�{�^���̃C�x���g�o�^�͊�{�I��[on]��[off]��ݒ肵�܂��B[ButtonEvent.A_PRESS]��A�{�^���������ꂽ�ۂɃC�x���g�𔭓����܂��B[ButtonEvent.A_RELEASE]�̓{�^���������ꂽ�ۂɃC�x���g�𔭓����܂��BmyWiimote.addEventListener( ButtonEvent.A_PRESS, onAPressed ); myWiimote.addEventListener( ButtonEvent.A_RELEASE, onAReleased);

A�{�^���������ꂽ�ۂɃC�x���g���������āA�Ă΂�郁�\�b�h��������ł��B��ʂɔz�u���ꂽ[color_mc]�̃t���[�����Q�t���[���ڂɕύX���܂��B����ɂ��A�w�i���Ԃ��Ȃ�܂��Bfunction onAPressed ( pEvt:ButtonEvent ):void { color_mc.gotoAndStop(2); }

A�{�^���������ꂽ�ۂɃC�x���g���������āA�Ă΂�郁�\�b�h��������ł��B��ʂɔz�u���ꂽ[color_mc]�̃t���[�������̂P�t���[���ڂɕύX���܂��B����ɂ��A�w�i�������Ȃ�܂��Bfunction onAReleased ( pEvt:ButtonEvent ):void { color_mc.gotoAndStop(1); }

���̂悤�ȃX�N���v�g�͗\�ߗp�ӂ��Ă���̂ŁA���̃��\�b�h�̂Ȃ��݂�ύX���邾���ŊȒP��Wii�����R�����g����Flash�̃A�v���P�[�V���������܂��B

�y�R�����������x�Z���T�[�z���T���v���L���v�`�����ɒl����ɕω�����R�����������x�Z���T�[���ɁAUPDATE�C�x���g��������܂��傤�B[WiimoteEvent.UPDATE]�́A�R�����������x�Z���T�[��A�ԊO���̈ʒu�ȂǏ�ɒl���ω�������̂��擾���邽�߂ɍ���Ă��܂��B����UPDATE�֐��͈��Ԋu�ōX�V�����̂ŁA��ɒl�̕ω����Ď�����ۂɎg���܂��B

-�C�x���g�o�^�܂��́A����UPDATE�֐����g����悤�ɁA�C�x���g�̓o�^�����܂��BmyWiimote.addEventListener( WiimoteEvent.UPDATE, onUpdated );

-���\�b�h��`��ʏ��[sensor_txt]��sensorX��sensorY�̒l��\�����܂��B���̃��\�b�h�̒��ɏ����ꂽ���͈̂��Ԋu�ōX�V����܂��B

function onUpdated ( pEvt:WiimoteEvent ):void{
sensor_txt.htmlText += "Sensor X : " + String ( pEvt.target.sensorX ) + \
    "��br>Sensor Y : " + String ( pEvt.target.sensorY );
}
WF-AdobeID.png
WF-CS3.png
WF-Demo.png
WF-DL.png
WF-DLCS3.png
WF-FW3.png
WF-Mac.png
WF-Tree1.png
WF-Tree2.png

�T���v���̃e�X�g�ł݂��{�I�Ȏg����

WiiFlash�v���W�F�N�g�T���v��

�Ȃ肫�胉�C�g�Z�[�o�[(������)

��������(���肳��)

DropShadow(���肳��)

ChunChun(������)

WiiFlash���g�����Ȃ��Ă݂悤(Processing��)

���̏͂ł͖ؑ��G�h����̂����͂ɂ��AWiiFlash��Flash��ActionScript�‹��ł͂Ȃ��AProcessing���g���ė��p������@��������Ă��Ă����܂��B

Processing����WiiRemote�ɂ‚Ȃ�

Processing�́A�}�T�`���[�Z�b�c�H�ȑ�w��Ben Fry��Casey Reas�ɂ���ĊJ�����ꂽ�t���[�̃v���O�����J���‹��ł��B�f�������o���A�C���^���N�e�B�u�ȍ�i�����Ƃ������p�r�Ɍ����Ă���A�A�[�e�B�X�g��f�U�C�i�[�ł��g���₷���悤�ɍ���Ă��܂��B

Processing�̃z�[���y�[�W

�yProcessing�zhttp://processing.org/

�x�[�X��Java����Ȃ̂ŁALinux�CMac OS X�CWindows�Ƒ��l�Ȋ‹��œ��삵�܂��BJava�ŊJ���Ƃ����ƁAJDK���C���X�g�[��������A�R�}���h���C�����g���������������Ƃ��������Ƃ��K�v�ł͂Ǝv���Ă��܂���������܂��񂪁AProcessing�͂����̕~���������邽�߂̍H�v���Ȃ���Ă��܂��B���̂��߁AJava�͂��Ƃ��A���܂Ńv���O���~���O������g�������Ƃ������Ƃ������ɂ������Ă��܂��B

�܂��A�v���O�����ɂ‚��Ă��u�X�P�b�`�v�Ƃ����Ăѕ���p���C�T�b�Ə����Ă����Ɏ��s�ł���_���������Ă��܂��BJava����̓���ɂ��肪���Ȃ��܂��Ȃ��I�ȃv���O�����͕s�v�ŁA�����Ȃ��ړI�ƂȂ镔�����珑���n�߂邱�Ƃ��ł��܂��B���̂�����́AJava�Ƃ�������Perl��Python�Ȃǂ̌y�ʌ���̃C���[�W�ł��B

���̂悤�ɊȒP�Ɏg����Processing�ł����A��@�\���Ƃ����Ƃ����������͂���܂���B�J��������̓�����͂�A�l�b�g���[�N�Ƃ̒ʐM�AOpenGL���g����3D�v���O���~���O�ȂǁA��������̋@�\�����C�u�����ɂ���ăT�|�[�g����Ă��܂��BWiiRemote����O�ł͂���܂���BProcessing����WiiRemote���������߂̃��C�u�����Ƃ��āAWrj4P5�Ƃ������C�u�������p�ӂ���Ă��܂��B

�yWrj4P5�zhttp://sourceforge.jp/projects/wrj4p5/wiki/FrontPage

���������̃��C�u�������g�����߂ɕK�v��Bluetooth�X�^�b�N�Ȃǂ����Ȃ���肳��Ă���A�K�������S�Ă̊‹��œ����Ƃ͌���܂���B����Windows�‹��ł͓����Ȃ����Ƃ������悤�ł��B

������WiiFlash�̓o��ł��B�O�͂ŏЉ��Ă���ʂ�AWiiFlash�͂��Ƃ���Flash����WiiRemote���������߂̃c�[���A���C�u�����ł����A���͑��̃v���O���~���O���ꂩ����g�����Ƃ��o���܂��B��x�d�g�݂����m���Ă��܂��΁AWiiFlash��WiiRemote�ɑ΂���ėp�I�ȃC���^�t�F�[�X�Ƃ��ċ@�\���܂��B

Processing����O�ł͂Ȃ��Anet���C�u�������g�����Ƃ�WiiFlash�o�R��WiiRemote���������Ƃ��ł���悤�ɂȂ�܂��B�M�҂̊��o�ł́AWiiFlash�̂ق���Wrj4P5���������̊‹��œ��삵�Ă���悤�Ȃ̂ŁAWiiFlash���g���΂�葽���̊‹���Processing����WiiRemote���������Ƃ��ł���̂ł͂Ȃ����Ǝv���܂��B

Processing����WiiFlash���g���ɂ�

Processing����WiiFlash���o�R����WiiRemote�ɂ‚Ȃ����߂ɕK�v�Ȋ‹��͈ȉ��̂Ƃ���ł��B

�����ł́AProcessing�̃Z�b�g�A�b�v���@�ƁAWiiRemote���������߂̕��@�ɂ‚��Đ������܂��BWiiFlash�ɂ‚��Ă͑O�͂��Q�l�ɃZ�b�g�A�b�v���Ă��������B�܂��AProcessing���̂��̂ɂ‚��Ă̏ڍׂȐ����ɂ‚��Ă��������܂��B

Processing�̃Z�b�g�A�b�v

Processing�̃Z�b�g�A�b�v�͂ƂĂ��ȒP�ł��BProcessing�̃T�C�g���爳�k�t�@�C�����_�E�����[�h���Ă��ĉ𓀂��邾���ł��B���ɃC���X�g�[�����g���ăC���X�g�[������Ȃǂ̍�Ƃ͕K�v����܂���B�_�E�����[�h�͈ȉ���URL����s�����Ƃ��ł��܂��Bhttp://processing.org/download/index.html

Processing����HP�ɂ�����_�E�����[�h�I��

��������A���g����OS�ɍ������t�@�C�����_�E�����[�h���Ă��������BWindows�ɂ‚��Ă͒��ӏ����ɂ�������Ă���Ƃ���A���ɗ��R��������΁uWithout Java�v�ł͂Ȃ��ق��������߂��܂��B

�Ȃ��A���M���_�ł̍ŐV�o�[�W������11��29�����J��1.0.1�ł��̂ŁA�Ȍ�̐����͂���1.0.1��ΏۂƂ��܂��B�F���񂪂��̕��͂�ǂ܂�Ă���Ƃ��̍ŐV�o�[�W�����͂��ł�1.0.1�ł͂Ȃ��Ȃ��Ă��邩������܂��񂪂��������������B

�_�E�����[�h�������k�t�@�C����W�J����ƁA�ȉ��̂悤�ȃt�@�C��������܂��B

Processing.exe�����s

���Ƃ�Processing.exe���N�����邾���ł��B�N�����̃X�v���b�V���E�B���h�E���\�����ꂽ��A�ȉ��̂悤�ȉ�ʂɂȂ�ΐ����ł��B

Processing�N������

Processing�̃T���v���𓮂���

�܂���WiiFlash���g��Ȃ��AProcessing���̂��̂̃T���v���𓮂����Ă݂܂��傤�B������Processing�ɕt�����Ă���Mouse1D�Ƃ����T���v���𓮂������Ƃɂ��܂��B���j���[����[File]��[Examples]��I������ƁA�ƂĂ������̃T���v���X�P�b�`���p�ӂ���Ă��邱�Ƃ�������܂��B���̒�����[Basics] - [Input] - [Mouse1D]��I�����܂��B����ƁA50�s������Ƃ̃X�P�b�`���J����܂��B

Mouse1D

���g�̗����͒u���Ă����āA�܂��͎��s���Ă݂܂��傤�B�����Run�{�^���������ƁA�X�P�b�`�����s����܂��B�����ȃE�B���h�E��2�‚̐����`�����ꂽ�ł��傤���B�}�E�X�J�[�\�������E�ɓ������ƁA����ɔ������ĐF��T�C�Y���ω����܂��B

Mouse1D���s�̗l�q

��ʂ肱�̃T���v�����ǂ̂悤�ȓ�������邩����������A�E�B���h�E��‚��ăX�P�b�`�̂ق��ɖڂ������Ă݂܂��BJava����₻��ɋ߂�������g�������Ƃ�������Ȃ�A���̃X�P�b�`��setup���\�b�h�Adraw���\�b�h�Aupdate���\�b�h��3�‚ō\������Ă��邱�Ƃ������邩�Ǝv���܂��B

setup���\�b�h�ł́A�E�B���h�E�T�C�Y�̐ݒ�Ȃǂ̏��������s���Ă��܂��Bdraw���\�b�h�ł́A�w�i��h��‚Ԃ��A�}�E�X�̈ʒu�ɉ�����2�‚̐����`��`���������s���Ă��܂��Bupdate���\�b�h�ł́A�����`�̐F����W�v�Z�Ɏg���p�����[�^���v�Z���Ă��܂��B

update���\�b�h���̏ڍׂȌv�Z�ɂ‚��Ă͓��ɗ������Ȃ��Ă������̂ł����A���̈�����mouseX�Ƃ����ϐ����w�肵�Ă���Ƃ���ɒ��ڂ��Ă��������BmouseX�Ƃ́A���O�̂Ƃ��茻�݂̃}�E�X�J�[�\����X���W�ł��B�J�[�\�����W��update���\�b�h�ɓn�����Ƃɂ���āAleftColor�ArightColor�Agx�Agy�Ƃ������ϐ��ɓK�؂Ȓl���ݒ肳��܂��B�����Ă����̒l���g���Đ����`���`����܂��B

���āA���̃T���v���ł̓}�E�X�J�[�\����X���W���g���Ă��܂����A�����WiiRemote���g���đ���ł��Ȃ����̂ł��傤���B��������́AWiiFlash���g���Ă��������������@�ɂ‚��Đ������܂��B

WiiFlash���g�����T���v���𓮂���

�T���v���X�P�b�`��Mouse1DWii���J���Ă݂Ă��������B����𓮂����ɂ́A�܂�WiiFlash���N������K�v������܂��B�O�͂��Q�l�ɁABluetooth��WiiRemote��F�������AWiiFlash���N�����Ă��������B������WiiFlash���N��������AProcessing��Run�{�^���������Ă��������B�\��������ʂ͂܂�����Mouse1D�ƕς��܂��񂪁AWiiRemote���Ђ˂�悤�ɉ�]������ƁA�}�E�X�J�[�\���𓮂������Ƃ��̂悤�ɉ�ʂ��ω����܂��B

����ł̓X�P�b�`�ɂ‚��ďڂ������Ă����܂��傤�B�X�P�b�`�ɂ́A�ȉ��̂悤��Mouse1DWii��Wiimote��2�‚̃^�u������܂��B

Wiimote�̂ق��ɂ‚��Ă͌�ŏڂ�����������̂ŁA�܂���Mouse1DWii�̂ق��ɒ��ڂ��Ă��������B

Mouse1DWii�́A���ƂȂ��Ă���Mouse1D�������������������̂ł��B�ȉ��̂悤��4�s�̒lj��A�ύX������܂��B

  // �O��
  float leftColor = 0.0;
  float rightColor = 0.0; 
  Wiimote wiimote; ..... (1) WiiRemote���g�����߂̕ϐ�
  void setup(){  
    size(200, 200);
    colorMode(RGB, 1.0);
    noStroke();
    wiimote = new Wiimote(this); ..... (2) ������
  }
  
  void draw() {
    wiimote.update(); ..... (3) WiiRemote����̓��͂���荞��
    background(0.0);
    update((int)((wiimote.x + 1) * width / 2)); ..... (4) �����x�Z���T�̒l���g��
  // �㗪

�܂��ŏ��ɁAWiiFlash�o�R��WiiRemote���g�����߁AWiimote�^��wiimote�Ƃ����ϐ����`���Ă��܂�(1)�Bsetup���\�b�h�ł́A���̕ϐ������������Ă��܂�(2)�B

draw���\�b�h�ł͂܂��AWiiRemote����̓��͂���荞�ނ��߂ɁAWiimote�N���X��update���\�b�h���Ăяo���܂�(3)�Bupdate���\�b�h�̏ڍׂɂ͂����ł͓��ݍ��݂܂��񂪁A����ɂ���Č��݂�WiiRemote�̉����x�Ȃǂ̃p�����[�^���g����悤�ɂȂ�܂��B�Ⴆ��WiiRemote�𐳖ʂɌ������Ƃ��ɂЂ˂�����iX�����j�̉����x�́Awiimote.x�Ƃ����ϐ��ɓ����Ă��܂��B

�Ō�͉����x��`�悷�鐳���`�̃T�C�Y�ɔ��f�����镔���ł�(4)�B����Mouse1D�ł́Aupdate���\�b�h�Ƀ}�E�X�J�[�\����X���W�imouseX�j��n���Ă��܂����BMouse1DWii�ł́A����ɂȂ炤�`��WiiRemote��X�����̉����x��ϊ����Aupdate���\�b�h�ɓn���Ă��܂��B

X�����̉����x��\��wiimote.x�́A���S�ɍ��ɌX�����Ƃ���-1�A�t�Ɋ��S�ɉE�ɌX�����Ƃ���1�Ƃ����l�ɂȂ�܂��B�������‚��Ă����肷��Ƃ��͈̔͂𒴂��܂����A��{�I�ɂ�-1����1�͈̔͂ƍl���Ė�肠��܂���B�X�P�b�`�ɏ������Ƃ���A1�𑫂��ĉ�ʕ��iwidth�j�������A2�Ŋ���΁A-1����1�͈̔͂�0�����ʕ��͈̔͂ɕϊ��ł��܂��B

Wiimote�̎g����

WiiRemote��Processing����g�����߂ɂ́AWiimote�N���X���g���܂��BWiimote�N���X�́A����WiiFlash�̎������Q�l�ɕM�҂��I���W�i���ō쐬�������̂ŁA����ɂ‚��Ă͖��ۏ؂Ƃ��܂��B����Wiimote���g�����߂̃X�e�b�v�͑傫��������3�‚ł��B

������

new��Wiimote�̃R���X�g���N�^���Ăяo���AWiimote�^�̃C���X�^���X�����܂��B���̂Ƃ��A�����ł�WiiFlash�Ƃ̐ڑ����s����̂ŁAWiiFlash���N�����Ă��Ȃ��Ƃ����ŃG���[���������A�ȍ~�̏��������܂������܂���B���̏����͊�{�I��1�x�����Ăׂ΂����̂ŁAsetup���\�b�h�̒��ŌĂяo���̂��悢�ł��傤�B

  Wiimote wiimote; // �ϐ��̐錾
  wiimote = new Wiimote(this); // setup���\�b�h���Ȃǂ�

�f�[�^�̎擾

Wiimote��update���\�b�h���Ăяo���AWiiRemote����AWiiFlash�o�R�Ńf�[�^���擾���܂��B���̏����͈�ʓI�ɂ�draw���\�b�h�̒��ň�x�����s���܂��B

  // draw���\�b�h���Ȃǂ�
  wiimote.update();

��xupdate���\�b�h���Ă�ł��玟��update���\�b�h���Ăяo�����܂ł́AWiiRemote�N���X���瓾����WiiRemote�̏�Ԃ͕ς��Ȃ��܂܂ł��B

�f�[�^�̗��p

Wiimote��x��y�Ȃǂ̃t�B�[���h���Q�Ƃ��邱�ƂŁA���݂�WiiRemote�̏�Ԃ�m�邱�Ƃ��ł��܂��B��ɗp������̂́A�e�����̉����x�ƁA�{�^���̏�Ԃł��傤�B

  // (100, 100)�̓_����WiiRemote�̌����ɉ����Đ�������
  line(100, 100, 100 + wiimote.x * 50, 100 + wiimote.y * 50);

Wiimote�N���X���g���ē�����f�[�^�͕\�̒ʂ�ł��B

Wiimote�N���X
�t�B�[���h�� �^ �Ӗ�
x�Cy�Cz float �e�������x�B-1�`+1�̒l���Ƃ�A1G�̎��ɒl��1�ƂȂ�B
one�Ctwo�Ca�Cb�Cplus�Cminus�Chome�Cup�Cdown�Cright�Cleft Button ���ꂼ��̃{�^���̏��
batteryLevel float �o�b�e���[�̎c��
extensionType int �g���R���g���[���̃^�C�v

�{�^���֘A�̃t�B�[���h�́AButton�N���X���g���ĕ\����Ă��܂��BButton�N���X�ɂ́Apressed��pushed��2�‚�boolean�ϐ�������܂��B

�����2�‚̕ϐ��^�C�v�����܂��g�������Ă��������B

�㉺�{�^����������Ă���ԃp�����[�^���㉺������
// �㉺�{�^����������Ă���ԃp�����[�^���㉺������
if (wiimote.up.pressed) {
   someparam++;
} else if (wiimote.down.pressed) {
   someparam--;
}
if (wiimote.a.pushed) {
   background(10); // A�{�^���������ꂽ���ʂ�����
}

�T���v���X�P�b�`��WiiRemote�Ή��ɂ���

WiiRemote�����p�����X�P�b�`���‚���ɂ������āA1����Processing�̃X�P�b�`��g��ł����WiiRemote�Ή��ɂ���ƁAWiimote���g���Ƃ����_����t�H�[�J�X������Ă��܂��܂��B�K���AProcessing�ɂ͑����̃T���v���X�P�b�`���Y�t����Ă��܂��̂ŁA�����̂��������‚���WiiRemote�Ή��ɂ��邱�Ƃʼn�����Ă����܂��B

�����ł́AFireCube�ADirectional�ALightsGL�ASineWaveSignal��4�‚̃X�P�b�`��WiiRemote�ɑΉ���������ɂ‚��ďЉ�܂��BWiiRemote�ɑΉ��������X�P�b�`�́A���̃T���v���X�P�b�`�Ƌ�ʂ��邽�߂ɁA���O�̍Ō��Wii��t���Ă��܂��B

FireCubeWii

FireCube�́A�����R���オ��悤�ȕ��G�ȃG�t�F�N�g��100�s���x�ŏ����ꂽ���̂ł��B���̃T���v�����AWiiRemote��U��ΐU��قlj����o�Ă���悤�ɂ��Ă݂܂����B�T���v����FireCubeWii�ł��B

draw�̒��ł́A�����x����power�Ƃ����l���v�Z���Ă��܂��B���̒l�ɉ����ĉ��̏o��ʂ��ς��܂��B

  float power = sqrt(wiimote.x * wiimote.x +
   wiimote.y * wiimote.y +
   wiimote.z * wiimote.z);
  power = constrain(power - 1, 0.1, 1);
  

�ŏ��Ɍv�Z���Ă���̂�WiiRemote�ɂ������Ă�������x�ł��BWiiRemote�������Ȃ���Ԃł́A���̒l�����1�ɂȂ�܂��B���̏�Ԃł͉����o�������Ȃ��̂ŁA���̍s��1�������ƂƂ��ɁAconstrain�Ƃ����֐����g���Ēl��0.1����1�̊ԂɎ��߂Ă��܂��B

�����Ōv�Z����power�́A�����̂ƁA������オ���Ă��鉊�̏����l�ɐݒ肵�܂��B�ڂ����̓X�P�b�`����power�Ƃ����ϐ����������Ă݂Ă��������B

DirectionalWii

Directional�́A�}�E�X�J�[�\���̈ʒu�ɉ����ăs���|�����̂悤�Ȃ��̂����C�g�A�b�v�������̂ł��B�����WiiFlash���瓾����X�����AY�����̉����x���g�����ƂŁA��������WiiRemote�������d���ɂȂ������̂悤�Ȋ��o�����킦�܂��B

���̃X�P�b�`�ł́A�����d���̂悤�Ȋ��o���o�����߂ɁAWiiRemote��A�{�^����������Ă���Ƃ����������\�������悤�ɂ��Ă��܂��B���L�̂悤�ɁAA�{�^����������Ă����draw���\�b�h����r���Ŕ����o���܂��B

  if (!wiimote.a.pressed) {
   return;
  }

���𓖂Ă�����ɂ‚��ẮA�����x�̒l�����̂܂܎g���Ă��܂��B

  directionalLight(204, 204, 204, wiimote.x, wiimote.y, -1);

WaveSignalWii

�Ō��1�•ς�����l�^�����グ�܂��BWaveSignalWii�͍��܂ł̃X�P�b�`�Ƃ͈قȂ�A�����g�����X�P�b�`�ł��B���ƂȂ��Ă���X�P�b�`��[Libaries] - [Minim (Sound)] - [SineWaveSignal]�ł��B���̃X�P�b�`���N������ƁA�v�[�Ƃ����悤�ȉ����‚�o���܂��B����͉�ʂɂ��\������Ă���ʂ�A�����鐳���g�ł��B�}�E�X�J�[�\�����㉺���E�ɓ��������ƂŁA���̍����i�s�b�`�j���㉺������A�X�e���I�̍��E�̃o�����X�i�p���j���ړ������肷��̂�������ł��傤���B

Processing�ł��̂悤�ɉ����‚点��̂́AMinim�Ƃ������C�u�����̂������ł��B�����g��\���ϐ������A�s�b�`��p�����w�肷�邾���ŁA���̂悤�ɉ���‚炷���Ƃ��ł��܂��B

SineWaveSignal�͂��̖��̒ʂ萳���g�ɂ����Ή����Ă��Ȃ��̂ł����A�����WiiRemote�Ή�������WaveSignalWii�́A�̂�����g���`�g�ɂ��Ή������܂����B���E�{�^�����������Ƃł�����؂�ւ��邱�Ƃ��ł��܂��B�܂��A�㉺�{�^���ʼn��ʂ�ς��邱�Ƃ��ł��܂��B

�܂��A������ς��邱�ƂŃs�b�`��p�����ω����܂��B��Ɍ�����Ɖ��������A���Ɍ�����Ɖ����Ⴍ�Ȃ�܂��B���E�����Ɍ�����ƁA������̕����特���������Ă���悤�ɂȂ�܂��B

WiiFlash��Processing������g���闝�R

���āA�����܂œ��ɂ��̘b�̏ڍׂɂ͓��ݍ���ł��܂���ł������A�Ȃ�Processing����WiiFlash���g�����Ƃ��ł���̂ł��傤���B������WiiFlash�ɓY�t����Ă���\�[�X�R�[�h�̒��ɂ���܂��B

���C���ƂȂ�\�[�X�R�[�h�́ACore/api/source-classes/org/wiiflash�f�B���N�g���̒��ɂ���܂��B�����ɂ���̂�WiiFlash���̂��̂̃\�[�X�R�[�h�ł͂Ȃ��AFlash����WiiFlash�ɂ‚Ȃ����߂�ActionScript3�̃\�[�X�R�[�h�ł����A���ꂾ����WiiFlash�̋����𐄑����邱�Ƃ��ł��܂��BWiimote.as��WiiSocket.as������΁A��{�I�ȋ������‚��ނ��Ƃ��ł��܂��B

WiiSocket.as�ł́Aconnect���\�b�h��localhost��19028�Ԃɐڑ����Ă��܂��B���̂��Ƃ���AWiiFlash��19028�Ԃ̃|�[�g���g���ăT�[�o�𗧂ĂĂ��邱�Ƃ�������܂��B�����ă\�P�b�g����f�[�^����M�����Ƃ��̏�����onSocketData���\�b�h�ɏ�����Ă��܂��B����������ƁA�f�[�^��80�o�C�g�P�ʂŎ�M����Ă��邱�Ƃ�������܂��B�ŏ���1�o�C�g�̓R���g���[����ID�ƂȂ��Ă���A����ȍ~�̃f�[�^��Wiimote�N���X��update���\�b�h�œǂݍ��܂�Ă��܂��BWiiFlash���瑗���Ă����{�I�ȃf�[�^���܂Ƃ߂�ƁA�\�̂悤�ɂȂ�܂��B

��{�f�[�^���C�A�E�g

���O �ʒu �^ �Ӗ�
index 0 byte �R���g���[����ID
batteryLevel 1 byte �o�b�e���[�c��
buttonState 2 ushort �{�^���̏��
x 4 float X�����̉����x
y 8 float Y�����̉����x
z 12 float Z�����̉����x
extensionType 16 byte �g���^�C�v

�g���^�C�v�ɂ́A�k���`���N�A�N���V�b�N�R���g���[���A�o�����X�{�[�h������܂��B���̃^�C�v�ɂ���āA17�o�C�g�ڈȍ~�̃f�[�^�̉��ߕ��@���ς��܂��B�����ɂ‚��Ă�Nunchuk.as�AClassicController.as�ABalanceBoard.as������ƃf�[�^�̓��e��������܂����A�{���ł͂����ɂ‚��Ă̐����͊������܂��B

Processing����WiiFlash�ɂ‚Ȃ����߂ɂ́Anet���C�u������Client�N���X���g���܂��BClient�N���X���g�����ƂŁA�\�P�b�g���g����WiiFlash�ƒʐM���邱�Ƃ��ł��܂��B�‚Ȃ�����́Aread���\�b�h�Ȃǂ��g�����Ƃ�WiiFlash����o�C�g���ǂݍ��ނ��Ƃ��ł��܂��B

Wiimote�N���X�̏ڍׂȎ����ɂ‚��Ă͖{�͂ł͏q�ׂ܂��񂪁A�\�[�X�R�[�h�͌������ԂƂȂ��Ă���̂ŁA�C�ɂȂ���͂�������Q�Ƃ��Ă��������B

WiiYourself!��C++�Ŋw�ԃC���^���N�V������ՋZ�p

�Â��ǂ�C++�pAPI�uWiiYourself!�v

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

Wiiyourself!�̓���

WiiYourself!�̃z�[���y�[�W

http://wiiyourself.gl.tter.org/

WiiYourself!�̃z�[���y�[�W

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!�̓���

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

WiiYourself! v1.01a

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

WiiYourself!1.01a�̃t�H���_�\��

�Ȃ��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

�Q�l��yReadme.txt�z

- 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

Windows Server 2003 SP1 DDK

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)

�Q�l��yLicense.txt�z

- 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)

WiiYourself!�t���f���̃e�X�g

���āA���C�Z���X�Ȃǂ𗝉�������A�܂���Demo�t�H���_�ɂ���uDemo.exe�v���N�����Ă݂܂��傤�B���O��WiiRemote�ɐڑ����Ă����̂�Y�ꂸ��(�ڍׂ͑�3�͂ʼn��)�B

WiiYourself!�t��Demo�̃X�N���[���V���b�g

�ꌩ�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!�̃��r���h

WiiYourself!�t���́uDemo.exe�v�ɂ‚��āA��ʂ�̓������������A���̓��r���h�ł��B�����ł�Visual C ++ 2008 Express�Ȃǖ����œ���ł���‹���WiiYourself!�����r���h�ł���悤�A����ǂ��ĉ�����܂��B

DDK�̃Z�b�g�A�b�v

�{���̓ǎ҂̂قƂ�ǂ́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

Windows Server 2003 SP1 DDK

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

7-zip

http://sevenzip.sourceforge.jp/

�쐬����CD-ROM�A�������͓W�J�����t�H���_����usetup.exe�v�����s���܂��B

Windows Driver Development Kit�̃C���X�g�[��

�G���h���[�U���C�Z���X������(EULA)���m�F���܂��B

EULA�̊m�F

�C���X�g�[����͖{���ł̓f�t�H���g�́uC:\WINDDK\3790.1830�v�Ƃ��܂��B

DDK�C���X�g�[����̎w��

�����Ń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

DDK�C���X�g�[������t�@�C���̑I��

��ʂ̃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

���̃X�e�b�v�����Ɏ��Ԃ�������܂�

DDK�̃C���X�g�[�����I�������A�����������̏͂�WiiYourself!�̃��r���h��ʂ��ă��C�u�����̐ݒ���s���܂��B

�ŐV��WiiYourself!�ł̕ύX�_

�@�{�����M���݁Agl.tter���͍ŐV��WiiYourself!�̌��J���������Ă��܂��BWiiBoard��WiiMotionPlus�̃T�|�[�g���s�������͂���o�[�W����(1.12beta�ȍ~)�ł����A�t�H���_�\�����{���ŏЉ�Ă���o�[�W�����Ƃ͎኱�قȂ�悤�ł��B

�@�{���̓ǎҌ����̑傫�ȕύX�_�Ƃ��ẮAWiiYourself!���C�u�������g�̃v���W�F�N�g�������Ȃ������Ƃł��B

�@�f���̃��r���h���s���Ƃ��́ADemo.sln�𒼐ڊJ���āADDK�t�@�C���̃C���N���[�h�ƃ��C�u�����̐ݒ���s���Ă��������B

�v���W�F�N�g�t�@�C���̕ϊ��Ɛݒ�

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

DDK�̃��C�u�����p�X��[Demo]�́u�lj��̃��C�u�����v�ɐݒ肷��

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

WiiYourself!�̍\���ƃ��C�u�����̃r���h

�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

WiiYourself!�����uDemo�v�v���W�F�N�g�̍\��

�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

���̃v���_�E���ō\����؂�ւ�����

�ł͂��������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

�g�R�s�y�E�R�[�f�B���O�h�E�o���v���̃X�X��

�@�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

�R�}���h���C���v���O����

�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

�R�}���h���C���v���O�����uHello, WiiRemote!�v

����ł͂܂��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

Win32�R���\�[���A�v���P�[�V�����̍쐬

�܂��͐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

Win32 �A�v���P�[�V�����E�B�U�[�h

�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

Hello, world!
#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

WiiYourself!���v���O�����ɑg�ݍ���

�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

�\�����[�V�����ɁuWiiYourself! lib�v����荞�܂ꂽ

�����ā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

�ˑ��֌W�F�uWiiYourself! lib�v�Ɉˑ����邱�Ƃ𖾎�����

����Ł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

Hello, WiiRemote!
#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

Intellisense�ɂ��⊮�@�\

�ł͎��ɁA���̃v���O�������uWiiRemote�ɐڑ����AB�{�^���ŐU������v�Ƃ����v���O�����܂Ŋg�����Ă݂܂��傤�B

LED,�o�C�u���[�^�[�A�{�^���C�x���g�̎擾
#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�ƃR�}���h���C���A�ǂ������y���H

�@.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

Win32�ł‚���WiiRemote�e���~��

�e���~������낤

�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

�d�g�y��e���~���u�S�u���}�u�~�r���{���v�Ƃ�

�@�ʏ̃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

�܂��́u�{�^������e���~���v

���ā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

�{�^������e���~��(�O��)
#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

�{�^������e���~��(�㔼)
  //����̓{�^���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

�����x�Z���T�[�ɂ��e���~��

���͂��e���~���炵�������x�Z���T�[��MIDI��‚点��悤�ɂ��܂��傤�B���K�����킹�āA���܂Ŏg���Ă����\�����[�V�����ɐV�����uThermin-Acc�v�������邱�ƂŐV�����v���W�F�N�g�̍������w�т܂��B

�v���W�F�N�g�̐V�K�lj�

���Ɂ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

��ł͂Ȃ��u�R���\�[���A�v���P�[�V�����v���쐬

�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

�����x�Z���T�[�ɂ��e���~��(1/3)
#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�Z���T�[�ɂ��e���~��(2/3)
  //����̓{�^���{�����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

�����x�Z���T�[�ɂ��e���~��(3/3)
        //���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

�u�n���ł͂Ȃ��v�R�}���h���C���v���O����

�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�Ńe���~�����s���(�X�N���[���V���b�g)

�܂����̂������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

���y����ύX
�u���̏�M�I�ȃr�u���[�g�v�͉��F��ς��Ă�������O�������܂��B�Ō����x��Sleep()�Ȃǂ��g�����ƂŃR���g���[�����āA�ЂƂ‚ЂƂ‚̃m�[�g�𒚔J�ɔ��������邱�Ƃ��ł��܂����A�����߂Ȃ̂�Roll����note�ւ̕ϊ��������ǂ��邱�Ƃł��B���̂悤�ɍׂ���������m�C�Y�𒼐ډ��K�Ɋ��蓖�Ă�ƁA���܂�ɕ����ꂵ���̂ŁA��菭�Ȃ����̉��K���L�������Ɋ��蓖�Ă邱�ƂŁA���J�ɁA�_�������K�����t���邱�Ƃ��ł���悤�ɂȂ�ł��傤(�P���͕K�v����)�B�܂����͂�WiiYourself!�̊֐��ɂ��p������Roll���g���̂ł͂Ȃ�RowY�Ȃǐ��̑���l�𗘗p����̂��悢�ł��傤�B
���֐�������
[1],[2]�{�^���Ŋy���I�Ԃ̂͂��܂�ɓ�����O�����ăJ�b�R�悭�Ȃ��ł��B�Ⴆ�΁A���炩���߁u�g�������Ȋy��v��T���Ă����āA[+][-]�{�^���Ŋ��蓖�ĂĂ��܂��Ƃ����̂͂ǂ��ł��傤���B
��ʂ̌����ڂ�����
���܂̉�ʂ͂܂�ň�̑O�́u��s��ATM�v��u��×p�v���@��v�Ƃ��������͋C�ł��B����͂���ł����̂ł����A���͂��ꂽ�l�����̂܂܃e�L�X�g�̍��W�ɂ‚������ƂŁA���J�b�R���������̃e�L�X�g�O���t�B�b�N�X����邱�Ƃ��ł��܂��B
MIDI�M�������x��
DTM��MIDI�ɒm���̂�����Ȃ�A���̎��_�ł��΂炵��MIDI���͑��u����ɓ��ꂽ���ƂɂȂ�܂��B����MIDI�t�@�C�����{�^���Ɋ��蓖�Ăĉ��t�����邱�Ƃ��ł��܂����A�V�[�P���T�[�̖���������v���O�����Ƒg�ݍ��킹�āu���Q�[�v����邱�Ƃ��ł��܂��B�O����MIDI������AMIDI�M�����T�|�[�g���鑼�̃t�B�W�J���R���s���[�e�B���O�ȃK�W�F�b�g�𑀍삷�邱�Ƃ��A���̃v���O��������_�Ƃ��ĊJ�����邱�Ƃ��ł��邩��ł��B
MIDI����v���O�����ɂ‚���

�@�{�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

�����ƗV�тƎ����̂͂��܂�

�@�Ȃ��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

�v����Ƃ��Ă�WiiRemote

���̃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

�uWiiRemote�v����v�d�́E�p���E������g��

��قǂ̉����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

WiiRemote�����(1/2)
#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

mmsystem.h
timeGetTime()�Ƃ������݂̎����𑪒肷��Windows�v���b�g�t�H�[��API�𗘗p���邽�߂�#include���Ă��܂��B
conio.h
_kbhit()�Ƃ����L�[�{�[�h���͂��󂯕t����֐��𗘗p���āA�v���O�����I�����ɉ�ʂ������Ă��܂��̂�h�����߂�#include���Ă��܂��B
DWORD startTime=0, Refreshed=0, Sampled=0;
timeGetTime()�͂ƂĂ��傫�Ȑ����Ȃ̂�DWORD�^�̕ϐ���p�ӂ��Ă��܂��B���l��DWORD�^��CPU���̍X�V�񐔂��J�E���g����Refreshed�ƁA���ۂɃf�[�^�擾�����������񐔂𐔂��鐮���^�ϐ�Sampled��p�ӂ��Ă��܂��B
float duration=0.0f;
timeGetTime()�̓~���b�P�ʂŌ��݂̃V���A�����Ԃ�n���܂��B�����1/1000�ɂ��āA�J�n����(startTime)�Ƃ̍���b�P�ʂŕ\������duration(����)�Ƃ������O��float�^�ϐ��ł��B
bool continuous=false;
�v���O�����̋N�����Ɉ����w������邱�Ƃŕϐ�argv[1]�ɕ������n�����Ƃ��ł��܂��B�����ł́A���ڂ������֐��uSetReportType(wiimote::IN_BUTTONS_ACCEL, continuous);�v�̑�2������ύX���āA�ăR���p�C�����Ȃ��Ă������ł���悤��continuous�����s���̈����Ƃ��ēn����悤�ɂ��Ă��܂��B�Ȃ��w�肵�Ȃ��Ƃ���false�ł��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

WiiRemote�����(2/2)
    //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;
}
while(cWiiRemote.RefreshState() == NO_CHANGE) {
RefreshState()�Ƃ��̉��ɂ���Sleep(1);����̂Ȃ�̖��ɗ����Ă���̂��A�^��Ɏv���Ă����l�͂��Ȃ��ł��傤���H�����ŕϐ�Refresh���C���N�������g(=����+1)���邱�ƂŁA�������������ʼn����N���Ă���̂������������Ǝv���܂��B
Sampled++
��L��while�𔲂��āA���ۂɉ����ω����N�����Ƃ��ɃC���N�������g����܂��B�v���O�����̃��[�v�̑��x�Ƃ͕ʂɁA���ۂ�WiiRemote�������x�𑪒肵�đ��M�ł�����E���x���J�E���g����Ƃ����킯�ł��B
timeGetTime() - currentTime
�v���O������������ʉ߂����Ƃ��A���Ȃ킿�f�[�^�ɕω����N�����Ƃ��̎��Ԃ��A�O��̍X�V���Ƃ̍�(�~���b)�ŕ\�����܂��B�Ȃ�timeGetTime()�̓}���`���f�B�A�^�C�}�[�ƌĂ΂��֗��Ȋ֐��ł����A50�~���b�ȉ��̌v�����x�E�M�����͂���܂���̂Œ��ӁB
duration = (timeGetTime()-startTime)/1000.0f;
���݂̎��Ԃ�timeGetTime()�Ŏ擾���āA�J�n��������(startTime)�������āA1000�Ŋ���ƁAWiiRemote�ւ̐ڑ��J�n���猻�݂܂ł̕b����float�ŏo�܂��B�����10�b���肵�Ď����Ńv���O�������~�߂�̂ɂ��g���Ă��܂����A���ۂɂ͂��̌�ɂ���A���g�����v�Z����̂Ɏg���̂��ړI�ł��B

���āA�R�[�f�B���O���I���A�R���p�C�����ʂ�����AWiiRemote��Bluetooth�ڑ����āA���̏�Ȃǂɗ��ĂĒu���Ă݂܂��傤�B���̎��s��ł́A�g���[�q�����ɂ��Ĉ��肵�����̏�ɗ��ĂĂ��܂��B

����I��
Measurement�̎��s��
...
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

�ڑ�����10.21�b
duration�ő��肵�����Ԃł��B�u10.21�b�v�Ƃ���܂��B���_�I�ɂ�10�b�ł���͂��Ȃ̂ł����A���ʂ�if���ŏ����Ă����ꂮ�炢�̌덷�͔�������킯�ł��B
�X�V4827��
while���ASleep(1)�Œʉ߂��Ă��郊�t���b�V�������񐔁uRefreshed�v�̒l�ł��B
�f�[�^��M586��
����10�b�Ԃ̊ԂɎ��ۂɍX�V����ăv���O�����ɓ͂����f�[�^�ł��B�|�[�����O�̏ꍇ�A���莞�̏󋵂ő傫���ς��܂��B
�X�V���g��473.84Hz
while���[�v�̒��ɂ���Refreshed��duration�Ŋ��������̂ł�����A������CPU�̑��x���u�HGHz�v�Ƃ����Ă�����̂ƈӖ��I�ɂ͂ɋ߂��ł��B����ɂ��Ă͂Ȃ񂾂����Ȃ�����������Ƃ����l�́A���߂���Sleep(1)���R�����g�A�E�g���Ă݂�Ƌ����鐔���ɂȂ邩������܂���(MHz�ɂ͂Ȃ�ł��傤)�B
�T���v�����O57.41Hz
���ۂ̉����x�f�[�^�擾�X�V��1�b�Ԃ�57��s��ꂽ�A�Ƃ������Ƃ��Ӗ����܂��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

�f�o�b�O���̈����w��

���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

�l�@�u�Q�[���@�Ƃ��āA�v����Ƃ��āv

WiiRemote�͑������x����

���ā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

���ۂ̃Q�[���łǂ��g����

���ēǎ҂̑����͂��̐߂Ł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

���������ȃA�i�^���ǂ��g����

�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

���K���u�p���`�͑���v�Ɓu�e�j�X�̃��[�V�����v

�����ɗ����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

�����I�v�f�FHMM�ɂ�郂�[�V�����F��

�����܂�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

��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��

��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

Wiiyourself!�ɂ��X�s�[�J�[�Đ�

���̃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

��pWAV�t�@�C���̏���

�܂��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

WAV�t�@�C���쐬�̂��߂֗̕��c�[��

��KanaWave(�͍��͌厁)

http://www.vector.co.jp/soft/win95/art/se232653.html

��SCMPX(CH3��)

http://www.din.or.jp/~ch3/

KanaWave��WAV�t�@�C���쐬�B�����قNJȒP�B

�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

SCMPX�ɂ��ϊ��B�p�����[�^�ɒ��Ӂ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

WiiYourself!�̍���

���ā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

�C���^���N�V�����Z�p�̎��H�I�J���v���Z�X

���̏͂ł͑�4�͂Ŋw��WiimoteLib�ɂ��ԊO���Z���T�[�@�\������ɂ����߂āA.NET�ɂ��}�E�X����v���O�����uWiiRemoteMouse�v���J�����܂��B���H�I�ȊJ���v���Z�X��ʂ��āA���p�ł���WiiRemote���p�C���^���N�e�B�u�Z�p��̌����A���͂́u���K���v�ւ̃X�e�b�v�Ƃ��܂��B

�Ƃ���Ń}�E�X�Ƃ����΁A���ɑ�3�͂ŁuGlovePIE�v���g���č��@�\�ȃ}�E�X���X�N���v�e�B���O�Ŏ������܂����B�����ł͂�����v���g�^�C�v�Ƃ��āA.NET�‹��ɂ����鍂�x�ȃA�v���P�[�V�����J�����X�e�b�v��ǂ��ĉ�����Ă����܂��B�P��GlovePIE�łł��邱�Ƃ�.NET�ɈڐA���Ă��ʔ����Ȃ��ł�����A���ɁA�����ł͑�4�͂ł͈���Ȃ�����.NET�̊J����@��Ǝ��N���X�̍쐬�A�O��DLL�̎�荞�݁A�O���t�B�b�N�X�⃆�[�U�r���e�B�����コ����`���[�j���O�Ȃǂ����ۂ̊J����ʂ��ĉ�����܂��B

�d�l�ƊJ���̗���̐���

����J������}�E�X����v���O�����uWiiRemoteMouse�v�ŗ��p�����{�Z�p�̑����́A���܂܂Ŋw�񂾋Z�p�̑g�ݍ��킹�ł��B�ŏI�I�ɂ́A�F����ŐV�����@�\��lj��������Ȃ�悤�ɂł��Ă���A��ׂđ傫�ȃv���O�����ɂȂ��Ă������Ƃł��傤�B��4�͂ł́A�����ȋ@�\�̊m�F�̂��߂ɓ�����������R�[�h�������Ă��܂������A���̃R�[�f�B���O�X�^�C���̂܂ܑ傫�ȃv���O�����ɂȂ��Ă����ƁA�“ǐ��������A�����፬���ɂȂ����v���O�����R�[�h�ɂȂ��Ă������Ƃ��\�z����܂��B���̂悤�ȃv���O�����͑��́u�X�p�Q�e�B�R�[�h�v�ƌĂ΂�܂��B�l�ł̊J���͂Ƃ������Ƃ��āA�`�[���ł̊J���ɂ����ẮA�“ǐ���f�o�b�O�̂��Â炳����A�v���W�F�N�g�̐i�s������ɂ��錴���ɂ��Ȃ�܂��B

������g�ށuWiiRemoteMouse�v�̂悤�Ɂu��C�ɏ����グ�邱�Ƃ��ł��Ȃ����K�́`��K�͂̃v���O�����v���J������Ƃ��́A�܂��͈�U�A�v���O���~���O���痣��A��肽�����Ƃ�A�����������C���^���N�V�����A�ۑ�ȂǁA�u�d�l�v���ȒP�ɏ����o���܂��B���������������P�ʂ⏇�Ԃ�\�Ȃǂ܂Ƃ߁A�֐���N���X�Ƃ������܂Ƃ܂��������̒P�ʂŊJ����i�߂Ă����Ɣ�r�I���܂������܂��B

�͂��߂Ďg���Z�p�̊J���ł���΁u�s���l�܂��Ă���d�l���čl�v�Ƃ�����@�ł��ǂ��̂ł����A����͊��ɑ�3��4�߁uGlovePIE�ł‚���w���@�\�}�E�X�x�v��A��4��9�߁u�ԊO���Z���T�[���g���v�ɂ����Ċ�{�ƂȂ�Z�p�͎����ς݂ł��̂ŁA����́uWiiRemoteMouse�v�̊J���ł́A���Ɏ�������@�\�Ɨ���A�v���C�I���e�B(�D�揇��)���A�ȉ��̂悤�ɂ܂Ƃ߂Ă݂邱�Ƃ��ł���̂ł͂Ȃ��ł��傤���B

�uWiiRemoteMouse�v�̊T�v�݌v
�v���C�I���e�B WiiRemote������ �@�\
1 �ԊO���ƃ{�^���̏�� �t�H�[���ɕ`��
2 �ԊO���|�C���^�̈ړ� �}�E�X�|�C���^�̈ړ�
3 [A]�{�^�� �}�E�X���{�^��
4 [A]�{�^�������� �}�E�X�E�{�^��
5 �o�b�e���[�c�� LED�ɓd�r�c�ʃ��x���\��

�����Ƃ����ƁA���荞�݂����@�\������Ƃ������܂��B�Ⴆ�΃����`���[��A�L�[���͂̑���ȂǁA���Ɋw�K�����@�\�𑼂̃{�^���Ɋ��蓖�ĂĂ݂Ă��ǂ��ł��傤�B�\�̉��̕��Ƀv���C�I���e�B�ƂƂ��ɏ��������Ă݂Ă��������B���̍�Ƃ���ʓI�Ɂu�T�v�݌v�v�Ƃ����܂��B�ǂ��������Ƃ��������A�Ƃ����u�T�v�v�����̂����ɐ݌v���Ă����܂��B

�l�Ԓ��S�F�C���^���N�e�B�u�Z�p�݌v�̃q���g

�@�{���̓v���O���~���O�̖{�Ȃ̂ł����u�C���^���N�e�B�u�Z�p�v�ɂ‚��Ă͏��������[���A�̌n�I�ɂ��‚����Ă��܂��B

�@���̃Z�N�V�����ōs���u�T�v�݌v�v�Ƃ́A�܂��ɃC���^���N�e�B�u�Z�p�̊j�ƂȂ�d�v�ȃ|�C���g�ł��B����́u�����������@�\�v��\�ɏ����o���āA�v���C�I���e�B���‚���c�Ƃ������@���̗p���܂������A����͑S�Ă̏ꍇ�ɂ����Đ�����������ł͂Ȃ��A�ނ���u����̂��߂Ɏd���Ȃ��v��ʓI�ȃ\�t�g�E�F�A�J����@�̗�����Ƃ�܂����B

�@�C���^���N�e�B�u�Z�p�ɂ�����T�v�݌v�ɏd�v�Ȃ��Ƃ́u�z�����邱�Ɓv�ł��B�@�\�I�Ȑ�����uWiiRemote�ɂ��������@�\�����邩��...�v�Ƃ������u�@�\�w��(functionally-oriented)�v�̐݌v�ł͂Ȃ��A���ꂩ��u�J�����鉽��(something)�v���A�u�ǂ�ȑ̌�(experience)�v�����[�U�[�ɗ^���A���̑̌���ʂ��āu�ǂ�ȉ”\��(possibilities)�v�������āA�u�ǂ�ȃ��A�N�V����(reaction)�v�ɂ‚Ȃ���̂��B�܂��͂����ɑz���͂��g���w�͂����Ă��������B�‚܂�A���Ԃ������Ă��������B

�@��������Łu���[�U�[�C���^�[�t�F�[�X�f�U�C���v�Ƃ����l����������܂��B�l�Ԓ��S�f�U�C��(HCD:Human Centered Design)�⃆�[�U�r���e�B����̂��߂̕]����@��݌v��@�Ȃǂ́A�ߔN��Web��GUI(Graphical User Interface)�̃C���^�[�t�F�[�X�݌v�Ȃǂ𒆐S�ɁA�ȑO�����͂邩�ɑ̌n�I�ɐ�������Ă��Ă��܂��B�Ⴆ�΍��ەW���K�i�uISO13407�v�ɁuHuman-centred design processes for interactive systems(�C���^���N�e�B�u�V�X�e���̐l�Ԓ��S�݌v�ߒ�)�v�Ƃ��ċK�肳��Ă��܂��B

�@���ۋK�i�Ƃ����ƁA��������邩������܂��񂪏�ŏ������Ƃ���A�u�@�\�ł͂Ȃ��l�Ԓ��S�v�ɍl���邱�Ƃł��B�݌v�̏����ŋ�̓I�ȃ��[�U�[��A�����ŋN���肤��̌����u�z���v���A�����Ď��ۂɍ�������m�ƃ��[�U�[�̏󋵂��ώ@���A�J��Ԃ��݌v���s���c�Ƃ����v���Z�X�ɂȂ�܂��B

�@�������������[�U�[�C���^�[�t�F�[�X�f�U�C���̉��ǂ���ƂƂ��Ď��H���A���ʂ��グ�Ă����Ƃ�����܂��B�������Web�T�C�g�ɂ́A���̘b��Ɋւ��Ė��ɗ��������Ȗ{����R�Љ��Ă��܂��B

���\�V�I���f�B�A��

�@https://www.sociomedia.co.jp/category/books

���ۂɎ�������@�\�Ƃ��̏��Ԃ����܂�܂����̂ŁA���͏����̒P�ʂ��ƂɊJ���̗�����l���܂��B�������ʓI�ɂ́u�v��v�ƌ����܂��B�������n�߂đ̌�����l�ɂƂ��āA��̂��Ƃ͌��ʂ����‚��܂��񂩂�u���ܑz�肵�Ă��闬��v�ł��܂��܂���B�����o���Ă݂܂��B

  1. �v���W�F�N�g�̐V�K�쐬�ƃt�H�[���f�U�C��
  2. �����R�[�h�̍쐬
  3. �t�H�[���̃C�x���g����
  4. �ԊO���Ń}�E�X�J�[�\���ړ�
  5. �����ꂽ�{�^���ɑ΂��鏈��
  6. �t�H�[����LED�ɂ�鑕��

�u�T�v�݌v�v��u�v��v���ق�̏����ӎ�����K�����‚��邾���ŁA�v���W�F�N�g�̐i�s�͑傫���ς��܂��B�����ł́u�T�v�݌v�v�ƊȒP�Ȍv����쐬���܂����B���ۂ̃v���W�F�N�g�ł́A�����Ɂu�����v�A�u���ʂ��̂‚��Ă��Ȃ��Z�p�v�A�u�����ƕ]���v�A�u�݌v�̌������v�Ȃǂ𐷂荞��ł����ƁA���v���W�F�N�g�炵���Ȃ��Ă����܂��B�u�T�v�݌v�v�����ڍׂȉ�ʃC���[�W��@�\�A���������ł̃p�����[�^�[�A���Ƃ��΁u�������v�����b�������ƂȂ̂��A�Ȃǂ𐷂荞��ł����Ɓu�ڍא݌v�v�ɂȂ�܂��B

�{����WiiRemote�ɂ�����v���O���~���O����Ƃ��̓ƏK���ړI�Ȃ̂ł����܂ł̃��x���ɂƂǂ߂Ă����܂��B�����̂���l�́u�v���W�F�N�g�}�l�W�����g�v�ɂ‚��ď��X�̎��p���R�[�i�[��T���Ă݂�Ɨǂ��ł��傤�B�v���O���~���O����Ɩ��̃v���W�F�N�g�܂ł��܂��܂Ȏ��p��������͂��ł�(���莎��������܂�)�B����IT�p��̃v���W�F�N�g�}�l�W�����g�ƁA�r�W�l�X�p��̃v���W�F�N�g�}�l�W�����g�͈Ӗ�����Ƃ���ƈ������e�������Ԃ�ƈقȂ�܂����A������ɂ���u�����ǂ݂��Ă݂Ė��ɗ��Ž��p���v�Ȃ�A�����ēǂ�ł݂Ă����͂Ȃ��ł��傤�B

�v���W�F�N�g�̐V�K�쐬�ƃt�H�[���f�U�C��

�܂��͕��K�����˂āA�V�����v���W�F�N�g���쐬���܂��B�ԊO���Z���T�[�̓��͂���M���ăt�H�[���ɕ`�悷��v���O���������܂��傤�B��4��9��3�ŏЉ���ԊO��4�_���o�ɂ��u���W�̕`��v�v���O�������x�[�X�ɂ��āA���ς��Ă��ǂ��̂ł����A���K�����˂ă|�C���g�𗬂�Ő������܂��̂Ŏ��ۂɎ�𓮂����Ă݂Ă��������B

�܂�C#.NET2008�ŐV�K�v���W�F�N�g���쐬���܂��B�uVisual C#�v���uWindows�t�H�[���A�v���P�[�V�����v�Ńv���W�F�N�g�����uWiiRemoteMouse�v�Ƃ��܂��B�\�����[�V�����G�N�X�v���[���[�ɂ���u�Q�Ɛݒ�v���E�N���b�N���A�Q�Ƃ̒lj��Łu�ŋߎg�p�����t�@�C���v����uWiimoteLib.dll�v(�o�[�W����1.7.0.0)��I�����܂��B�u�\���v���u�c�[���{�b�N�X�v��I�сA�uForm1�v�ɑ΂���2�‚̃{�^����z�u��Text�v���p�e�B���u�ڑ��v�A�u�ؒf�v�Ƃ��܂��B�z�u�����{�^��2�‚����ꂼ��_�u���N���b�N���āA�{�^�����������Ƃ��̃C�x���g�������������܂��B�܂��uForm1�v��PictureBox��z�u���T�C�Y���u256, 128�v�ɐݒ肵�܂��B�f�o�b�O�p�̕������\������ꏊ�Ƃ��āuLabel1�v��z�u���܂��B

Form1�̃f�U�C����

�܂��̓X�^�[�g�n�_�ƂȂ�u�ŏ��̏�ԁv�ɂȂ�܂ŃR�[�h�𐮗����܂��傤�B�R�[�h�̏�ʼnE�N���b�N���uusing�̐����v���u���g�p��using�v�̍폜�Ƃ��邱�ƂŁAusing�錾�ɂ���K�v�Ȃ��N���X�͍폜���邱�Ƃ��ł��܂��B�K�v�ȃN���X�uWiimoteLib�v�����������܂��B������ŏ��̈���Ƃ��܂��B

�ŏ��R�[�h(Form1.cs)[C#]
using System;
using System.Drawing;
using System.Windows.Forms;
using WiimoteLib;

namespace WiiRemoteMouse {
 public partial class Form1 : Form {
  public Form1() {
    InitializeComponent();
  }
  private void button1_Click(object sender, EventArgs e) {
  
  }
  private void button2_Click(object sender, EventArgs e) {
  }
 }
}

�����܂ł̃X�e�b�v�ŊԈႢ�͋N���Ȃ��͂��ł����A�m�F�̂��߈�x[F5]�L�[�Ŏ��s���Ă����Ȃ��‚��Ă����Ɨǂ��ł��傤�B�������t�H�[�����\�����ꂽ��I�����A�v���W�F�N�g�S�̂�ۑ����܂��B�u�t�@�C���v���u�S�Ă̕ۑ��v�Ƃ��āuC:\WiiRemote�v�Ƀ\�����[�V�������uWiiRemoteMouse�v�ŕۑ����܂��傤�B

�v���W�F�N�g�̕ۑ���Y�ꂸ��

��{�R�[�h

����ł́A��4��9�߁u�ԊO���Z���T�[���g���v�ŊJ�������R�[�h���Q�l�ɂ��āA�ȉ��̂悤�Ȋ�{�R�[�h���쐬���܂��傤�B

��{�R�[�h(Form1.cs)[C#]
using System;
using System.Drawing;
using System.Windows.Forms;
using WiimoteLib;  //WimoteLib�̎g�p��錾
namespace WiiRemoteMouse {
 public partial class Form1 : Form {
  Wiimote wm = new Wiimote();      //Wiimote�N���X���쐬
  Boolean isConnected = false;     //WiiRemote���ڑ����ꂽ��
  public Form1()  {
    InitializeComponent();
   //���X���b�h����̃R���g���[���Ăяo������
   Control.CheckForIllegalCrossThreadCalls = false; 
  }
  //WiiRemote�̏�Ԃ��ω������Ƃ��ɌĂ΂��֐�
  void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) {
    WiimoteState ws = args.WiimoteState;  //WiimoteState�̒l���擾 
    DrawForms(ws); //�t�H�[���`�ʊ֐���
  }
  //�t�H�[���`�ʊ֐�
  public void DrawForms(WiimoteState ws) {
    //�O���t�B�b�N�X���擾
    Graphics g = this.pictureBox1.CreateGraphics();
    g.Clear(Color.Black);//��ʂ����F�ɃN���A
    g.Dispose();//�O���t�B�b�N�X�̉��
  }
  //�ڑ��{�^���������ꂽ��
  private void button1_Click(object sender, EventArgs e) {
    wm.Connect();                            //WiiReote�̐ڑ�
    wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
    //���|�[�g�^�C�v�̐ݒ�
    wm.SetReportType(InputReport.IRAccel, true);
  }
  //�ؒf�{�^���������ꂽ��
  private void button2_Click(object sender, EventArgs e) {
    wm.WiimoteChanged -= wm_WiimoteChanged; //�C�x���g�֐��̓o�^����
    wm.Disconnect();  //WiiRemote�ؒf
    wm.Dispose();     //�I�u�W�F�N�g�̔j��
  }
 } 
}

�R���p�C�����ē���m�F�����܂��BForm1�̖`����WiiRemote�̐ڑ���Ԃ��Ǘ�����ϐ��uBoolean isConnected�v��錾���Ă��܂��B���񃌃|�[�g�^�C�v�́uIRAccel�v�A�‚܂�w�ԊO���{�����x�Z���T�[�x�Ƃ��܂��B�uIRExtensionAccel�v�ł��ǂ��̂�������܂��񂪁A�����ł͊g���[�q���g���\��͂���܂���̂ŁA�œK�ȃ��[�h��I�����Ă����܂��傤�B

�R�[�h�̃u���b�N���Ɗ֐���

�����ŁA�����K�͂ɂȂ��Ă����ł��낤���̃v���O�����̑S�̂̍\���𐮗����Ă��������Ƃ������܂��B���̒i�K�ł̃R�[�f�B���O�͏������ȂNJ�{�I�ȂƂ��낾���ɂƂǂ߁A�X�̋@�\�̎����ɓ���O�ɁA�ꔏ�����܂��傤�B�܂��̓f�B�[�v�ȃR�[�f�B���O���n�߂�O�ɁA�ȒP�ȃR�����g�������Ă������Ƃ��厖�ł��B����Ɏ��O�Ɂu���������@�\�������������A����\��v�Ƃ����u���b�N��֐��ɂ܂Ƃ߂Ă������ƂŁA�S�̂̌��ʂ���ǂ����܂��B

#region�ɂ�鏈���̃u���b�N��

�܂������̃u���b�N�����w�т܂��傤�BVisual Studio�ł́A�v���O�����R�[�h���Ɂu#region�`#endregion�v�Ə������ƂŁA�R�[�h���u���b�N(=�ЂƂ‚̃J�^�}��)���Ƃɂ킯�邱�Ƃ��ł��܂��B���̃u���b�N���Ƃ�Visual Studio�R�[�h�G�f�B�^�̃A�E�g���C���@�\���g�p���āA�W�J��܂肽���݂��ł���悤�ɂȂ�܂��B

�u�u���b�N�̑}���v����#region

�g�������ȒP�ŁA�u���b�N��}���������v���O�����̍s�ʼnE�N���b�N���āu�u���b�N�̑}���v�Łu#region�v��I�����邾���ł��B�����ł͏�L�̊�{�R�[�h�ɂ�����A�t�H�[���̐ڑ��{�^���Ɛؒf�{�^���̃u���b�N�ɑ΂��āu�t�H�[���̃{�^������(�ڑ��E�ؒf)�v�Ƃ������O���‚��܂��傤�u#region�v��I��ŁA���O���‚��܂��B

�u�u���b�N�̑}���v��I�сA�����ݒ肵�Ȃ��Ɖ��̂悤�ȃR�[�h���}������܂��B

  #region MyRegion
  
  #endregion

���O���‚��ԈႦ�Ă��A�ꏊ���ԈႦ�Ă����ł͂���܂���B�u#region�v�͂����܂�C#�̃v���O�����ɏ����ꂽ�u�⑫�I�ȏ��v�ł���A�r���h���A�ŏI�I�ɂ͖�������܂�����A�C�y�Ɏg���ėǂ��̂ł��B�ł́u�t�H�[���̃{�^������(�ڑ��E�ؒf)�v���܂Ƃ߂邽�߂ɐ������ꏊ�ɏ����Ă݂܂��傤�B

�u�t�H�[���̃{�^������(�ڑ��E�ؒf)�v�̃u���b�N��(Form1.cs)[C#]
  #region �t�H�[���̃{�^������(�ڑ��E�ؒf)
  //�ڑ��{�^���������ꂽ��
  private void button1_Click(object sender, EventArgs e) {
    wm.Connect();                            //WiiRemote�̐ڑ�
    wm.WiimoteChanged += wm_WiimoteChanged;  //�C�x���g�֐��̓o�^
    //���|�[�g�^�C�v�̐ݒ�
    wm.SetReportType(InputReport.IRAccel, true);
  }

  //�ؒf�{�^���������ꂽ��
  private void button2_Click(object sender, EventArgs e) {
    wm.WiimoteChanged -= wm_WiimoteChanged; //�C�x���g�֐��̓o�^����
    wm.Disconnect();  //WiiRemote�ؒf
    wm.Dispose();     //�I�u�W�F�N�g�̔j��
  }
  #endregion

 } 
}

�\����܂肽���ނɂ́A�R�[�h�̍���(�s��)�ɂ��鏬���ȁu�|�v���N���b�N����ƁA�R�[�h�u���b�N���B�����Ƃ��ł��܂��B

�R�[�h�u���b�N��܂肽���񂾂Ƃ���

�Ȃ��u#endregion�v��}������ꏊ�ɒ��ӂ��Ă��������B�ߏ��ɂ���u}�v(�֐��̏I���)�̈ʒu���ԈႦ�Ă��v���O�����͓����܂����A�R�[�h�u���b�N��܂肽���ނƂ����S���G���[�͋N���܂��񂪁A���������ƂŃR�[�h��ǂނƂ��ɑ�ςȂ̂ŁA�K���Ƃ��ċC�������܂��傤�B

�����̊֐���

�u���b�N���̊�{���w�񂾂�A����WiiRemote�̏�Ԃ��X�V���ꂽ�Ƃ��ɌĂ΂��R�[���o�b�N�֐��uwm_WiimoteChanged()�v�����ꂩ��������鏈���̒P�ʂŃu���b�N�ɕ������Ă����܂��B���ꂼ��̋@�\�P�ʂŊ֐������A�u���b�N�Ƌ�(�J��)�̊֐���p�ӂ��Ă����܂��B�ȉ��̒ʂ�ɃR�[�h���u���b�N�����Ă݂Ă��������B

�v���O�����̊֐����ƃu���b�N��(Form1.cs)[C#]
���O����
#region WiiRemote�̏�Ԃ��ω������Ƃ��ɌĂ΂��֐�
  void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) {
    if (isConnected == true) {
      WiimoteState ws = args.WiimoteState;  //WiimoteState�̒l���擾 
      DrawForms(ws);  // �t�H�[���`��֐���
      IR_Cursor(ws);  // �ԊO���Ń}�E�X�J�[�\���ړ�
      Events(ws);     //�{�^���C�x���g����(�_�~�[�֐�)
      EffectsOut(ws); // LED�E����
      } else {
      //�ؒf
       this.wm.SetLEDs(0);       // LED����
       this.wm.SetRumble(false); // �o�C�u���[�^�[��~
       this.wm.Disconnect();     // WiiRemote�Ɛؒf
       this.wm.Dispose();        // �I�u�W�F�N�g�̔p��
    }
  }
#endregion

#region �{�^���C�x���g�J���p
public void Events(WiimoteState ws) {
}
#endregion

#region �t�H�[���`��֐�
  public void DrawForms(WiimoteState ws) {
    //�O���t�B�b�N�X���擾
    Graphics g = this.pictureBox1.CreateGraphics();
    g.Clear(Color.Black);//��ʂ����F�ɃN���A
    g.Dispose();//�O���t�B�b�N�X�̉��
  }
#endregion

#region �ԊO���Ń}�E�X�J�[�\���ړ�
  public void IR_Cursor(WiimoteState ws)
  {
  }
#endregion

#region LED�E����
  public void EffectsOut(WiimoteState ws) {
  }
#endregion
  
#region �t�H�[���̃{�^������(�ڑ��E�ؒf)
���ȉ�����

����ۂ̊֐��������͕̂s�������邩������܂��񂪁A����ł����Ȃ��r���h�͒ʂ�܂��B�m�F���Ă����܂��傤�B

�r���uEvents(ws);�v�ɂ‚��āu�_�~�[�֐��v�ƃR�����g���Ă����܂����B�����WiiRemote�����‚��ꂼ��̃{�^���C�x���g����������֐���z�肵�Ă��܂��B��X��K�͂ɂȂ邱�Ƃ��\�z�����̂ƁA�N���X�Ƃ��Ă��Ƃōė��p�ł������Ȃ̂ŁAForm1.cs�ł͂Ȃ��A�ʂɐV�����N���X�I�u�W�F�N�g���쐬���Ď�������\��ł��B���̒i�K�ł́w�ʃN���X�ɂ����炢�����A���ʂ��‚��Ȃ���I�x�Ƃ�����ԂȂ̂ŁuEvents()�v�Ƃ������̊֐��Ŏ������A���Ƃŕʂ̃N���X�ɈڐA���Ă����܂��B

�u#region�v���g�����ƂŁA�R�����g�Ɠ����ł��āA���₷���Ȃ�܂����BVisual Studio�ł͊֐��P�ʂ��s���ɂ���u�|�v���N���b�N���邱�ƂʼnB�������ł��܂����A�{���̈ȉ��̉���ł̓u���b�N�P�ʂʼn�����܂��̂ŁA#region�`#endregion�̈ʒu�͂�������ݒ肵�Ă����Ă��������B

�u�l�Ԓ��S�R�[�f�B���O�v�𗿗��ɂ��Ƃ���Ɓc

�@�Q�[���J���Ȃǂɂ���\����鑽���̃C���^���N�V�����Z�p���g�����v���O�����́u�X�p�Q�e�B�R�[�h�v�ɂȂ肪���ł��B�������{�l�ɕ����ƁA��ȗ��R�́u(����Ɋւ���)���ȏ��Ƃ��Ȃ����c�v�Ƃ����񓚂������̂ł����A�O�̃R�����ł��Љ���Ƃ���A���ȏ��͑�R�o�Ă��܂��B

�@�|�C���g�́u���[�U�[�C���^�[�t�F�[�X�f�U�C���ɂ͊J���̃��[�v������v�Ƃ������Ƃ����ɂ߂Ă��邩�ǂ����A��������܂���B���슴��̌��̈�ۂɒ�������u�l�Ԓ��S�v�̋@�\����������̂ł�����A�R�[�f�B���O���e�X�g���`���[�j���O���lj��@�\�Ƃ������[�v�̒��Ɂu�l�Ԓ��S�v�������Ă��܂��B

�@���̂悤�ɃC���^���N�e�B�u�Z�p�Ƃ́u�l�ԁv���Ԃɓ���Z�p�ł��B���̂��߁u�@�\�v�����S�ɂȂ�Ɩ��A�v���P�[�V�����̈�ʓI�J����@�̂悤�Ɂu���ꂾ�v�ƌ��ߑł��Ŏd�l�����A���̒ʂ�ɍ���Ă��A���ۂɂł��オ�������̂�l�Ԃ��G���āA�������������x�A���z�I�ȃC���^���N�V�����ɂȂ�悤�A���r���[�Ɛ݌v�A�t�B�[�h�o�b�N���J��Ԃ��Ȃ���΁A�����x�̍����̌���A�\�����������E�͂Ȃ��Ȃ��`���܂���(�Ƃ͂����Ɩ��A�v���P�[�V�������u��s��ATM�v�̂悤�ɐl�Ԓ��S�ōl����ׂ��v�f�͑����ɂ���܂�)�B

�@�Ȃ�ƂȂ��v���O���~���O���Ă���Ǝ��R�ƃX�p�Q�e�B������C���^���N�V�����Z�p���A���������R�[�h�ɗ��Ƃ����߂�悤�A�{���ł͌܌�墂����炢�ɒ��J�ɐ������Ă��܂�(�����v���O���}�ɂƂ��Ă͉�肭�ǂ������邱�Ƃł��傤�I)�B�{���ʼn�����Ă���R�[�f�B���O�X�^�C�����u�����v�Ƃ������̂ł͂���܂��񂵁A�����ʼn�����Ă���u���b�N����N���X�����A������������΂����Ƃ������̂ł�����܂���B

�@���Ȃ��Ƃ������邱�Ƃ́A���̂悤�ȃC���^���N�V�����J���v���W�F�N�g�̌��ʂ���ǂ�����ɂ́A��C�ɍ�����X�p�Q�e�B���u䥂ő�����v�����A�����������@�\������ۂ̂܂ܔz�u���āA�ЂƂ‚ЂƂŽ����ƕ]�������Ȃ��珇�ɉ������Ă������@�����ɗ��A�Ƃ������Ƃł��B���傤�ǃR�[�X�����́u�M�̍\���v���ɍl���āA��������w�ǂ��������Ԃŗ�������ׂ����H�x���l����悤�Ȃ��̂ł��傤�B�ꍇ�ɂ���Ă̓R�[�X�̓r���ŁA���q����̔��������ė����������ւ��邱�Ƃ��l���Ȃ���΂Ȃ�܂���B

�@���������Ӗ��ł́A���[�U�[�ɑ΂��āw���܍��ׂ������́A�X�p�Q�e�B���R�[�X�������H�f�U�[�g�͂���̂��H�x���A�܂����肪�������Ă���K�v������܂��B�����Ɏ��Ԃ������Ȃ��ƁA�X�p�Q�e�B�ǂ��납�A���q����̊�����Ȃ��œˑR�u�h���u���ɐ������œ�v���łĂ��邱�ƂɂȂ邩������܂���B

�t�H�[���̃{�^������

�u���b�N�����邱�ƂŃR�[�h�����₷���Ȃ�܂����B���������̏�ԂŃv���O���������s����ƁA�l�X�ȕs����c���Ă���͂��ł��B�Q�Ă��A�ЂƂ‚•Еt���Ă����܂��傤�B

�܂��̓v���O�������N���������Ƃ̃t�H�[���̃C�x���g�����𐮗����Ȃ���������Ă����܂��傤�B���݂̏�Ԃł�WiiRemote�ւ́u�ڑ��v�Ɓu�ؒf�v�����J�ł͂Ȃ��̂ŁA�uisConnected�v�Ƃ���bool�^�̕ϐ���p�ӂ��āA�ڑ���Ԃ��Ǘ����Ă����܂�(WiimoteLib�ɂ�����ɂ�����v���p�e�B�������Ă��悳�����Ȃ��̂Ȃ̂ł����A�����WiimoteLib�̐݌v�ł͌X�̃A�v���P�[�V�������Ŏ�����������悳�����ł�)�B

�t�H�[���̃{�^������(Form1.cs)[C#]
#region �t�H�[���̃{�^������(�ڑ��E�ؒf)
  //�ڑ��{�^���������ꂽ��
  private void button1_Click(object sender, EventArgs e) {
   if (this.isConnected == false) {
    this.wm = new Wiimote(); //WiiRemote�̏�����
    this.wm.Connect();       //WiiRemote�ڑ�
    this.wm.SetReportType(InputReport.IRAccel, true); //���|�[�g�^�C�v�̐ݒ�
    this.wm.SetLEDs(0); //LED ������
    this.wm.SetRumble(false); //�o�C�u���[�^�X�g�b�v
    this.button1.Enabled = false;  //�ڑ��{�^���𖳌�
    this.button2.Enabled = true;   //�ؒf�{�^����L��
    this.wm.WiimoteChanged += wm_WiimoteChanged; //�R�[���o�b�N��o�^
    this.isConnected = true; //�ڑ���Ԃ�true
   }
  }

  //�ؒf�{�^���������ꂽ��
  private void button2_Click(object sender, EventArgs e) {
   if (this.isConnected == true) {
    this.wm.WiimoteChanged -= wm_WiimoteChanged;  //�R�[���o�b�N���폜
    this.button1.Enabled = true;  //�ڑ��{�^����L��
    this.button2.Enabled = false;  //�ؒf�{�^���𖳌�
    this.isConnected = false; //�ڑ���Ԃ�false
   }
  }
#endregion

�t�H�[���̃{�^���������ꂽ�Ƃ��A�uisConnected�v���m�F���A�����܂��ڑ�����Ă��Ȃ��Ȃ�A�ڑ������A���|�[�g�^�C�v�̐ݒ�A�����ăR�[���o�b�N�֐���o�^���āA�ϐ��uisConnected�v��true�ɂ��܂��B

���l�Ɂu�ؒf�v�{�^���������ꂽ�Ƃ��͊��ɐڑ�����Ă���WiiRemote�I�u�W�F�N�g(wm)�ɓo�^���ꂽ�R�[���o�b�N�֐����폜���Ă��܂��B

�t�H�[����́u�ڑ��v��u�ؒf�v�{�^���́uEnabled=false�v�Ƃ��邱�ƂŖ������A�‚܂�u�����Ȃ���ԁv�ɂ��邱�Ƃ��ł��܂��B���̂悤�ɂǂ��炩�������ƁA�ǂ��炩�̒l���r���I�ɕς��A�����̏Ɩ��̂悤�ȃ{�^�����u�g�O��(toggle)�v�Ƃ����܂����A������\�t�g�E�F�A�Ŏ������Ă��邱�ƂɂȂ�܂��B

�t�H�[���{�^���̃g�O����
�u�͂��܂�v�Ɓu�����v�������Z�b�g��

�@�{���ł͌����⓮��𒆐S�ɉ�����Ă��܂��̂ŁA���[�U�[�̕s�ӂ̏I����WiiRemote�̓d�r�؂�A���̑��G���[�����Ȃǂ�(�v���v���Ő������Ă͂��܂���)���S�ɂ͈����؂�Ă��܂���B�F���񂪃t���[�E�F�A�ȂǁA�����̃v���O�������w���L���A�N���x�Ɏg���Ă��炤�ɂ͓��ɋC�������������ǂ��ł��傤�B

�@�K���Ƃ��āu������-�I���v�A�u�I�u�W�F�N�g�̒lj�-�폜�v�̓����Z�b�g�ŃR�[�f�B���O���Ă����Ǝv��ʃ~�X�̌y���ɖ𗧂��܂��B����C#�̏ꍇ�́A���[�U�[�t�����h���[�ɐ݌v���ꂽ����‹��Ȃ̂ŁA�폜�������Ŏ��{���Ă����d�g�݂�����܂��B�ӎ����Ďg�����Ƃ��ł���΃G���K���g�Ȃ̂ł����A�t�Ɂu�����ςȂ��A�폜�́c���������v�Ƃ����v���O���~���O�X�^�C�����‚ɂ‚��ƁA�I�u�W�F�N�g�̃X�R�[�v(��������)�������Â炭�Ȃ�A�v���O�����̓��쎩�̂͊������Ă���̂ɁA�c������I�u�W�F�N�g�̂������ŕs���̃G���[�����s���ɋN��������A�����ԋN�����Ă����ƃ��������[�N(�������R��)���N�����A�������ˑR�x���Ȃ�����A�N���b�V�������肷��w���Ƃ��Ǝ�̂�����v���O�����x�𐶂ݏo���܂��B

�@���ɃI�u�W�F�N�g�̏I����j���͖Y�ꂪ���ł��BWiimoteLib�̂悤�ɒN������������C�u�����̏ꍇ�͒P�Ɂu�I���v�Ƃ���API�������Ă��A�����ʼn�������Ă��邩�킩��Ȃ��ꍇ������܂��B�R�[�f�B���O�̗����u���܂����ŏI�����ėǂ����킩��Ȃ��v�Ƃ������Ƃ�������ł��傤�B����ȂƂ��́u//To���F�����Ŕj���H�v�Ȃǁw�����̎������x�ɃR�����g�����Ă������ƂŁA��X�̃R�[�h�����̎��Ɍ����ɖ��ɗ������肵�܂��B

�ԊO���Z���T�[�ɂ��}�E�X�|�C���^�ړ�

���͐ԊO���Z���T�[�𗘗p���āA�}�E�X�|�C���^�𓮂��������̎��������܂��B�����Ȃ�}�E�X�𓮂����������������Ă������̂ł����A�ԊO���̏󋵂������Ȃ��ƊJ������q���܂��̂ŁA�܂��̓t�H�[���`��֐��uDrawForms()�v�Ɏ�������ĐԊO����WiiRemote�̎��E�ɓ�������A�O���t�B�b�N�X�ƕ����ő���l��\������悤�ɂ��܂��B

�t�H�[���`��֐�DrawForms(Form1.cs)[C#]
#region �t�H�[���`��֐�
  public void DrawForms(WiimoteState ws)
  {
    //�O���t�B�b�N�X���擾
    Graphics g = this.pictureBox1.CreateGraphics();
    g.Clear(Color.Black);//��ʂ����F�ɃN���A
    //�����ԊO�����P�‚ł�����������
    if (ws.IRState.IRSensors[0].Found)
    {
      //�ԐF�Ń}�[�J0��`��
      g.FillEllipse(Brushes.Red,
        ws.IRState.IRSensors[0].Position.X * 256 ,
        ws.IRState.IRSensors[0].Position.Y * 128 , 5, 5);
      //�F�Ń}�[�J1��`��
      g.FillEllipse(Brushes.Blue,
        ws.IRState.IRSensors[1].Position.X * 256,
        ws.IRState.IRSensors[1].Position.Y * 128,  5, 5);
    }
    g.Dispose();//�O���t�B�b�N�X�̉��
    label1.Text = "IR[0] " + ws.IRState.IRSensors[0].RawPosition.ToString()
+ "\nIR[1] " + ws.IRState.IRSensors[1].RawPosition.ToString();
  }
#endregion

�ԂƐA2�‚̃|�C���^�������߂ɕ\�����Ă��܂��B�t�H�[���́ulabel1�v�ɕ\�������e�L�X�g��A���W�̕����Ȃǁu�������v�ɂ‚��āA���D�݂ʼn��ǂ��Ă��������Ă��܂��܂��񂪁A�Ō�Ɂu�����v�Ƃ��đ啝�g������\��ł��B���̃X�e�b�v�ł͂��܂�C�ɂ����A��ɐi�݂܂��傤�B

���̓}�E�X�|�C���^�[��ԊO���œ�������悤�ɂ��܂��B�܂��A�������R�[�h�̒��ɁA�ϐ��uScreenSize�v��lj����܂��傤�B

�������R�[�h��ScreenSize��lj�(Form1.cs)[C#]
  Wiimote wm = new Wiimote();      //Wiimote�N���X���쐬
  System.Drawing.Point ScreenSize; //|��ʃT�C�Y���i�[
  Boolean isConnected = false;     //WiiRemote���ڑ����ꂽ��

���ɁA�֐��uIR_Cursor�v���������܂��B����͐ԊO���̈ʒu�ɂ��킹�āA�}�E�X�|�C���^���ړ�������R�[�h�ł��B

�ԊO���Ń}�E�X�J�[�\�����ړ�(Form1.cs)[C#]
#region �ԊO���Ń}�E�X�J�[�\���ړ�
  public void IR_Cursor(WiimoteState ws)
  {
    ScreenSize.X = Screen.PrimaryScreen.Bounds.Width;  //��ʃT�C�Y����
    ScreenSize.Y = Screen.PrimaryScreen.Bounds.Height; //��ʃT�C�Y�c��
   //�����ԊO����1�”���������
   if (ws.IRState.IRSensors[0].Found) {
    //�ԊO�����W(0.0�`1.0)����ʃT�C�Y�Ɗ|�����킹��
    int px = (int)(ws.IRState.IRSensors[0].Position.X * ScreenSize.X);
    int py = (int)(ws.IRState.IRSensors[0].Position.Y * ScreenSize.Y);
    //X���W�𔽓]������
    px = ScreenSize.X - px;
    //�}�E�X�J�[�\�����w��ʒu�ֈړ�
System.Windows.Forms.Cursor.Position = new System.Drawing.Point(px, py);
   }
  }
#endregion

�擾�����ԊO���}�[�J�[��1�–ڂ�X,Y���W���}�E�X�J�[�\���̈ʒu�ɐݒ肵�Ă��܂��BSystem.Drawing�ɗp�ӂ���Ă���2�����̓_�������^Point(px,py)���‚����āA�}�E�X�J�[�\���ʒu��ύX���邽��System.Windows.Cursor.Poition�ɑ�����Ă��܂��B

�����������Ă݂܂��傤�BWiiRemote��Bluetooth�ڑ����A�Z���T�[�o�[�Ȃǂ̐ԊO���������������Ă���[F5]�L�[�������ăf�o�b�O�J�n���܂��B�\�����ꂽ�t�H�[���́u�ڑ��v�{�^���������A���Ȃ��ڑ����ꂽ��AWiiRemote��ԊO�������Ɍ����Ă��������B

���Ȃ��Ƃ�1�_�ł��ԊO�������o�����ƃt�H�[�����ɐԂ��}�[�J�[���\������AWindows�̃}�E�X�J�[�\������̓����ɂ����Ĉړ����܂�(�E�ɓ������΁A�E�Ƀ}�E�X�J�[�\���������͂��ł�)�B�ԊO�������o���Ă���Ԃ́APC�ɐڑ�����Ă���}�E�X��G���Ă��v���ʂ�ɓ��������Ƃ͂ł��܂���B

�Ȃ��A���s���Ƀ}�E�X�J�[�\�����o�^�o�^����ꍇ������܂��B�ԊO���Z���T�[�̏�Ԃ╡���̃}�[�J�[��WiiRemote�̎��E�ɓ����Ă��邱�ƂɋN������s����Ȍ��o��Ԃɂ����̂ł��BWiiRemote�ƃZ���T�[�o�[�Ƃ̋�����2m���x�܂ŗ����Ă݂��肷��ƈ���ɂȂ�܂����A��قǃR�[�h�̌������ƃ`���[�j���O�����{���܂��̂ŁA���ɍ��͋C�ɂ��Ȃ��Ă��悢�ł��傤�B

�I������ꍇ�́A�ԊO�������o���Ȃ��悤�ɂ���(�Z���T�[���������ɂ��ė��Ă�Ƃ������ł�)�ƁA�}�E�X�̐��䂪�߂�܂��̂ŁB�u�ؒf�v�{�^���������Ă���I�������Ă��������B�}�E�X�J�[�\���ɗ��炸�A[TAB]�L�[�𐔉񉟂��A[Enter]�L�[�Łu�ؒf�v����͂��鎖�ł��A�ȒP�ɏI�����邱�Ƃ��ł��܂��B

�{�^���C�x���g�̌��o

���̓{�^���C�x���g�ł��B��قǂ͋���ۂɂ��Ă����{�^���C�x���g����������_�~�[�֐��uEvents()�v���������Ă����܂��傤�B

�{�^���C�x���g�ƊȒP�Ɍ����Ă��AWiiRemote�̃{�^���͂������񂠂�܂����A�}�E�X��WiiRemote�ɕt���Ă���f�W�^�����̓{�^���ɂ͈ȉ��́u3�‚̏�ԁv������܂��B

�yDOWN�z�c�{�^�������������(Push)�B

�yHOLD�z�cDOWN��A�{�^�����������ςȂ��ɂ��Ă�����(Press)�B

�yUP�z�c�{�^���𗣂������(Release)�B

����������ł������菈�����Ȃ��ƁA�_�u���N���b�N�Ȃǂ����o����͓̂���Ȃ�܂��B

�T�v�݌v�ɏ]���āAWiiRemote��[A]�{�^���ɑ΂��Ĉȉ��̃}�E�X��������蓖�Ă邱�Ƃɂ��܂��B

�EA�{�^������������(DOWN)�A�}�E�X�̍��N���b�N�𔭍s���܂��B

�EA�{�^����������������(HOLD)�A�}�E�X�̉E�N���b�N�𔭍s���܂��B

�EA�{�^������������(UP)�A�}�E�X�{�^���������Ă��Ȃ���Ԃɂ��܂��B

�u������(HOLD)�v��1�b�ԉ������ςȂ��ɂ��邱�ƁA�Ƃ��Ă����܂��傤�B

���b�Z�[�W�{�b�N�X���g�����e�X�g

�܂��͊m���ɒ������C�x���g���E����悤�Ɂu���b�Z�[�W�{�b�N�X�v���g���Ċm�F���܂��B

[A]�{�^��HOLD�ɂ�郁�b�Z�[�W�{�b�N�X�̕\��(Form1.cs)[C#]
�������������ɒlj���
//�{�^���C�x���g�J���p
  bool isDown;
  int StartTime, PressTime = 1000;
  string State = "";
��������
#region �{�^���C�x���g�J���p
public void Events(WiimoteState ws) {
 if(ws.ButtonState.A) {
  if (isDown == false) {
   //���������߂ă{�^���������ꂽ�Ƃ�
   StartTime = System.Environment.TickCount; //�����ꂽ���Ԃ��L�^
   State  = "DOWN"; isDown = true;
  } else {
   //������Ă��鎞�Ԃ�PressTime��蒷�����HOLD
   if ((System.Environment.TickCount - StartTime) >= PressTime) {
    State = "HOLD";  //�����ꑱ���Ă���
    //���b�Z�[�W�{�b�N�X��\��
    MessageBox.Show(State);
   }
  }
 } else {
  if (isDown == true) {    //�{�^���������ꂽ
    State = "UP";  isDown = false;
  }
 }
}
#endregion

���̒i�K�Ńe�X�g�����Ă݂܂��傤�B�v���O�������N�����Đڑ����A[A]�{�^�����������ςȂ��ɂ���1�b�܂‚ƁA�uHOLD�v�Ə����ꂽ���b�Z�[�W�{�b�N�X���\������܂��B

[A]�{�^���𒷉�������ƃ��b�Z�[�W�{�b�N�X���\�������

MessageBox.Show()�ŗ��p�ł���u���b�Z�[�W�{�b�N�X�v�͂��̎�̃f�o�b�O��J���ɔ��ɖ��ɗ����܂��B�����ł͂����m�F���I���܂����̂ŁA���̍s�̓R�����g�A�E�g�������͍폜���Ă��܂��Ė�肠��܂���B

�f�o�b�O�e�N�j�b�N

�@�v���O�����̓�����m���߂邽�߂ɁA�f�o�b�O���K�v�ɂȂ邱�Ƃ�����܂��BVisual Studio�̕W���@�\�ł�[F9]���������ƂŃu���[�N�|�C���g��}�����邱�Ƃ��ł��܂��B�������v���O�������~�߂�܂ł��Ȃ��A������Ƃ����l���������Ƃ��Ȃǂ�����܂��B

�@����Љ���u���b�Z�[�W�{�b�N�X�v�ȊO�̃e�L�X�g�\���̕��@�Ƃ��āAC#�ł́uConsole.WriteLine()�v���g���ă��b�Z�[�W���o�͂��邱�Ƃ��ł��܂��B���̏o�͌��ʂ�Visual Studio��̕W���o�́u�\��(V)���o��(O)�v�Ō��邱�Ƃ��ł��܂��B(�Ȃ����l�̊֐���C++�ɂ�����܂����A�Ȃ���Visual C++��ŏo�̓E�B���h�E�����Ă��o�͂���Ȃ��悤�ł��c)�B

�@���̂悤�Ȃ�����Ƃ����e�N�j�b�N�͒m���Ă���ƕ֗��ł��B���������s���̓p�t�H�[�}���X�ቺ���Y�ޏꍇ������̂ŁA�ŏI�I�ȃo�[�W�����ł͖Y�ꂸ�ɃR�����g�A�E�g���Ă������A�u#if DEBUG�`#endif�v�f�B���N�e�B�u���g�����ƂŃf�o�b�O�ł����R�[�h�����������Ƃ��ł��܂��B

�@�f�o�b�O�e�N�j�b�N�́A�C���^���N�V���������コ����ׂ̂��܂߂Ȏ�����]���A�`���[�j���O�ɔ��ɖ��ɗ����܂��B

�{�^���C�x���g�����̃N���X��

�����āAWiiRemote�̃{�^���_�E���ɂ��킹�āA�}�E�X�{�^���̃C�x���g�𔭍s���܂��B�v���O�����������Ȃ��Ă��܂��܂��̂ŁA���ꂩ��{�^���C�x���g�̌��o��ʂ�.cs�t�@�C���̕ʃN���X�ɈڐA���܂��B

�V�����N���X�̒lj�

�܂�Visual Studio�́u�v���W�F�N�g�v����u�V�������ڂ̒lj��v(Ctrl+Shift+A)���s���܂��B

�V�K�N���X�uButtonEvents.cs�v�̒lj�

�u�e���v���[�g�v�Łu�N���X�v��I�уt�@�C�������uButtonEvents.cs�v�Ƃ��āu�lj��v�������܂��B�v���W�F�N�g�G�N�X�v���[���[�ɁuButtonEvents.cs�v���lj�����A�ȉ��̂悤�ȏ����R�[�h���\�������͂��ł��B

�����R�[�h(ButtonEvents.cs)[C#]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WiiRemoteMouse
{
  class ButtonEvents  {
  }
}

���̂܂܂ł͉��������܂���̂ŁA���܂܂ŃR�[�f�B���O�̒��S�ɂȂ��Ă����uForm1.cs�v����Events()�֐��̃R�[�h�ƕϐ����ڐA���܂��B�u#region�v���Y�ꂸ�ɋL�q���Ă����܂��傤�B

Form1.cs����ڐA�����R�[�h(ButtonEvents.cs)[C#]
using WiimoteLib;

namespace WiiRemoteMouse
{
 class ButtonEvents {
  bool isDown;
  int StartTime, PressTime = 1000;
  string State = "";
#region �{�^���C�x���g����
  public void Events(WiimoteState ws) {
   if (ws.ButtonState.A) {
    if (isDown == false) {
     //���������߂ă{�^���������ꂽ�Ƃ�
     StartTime = System.Environment.TickCount; //�����ꂽ���Ԃ��L�^
     State = "DOWN"; isDown = true;
    } else {
    //������Ă��鎞�Ԃ�PressTime��蒷�����HOLD
     if ((System.Environment.TickCount - StartTime) >= PressTime) {
      State = "HOLD";  //�����ꑱ���Ă���
      //���b�Z�[�W�{�b�N�X��\��(�m�F�p)
      System.Windows.Forms.MessageBox.Show(State);
     }
    }
   } else {
    if (isDown == true) {    //�{�^���������ꂽ
     State = "UP"; isDown = false;
    }
   }
  }
#endregion
 }
}

�ڐA�����R�[�h��Form1.cs����폜�A�������̓R�����g�A�E�g���܂��B

Form1.cs�̕ύX����[C#]
���O����
namespace WiiRemoteMouse {
 public partial class Form1 : Form {
  Wiimote wm = new Wiimote();      //Wiimote�N���X���쐬
  ButtonEvents wbe = new ButtonEvents(); //�{�^���C�x���g�N���X���쐬
���ȉ��̏������͍폜���Ă��܂��܂���
/*
//�{�^���C�x���g�J���p
  bool isDown;
  int StartTime, PressTime = 1000;
  string State = "";
*/
�������Ŋ֐����̑O�ɃN���X���uwbe.�v��lj����܂���
      wbe.Events(ws); //�{�^���C�x���g����
���ȉ�����

���̒i�K�ł��Ȃ炸���쎎�����s���Ă��������B[A]�{�^���𒷉�������ƁA���b�Z�[�W�{�b�N�X���\�������͂��ł��B

�uButtonEvents wbe = new ButtonEvents();�v�ɂ����wbe�Ƃ����N���X��V�K�쐬���A�ڐA�����֐�(���\�b�h)�uwbe.Events(ws);�v���{�^���C�x���g�̏����Ƃ��ČĂ�ł��܂��B

���̂悤�Ƀ\�[�X�R�[�h���ڐA����������Ȃ����s�ł���΁A�����̃N���X���܂�����v���O�����̍쐬�ɐ��������Ƃ����܂��B

����ŁA�{�^���C�x���g������ʂ̃N���X���L�q���ꂽ�\�[�X�R�[�h�uButtonEvents.cs�v�ɕ����邱�Ƃɐ������܂����B���܂܂ł͑S��Form1.cs��Form1�N���X�ɋL�q���Ă����̂ł����A�v���O����������ɂȂ����Ƃ���A�����̃v���O���}�ɂ��`�[���ŊJ������Ƃ��ɂ́A�K�؂ȃ^�C�~���O�ŃN���X��t�@�C�����킯�Ă������Ƃ��d�v�ł��B

DLL�C���|�[�g�ɂ��Win32API�̗��p

����WiIRemote�̃{�^���������ꂽ�Ƃ��ɁA�}�E�X�{�^���̃N���b�N�C�x���g�����s�����ׂ��p�[�g�̃R�[�h�������Ă����܂��B���́u�}�E�X�{�^���C�x���g�̔��s�v�͒P�Ƀ}�E�X�J�[�\���𓮂����Ƃ��ƈقȂ菭�X���G�ɂȂ�܂��B�܂�.NET Framework3.5�ł̓}�E�X�J�[�\���̈ʒu�͕ύX�ł��Ă��A�N���b�N����C�x���g�𔭍s�ł���API���p�ӂ���Ă��Ȃ��悤�ł��B�����ŏ]�����瑶�݂���Win32�v���b�g�t�H�[��SDK��Windows���[�U�[�C���^�[�t�F�[�X�T�[�r�X�uuser32.dll�v�Ƃ���DLL�Ɋ܂܂��uSendInput()�v�Ƃ���API��SendInput()�̂��߂̍\���̂���荞�ނ��ƂŁA���̋@�\���������܂��B

DLL�C���|�[�g�ƍ\���̂́A������x�`���ɉ������L�q���K�v�ł��B�����ł́uSendInput()�v�Ƃ���API����荞�݁A���̊֐��̈����ƂȂ�\���́uINPUT�v��INPUT�����p����}�E�X�C�x���g�̏ڍׂ��L�q����\���́uMOUSEINPUT�v����荞�݂܂��B

ButtonEvents.cs�ւ�DLL�C���|�[�g[C#]
using WiimoteLib;
//DllImport�ɕK�v��using��lj�
using System;
using System.Runtime.InteropServices;
namespace WiiRemoteMouse {
 class ButtonEvents {
  bool isDown;
  int StartTime, PressTime = 1000;
  string State = "";
#region DLL�C���|�[�g
  [DllImport("user32.dll")]  //DLL�ǂݍ���
  extern static uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize);
  [StructLayout(LayoutKind.Sequential)]
  struct INPUT  {
    public int type;
    public MOUSEINPUT mi;
  }
  [StructLayout(LayoutKind.Sequential)]
  struct MOUSEINPUT  {
    public int dx;
    public int dy;
    public int mouseData;
    public int dwFlags;
    public int time;
    public IntPtr dwExtraInfo;
  }
#endregion
���ȉ�����

���̍\���̂�Win32(C++)�̃w�b�_�t�@�C���ł���uWinUser.h�v�ɋL�q����Ă�����̂ł��B�����ʓ|�ł����A�ԈႦ���ɋL�q���Ă��������B�Ȃ��A���̍\���̂̒�`�����낻���ɂ���ƁASendInput�������������Ă���܂���B

C#�Ń}�E�X�Ɋ�]�̃C�x���g�𔭍s����Ƃ��́A�ȉ��̂悤�ɂ��ăC�x���g�𑗐M���܂��B

 input[0].mi.dwFlags = 0x0002;                   //���}�E�X�_�E��
 SendInput(1, input, Marshal.SizeOf(input[0]));  //�}�E�X�C�x���g�𑗐M

�uMarshal�v�̓A���}�l�[�W�R�[�h�̃��������蓖�Ă̂��߂Ȃǂɗp�ӂ��ꂽ�N���X�ł��BDLL�ƍ\���̂̃C���|�[�g�͋L�q�����ԈႦ�Ȃ���Γ��ɋC�����K�v�͂���܂���A���̂܂܉��ɑ����A�{�^���C�x���g�̎������s���܂��傤�B

�{�^���C�x���g�ւ̎���(ButtonEvents.cs)[C#]
���R�����g�̓��Ɂu|�v���‚��Ă���ӏ����V�K�lj������ł���
#region �{�^���C�x���g����
  public void Events(WiimoteState ws) {
   INPUT[] input = new INPUT[1];  //|�}�E�X�C�x���g���i�[
   if (ws.ButtonState.A) {
    if (isDown == false) {
     //���������߂ă{�^���������ꂽ�Ƃ�
     StartTime = System.Environment.TickCount; //�����ꂽ���Ԃ��L�^
     State = "DOWN"; isDown = true;
     input[0].mi.dwFlags = 0x0002;                  //|���}�E�X�_�E��
     SendInput(1, input, Marshal.SizeOf(input[0])); //|�C�x���g�𑗐M
    } else {
    //������Ă��鎞�Ԃ�PressTime��蒷�����HOLD���E�N���b�N
     if ((System.Environment.TickCount - StartTime) >= PressTime) {
      State = "HOLD";  //�����ꑱ���Ă���
      input[0].mi.dwFlags = 0x0008;                  //|�E�}�E�X�_�E��
      SendInput(1, input, Marshal.SizeOf(input[0])); //|�C�x���g�𑗐M
     }
    }
   } else {
    if (isDown == true) {    //�{�^���������ꂽ
     State = "UP"; isDown = false;
     input[0].mi.dwFlags = 0x0004;                   //|���}�E�X�A�b�v
     SendInput(1, input, Marshal.SizeOf(input[0]));  //|�C�x���g�𑗐M
     input[0].mi.dwFlags = 0x0010;                   //|�E�}�E�X�A�b�v
     SendInput(1, input, Marshal.SizeOf(input[0]));  //|�C�x���g�𑗐M
    }
   }
  }
#endregion
 }
}

�e�C�x���g�ɑ΂��āuinput[0].mi.dwFlags = 0x0004�v�Ƃ��邱�ƂŃ{�^���̉�����Ă����Ԃ𔭍s���邱�Ƃ��ł��܂��B���́u0x0002�v��u0x0004�v�Ƃ���16�i���\���̃t���O(dwFlags)�̓v���b�g�t�H�[��SDK�Œ�߂��Ă���萔�ŁA�uWinUser.h�v�Ŋm�F���邱�Ƃ��ł��܂��B���ɂ��E�N���b�N��z�C�[���Ȃǂ̃f�[�^�����邱�Ƃ��ł��܂��B

WinUser.h�ɋL�q����Ă���}�E�X�C�x���g�萔(����)
���� �Ӗ� �l
MOUSEEVENTF_MOVE �}�E�X���ړ� 0x0001
MOUSEEVENTF_LEFTDOWN ���{�^���������ꂽ 0x0002
MOUSEEVENTF_LEFTUP ���{�^���������ꂽ 0x0004
MOUSEEVENTF_RIGHTDOWN �E�{�^���������ꂽ 0x0008
MOUSEEVENTF_RIGHTUP �E�{�^���������ꂽ 0x0010
MOUSEEVENTF_MIDDLEDOWN �����{�^���������ꂽ 0x0020
MOUSEEVENTF_MIDDLEUP �����{�^���������ꂽ 0x0040
MOUSEEVENTF_WHEEL �z�C�[������] 0x0800

������API��\���̂̃t�H�[�}�b�g�́A�}�C�N���\�t�g�̃h�L�������g��SDK�Ɋ܂܂��w�b�_�t�@�C���ŗ^�����Ă��܂��B�ߋ����X�Ƃ����������j�����AWin32�v���b�g�t�H�[���ɂ�����C++��������Ă���l�̃z�[���y�[�W�Ɍf�ڂ��ꂽ�T���v���Ȃǂ����ɗ����܂��BC#�̃R�[�f�B���O�����Ă��邩��Ƃ����āu���������C++�̃T���v�����A���ɂ͊֌W�Ȃ��c�v�Ǝv���K�v�͂Ȃ��̂ł��I

.NET�����C#�v���O���}�ɂƂ��ăA���}�l�[�W�R�[�h�̎�荞�݂́A.NET Framework�ɕی삳��Ă��Ȃ��u���m�̋��|�v�����邩������܂��񂪁A����Ă��܂��Ε֗��Ȃ��̂ł��B����̂悤��SendInput�̓A���}�l�[�W�h�Ȏ����𗊂�Ȃ��Ă��A�����I��.NET Framework�Ɏ�荞�܂�A�C�y�Ɏg����悤�ɂȂ邱�Ƃ�]�݂܂����c�B

�}�C�N���\�t�g�̃h�L�������g���

��SendInput�֐�

�@http://msdn.microsoft.com/ja-jp/library/cc411004.aspx

��mouse_event�֐�

�@http://msdn.microsoft.com/ja-jp/library/cc410921.aspx

����Ŋ�{�@�\�͂قڊ����ł��B�����������s���Ă݂܂��傤�B�v���O�������N������WiiRemote��Bluetooth�ڑ����u�ڑ��v�Ƃ���ƁA���E�ɓ������ԊO���ɂ���ă}�E�X�J�[�\���𓮂�����悤�ɂȂ�܂��B

[A]�{�^���������ƃ}�E�X�̍��N���b�N�A1�b�Ԓ���������ƉE�N���b�N�ɂȂ�܂��B�{�^�������𗣂��ƁA���E�����̃}�E�X�{�^���𗣂������(Up)�ɂȂ�܂��B

�ȏ�ŁA�ŏ��Ɂu�T�v�݌v�v�Ő݌v�����S�Ă̋@�\�̎������I���܂����B�����l�ł����I

C++�ł܂߂�����

�@�����WiiRemoteMouse�ł�C#.NET�݂̂ŊJ�����A��4�͂̂悤��C++�ł������܂���ł������A����C++.NET�‹��͂��̂悤�Ȕ�.NET���݊‹�(�A���}�l�[�W�h�R�[�h)�ɋ����A�`���Łuwindows.h�v��#include�錾���邾���ŁA�֘A����\���̂�API�𗘗p�ł���悤�ɂȂ�܂��B�܂�C#�̃R�[�h�Łu0x0002�v�Ə����Ă����悤�Ȓ萔���uMOUSEEVENTF_LEFTUP�v�Ƃ��ĕ\���ł���悤�A���ׂĎ����Ŏ�荞��ł���܂��B���̂܂܃r���h����Ɓu�֐��̎��̂����‚���Ȃ��v�Ƃ����G���[���o��̂ł����A�u�v���W�F�N�g�̃v���p�e�B�v���u�\���v���p�e�B�v���u�����J�v���u���́v���u�lj��̈ˑ��t�@�C���v��\�����āu�e�܂��̓v���W�F�N�g�K��l����̌p���v�Ƀ`�F�b�N�����邱�ƂŁA�r���h���Ɏ��ۂ̊֐��������N���Ă����悤�ɂȂ�܂��B

�u�e�܂��̓v���W�F�N�g�K��l����̌p���v�Ƀ`�F�b�N

���[�U�[�e�X�g�ƃt�B�[�h�o�b�N�J��

���l�ɐG���Ă��炢�A�ώ@����

�T�v�݌v�Ő݌v�����@�\�͎������I���܂������A����ŏI���ł͂���܂���B�ނ��낱�����炪�͂��܂�ł��B

�܂����[�U�[�r���e�B�̌���̂��߂ɁA�����Łu�����ȊO�̒N���v�ɐG���Ă�����Ă��������B����ɒN�����Ȃ��Ƃ��́A�������g�Ŏ��ێg���ł��낤���[�U�[(UI���p��Łu�y���\�i�v�Ƃ����܂�)��z�����Ȃ���G���Ă݂܂��B�����C���‚������Ƃ���������A�ǂ�ǂ񃁃����Ă����܂��B

����������ƂɎ��Ԃ��₷�ƁA�R�[�f�B���O�������Ă��鎞�ɂ͌����Ȃ����Ƃ������Ă��܂��B

�Ⴆ�΋N������A�wlabel1�x�ƕ\������Ă���Ƃ���́A���̃v���O�������͂��߂ĐG��l�͂Ȃ񂾂��킩��܂���B������label1�̃v���p�e�B���w�u�ڑ��v�{�^���������Ă��������x�Ƃ���ׂ��ł��ˁB����������������ƏڍׂɁuWiiRemote�����g����Bluetooth�X�^�b�N�Őڑ����Ă���A�v�Ə���������K�v�����邩������܂���B�t�H�[���̏㕔�ɕ\������Ă���uForm1�v��Text�v���p�e�B���uWiiRemoteMouse�v�Ƃ���ׂ���������܂���ˁB�z�肵�Ă��郆�[�U�[�u�y���\�i�v�������Ă��Ȃ���΁A�ǂ��܂ł������ȃv���O�����ɂȂ��Ă��܂��܂��B

���e�؂ȃt�H�[���ɉ���
�ύX��́uWindows �t�H�[�� �f�U�C�i�Ő������ꂽ�R�[�h�v�̈ꕔ(Form1.Designer.cs)[C#]
this.label1.Text = "WiiRemote�����g����Bluetooth�X�^�b�N�Őڑ����Ă���A\n�u�ڑ��v�{�^���������Ă�������";
  this.Text = "WiiRemoteMouse";

���̂悤�ȃt�B�[�h�o�b�N�J���͉��x�J��Ԃ��Ă��u�I���v�Ƃ������̂͂���܂���B���������̌J��Ԃ����[�v�ɂ����鎞�ԂŁA�v���O�����̊����x�͂ǂ�ǂ�ƍ��܂��Ă����܂��B

���̑��{�^���A�N�V�����̎����A�C�f�B�A

���[�U�[�e�X�g������Ă݂�ƁA���̐�AGlovePIE�Ŏ��������悤�ɁA���܂��܂ȃ{�^���Ȃǂɑ�R�̃A�N�V���������蓖�ĂĂ��������Ȃ�Ƃ������܂��B�c�O�Ȃ��ƂɁA���������͂ǂ�ǂ�WiiRemote�Ƃ͒��ڊ֌W�Ȃ��b�ɂȂ��Ă��܂��܂��̂œK�x�Ɋ������Ȃ������������Ǝv���܂��B

�Ⴆ�΁A�{�^���A�N�V�����̊J���ɂ‚��āA[B]�ɂ��}�E�X�E�{�^�������蓖�Ă����Ƃ��܂��B���̏ꍇ�A

 if (ws.ButtonState.B) {
   input[0].mi.dwFlags = 0x0008;                  //|�E�}�E�X�_�E��
   SendInput(1, input, Marshal.SizeOf(input[0])); //|�C�x���g�𑗐M
 } else {
   input[0].mi.dwFlags = 0x0010;                  //|�E�}�E�X�A�b�v
   SendInput(1, input, Marshal.SizeOf(input[0])); //|�C�x���g�𑗐M
 }

���̂悤�ɏ���������Ηǂ��킯�ł��B���������̂悤�ɌX�̃{�^���C�x���g�ɂ‚���if���Ŏ������Ă����ƁA[A+B]�Ȃǂ̃{�^���R���r�l�[�V�����A�N�V�����Ȃǂ�������Ă����ƁA����ɕ��G�ɂȂ��Ă����܂�(�o�O�������܂�)�B�����������̕������N���X�������̂ŁA���܂��ė��p�ł�����@���l�������Ƃ���ł��B

�{���̒��҂̂ЂƂ�ł��鏬��搶�́A��قǎ�������State�̂悤�ȕ�������g�����āu������Ă���L�[�𕶎���Ƃ��Ĉ����v�Ƃ����A�C�f�B�A�ŁA�ȉ��̂悤�ȕ��@�ŐV�����N���X��݌v���Ă݂܂����B���ꂪ�������ǂ����͏ꍇ�ɂ�肯��ł����A�ǂ��A�C�f�B�A���Ƃ������܂��̂ŊȒP�ɉ�����܂�(�����i�͏��⌤������HP����_�E�����[�h�ł��܂���)�B

�܂����݂̃C�x���g�N���X�ɁuButtonEvent�v�Ƃ����N���X��lj����܂��B

public ButtonEvent(String buttonName) {
 this.isDown = false; //�����l��false
 this.State = ""; //�����l��""
 this.onButtonTime = 1000; //����������
 this.Flg = false; //�����l��false
 this.ButtonName = buttonName; //�{�^���̖��O���擾
}

�X�̃{�^���̃L�[�Ƃ��ĕ�������`���Ă����܂��B

A�{�^�� �@�� A      Home�{�^���� Home
B�{�^�� �@�� B      ���{�^���@�� Up
1�{�^�� �@�� One    ���{�^���@�� Down
2�{�^�� �@�� Two    ���{�^���@�� Left
-�{�^�� �@�� Minus  ���{�^���@�� Right
+�{�^�� �@�� Plus

������[A]�{�^���ɂ‚��ĊǗ�����ꍇ�A�uA�v�Ƃ�����������g����ButtonEvent�N���X��new���āuButtonA�v�Ƃ����N���X�I�u�W�F�N�g���쐬���܂��B���̕��@�ŁA�e�X�̃{�^���ɂ‚��ăC�x���g���Ǘ�����N���X�Q���ł�������܂��B

 public ButtonEvent ButtonA    = new ButtonEvent("A");
 public ButtonEvent ButtonB    = new ButtonEvent("B");
 public ButtonEvent ButtonUP   = new ButtonEvent("Up");
 public ButtonEvent ButtonDOWN = new ButtonEvent("Down")
��...�ȉ����ׂẴ{�^���ɂ‚���new���܂���

�����ButtonEvent�N���X�ɁuGetOnButton(WiimoteState ws)�v�Ƃ���String��Ԃ����\�b�h��p�ӂ��A�����ꂽ�{�^���̃e�L�X�g��Ԃ��܂��B�ȉ��̂悤�ɃR�[�f�B���O���邱�Ƃ��ł��܂��B

public String GetOnButton(WiimoteState ws) {
//A�������ꂽ       ���@" A"
//B�������ꂽ       ���@" B"
//A,B�������ꂽ     ���@" A B"
//A,B,1,2�������ꂽ ���@" A B One Two"
  String onButtons = "";
  if (ws.ButtonState.A) { onButtons += " A"; }
  if (ws.ButtonState.B) { onButtons += " B"; }
  if (ws.ButtonState.One) { onButtons += " One"; }
���ȉ��S�Ẵ{�^����
 return onButtons; //�����ꂽ�{�^��onButtons��Ԃ�
}

���̃��\�b�h���A

if (this.ButtonName.Equals(this.GetOnButton(ws).Trim()))

�c�Ǝg�����ƂŁA������Ă���{�^�������ڂ������{�^���ł���ButtonName�Ɠ������ǂ������ׂ鎖���ł��܂��B�Ȃ��O��̃X�y�[�X���������Ă���郁�\�b�hTrim()��Equals()�́AString�^���p�����Ă���̂ŁA�lj������Ȃ��ŗ��p�ł��܂��B

switch (ButtonA.onButton(ws))

�Ƃ��邱�ƂŁAswitch����p���Ă��ꂼ���[Down]�A[Up]�A[Hold]�Ή�����R�[�h�������Ă������Ƃ��ł��܂��B

�P����if���̑g�ݍ��킹�ŏ����Ă������@�������͂Ȃ��̂ł����A���̌�̃`���[�j���O�ŃX�p�Q�e�B���������A���[�U�[�e�X�g���Ɂu�������̎��Ԃ�ς������v�Ƃ������ׂ����`���[�j���O�̌J��Ԃ��ɋꂵ�߂��邱�ƂɂȂ邩������܂���B�N���X���g�����ĉ��A�֐��\�������ł���΂������������������Ԃ�Ɛ������t���悤�ɂȂ�܂��B

�L�[�{�[�h���͂̔��s

�}�E�X�Ƃ��Ă̊�{�@�\����������ƁA���[�U�[�e�X�g�ɂ���Ắu�L�[�{�[�h�@�\���~�����v�Ƃ����]���ɂ��Ȃ�ł��傤�B

.NET�ɂ͕֗���API�uSendKeys.SendWait()�v�Ƃ������\�b�h������A�����ɔ��s�������L�[�{�[�h���͂𕶎����n�����ƂŁA�L�[�{�[�h���͂𔭍s���邱�Ƃ��ł��܂��B�Ⴆ�΁uAlt+F4�v�̂悤�ȓ��ʂȃL�[�������������͂����s�ł��܂��B

[Alt+F4]�𔭍s�����
 SendKeys.SendWait("%{F4}");

�J�[�\���L�[��Ctrl�L�[�ȂǂقƂ�ǂ̃{�^���R���r�l�[�V�����͂��̕��@�ō��o�����Ƃ��ł��܂��B�ڍׂ�SendKeys�ɂ‚��Ē��ׂ�ƁA�S�Ă̋L�q���[�������‚��邱�Ƃ��ł���ł��傤�B

�܂��g�p�‹��ɂ���Ắu���̃c�[�����g�̕\�����B�������v�Ƃ����v��������Ǝv���܂��B����ȂƂ��́A�ȉ��̃R�[���ł��̃v���O�������v���O�������g����ŏ������邱�Ƃ��ł��܂��B

 this.WindowState = FormWindowState.Minimized;

���̂悤��.NET�̋@�\���t�����p���AWiiRemote�̃C�x���g�ɑ΂��ă}�E�X�ƃL�[�{�[�h�̓��͂����蓖�Ă���A���Ɂu�����`���[�v�Ŋw�񂾃A�v���P�[�V�����̎��s�Ȃǂ�g�ݍ��킹����A���ɂ͊O����API�����p���Ȃ��玩���ōD���ȋ@�\�𐷂荞��ŁA���N���̖��ɗ��uWiiRemoteMouse�v����肱��ł݂Ă��������B

�����v�f

�C���^���N�V�����Z�p�A����GUI(�O���t�B�J�����[�U�[�C���^�[�t�F�[�X)�ɂƂ��āu�����ځv�́w�d�v�ȋ@�\�x�ł��B�����ł́u�����v�f�v�ƌĂ�ł��܂����A�����Čy�����ς����Ă���̂ł͂���܂���B�֐��������邱�ƂŁA�����ō�荞�ނ̂���������Ƃ��v���o���܂��傤�B����́u�T�v�݌v�v�Ŋ�{�@�\��f�����������A���[�U�[�e�X�g�̌J��Ԃ��̃��[�v�ɂ����āu�\���Ȏ��Ԃ������đ����������v�Ƃ����ړI�ɂ����̂ł��B

�������̊J���̏��Ԃ��t���ƁA�J���̏����Łu�����ځv�ɂ΂��莞�Ԃ������A�K�v�ȋZ�p�ۑ�̉������ς܂Ȃ��܂܁A�Ђ��Ă̓v���W�F�N�g�̐i�s�������̒i�K�ł‚܂������邱�ƂɂȂ�܂��B�u�����ڂ��d�v�v�����炱���A���܃��[�U�[�e�X�g�̃��[�v�̒��ŁA�v�������������܂��傤�B

�����ɂ��LED�o�͊֐�

�܂��͂�����Ƃ�������LED�̕\���������������܂��B

�C���[�W�Ƃ��Ă�LED�ɂ̓o�b�e���[�̎c�ʂ��o25%�ȉ��A50%�A75%�A75%�ȏ�p�Ƃ�����4�i�K�ŕ\���������̂�SetLEDs()�֐��𗘗p���āA

LED��4�i�K�ŕ\���������
    wm.SetLEDs(1);  //�������� 25���ȉ�
    wm.SetLEDs(3);  //�������� 50��
    wm.SetLEDs(7);  //�������� 75��
    wm.SetLEDs(15); //�������� 75���ȏ�

���̂悤�ɕ\�����Ă������Ƃ��ł���ł��傤�B

�������uswitch�`case�v�����g���ă��W�b�N(�_��)�ŕ\�����Ă������@�ɑ΂��āA������1�s�ɂ܂Ƃ߂�G���K���g�ȕ��@������܂��B�����1�s�ŏ����鐔���Ŏ������Ă݂܂��B

�o�b�e���[�c�ʂ�LED�ɏo�͂��鐔��(Form1.cs)[C#]
#region LED�E����
  public void EffectsOut(WiimoteState ws) {
    //25%����LED��\��������
    wm.SetLEDs((int)Math.Pow(2.0f, (int)(ws.Battery / 25) +1 ) - 1);
  }
#endregion

������1�s�̎��ł����A�ȉ��̂悤�ȈӖ��������Ă��܂��B

�o�b�e���[�̒l��[0��Battery��100]��float�^�Ŏ�ɓ���܂��̂ŁA�����25�Ŋ����āA������(�����_�ȉ���؂藎�Ƃ�)���܂��B����ƃo�b�e���[�̎c�ʂɉ����āu0,1,2,3�v�Ƃ��������ɂȂ�܂��Bn�����R��(1,2,3,...)�Ƃ���Ƃ��A2�ׂ̂���[2^n]�́u2,4,8,16,...�v�Ƃ����l���Ƃ�܂��̂ŁA������-1���Ă����邱�ƂŁA�K�v�ȁu1,3,7,15�v�Ƃ���4�‚�LED�o�͗p�̐����𓾂邱�Ƃ��ł��܂��B

���̂悤�ɖ@������������͉̂”\�Ȍ��萔���A�‚܂�֐��ŕ\���ł���悤�ɂ���N�Z���‚���ƁA�R�[�f�B���O�������قǒZ���Ȃ�܂��̂ŁA�f�o�b�O����Ƃ��������Ƃ�������܂��B�����w�Z�Ŋw�񂾐��w�����ɖ��ɗ����܂��B�u���w�v�Ƃ��������u�Z���p�Y���v�̂悤�Ȃ��̂Ȃ̂ŁA�������Ċ֐�������̂ł͂Ȃ��w�y����ʼn����Ă݂悤�I�x�Ƃ����Ƃ���ł��傤���B

�R�[�f�B���O�����̍���

�@�C���^���N�e�B�u�Z�p���v���O����������Ƃ��A�Ⴆ�΃Q�[���J���⌤���J���ɂ����āu�Ƃ肠��������������ԁv����A���̃`���[�j���O�����Ă�����Ŋ֐����A����������΁u�o���I�ȃ��W�b�N�𐔊w�ň����K���v���‚��邱�Ƃ͔��ɏd�v�ł��B

�@�{���Ɍf�ڂ��Ă���v���O�����͎��ʂł��̂ŁA�ł��邾���f�ڂ���R�[�h�̍s���ɖ��ʂ������A���‚��悢�����̂��߂ɗ����ǂ��₷���f�ڂ���悤�ɂ��Ă��܂��B����͕M�҂����`���w���̍����s���Ă����u�}�C�R��BASIC�}�K�W���v(�d�g�V����)�̍l�������̗p���Ă��܂��B�����A�ǎ��ȃv���O�����̎�ȗ��ʕ��@��Web��d�q���[���ł͂Ȃ��u���ʁv�ł����̂Łw�����ɒZ���Ĕ������R�[�h���������x�Ƃ����A������l����Ƌ��낵���X�g�C�b�N�ȃR�[�f�B���O�X�^�C�������s���Ă����킯�ł��B�����āABASIC�}�K�W���͌������ł����̂ŁA�K�x�Ȓ��؂�A�ҏW���̖��ȃm�����A�i���ȍ����u�݂�Ȃō���Ă��������v�����o���Ă��܂����B

�@���̂悤�ȁu�W���m�v�╶���c�����ƍ����Ȍ�����������΁u�W���m�ɂ��n���I�R�[�f�B���O�v�A�ŋ߂̗��s�ŕ\������΁u�w�j�R�j�R����E�Z�p���x�ō���Ă݂��v�����Ȃ�߂����o�ł��傤�B�w�j�R���x�ł̃C���^���N�e�B�u�Z�p�Ɋւ��钍�ڂ͔��ɍ������̂�����܂�(�݂�Ȃ���Ȏ����m��Ȃ��̂��c�Ƌ������Ƃ������̂ł����I)�B

�@�����Ė{���̓ǎ҂��w�j�R�������x�ɍv���ł��邱�Ƃ��傫���Ƃ������܂��B�F��������ЁA�����ȍ�i�⊈�����f�������āA�O�ڂɂ��炵�Ă݂�Ƃ悢�ł��傤�B�u����www�I�v�Ə܎^���ꂽ���ƂɁA�����]���Č��J�����v���O�������u�����̃X�p�Q�e�B�R�[�h!!�v�ƃK�b�J������Ȃ��悤�ɁA�ė��p���₷���A���l�̕׋��ɂȂ�R�[�f�B���O�X�^�C�����ɂ߂Ă݂Ă݂�̂��J�b�R�C�C�Ƃ������܂��B

�ԊO���i��������

�܂����[�U�[�r���e�B����ɂ��֌W����v�f�Ƃ��āA�ԊO���̕i�������コ�������Ƃ������܂��B����̃v���O�������ƃ}�E�X�J�[�\���̓K�^�K�^���Ă���͂��ł��B�ԊO������ʼnB�����肵�āA�悭�l�q���ώ@����Ƃ킩��̂ł����A�Z���T�[�o�[��2�_��LED�̂����u�ǂ��炩1�_�v�����̂Ƃ��̏󋵂ō̗p����Ă���̂������ł͂Ȃ��ł��傤���B����̃v���O�����ł́u�ŏ��Ɍ�����1�_�v���}�E�X�J�[�\���̍��W�ɕϊ����Ă��܂��̂ŁA�ׂ�����������悤�Ƃ���ƁA�ׂɂ���u2�–ڂ̐ԊO���v�ז������āA�l�����ł��܂����芴���Ȃ��Ȃ��Ă���̂ł��B

���̂悤�ȏ󋵂ɑ΂���ЂƂ‚̉��Ƃ��Ắu2��LED���������Ƃ��͉E�ɂ���ԊO�����̗p�v�Ƃ��������W�b�N�Ń��[������邱�Ƃł��B

�ԊO���}�E�X�̈��艻(Form1.cs)[C#]
#region �ԊO���Ń}�E�X�J�[�\���ړ�
  public void IR_Cursor(WiimoteState ws)
  {
    ScreenSize.X = Screen.PrimaryScreen.Bounds.Width;  //��ʃT�C�Y����
    ScreenSize.Y = Screen.PrimaryScreen.Bounds.Height; //��ʃT�C�Y�c��
    //�ԊO�����W(�������Ƃ������X�V)
    float Ix1 = 0.5f, Iy1 = 0.5f, Ix0 = 0.5f, Iy0 = 0.5f;
    float Ix, Iy; //�ԊO�����W�̕���
    int px, py; //�ŏI�I�ȃ}�E�X�J�[�\���̈ʒu   
    if (ws.IRState.IRSensors[1].Found) {
      Ix1 = ws.IRState.IRSensors[1].Position.X;
      Iy1 = ws.IRState.IRSensors[1].Position.Y;
      Ix0 = ws.IRState.IRSensors[0].Position.X;
      Iy0 = ws.IRState.IRSensors[0].Position.Y;
      //Ix1,Iy1�ɑ傫����(��)���i�[������
      if (Ix1<Ix0) {
        Ix0 = Ix1; Iy0 = Iy1;
        Ix1 = ws.IRState.IRSensors[0].Position.X;
        Iy1 = ws.IRState.IRSensors[0].Position.Y;
      }
      Ix =  Ix0; Iy = Iy0; //�����ŕ��ς��Ƃ��Ă��ǂ����낤
      px = (int)(ScreenSize.X * (1 - Ix)); //X���W�͔��]
      py = (int)( Iy * ScreenSize.Y);
      //�}�E�X�J�[�\�����w��ʒu�ֈړ�
System.Windows.Forms.Cursor.Position = new System.Drawing.Point(px, py);
    }
  }
#endregion

���s���Ă݂��(�‹��ɂ����܂���)�o�^�o�^���͑����͉��P����Ă���̂ł͂Ȃ��ł��傤���B���̃p�[�g�͂��̂悤�ȃ`���[�j���O��ƁA���P���J��Ԃ����ƂŁA���[�U�[�r���e�B����ɑ傫���v���ł���”\��������܂��B�Ⴆ�΁A�ԊO���������Ȃ������Ƃ��̏����Ƃ��āA�ߋ��̒l���g������A���ς��Ƃ�����A�������Ƃ�����c�Ƃ�����������̃R�[�h����{�Ƃ��Ēlj����邱�Ƃ��ł��܂��B

�‹���󋵂ɂ���Ă�葽���e�X�g�����A�A�C�f�B�A�𐷂荞��ł������ƂŁA�s����ȓ�����y�����邱�Ƃ��ł���ł��傤�B

�������`�悵����

PictureBox�ɃJ�b�R�C�C�������\���������I�Ǝv�����Ƃ�����ł��傤�B���ɐ�قǂ̐ԊO���i���̌�����`���[�j���O�����ł́A�e�X�̃}�[�J�[�̒l���\���ł���ƁA��Ƃ��͂��ǂ�܂��B���������b�Z�[�W�{�b�N�X�⃉�x��������ł͏��̗ʂ�������ɑ������āA���ɗ����܂���B�����ŁA����͓���RawPosition(���̑���l)��PictureBox�ɉ摜�Ƃ��ĕ`�悵�܂��B����̓v���O���}�ɂƂ��Ắu��Ƃ̌������v�̈�‚ł����A�u�����ڂɃJ�b�R�C�C�v�Ƃ����u�@�\�v�����������܂��B

�o�b�e���[�c�ʂ�LED�ɏo��(Form1.cs)[C#]
#region �t�H�[���`��֐�DrawString��
  public void DrawForms(WiimoteState ws)
  {
    //�O���t�B�b�N�X���擾
    Graphics g = this.pictureBox1.CreateGraphics();
    Font drawFont = new Font("Arial", 9);  //|�t�H���g���w��
    SolidBrush drawBrush = new SolidBrush(Color.White); //|�F�͔�
    String drawString = "Text";            //|�`�敶����
    //|�`��ʒu������Point�^�ϐ�
    System.Drawing.Point pos = new System.Drawing.Point(0, 0);
    int irsize;  //|���o�����ԊO���}�[�J�[�̃T�C�Y
    g.Clear(Color.Black);//��ʂ����F�ɃN���A
    //�����ԊO�����P�‚ł�����������
    if (ws.IRState.IRSensors[0].Found)
    {
      //�}�[�J0�̕`��
      pos.X = (int)(ws.IRState.IRSensors[0].Position.X * 256);
      pos.Y = (int)(ws.IRState.IRSensors[0].Position.Y * 128);
      irsize = ws.IRState.IRSensors[0].Size + 5;
      g.FillEllipse(Brushes.Red, pos.X, pos.Y,irsize, irsize);
      drawString = "[" + ws.IRState.IRSensors[0].RawPosition.X + ", "
                       + ws.IRState.IRSensors[0].RawPosition.Y + "]";
      g.DrawString(drawString, drawFont, drawBrush, pos);
      //�}�[�J1�̕`��
      pos.X = (int)(ws.IRState.IRSensors[1].Position.X * 256);
      pos.Y = (int)(ws.IRState.IRSensors[1].Position.Y * 128);
      irsize = ws.IRState.IRSensors[0].Size + 5;
      g.FillEllipse(Brushes.Blue, pos.X, pos.Y, irsize, irsize);
      drawString = "[" + ws.IRState.IRSensors[1].RawPosition.X + ", "
                       + ws.IRState.IRSensors[1].RawPosition.Y + "]";
      g.DrawString(drawString, drawFont, drawBrush, pos);
    }
    g.Dispose();//�O���t�B�b�N�X�̉��
    label1.Text = "IR[0] " + ws.IRState.IRSensors[0].RawPosition.ToString()
+ "\nIR[1] " + ws.IRState.IRSensors[1].RawPosition.ToString();
  }
#endregion

�����ł�DrawForm()�́uDrawFormOrg()�v�Ƃ��ăR�s�[���y�[�X�g�ł��̂܂܎c���āA�e�L�X�g�\���p�@�\��lj����Ă��܂��B�u�}�[�J�[0�̕`��v�Ƃ��������肩��A�啝�ɏ��������Ă��܂����A���ǂ݂₷���Ȃ��Ă���͂��ł��B��������PictureBox�ɏ���\������̂ŁA�ȉ~��`��FillEllipse()�̑�4�A��5�����ɁA���o���ꂽ�ԊO���̑傫����^���āA�Ӗ����������Ă��܂��B

���ꂼ��̃}�[�J�[�̈ʒu�ɑ���l��\��

���s���Ă݂܂��傤�B�Z���T�[�o�[�ɋ߂Â���ƃ}�[�J�[�������~���傫�߂ɕ`�悳��܂��B���̂悤�ɁA�ԊO���̗l�q����������ώ@�ł���̂ŁA���[�U�[�̓�����������₷���Ȃ�A�ӊO�ȃ`���[�j���O�̃q���g�ɂȂ�܂��B

�e�L�X�g���\���ł���悤�ɂȂ�ƁA�֗��Ŋi�D�������Ƃ����낢�����悤�ɂȂ�܂��̂Ŋ��p���܂��傤�B

��́u�����ނ��w�v��`��

�Ō�ɁAWiiRemote�́u�X����\���v�ł���悤�ɂ��܂��B����Wii�{�̂ł悭�o�Ă���u�w�J�[�\���v�ŕ\������Ă���悤�ɁAWiiRemote�̌X������ʂŕ\���ł���ƁA���WiiRemote�炵���Ȃ�܂��B���������̎w�|�C���^�̌X���͉����x�Z���T�[�ɂ����̂ł͂Ȃ��悤�ł��B�����x�Z���T�[�̒l���g��Ȃ��Ă��A�Z���T�[�o�[�����2�‚̃}�[�J�[���W���擾�ł��Ă���Ȃ�u����2�_���‚Ȃ����̌X���v�ŕ\�����邱�Ƃ��ł��܂��B

�܂��A����������.NET�ɂ��J���ł�����A�l�b�g���[�N���g�����Z�p���Љ�܂��B��̓I�ɂ́u�w�J�[�\���v�Ɏg���摜���A�n�[�h�f�B�X�N���̃t�@�C���ł͂Ȃ��C���^�[�l�b�g�ォ��擾���ė��p���܂��B

�w�J�[�\���̉摜(finger.bmp)

������̉摜�t�@�C���͒��҂̃z�[���y�[�W���uhttp://akihiko.shirai.as/projects/WiiRemote/finger.bmp�v�ɂĂ����Ă�����̂ł��BInternet Explorer�Ȃǂ̃u���E�U�ł���URL���w�肷��ƁA�摜��\���ł��܂��B���Ȃ݂ɂ��̎w�J�[�\���摜�̓y�C���g���g����5�����炢�ŕ`�������̂ł���ŁA�F���񎩐g�ŗp�ӂ��Ă��������Ă����܂��܂���B�������w�i���u�����v�ɔ������߂ɁA���߂�1�F�œh���Ă��܂�(�ʏ́u�����F�v)�B

�u��]����w�v��URL����擾���ĕ`��(Form1.cs)[C#]
namespace WiiRemoteMouse {
 public partial class Form1 : Form {
  Wiimote wm = new Wiimote();      //Wiimote�N���X���쐬
  ButtonEvents wbe = new ButtonEvents(); //�{�^���C�x���g�N���X���쐬
  Bitmap bmp; //|�w�|�C���^�`��p
  System.Drawing.Point ScreenSize; //��ʃT�C�Y���i�[
  Boolean isConnected = false;     //WiiRemote���ڑ����ꂽ��
  public Form1()  {
    InitializeComponent();
   //�O���t�B�b�N�X�������炦
   String url = "http://akihiko.shirai.as/projects/WiiRemote/finger.bmp";
   using (System.Net.WebClient wc = new System.Net.WebClient())
   using (System.IO.Stream st = wc.OpenRead(url))
   bmp = new Bitmap(st);
   // ���������n�[�h�f�B�X�N����ǂނ��Ƃ��”\ 
   // bmp = new Bitmap("c:����WiiRemote����yubi.png");
   bmp.MakeTransparent(bmp.GetPixel(0, 0)); //�����F�̎w��
�������� 
#region �t�H�[���`��֐�Finger��
  public void DrawForms(WiimoteState ws)  {
��������
    double radians, angle = 0.0f;
    //�ԊO����2�Œ������炻�̒��Ԃ��Ƃ�
    if (ws.IRState.IRSensors[1].Found)  {
      pos.X = (int)(ws.IRState.IRSensors[0].Position.X * 256
       + ws.IRState.IRSensors[1].Position.X * 256) / 2;
      pos.Y = (int)(ws.IRState.IRSensors[0].Position.Y * 128
       + ws.IRState.IRSensors[1].Position.Y * 128) / 2;
radians = Math.Atan2(ws.IRState.IRSensors[0].Position.Y - \
    ws.IRState.IRSensors[1].Position.Y,
ws.IRState.IRSensors[0].Position.X - ws.IRState.IRSensors[1].Position.X);
      angle = radians * (180 / Math.PI);   //���W�A�����p�x�ϊ�
    } else {
      //�ԊO����1�‚Ȃ�A1�‚߂̒l���̗p����
      pos.X = (int)(ws.IRState.IRSensors[0].Position.X * 256);
      pos.Y = (int)(ws.IRState.IRSensors[0].Position.Y * 128);
    }
    double d = angle / (180 / Math.PI);    //�p�x�����W�A���ϊ�
    //2D��]�ϊ�
    float x = pos.X;
    float y = pos.Y;
    float x1 = x + bmp.Width * (float)Math.Cos(d);
    float y1 = y + bmp.Width * (float)Math.Sin(d);
    float x2 = x - bmp.Height * (float)Math.Sin(d);
    float y2 = y + bmp.Height * (float)Math.Cos(d);
    //�V�����`��ʒu
    System.Drawing.PointF[] destinationPoints =
                   {new System.Drawing.PointF(x , y ),
                    new System.Drawing.PointF(x1, y1),
                    new System.Drawing.PointF(x2, y2)};
    //�摜��\��
    g.DrawImage(bmp, destinationPoints);
//���I������bitmap�I�u�W�F�N�g���̔p���Ȃǂ�Y�ꂸ�Ɂ�
���ȉ�����

�v���O�������s���ADrawForms()�͕b�Ԑ�10��͂܂���Ă��܂��̂ŁA����̕`�掞��URL����ǂݍ��ނƁA���삪�ƂĂ��x���Ȃ��Ă��܂��܂��̂ŁA���������Ƀ��[�h���Ă��܂��B���̂Ƃ��A�C���^�[�l�b�g�ɐڑ�����Ă���A������URL����摜�t�@�C�����擾�ł��Ȃ��ƃG���[�ɂȂ�܂��B�ubmp.MakeTransparent()�v�Łu�����F�v�Ƃ��āA�摜�̈�ԍ���̐F���w�肵�Ă��܂�(������w�肵�Ȃ��Ɓu�w�i���D�F�̎w�v���\������܂�)�B�����URL����BMP�摜��ǂݍ���ł��܂����A�n�[�h�f�B�X�N����PNG�摜��ǂݍ��ޏꍇ�̃\�[�X�R�[�h���R�����g�ɋL�q���Ă����܂����B

�ԊO��2�_����X�����Ƃ���@�́uMath.Atan2()�v���g���܂��B����̓A�[�N�^���W�F���g�Ƃ����O�p�֐��ŁAtan(�]��)�̒�`����^�������p�O�p�`�̂Ȃ��p�𓾂�֐��ł��B180�x�𒴂��Ȃ���Ζ��Ȃ����肵�Ċp�x���擾�ł��܂��B

Atan2�̈Ӗ�(��������]�A���m�F��)

Atan2�Ŏ擾�����p�x�̓��W�A��(�ϐ�radians)�œn����܂��̂ŁA�������₷���悤�p�x(�ϐ�angle�A�P�ʂƂ��Ă�degree)�ɕϊ����鐔�����p�ӂ��Ă����܂����B�Ō�Ɂu2D��]�ϊ��v�Ƃ����R�[�h�ŎO�p�֐��ɂ��ϊ����������{���āADrawImage()�œǂݍ��񂾉摜��`�悵�Ă��܂��B

���w���ۂ����Ƃ���R�o�Ă��ē�������Ă���l�����邩������܂��񂪁A���e�I�ɂ͍��Z1�`2�N���x�̐��w�̋��ȏ��ɍڂ��Ă��邱�Ƃ����p���Ă��邾���ł��B�R���s���[�^�[�O���t�B�b�N�X�v���O���~���O�͐��w���y�������p�ł��钿������Ƃ������܂��B�u���w�Ȃ�Č������v�Ƃ����ǎ҂̕��́A�ǂ��@��ł�����A�����M�[���o�����Ɂu�y����Łv���g��ł݂Ă��������B

WiiRemote�̌X���ɍ��킹�āu��]����w�v�ɒ���

�u�w�J�[�\���v�������ɉ�]���܂��B�摜�t�@�C�������݂��Ȃ��̂ɁA�C���^�[�l�b�g�o�R��BMP�t�@�C����ǂݍ���ł���Ƃ���ɂ����ڂł��B�w�̌X���́A�ꌩ���Ɏg���̂��킩��܂��񂪁uWiiRemote���g���Ă���v�Ƃ������������܂����A������������p�x��ϋɓI�Ɏg�����R�}���h��A�x�N�g���𗘗p���������I�ȃC���^���N�V�����ȂǂɊ��p�ł��邩������܂���ˁB

�ȏ�ŁA�����v�f�Ɋւ��������I���܂��B�u�����v�f�v�͎����n�A�v���P�[�V�����ł͕����ʂ�f�R���[�V�����ł����Ȃ��̂ł����A�C���^���N�V�������d�v�ɂȂ�v���O�����ł͔��ɏd�v�ȗv�f�ɂȂ�܂��B�܂��A�v���O���~���O�̎����̎d���ɂ���ẮA�����v�f���v���O�����S�̂̃p�t�H�[�}���X��ቺ��������A���[�U�[�C���^���N�V���������コ������ƁA���[���v���O���~���O�v�f�ɂȂ邱�Ƃ��̊��ł����̂ł���΍K���ł��B

�ȏ�ŁA�uWiiRemoteMouse�v�̊J���͏I���܂��B���̏͂ł̊J����ʂ��āA�P�Ƀv���O���~���O�����ł͂Ȃ��A�����̂��Ƃ��w�Ԃ��Ƃ��ł����̂ł͂Ȃ��ł��傤���H

�����Ŋ����Ƃ͂����Ȃ���������܂���A�܂��܂������������@�\��`���[�j���O�������v�f���������񂠂�Ǝv���܂��B�Ⴆ�΂��́uWiiRemoteMouse�v��g�̂Ƀn���f�B���������l�Ɏg���Ă��炤�̂��A�������\�t�@�[�ɐQ���ׂ�Ȃ���l�b�g���y���ނ��߂Ɏg���̂��B���̂��߂ɂǂ̂悤�ȉ��P���ł���̂��B���̂悤�ȉۑ�ɑ΂��āA���\���Šm���ȉ񓚂͂���܂��񂪁A���܂Ŋw�񂾂��Ƃ����p���A�z���͂𓭂�����΂���΁A�K���S�[���ɂ��ǂ蒅����ł��傤�B�‚܂�A������{�l���[���ł��āA���ƒ��[�U�[�́u������Ă��Ċy�����v���O�����v�ɂȂ�Ƃ������Ƃł��B

���̎��H�I�ȃv���O���~���O�̌���ʂ��āA�F����̉”\���͊m���ɍL�������͂��ł��B���ЁA�J��Ԃ����Ԃ�������WiiRemote���‚������C���^���N�e�B�u�Z�p�v���O���~���O�̑�햡���y����ł��������B���́u���K���v�ɂ�WiiRemote�����p�����C�}�W�l�[�V�����𔚔������邽�߂̎h���I�ȃX�p�C�X���R�Љ�Ă��܂��B���ꂼ��̉ۑ�ɕK�������u�͔͉񓚁v���p�ӂ���Ă���킯�ł͂���܂��񂪁A���̂��Ȃ��ł���΁A�������g�Ŋy���݂Ȃ���w�K���A�O�ɐi�߂Ă������Ƃ��ł���͂��ł��B

�A�C�f�B�A�X�g�b�N�E���K���W

���̏͂́u�A�C�f�B�A�X�g�b�N�E���K���W�v�Ƃ��āA���܂܂Ŋw�񂾋Z�p�����p���邱�ƂŁAWiiRemote���‚����Ď����ł���l�X�ȃv���W�F�N�g�̎�����Љ�܂��B

�A�C�f�B�A�����߂Ă���"�I"�̂悤�Ȃ��̂��C���[�W���āu�A�C�f�B�A�E�X�g�b�N�v�Ɩ��t���܂����B�C���[�W���₷���悤�Ƀv���O���~���O�ҁA���m�ҁA�Q�[�����p�ҁA�T�[�r�X�ҁA��i�ҁA�����҂ɕ����Ă��܂����A���̃A�C�f�B�A�̊��p�͓ǎ҂݂̂Ȃ��񎟑�ŗl�X�ȕ����ɍ���������A���ݏo���ꂽ�肵�Ă������Ƃł��傤�B

�{���������܂œǂݐi�߂Ă����Ǐ��ł���΁A�u�s�”\�ȂقǓ���v�Ƃ������e�ł͂Ȃ��͂��ł��B�{�͂łׂ͍����X�e�b�v�o�C�X�e�b�v�̉���������Ċ������A���Ȃ����ʂŕ��L��WiiRemote�̉”\����`���邱�Ƃɗ͓_��u���܂��B

�e�Z�N�V�����̏I���Ɂu���K���v�Ƃ��āA���̃e�[�}�̌������i���ɖ𗧂–��W��p�ӂ��Ă����܂����B��Փx��5�i�K�́��ŕ\������Ă��܂��̂ŁA��Փx�ɍ��킹�Ď��Ƃ�ۑ�̐���A�_���̃��t�@�����X�Ȃǂɂ����p���������B

�v���O���~���O��(1)�FXNA���g�������A���^�C��3DCG�ł̗��p

8�͂܂ł̒m��������i�߂āAWiiRemote��3D�O���t�B�b�N�X�v���O���~���O�̐��E�ŗ��p�ł���悤�ɂȂ�܂��傤�B�}�C�N���\�t�g�̖{�i�I�ȃQ�[���p3DCG�v���O�����J���‹��uXNA�v�ƁuWiimoteLib�v���g���܂��B

�uWiiRemoteXNA�v������

�����ł́uXNA Game Studio 3.1�v��WiimoteLib���g���āAC#.NET�ɂ��Q�[���J���‹����x�[�X�ɂ������A���^�C��3DCG�ɂ��v���O���~���O��������܂��B

XNA�Ƃ́A�}�C�N���\�t�g�����i���Ă���uDirectX�v�̗�������ލŐV��.NET�ɂ��Q�[���J�������‹��ł��BXNA�̃R�[�f�B���O�X�^�C���́A�����̃��A���^�C��3DCG�J���‹��̖{���ł�����DirectX��Managed DirectX�Ƃ͈قȂ�AXNA Framework�ɂ�����C#����ɂ��J���ɂȂ�܂��BDirectX�����������ɃQ�[���J���ɕ֗��ȃc�[����API����������Ă���A�ȒP�Ɍ����悭�Q�[���v���O�������쐬�ł���悤�ɂȂ��Ă��܂��B

�v���̃Q�[���J���҂Ɍ��炸�A�w���Ȃǂɂ��e���݂₷���‹��ł�����܂��BWindowsPC�p�̃Q�[���J���ɉ����A�ŐV�̃R���V���[�}�[(�ƒ�p)�Q�[���@�ł���uXbox 360�v�̗����̃v���b�g�t�H�[���ŁA���Ɍ����I����i�I�ȊJ�����ł��邽�߁A�v���̃Q�[���X�^�W�I�����łȂ��A����z�r�[�v���O���}�𒆐S�ɑ傫�ȗ�������o���”\��������ł��傤�B

���̃Z�N�V�����ł́AWiiRemote�̉����x�Z���T�[�̌X���ɂ���āA3D�ŕ`�悳�ꂽWiiRemote�����A���^�C���ŕω�����v���O�����uWiiRemoteXNA�v���쐬���܂��B�Ȃ��Ȃ��h��Ȋ���������f���ł����AXNA Game Studio 3.1���g���āA�����قǒZ���R�[�h�ō쐬���邱�Ƃ��ł��܂��B

XNA�̃C���X�g�[��

�܂��́A�J���‹��̃Z�b�g�A�b�v���s���܂��傤�B�ŐV��Microsoft XNA Game Studio���_�E�����[�h���ăC���X�g�[�����܂��B

Microsoft XNA Game Studio 3.1

�@Microsoft XNA Game Studio 3.1�������œ���”\�ł��B

�@http://www.microsoft.com/downloads/details.aspx?�@�@familyid=80782277-D584-42D2-8024-893FCD9D3E82

XNA�͖����ŊJ���‹�����ɓ���邱�Ƃ��ł��܂��BPC���^�[�Q�b�g�v���b�g�t�H�[���Ƃ��ė��p�����ł̓��C�Z���X�ɏ]�������ŗ��p���邱�Ƃ��ł��܂����AXbox�v���b�g�t�H�[���ŊJ�����邽�߂ɂ͔N�ԃ��C�Z���X��(9,800�~��)�𕥂��K�v������܂��B�{���ł�Xbox�v���b�g�t�H�[���ɂ‚��Ă͈����܂��񂪁AXbox 360�̂悤�ȁA�����ȃQ�[���pPC�ɔ�ׂāu���肵�Ĉ����œ���ł���R���V���[�}�Q�[���@�v�̊J���‹����A����قǍ����ł͂Ȃ����C�Z���X���œ���ł���̂͑�ςȖ��͂ł��B�J�������Q�[���v���O�����𐢊E����1200���l�ȏア��Xbox 360�̃��[�U�[�ɗV��ł��炦�邱�Ƃ��A���`�x�[�V�����ɂȂ�ł��傤(Xbox360��WiiRemote�������Ɏg����A�Ƃ����b�͕����܂���...)�B

Xbox 360�p�Q�[���̊J��

�@�{���Ƃ͒��ڊ֌W����܂��񂪁AXbox 360�p�Q�[�������s���邽�߂ɂ͔N�z9,800�~�́uXNA�N���G�C�^�[�Y�N���u�v�ɓ����K�v������܂��BXNA�N���G�C�^�[�Y�N���u��Xbox 360�p�l�b�g���[�N�E�T�[�r�X�uXbox Live�v��������ł��܂��B

[URL]�@http://www.xbox.com/ja-JP/live/

[URL]�@http://creators.xna.com/en-US/tour_detail

XNA Game Studio 3.1�̃C���X�g�[��

Microsoft XNA Game Studio 3.1�̃C���X�g�[���́A�_�E�����[�h�����C���X�g�[���[�̃E�B�U�[�h�ɏ]�������Ŗ��Ȃ��s����ł��傤�B�E�B�U�[�h�̍Ō�ɁuXbox 360�p�̃T�[�r�X���N�����邩�H�v�Ƃ������₪����܂����A�����Xbox 360�p�̃v���O�������J�������Ƃ��ɁA���[�J���l�b�g���[�N�o�R��Xbox 360�ɑ��M���邽�߂ŁA���ɗ��p����\�肪�Ȃ���΃`�F�b�N�͓���Ȃ��Ă���肠��܂���B

�Q�[���v���W�F�N�g�̍쐬

�V�K�v���W�F�N�g�̍쐬��Game Studio 3.1�̃e���v���[�g�������

���Ď��̓Q�[���v���W�F�N�g�̍쐬�ł��BMicrosoft Visual C# 2008���N�����Ă�������(�����́uExpress Edition�v�ł����Ȃ����p�ł��܂�)�B�u�V�����v���W�F�N�g�v��I�ԂƁA���‚������ꂽ�V�K�v���W�F�N�g�쐬�̃_�C�A���O�ɁuXNA Game Studio 3.1�v�Ƃ������ڂ�����Ă���͂��ł�(�Ȃ��ꍇ��Game Studio�̃C���X�g�[�����ēx�m�F���Ă�������)�B�u�e���v���[�g�v����uWindows Game (3.1)�v���N���b�N���āA�v���W�F�N�g���ɁuWiiRemoteXNA�v�Ƃ������O���‚��āA�ꏊ���uC:\WiiRemote�v�Ƃ��āuOK�v���N���b�N���܂��B

Visual Studio�ɍ쐬���ꂽ�V�����Q�[���v���W�F�N�g

���b�ԑ҂‚ƁA�V�����v���W�F�N�g���쐬����܂��B[F5]�L�[�������āA�����Ƀv���W�F�N�g�����s���Ă݂܂��傤�B���F�̔w�i�ɁA�����E�B���h�E���\�������ΐ����ł��B

WiimoteLib�̑g�ݍ���

����WiimoteLib��g�ݍ��݂܂��BXNA�‹��ł�4�͂�8�͂ł�.NET�‹��ɂ�����WiimoteLib�̑g�ݍ��ݍ�Ƃ̗���Ɠ����ł��B

�\�����[�V�����G�N�X�v���[���́u�Q�Ɛݒ�v���E�N���b�N���A�u�Q�Ƃ̒lj��v��I�����܂��B�Q�Ƃ̒lj�����u�Q�Ɓv�������́u�ŋߎg�p�����t�@�C���v����uWiimoteLib.dll�v��I�����܂��B

���܂܂ł̃v���W�F�N�g�Ɠ��l�A�v���O�����`����using��WiimoteLib��lj����A�N���X�̏���������Wiimote�I�u�W�F�N�g�̐V�K�쐬�uWiimote wm = new Wiimote();�v��}�����܂��B

[C#]Wiimote�I�u�W�F�N�g�̍쐬(Game1.cs)
using WiimoteLib;
������
public class Game1 : Microsoft.Xna.Framework.Game {
  GraphicsDeviceManager graphics;
  SpriteBatch spriteBatch;
  Wiimote wm = new Wiimote();  //Wiimote�I�u�W�F�N�g�̍쐬
������

����������WiiRemote�ɐڑ����܂��傤�BXNA�t���[�����[�N�ł́uInitialize()�v�Ƃ����֐������łɗp�ӂ���Ă��܂��̂ŁA�����ɂ��‚���WiiRemote�ڑ�������lj����܂��B

[C#]WiiRemote�̏������Ɛڑ�(Game1.cs)
 protected override void Initialize() {
  base.Initialize();
  wm.Connect();  //WiiRemote�ڑ�
  wm.SetReportType(InputReport.ButtonsAccel, false);//�{�^���Ɖ����x
  wm.SetLEDs(15); //LED�S�_��
 }

�uSetReportType()�v�̑�2�����Ɂufalse�v��ݒ肵�Ĕ�A���f�[�^�擾���[�h�ɂ��Ă��܂�(�����ł��‚��̂悤��true�ɂ��āA�R�[���o�b�N�֐���ݒ肵�Ă��悢�̂ł����A����̃T���v���ł͊ȒP�ɉ����x�̒l������΂悢�̂ŁA�l�̂΂��‚������Ȃ��A���V���v���ȕ��@���Ƃ�܂�)�B

���̏�Ԃł��r���h�������������Ƃ͂ł��܂����AButtonState���u�����܂��ȎQ�Ɓv�Ƃ����G���[���o����~����͂��ł�(XNA��WiimoteLib�ɓ������O�̃v���p�e�B�����邽��)�B�G���[�̏o��s���R�����g�A�E�g����Ηǂ��̂ł����A�I���W�i���̃\�[�X�ł́A�����Łu�Q�[���p�b�h�̃{�^���������ꂽ��I���v�ƂȂ��Ă���悤�ł��̂ŁA�������uWiiRemote��[Home]�{�^���������ꂽ��I���v�ƕύX���Ă݂܂��傤�B

[C#]Home�{�^���ŏI��(Game1.cs)
 protected override void Update(GameTime gameTime) {
 // Allows the game to exit �����Ƃ��Ƃ̃R�[�h���R�����g�A�E�g
 // if (GamePad.GetState(PlayerIndex.One).Buttons.Back
                                 == ButtonState.Pressed)
  if(wm.WiimoteState.ButtonState.Home) {
    this.Exit();
  }
  base.Update(gameTime);
 }

���̒i�K��WiiRemote��Bluetooth�ڑ����A[F6]�Ŏ��s���Ă݂Ă��������B��قǂƓ��l�A���F�̉�ʂ��\������܂����AWiiRemote��LED��4�‚Ƃ��_�����A[Home]�{�^�����������ƂŃv���O�������I���ł���͂��ł��B

3D���f���t�@�C���̏���

���ɓǂݍ���3D���f���t�@�C�����������܂��傤�B3D���f���f�[�^���[��������Ǝ��Ԃ��������Ă��܂��܂��̂ŁA�����ł͏��⌤�����̃z�[���y�[�W����WiiRemote�ɂ悭�����u.x�`���v�̃��f���t�@�C���uwiimodoki.x�v�ƁA���̕\�ʂ�����e�N�X�`���t�@�C���utexture_wii.jpg�v���_�E�����[�h�œ��肵�܂��B

3D���f���t�@�C���uwiimodoki.x�v�̓���

�����⌤�����uXNA��WiimoteLib��3D�I�u�W�F�N�g�𑀍�v

[URL] http://www.kosaka-lab.com/tips/2009/06/xnawiimotelib3d.php

�������e�N�X�`���t�@�C��(texture_wii.jpg)

�e�N�X�`���t�@�C���utexture_wii.jpg�v

�t�@�C�����_�E�����[�h������AXNA�̃v���W�F�N�g�̃R���e���c�t�H���_�uC:\WiiRemote\WiiRemoteXNA\WiiRemoteXNA\Content�v�ɒu���܂��B

WiiRemoteXNA�́uContent�v��.x�t�@�C����z�u����

�t�@�C����u������ɁAVisual Studio���Ɏ�荞�݂܂��B�\�����[�V�����G�N�X�v���[���[�́uContent�v���E�N���b�N���āu�lj��v���u�����̍��ځv�Ƃ��āA��قǒu�����uwiimodoki.x�v�Ɓutexture_wii.jpg�v��ǂݍ���ł��������B

�\�����[�V�����G�N�X�v���[���[�́uContent�v�ɒlj�����

�Ȃ��A���f���f�[�^�ł���uwiimodoki.x�v�Ɓutexture_wii.jpg�v��3DCG�R���e���c����\�t�g�E�F�A�uMaya2008�v���g���č쐬�����̂��ucvXporter�v���g���ăR���o�[�g���Ă��܂��B

Maya�����.x�t�@�C���G�N�X�|�[�^�[�ucvXporter�v

[URL]�@http://www.chadvernon.com/blog/downloads/cvxporter/

Maya2008�̂悤�Ȕ�r�I������3DCG�\�t�g�E�F�A��������΁A���{�l���J�����Ă�����j����3D�|���S�����f���[�uMetasequoia(���^�Z�R�C��)�v�ł��”\�ł��傤�B�����łƗL����(�V�F�A�E�F�A)������A���i��1���C�Z���X�ɂ‚�5,000�~�ł��B�uMetasequoia LE R2.4�v�ł�.x�t�@�C���𒼐ڏ����o���܂��̂ŁAXNA��DirectX�‹��ŊȒP�ɗ��p���邱�Ƃ��ł��܂��B��҂�O.Mizno���Ɋ��ӂł��B

3D�|���S�����f���[�uMetasequoia(���^�Z�R�C��)�v

[URL]�@http://www.metaseq.net/

.x�t�@�C���̓ǂݍ��݂ƕ\��

���āA�R�[�f�B���O�ɖ߂�܂��傤�B���f���t�@�C���̓ǂݍ��݂ƕ\���ɂ‚��āA�uLoadContent()�v�ƁuDraw()�v�ɉ��M�����܂��B

[C#]���f���t�@�C���̓ǂݍ��݂ƕ\��(Game1.cs)
������
  Wiimote wm = new Wiimote();  //Wiimote�I�u�W�F�N�g�̍쐬    
  private Model xfile;         //X�t�@�C���ǂݍ��ݗp
������
 protected override void LoadContent() {
  spriteBatch = new SpriteBatch(GraphicsDevice);
  this.xfile = this.Content.Load<Model>("wii");  //.x�t�@�C���̓ǂݍ���
  foreach (ModelMesh mesh in this.xfile.Meshes) {
   foreach (BasicEffect effect in mesh.Effects)  {
   //�r���[�s�� �J�����̎��_��ݒ�(0.0f,0.0f,10.0f)�̈ʒu���猴�_������
    effect.View =
     Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 10.0f),
     Vector3.Zero, Vector3.Up);
    //�v���W�F�N�V�����s��@����p�Ȃǂ̐ݒ�
    effect.Projection = Matrix.CreatePerspectiveFieldOfView(
     MathHelper.ToRadians(45.0f),
      (float)this.GraphicsDevice.Viewport.Width /
      (float)this.GraphicsDevice.Viewport.Height,
      1.0f, 50.0f );
   }
  }
 }
������
 protected override void Draw(GameTime gameTime) {
  GraphicsDevice.Clear(Color.CornflowerBlue);
  //��ʂɕ`�悷��
  foreach (ModelMesh mesh in this.xfile.Meshes) {
   foreach (BasicEffect effect in mesh.Effects) {
    //WiiRemote�̉����x�ɍ��킹�ĉ�]�p�x��ݒ�
     effect.World = Matrix.CreateFromYawPitchRoll(0,
      -wm.WiimoteState.AccelState.Values.Y,
      -wm.WiimoteState.AccelState.Values.X);
   }
   mesh.Draw();//mesh��`��
  }
 base.Draw(gameTime);
 }
������

�����ł͌X��API�ɂ‚��ĉ���͂��܂��񂪁A�������3DCG�ɂ����邨��@�I�Ȏ葱���Ɓu�������v��ݒ肵�Ă�����̂ł��B����������l�́AMSDN�Ȃǂ̃}�j���A��������ׂ���A�p�����[�^�[��ύX���Ă݂��肵�āA�T�����Ă݂Ă��������B

���s����ƁAWiiRemote�̓����ɍ��킹�ĉ�]����uWiiRemote���ǂ��v���\������܂��B[Home]�ŏI�����܂��B

WiiRemote�̓����ɍ��킹�ē����uWiiRemote���ǂ��v

�t�@�C���̓ǂݍ��݂ȂǂŃG���[���N����Ƃ��́A�\�����[�V�����G�N�X�v���[���[�Ő�����Content�Ƀt�@�C������荞�܂�Ă��邩�m�F���Ă��������B�Ȃ��A�e�N�X�`���t�@�C���́uwiimodoki.x�v�̒��ŋL�q����Ă��܂��̂ŁA����Visual Studio�Ɏ�荞�܂Ȃ��Ă������œǂݍ��܂�܂��B�܂��uwiimodoki.x�v�t�@�C���̓e�L�X�g�ŋL�q����Ă��܂��̂ŁA�e�L�X�g�G�f�B�^�ŕҏW���邱�ƂŁA�}�e���A��(�\�ʍގ��̓���)��e�N�X�`���t�@�C�����������������肷�邱�Ƃ��ł��܂��B

�����ŁuWiiRemoteXNA�v

�ȏ�ŁuWiiRemoteXNA�v�͊����ł��Busing�̐����ȂǍs���������ł̃R�[�h���Љ�܂��B

[C#]�����ŁuWiiRemoteXNA�v(Game1.cs)
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using WiimoteLib;
namespace WiiRemoteXNA {
 public class Game1 : Microsoft.Xna.Framework.Game  {
  GraphicsDeviceManager graphics;
  SpriteBatch spriteBatch;
  Wiimote wm = new Wiimote();  //Wiimote�I�u�W�F�N�g�̍쐬    
  private Model xfile;         //X�t�@�C���ǂݍ��ݗp
  public Game1()    {
   graphics = new GraphicsDeviceManager(this);
   Content.RootDirectory = "Content";
  }
  protected override void Initialize() {
   base.Initialize();
   wm.Connect();  //WiiRemote�ڑ�
   wm.SetReportType(InputReport.ButtonsAccel, false);
   wm.SetLEDs(15);
  }
  protected override void LoadContent() {
   spriteBatch = new SpriteBatch(GraphicsDevice);
   xfile = Content.Load<Model>("wii");
   foreach (ModelMesh mesh in this.xfile.Meshes) {
    foreach (BasicEffect effect in mesh.Effects)  {
     effect.View =
      Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 10.0f),
      Vector3.Zero, Vector3.Up);
     effect.Projection = Matrix.CreatePerspectiveFieldOfView(
      MathHelper.ToRadians(45.0f),
       (float)this.GraphicsDevice.Viewport.Width
        / (float)this.GraphicsDevice.Viewport.Height,
        1.0f, 50.0f );
    }
   }
  }
  protected override void UnloadContent()  { ; }
  protected override void Update(GameTime gameTime) {
   if(wm.WiimoteState.ButtonState.Home) {  this.Exit();  }
   base.Update(gameTime);
  }
  protected override void Draw(GameTime gameTime) {
   GraphicsDevice.Clear(Color.CornflowerBlue);
   foreach (ModelMesh mesh in this.xfile.Meshes) {
    foreach (BasicEffect effect in mesh.Effects) {
     //WiiRemote�̉����x�ɍ��킹�ĉ�]�p�x��ݒ�
     effect.World = Matrix.CreateFromYawPitchRoll(0,
      -wm.WiimoteState.AccelState.Values.Y,
      -wm.WiimoteState.AccelState.Values.X);
    }
    mesh.Draw();//mesh��`��
   }
  base.Draw(gameTime);
  }
 }
}

���A���^�C��3DCG�Ƃ��������ڂ̔h�肳�ɑ΂��āA�ƂĂ��R�[�h���Z�����Ƃɋ����ꂽ�̂ł͂Ȃ��ł��傤��(XNA�̂������ł�)�B

�Ȃ�����̓R�[���o�b�N���g�킸�ɁA�`�惋�[�v�Œ���WiiRemote�̉����x�Z���T�[�̒l�����̂܂܉�]�̊p�x�ɗ��p����Ƃ����A������ƍr���ۂ����@���Ƃ��Ă��܂��B���ۂ̃Q�[���Ɏg���ꍇ�ɂ́A���̂悤�Ȏg���������邱�Ƃ͋H�ŁA�R�[���o�b�N�Ɠ���F���֐��Ȃǂ����ׂ��ł��傤�B

�y���K���zXNA�̗��p

�y���K�z��
��L�̃v���O�������R�[���o�b�N���g�����@�ɏ��������Ă݂܂��傤�B�]�T������΁A�u���X�g�v���‚����čŋ�50��̉����x�Z���T�[�̃f�[�^�̕��ς��擾���A���Ȃ߂炩�ɉ�]����WiiRemoteXNA���쐬���Ă݂܂��傤�i�𓚗�͏��⌤�����̃z�[���y�[�W�ŏЉ��Ă��܂��j�B
�y���K�z����
Metasequoia���‚����āA�����ōD����.x�t�@�C�����e�N�X�`���ƂƂ��ɍ쐬���A�ǂݍ��߂�悤�ɂ��Ă݂܂��傤�B�]�T������΁u�{/�|�v�{�^���Ń��f���f�[�^��؂�ւ�����A�\���{�^���ŃJ�����̃Y�[����������Ƃ������u3D���f���r���[�A�[�v�Ƃ��Ă̋@�\�������Ă݂܂��傤�B

�Q�[�����p��(1)�F���[�X�Q�[���ւ̉��p

���������͓��e�ɂ���āA���܂ł̂悤�ȃX�e�b�v�o�C�X�e�b�v�̉����@���Ƃ�܂���B�A�C�f�B�A�݂̂������‚܂�ŁA�����̃v���W�F�N�g�ɗ��p���Ă����܂��傤�B

���̃Z�N�V�����ł͕M�҂��J���ɋ��͂������d�̓��[�V���O�Q�[�����i�uAceSpeeder2�v��WiiRemote�Ńv���C�ł���悤�Ɏ�����������Љ�܂��B

WiiRemote�͔C�V�����g�u�}���I�J�[�g�v�Ȃǂ𔭔����Ă��邱�Ƃ�����A���[�X�Q�[���ւ̗��p�͑z�肳��Ă���悤�ŁA�e�a���������p�ł��܂��B

���d�̓��[�V���O�Q�[���uAceSpeeder2�v

�uAceSpeeder2�v��2007�N�ɔ��\���ꂽ�uRAINGRAPH�X�^�W�I�v�i�J�^�j�^�J�q�����ɂ��Q�[����i�ŁA�V�F�A�E�F�A�Ƃ��Ĕ��ɐl�C��������������uAceSpeeder�v(2000�N)�̑��҂ƂȂ钴����SF���[�V���O�Q�[���ł��B

���d�̓��[�V���O�Q�[���uAceSpeeder2�v
RAINGRAPH�X�^�W�I�uAceSpeeder2�v

[URL] http://www.raingraph.com/

�Q�[���V�X�e����DirectX8�x�[�X�ŊJ������Ă���ADirectX�̃W���C�X�e�B�b�N�@�\�ł���DirectInput���x�[�X�Ɏ��@�̐�����s���Ă��܂����B

�M�҂̓i�J�^�j�^�J�q�����̋��͂ɂ��A����GPU���g���������ȑS�g�摜�F���uGPUVision�v��A�uOpenCV�v���g������摜���͂ɂ��A�}���`���[�_���ȃ��[�V���O�Q�[���R���g���[���̌�����AceSpeeder2�̃\�[�X�R�[�h��p���čs���Ă��܂����B���̗���ŁAWiiRemote�ɂ��V����������@���������Ă݂܂����B

���[�X�Q�[���p���[�V�����F��

�Q�[���̃\�[�X�R�[�h�Ɋւ�镔���ł��̂ŁA�v���O���~���O�̏ڍׂ�������܂��񂪁A�v���C���[�C���^���N�V�����Ƃ��Ắu���E�͌X���A�O��̓A�N�Z��/�u���[�L�A2��U��ƃu�[�X�g�����v�Ƃ�������̌n�ɂ��Ă���܂��B

WiiRemote�ɂ��R���g���[��

���ׂĉ����x�Z���T�[�ɂ��d�͌��o�����Ŏ������Ă���A�{�^���̓��j���[�I�����܂߁A�S���g�p���܂���B�܂�LED���u���@�V�[���h�̎c�ʁv�Ƃ��ĕ\��������A�o�C�u���[�^�[�����o�Ɏg������ƁAWiiRemote���ő���Ɋ��p���Ă��܂��B

AceSpeeder2�ł́u�u�[�X�g�v�Ƃ����@�\������A�G�l���M�[�����߂đ傫�ȉ����͂𓾂邱�Ƃ��ł��܂��B�܂��R�[�X�A�E�g���ɂ��u�[�X�g�ŕ����ł���Z������̂ŁA���‚ł��v���C���[�̈ӎv�Łw�u�[�X�g�����I�x�ł��邱�Ƃ��u�����ɂ‚Ȃ���܂��B���̃u�[�X�g���u2��U��v�Ƃ����A�N�V�����A�‚܂�����x�Z���T�[�̃}�O�j�`���[�h����邱�ƂŎ������Ă��܂��B

AceSpeeder2 WiiMedia Edition(Youtube����)

[URL] http://www.youtube.com/watch?v=KowXAXdfO8E

WiiRemote�̂������ŁA�{�^����S���g��Ȃ�����̌n�ɂȂ�A�����Ȏq���ł��̌����邱�Ƃ��ł��܂����B

���ۂ̓W����ʂ������[�U�[�e�X�g�ł̊ώ@�ɂ��Ɩʔ������Ƃ��킩��܂����B�u�u�[�X�g�v�͊J���҂̈Ӑ}�ʂ�A�U���Ĕ�������ꍇ�̂ق��ɁA�R�[�X�̐؂�ڂ�����邽�߂ɖ��ӎ��Ɂu�W�����v�v�����Ƃ��ɔ���������A�R�[�X�A�E�g���āu������I������!!�v�Ƃ̂��������u�ԁA���ӎ��ŐU�������������Ŕ���������ƁA���S�g�Œ����I�Ɋy���߂�Q�[���ɂȂ�܂����B

�c�O�Ȃ��瓖����WiiRemote��Bluetooth�ڑ��͂���قLj��肵���‹��ł͂���܂���ł������A�{���̂悤�ȉ�������o�ł���Ƃ������Ƃ��l���Ă��܂���ł����̂ŁA���̃o�[�W�����͐��i�Ƃ��Ă͌��J����Ă��܂��񂪁A����قǓ�����Ƃ������킯�ł͂���܂���B���ꂩ��́A�����Ƒ�����PC���[�V���O�Q�[����WiiRemote�����p���Ăق����Ǝv���܂��B

�]�k�uSIGGRAPH�r�f�I�Q�[���V���|�W�E���FSandbox�v�ł̎��

�@�M�҂�2007�N�ɁA���̎�����WiiRemote�̐ԊO���Z���T�[�̓��������Ȃǂ��uWiiMedia: motion analysis methods and applications using a consumer video game controller�v�Ƃ����_���ɂ܂Ƃ߂Ă��܂��B���̘_���͔����������A�A�����J�Ŗ��N�J�Â����CG�ƃC���^���N�e�B�u�Z�p�̐��E�ō��̍��ۉ�c�uSIGGRAPH�v�ɂ�����r�f�I�Q�[���V���|�W�E���uSandbox�v�ɂ����āA�ŗD�G�_���܂����������܂����B�@�\�[�X�R�[�h�͌��J���A�����͔��\���Ă������̂��ȂƁA�‚��Â��v���܂��B

[URL] http://sandbox.siggraph.org/about.html

�y���K���z���[�X�Q�[���ւ̉��p

�����x�Z���T�[�ɂ��X���̌��o��Atan2()���g���ΊȒP�ɋ��߂邱�Ƃ��ł��܂��B�}�O�j�`���[�h�̎Z�o�Ȃǂ�����7�́A8�͂Ȃǂň����Ă��܂��̂ŎQ�Ƃ��Ă��������B���������ۑ�̐ݒ�ɓ���܂��傤�B

�y���K�z����
GlovePIE���‚����ČX�����A�i���O���͂ɗ��p����B
�y���K�z��������
�����̃Q�[���v���W�F�N�g��WiiRemote�ɂ�鑀���g�ݍ��݊��p����B

�N�����uAceSpeeder2�v�̂悤�Ȃ��΂炵���Q�[����i�̃\�[�X�R�[�h�ɃA�N�Z�X�ł���킯�ł͂���܂���B�������t���[�Ń\�[�X�R�[�h�����J����Ă���Q�[���v���W�F�N�g��SDL�֌W�ł͈ӊO�ɑ����A�L���ȂƂ���ł́uTux Racer�v�Ƃ���Linux�y���M���̃��[�X�Q�[���Ȃǂ��\�[�X�����J����Ă���v���W�F�N�g�ł��B

�\�[�X�R�[�h���ǂ����Ă���ɓ���Ȃ��A�Ƃ������Ƃ��͋t�]�̔��z��3�͂Ŋw�񂾁uGlovePIE�v���g���܂��傤�B�v���O���~���O���s�v�Ƃ������Ƃ̓\�[�X�R�[�h�̓�����s�v�Ȃ̂ł��B���܂��W���C�p�b�h���G�~�����[�V��������R�[�h�������܂��傤�B�A�i���O���f�W�^�����͂ł��A���܂����Ǝ��R�ȑ̌�����邱�Ƃ��ł��܂��B

�ȉ��A�����̃��[�X�Q�[���v���W�F�N�g��WiiRemote�Ή��������ŁA��������_���������Ă����܂��B

�����̃Q�[���̏ꍇ��DirectX�̃W���C�X�e�B�b�NAPI�ł���DirectInput�ɏ]�����d�l�ɂȂ��Ă���͂��ł�(�֗��Ȃ̂�)�BWiiRemote��p�̃Q�[���Ȃ炢���̂ł����APC�Q�[���J���Ƃ��ẮA�Q�[���o�����X�⑼�̃R���g���[���[�ł̑��슴���󂳂��ɁA���̃Q�[���R���g���[���[�Ɠ��l�̊��o�ŁA���܂��Ȃ��܂��邱�Ƃ��K�v�ɂȂ�܂��B

�uAceSpeeder2�v�̏ꍇ���A���̃Q�[�����ׂ�������̂��߂Ƀf�W�^���W���C�p�b�h��z�肵�Đ݌v����Ă����̂ŁAWiiRemote�̌X�����A�i���O�W���C�X�e�B�b�N�Ƃ��ē��Ă͂߂�ƁA�傫��������������A�ׂ����������ł��Ȃ�������Ƃ���Փx���オ���Ă��܂��܂����B

��Փx���オ�邾���Ȃ璲������Ηǂ��̂ł����A�u�X����v�Ƃ����v���C���[�̕����I�ȍs���ɂ͐��񂪂���܂���̂ŁA�Q�[�����ɓ�������(���x��ǂȂ�)�Ƃ����ɐe�a����ۂ��Ȃ���A�C���^���N�V���������コ���邩�Ƃ������_���傫�ȉۑ�ƂȂ�܂����B

������Ƃ����A�C�f�B�A�Ƃ��ẮA�u�Q�[�����̕����v�Ɓu���ۂ̃��[�U�[�̎p���v���C���^�[�t�F�[�X�����邽�߂́u���z�̎p���v�Ƃ������̂��l���āA�W���⎮�Ƃ��������l�ň������@������܂��B�������`���[�j���O���Ă������ƂŁA���̃Q�[���v���O�������󂳂��ɁA��葀�슴�̌���ɒ��͂ł���͂��ł��B

Wii Sports Resort�u�E�F�C�N�{�[�h�v

�@�C�V�����烊���[�X���ꂽ�ŐV�̃��[�X�Q�[���ł̗�Ƃ��ẮuWii Sports Resort�v�́u�E�F�C�N�{�[�h�v���ǂ��ł��Ă��܂��B�����V�~�����[�V�������g����������CG�����邱�ƂȂ���ASF���[�V���O�Ƃ͈قȂ�w��ɐU���ăW�����v�x�Ƃ�������ɉ����āA�w���n�̂Ƃ���WiiRemote�𐅕��ɕۂx�Ƃ������[���������邱�ƂŁAWiiRemote���g��������ƃQ�[������u�����ƂƂ��Ɍ����ɏ��؂��Ă��܂��B

��Wii Sports Resort�u�E�F�C�N�{�[�h�v(���悠��)

[URL] http://www.nintendo.co.jp/wii/rztj/resort/02_sports/index.html

�Q�[�����p��(2)�F�u�U��v�̔F���E���p�A�N�V�����ւ̉��p

�Q�[���ł�WiiRemote���p(...�Ƃ����Ă��A���Ƃ��ƃQ�[���p�R���g���[���[�ł����I)���l�����ŁA���[�X�Q�[���̂悤�ȃ_�C���N�g�ȕ������͂Ƃ��Ďg���ȊO�A�����Ƃ����҂����g�p���@���u�F���v�ł͂Ȃ��ł��傤���B

���̃Z�N�V�����ł͕M�҂����ۂɊJ���������p�A�N�V�����Q�[���uJaWii's Virtual Fencing�v(�W���E�B�̃o�[�`�����t�F���V���O)�̊J�����x�[�X��WiiRemote���‚��������[�V�����F���̊�{�e�N�j�b�N�ƁA���p�A���Ƀt�F���V���O�Q�[���ւ̉��p���ȒP�ɏЉ�܂��B

���فu���_�h���S���N�G�X�g �S�肵�`���̌��v

�@�ԊO���Z���T�[�ƑS�g���g�����Q�[�����i�́A�C�V��Wii�����E���A�Ƃ����킯�ł͂���܂���B�u���_�h���S���N�G�X�g�S�肵�`���̌��v(�X�N�E�F�A�E�G�j�b�N�X�E2003�N)�ŗ��p����Ă����̂��������W���[��i�ł͍ŏ��Ƃ����邩������܂���B

�u���_�h���S���N�G�X�g�v

�@�t�H�g�_�C�I�[�h�ƐԊO��LED�����������(���g�̏�)�ɑg�ݍ��܂�A�u���g�̌��v�ɂ͍ċA�����ˍ�(���˔‚��X�v���[)����������Ă��܂��B���́u�d�r�̗v��Ȃ����v��U��񂵂āA8��ނ̐؂�����ɉ����A���ʂɍ\���Ė��@���g�����[�V��������͂��邱�Ƃ��ł��܂����B

�@���̐��i�͎��ꌧ���Îs�ɂ���C���^���N�e�B�u�Z�p�̌����J����Ɓu�V���㊔����Ёv�̂ɋZ�p����Ď������Ă��܂��B���̉�Ђ̃z�[���y�[�W(http://www.xavix.jp/)�ɂ����ƁA�Z�p�̍����Ɨl�X�ȎY�Ƃւ̃C���^���N�e�B�u�Z�p�̃C���p�N�g�����������m��܂��B

�t�F���V���O�Q�[���uJaWii's Virtual Fencing�v

�u�W���E�B�̃o�[�`�����t�F���V���O�v�������ł̃��[�U�[�e�X�g

���̍�i�u�W���E�B�̃o�[�`�����t�F���V���O�v�͕M�҂��t�����X�̐��������@���s(Laval)�ɂāA�e�[�}�p�[�N�J���̂��߂̃G���^�e�C�����g�V�X�e���̊J���ɏ]�����Ă�����ɁA�s�̊ό��U�����Ƃ��ĊJ���������̂ł��B

�����@���s�͐l��10���l���x�A���E��Y�����T���~�b�V�F������Ԃ�2���Ԓ��x�̏ꏊ�ɂ���A�����̕��͋C���c�����������K�͓s�s�ł��B�o�[�`�������A���e�B���p�ŗL���Ȋw�p�E�Y�ƌ����s�s�ł�����܂��B�N�Ɉ�x���[���b�p�ł����Ƃ���K�͂ȃo�[�`�������A���e�B�̃C�x���g�uLaval Virtual�v(�����@���E�o�[�`����)���J�Â���܂��B

Laval Mayenne (Wikipedia�p��) [URL] http://en.wikipedia.org/wiki/Laval,_Mayenne

Laval Virtual (���{��y�[�W����) [URL] http://laval-virtual.org/

�t�F���V���O�Q�[���uJaWii's Virtual Fencing�v�͂���Laval Virtual�Ń����@���s�̃u�[�X�œW�������Q�[�����ł����B���傤�ǃ����@���s��2007�N�ɁA���s�o�g�̉�ƃA�����E���\�[(Henri Rousseau, 1844�`1910)�Ɠ�������𐶂����A�����@���s�o�g�̌���ƃA���t���b�h�E�W�����B(Alfred JARRY, 1873�`1907)�̖v��100�N�Ղ��j���Ă��܂����B

�A���t���b�h�E�W�����B�ƌÎ��t�F���V���O

�W�����B�͍�ƂƂ��Ắu�E�r����(Ubu Roi)�v�V���[�Y���L���ł����A�Î��t�F���V���O�̖���ł�����܂����B�����œ����������ꂽ�΂���Řb�肾����WiiRemote���g���āu�W�����B�ɌÎ��t�F���V���O�̎w����󂯂�v�Ƃ����Q�[���A�C�f�B�A���A�s���ɃW�����B�̐l����`����ǂ����Ƃ��Ď����オ�����̂ł��B

�Î��t�F���V���O�w��Q�[���̊J��

�܂��͉���ɓ���O�ɁA�����ł̓����YouTube�ɃA�b�v���[�h���Ă���܂��̂ŁA���Q�Ɖ������B

�u�W���E�B�̃o�[�`�����t�F���V���O�v(Youtube����)
Youtube������

WiiMedia:Sword Fighting "JaWii's Virtual Fencing"

[URL] http://www.youtube.com/watch?v=Kl_-KoVLtx4

�t�F���V���O�̊�{�Ƃ��āA�u�˂��v�u���ʐ؂�‚��v�u�E�؂�‚��v�u���؂�‚��v�Ƃ������U���A���ꂩ��e�U���ɑΉ������h��@������܂��B�Î��̃t�F���V���O�͂�蕡�G�ł����A����̂悤�ɓd�C���g�����ڐG���o�͂���܂��񂵁A�h����‚��܂���B

���̂悤�ȕ��G�Ō`���΂����Î��t�F���V���O�̃��[�V�������A�q������������ʂ̂��q����ɓ`����̂͊��̎�|�ł͂���܂��񂪁A�W�����B�������Ȃ񂾂Ƃ����Î��t�F���V���O�͂����ƕ\���������Ƃ���ł��̂ŁA�t�����X�t�F���V���O����Ɉ˗����āAGypsy�А��̋@�B�����[�V�����L���v�`���[�ŌÎ����������^���܂����B

3D Studio Max��Virtools���g���āA�W�����B��͂���3D�L�����N�^�[�uJaWii�v�ɂ��̃��[�V�������������A�j���[�V�������蓖�Ă܂��B

�v���t�F���V���O�I��Benoit Pincemaille���ɂ�郂�[�V�����L���v�`�����^

�Q�[���͔w�i���e�̑�X�N���[���ɕ\������A�v���C���[���Ȏ��_�ŗV�т܂��B�v���C���[��3D���f���͕K�v����܂��񂪁A�t�F���V���O�̃T�[�x����U��A�j���[�V���������͎��O�ɕ����ʂ�쐬���Ă����܂��B

���A���^�C���A�j���[�V������Virtools�ŊJ��

���[�V�������o�̂��߂̕]���֐������

���Ă������炪WiiRemote�v���O���~���O�̉ۑ�ł��B

�v���W�F�N�^�[�w�ʓ��e�Ƃ����݉c�̍\����A�ԊO���}�[�J�[�͗��p�ł������ɂ���܂���B�����x�Z���T�[�����ł��܂��܂ȃv���C���[�̕����̓����F������K�v������܂��B

�u�U��v��F�����邾���ł���΁A�����x�Z���T�[�e���̋��x���Z�o����}�O�j�`���[�h�ŏ\���ł��傤�B�������A��l��q���Ȃǐl�ɂ���ă}�O�j�`���[�h�̋����͈قȂ�܂����A�u�˂��v�����Ȃ�Ƃ������A�t�F���V���O�炵���؂�‚��������������x�͌��o�������Ǝv���܂��B

�����ŕ����̃v���C���[�́u�؂�‚���v�Ƃ�������ɂ‚��āA�����x�Z���T�[�̒l���e�L�X�g�t�@�C���ɕۑ����A��}���Ċώ@���Ă݂�ƁA���낢��Ȗ���������@�������Ă��܂��B�ȉ��A�|�C���g�������‚��܂Ƃ߂Ă݂܂��B

�����E�B���h�E
���‚��炢�‚܂ł̎��Ԃ��u���́v�Ƃ���̂��B�M�������̗p��ŁA�����̋�Ԃ��u�E�B���h�E�v�ƌĂт܂����A��������߂���@���‚���Ȃ��Ƙb���O�ɐi�݂܂���B
���K��
�����̃v���C���[�ɑ΂���ő�}�O�j�`���[�h�͈قȂ�܂��B���K�������A�‚܂�ő�l��1.0�ɂ���悤�Ȋ���Z���s�����ƂŁA������x���������ɒ��ڂł���悤�ɂȂ�܂��B
WiiRemote���˂����
�u�܂������U�艺�낷�v�Ƃ����Ă��A�l�Ԃ̎��͉����x�Z���T�[�̎��Ƃ͊֌W�Ȃ����ԓI�ɂ˂���邱�Ƃ�����܂��B�e�j�X�Ȃǂł��������Ƃ��N���܂��B
���o���Ă���ł͒x��
�Ⴆ�΁u�˂��v�̃��[�V���������o����̂͊ȒP(�ł������x�������x�N�g���������I)�ł����A�u�˂��v��\������A�j���[�V�����ɂ��Đ�����(duration)������܂��B�ő�̉����x���擾���Ă���u�˂��v�̃A�j���[�V�������J�n�����̂ł́w�Ȃ񂾂��x���ȁx�Ƃ������슴�ɂȂ�܂��B

���ɂ��܂��܂Ȗ��̍���Ɋ������錴���́AWiiRemote�̌��o����\�Ɖ�]���x�������Ȃ��_�ł��傤�B�}9-14�͉����x�Z���T�[�̉����x�f�[�^�ЂƂ‚ЂƂ‚�3�����x�N�g���ɂ��Đϕ����A�������x�����ƂɁA����ɂ��̐ϕ��������3�����I�Ȉʒu�ɔz�u�����}�ł��B�u�����ꏊ�Ő���A���R�ɐU��v�Ƃ����A�N�V�����ŁA�������قǑ傫���}�O�j�`���[�h��\���Ă��܂����A�Ȃ����E���獶�Ɉړ����Ă���悤�Ɍ����܂��B

�����x�Z���T�[�̒l��ϕ����ē�����3�����ʒu

�����x�Z���T�[�̕���\�ɂ��A3�������W���č\�z�ł��Ȃ����Ƃ�7�͂�WiiRemote���u���[���Ƃ��������ƌ��o����Ȃ��v�Ƃ��������s�����̂ŗ����ł���ł��傤�B�����āA�}���́��̕����ɒ��ڂ���Ƃ��ʔ������Ƃ������Ă��܂��B���̕����́u�U��v���[�V�����̍Ō�ŁA�L�΂����r�������āA���ɐU�肩�Ԃ����u�Ԃł��B���炩�ɐU��̍ō����ɔ�ׂĒ����I�ȓ����ł͂Ȃ��A�������͂ʼn�]���Ă���悤�Ɍ����܂��B

���ۂɂ͂��̏u�ԁAWiiRemote�͓��̌��Ŏ����‚����ĉ�]���Ă��܂��B�‚܂��]�̃G�l���M�[��WiiRemote���擾�ł��Ă��Ȃ����߁A���̂悤�Ȑ}�ɂȂ�悤�ł��B�������t�]�̔��z�ŁA���̏u�Ԃ̃}�O�j�`���[�h�́A�U��̍ő呬�̃}�O�j�`���[�h�Ƃ͈قȂ鐫���������Ă���̂ŁA�ア�}�O�j�`���[�h�����͂��ꂽ�Ƃ��Ɂu�����E�B���h�E�̍ŏ��v�Ƃ��ĕ]�����J�n���邱�Ƃ��ł��܂��B

�Ȍ�A���̂悤�ȁu�]���֐��v����肱��ł������ƂŖړI�̃��[�V�����𔭌�����֐�������Ă����܂��B���Ƃ͌X�̃��[�V�����ɑΉ�����]���֐����ꂼ�������Ă����܂��B

�������A�����x�Z���T�[�����̒l�����ł͊ώ@�ł���f�[�^�����Ȃ����܂��B�����ŕʂ̑�����@���g���ĐU�镑�����ώ@���܂��B�}9-15�͌��w���̃��[�V�����L���v�`���[�𑕒�������ԂŁAWiiRemote�������āo���ʁA�E����A������p�̍U�����[�V�������J��Ԃ����l�q�ł��B

���[�V�����L���v�`���[�ɂ��u�U��́v�l�q(���F���ʐ}�A�E�F��ʐ})

���[�V�����L���v�`���͍����ȋ@�ނȂ̂ŋC�y�Ɏg�����Ƃ͂ł��܂��񂪁A���̂悤�Ȏ����ƉŽ�������x�s���Ă������ƂŖړI�̃��[�V���������o���邽�߂ɁA�ǂ̂悤�ȃx�N�g���ɒ��ڂ��ׂ����A�܂��ǂꂮ�炢�̃T���v������(�}�̖��̌�)���K�v�������ɂ߂邱�Ƃ��ł��܂��B���z�Ƃ��������Ƃ̋߂����̂�1.0�Ƃ���΂悢�̂ł�(�x�N�g���̓��ς��g���܂��傤)�B

�܂��]���֐������邱�Ƃŕ��G�ȃ��[�V�������ȒP�ɐ݌v�ł���悤�ɂȂ�܂��B�]���֐��̑����Z��|���Z���‚����āA�����̕]���֐��������ɐ�����������𔻒f��������A�}�C�i�X�̕]�����g���āA�댟�o����₷����������t�̏����𕂂��������܂��B

�Ⴆ�ΐ}9-15�ł́u�˂��v�ƕ]�������x�N�g��(�‚܂�Y���\���{�^�������ւ̉���)�ɑ΂��Ē��F���Ă��܂����A���̃x�N�g�����牓�����̂��u�E�؂�‚��v��u���؂�‚��v�ɊY�����܂�(�u�U��v���[�V�������͏d�͂̉e���͂قƂ�ǖ������Ƃ��ǂݎ��܂�)�B�u�˂��v�̍ō������[�V������5�T���v�����x�ŔF���ł��Ă��܂��̂ŁA���̕]���֐��ł́A��葽���̃T���v�����g���āu�˂��ł͂Ȃ����[�V�����v�ɒ��ڂ�����΂悢�̂ł��B

���̕��@���g���āu�W���E�B�̃o�[�`�����t�F���V���O�v�ł́A���܂��܂ȔN��w�̃v���C���[�ł�3�����̍U�����[�V�����Ɩh�䃂�[�V������F�������A�K�؂ȃA�j���[�V�����Đ��Ɋ��蓖�āA�Q�[����i�����������邱�Ƃ��ł��܂����B

�y���K���z�U��̌��o

�y���K�z����
��7.5�͂́uWiiRemote�����v���Q�l�ɂ��āA�e�j�X��u�X�C���O�v�Ɓu���~�߁v�u�o�b�N�n���h�v�u(���E�ւ�)�ł������v�𕪗ނ���]���֐����쐬����B
�y���K�z������
��L�̕]���֐��ɑ΂��AWiiMotionPlus�ƍŐV��WiiYourself!��p���āA��]��ϋɓI�ɗ��p�����]���֐����쐬���u�t�F�C���g�����o�ł��錕���Q�[���v���쐬����B

WiiMotionPlus�͖{�����M�̍ŏI�i�K�Ŕ�������܂����̂ŁA��L�̂悤�ȃO���t��`�����Ƃ͂ł��܂���ł���(�������x��Ă��܂��܂��I)�B���K�ł�WiiYourself!�ɂ��C++���ӎ����Ă��܂����A�O���t��`���t�@�C�����o�͂����������������Ȃ�΁AC#.NET�ɂ��t�H�[���A�v���P�[�V�����̂ق����֗���������܂����(���⌤������CSV�t�@�C����ۑ�����T���v��������܂�)�B

���̂悤�ȁu���[�V�����]���֐��f�U�C���v�͍��A�Q�[���J���̐��E�ł͂ƂĂ����v������Z�p�ł��BHMM��SVM�Ȃǂ̋@�B�w�K��p�������@�������Ƃ��Ă͖ʔ���������܂����A�Ō�͂��̕]���֐��̃f�U�C���Z���X���A�Q�[���̖ʔ���������t���邱�Ƃ�����܂��BIF���̃J�^�}���ŊJ�����A�Q�[���v���O���}�[�̒N���ɓ������ꂽ�C���^���N�V�����ł͂Ȃ��A�G���K���g�ŃG�L�T�C�e�B���O�ȕ]���֐���݌v�ł���悤�A�T�����Ă݂Ă��������B

3DVIA Virtools+WiiRemote

�@�uJaWii's Virtual Fencing�v�̊J���Ŏg����Virtools�͍����ȎY�ƌ������i�ł��邱�Ƃ�����A���{�ł͂���قǗL���ł͂���܂��񂪁A���Ăł͍ł����p����Ă���Ž����v���b�g�t�H�[���ł��B���f����摜�Ȃǂ̃��\�[�X�ɑ΂��ĕ��i�����ꂽGUI�v���O���~���O���{�������łقƂ�ǂ̃C���^���N�e�B�u�f�U�C���֌W�����Ă��܂�����I�ȃc�[���ł��B

�@�J�X�^�}�C�Y���������A�����_���[��v���O�C���ȂǂقƂ�ǂ̃\�[�X�͌��J����Ă��܂��B�Q�[���̗����ʔ����̍����Ɋւ�镔���̐݌v���v�����i�[��GUI�ō쐬���A�ŏI�H���ł���œK����v���b�g�t�H�[���̓Ǝ������Ȃǂ��v���O���~���O�ōs���A�Ƃ������Q�[���J����@�ł��B

�@�\�j�[PSP�p��C�V��Wii�p��Virtools�����݂��܂��B�C�V��Wii�̊J�����C�Z���X�������Ă���Q�[���J����Ƃł���΁AWiiRemote�֌W�̃v���O�C������肷�邱�Ƃ��ł��邻���ł��B�܂�Virtools�̃t���[�ȊJ���҃R�~���j�e�B�͊����ŁA�X���b�v�~�[�g(http://www.theswapmeet-forum.com/)�ŗl�X�ȏ���\�[�X�A�v���O�C�������L����Ă���APC��ŗ��p�ł���I�[�v���\�[�X��WiiRemote�̃v���O�C������������܂��B�����Q�[�������ڎw���w�������A�t���[�̃Q�[�����҂ɂƂ��āA����͋��͂ȃ\�����[�V�����ł��BVirtools���g����PC��ŃQ�[���̃v���g�^�C�v�𐧍삷��΁A���΂₭�A�C�f�B�A���`�ɂł��܂����A������Z�p�I�ȃ��X�N������ł��邩��ł��B

�@���{�ł̓N���b�Z���g�ƎO�������Ƃ�����Ђ����S�ɑ㗝�X���s���Ă��܂��B�R���e���c�̐���T�|�[�g��Z�p�T�|�[�g�A����x���A�w�Z�������C�Z���X�̔��Ȃǃ��Z���[�e�Ђ̓��ӕ��삪����܂�����A��������������܂��₢���킹�Ă݂Ă��������B���������C�Z���X�𔭍s���Ă���邩������܂���B

��������ЃN���b�Z���g�@http://www.crescentvideo.co.jp/virtools/

���O�������@�@http://virtools.jp/

��i��(1)�FWiiBoard��p�����u�I�[���f�f�v

���̃e�[�}�́u�o�����XWii�{�[�h�v�������܂�(�{���ł́uWiiBoard�v�ƕW�L���Ă��܂�)�B

��1.4�͂ŏЉ���w����i�w�l�Ԉ֎q�x�ł�WiiBoard��2�Žg���AWindows��̓Ǝ�API�ɂ��J�����s���Ă��܂����B

���̃Z�N�V�����ł�Mac���Processing���g�����w���̑��Ɛ����i�w�I�[���f�f�x�̊J���v���Z�X���A���ۂɖ{��i���J�����������H�ȑ�w�R�����f�B�A�f�U�C���������E�d����(���}���������A���ˍG�A������ԁA����L��)�̊F����̂����͂ɂ��w�����_�ŊJ���������Љ�邱�ƂŁAWiiBoard�ɂ���i���ɐe����ł݂����Ǝv���܂��B

�v���O���~���O���S��4�l��������u�I�[���f�f�v

�u�I�[���f�f�v�͓����H�ȑ�w���f�B�A�w���̑��Ɛ���W�u���f�B�A�R���e���c�W2009�v�́u���C�t�G���^�e�C�������g�v�Ƃ��Ĕ��\���ꂽ��i�ł��B

Mac��Processing��WiiBoard�ō�����u�I�[���f�f�v

�܂��́u�I�[���f�f�v�̓���ƃu���O����Љ�܂�(�ȉ��A����L�ᎁ��Blog��蕶�̂��܂߂ł�����肻�̂܂܈��p���Ă��܂�)�B

�u�I�[���f�f�v

YouTube����u�I�[���f�f�v

[URL] http://www.youtube.com/watch?v=3pL3ObUwoA8

�v���O���~���O���S��4�l��������u�I�[���f�f�v�Ƃ�����i

[URL] http://gryng.blog87.fc2.com/blog-entry-15.html

�u�I�[���f�f�v�̊T�v

�u�I�[���f�f�v�͑̌��҂̃I�[����f�f�����i�ł��B�����̃I�[���̐F��`�����āA�]�����[�J�[�̂悤�Ɋy����ł��炤���Ƃ��_���ł��B

����Ȃ��񂶂ł��B

�������u�I�[���v�f�f��

���̍�i�̃L��

������]�����[�J�[�n�T�[�r�X�́A���O��a��������͂����鎖�Ō��ʂ��Z�o���Ă��܂��B�������Ȃ��ƁA���͂���肪���肪�Ȃ��̂œ��R�ł��B

�������A�I�[����f�f����ɂ������āA�̌��҂Ɂg���́h��������������܂���ł����B�����ɂ́A���͂��������C���‚����Ȃ��B���������̍�i�̃L���ɂȂ��Ă��܂��B

���̂��߂Ɏg�����f�o�C�X���A�o�����XWii�{�[�h�ł��B

�o�����XWii�{�[�h

NINTENDO Wii�p�̎��Ӌ@��ł���AWii Fit�ł��Ȃ��݂̃o�����XWii�{�[�h�BWii Fit�ł̓o�����X�Q�[����؃g���A���K�Ȃǂ��y���߂܂��B

���̃o�����XWii�{�[�h�́A������l�̏d�S�����߂邱�Ƃ��ł��܂��B��̓I�ɂ́A���E�̑��̑O��A���v�S�J���ɂ�����d���𓾂Ă���A���ꂼ����ׂ鎖�ŏd�S�𒲂ׂĂ��܂��B

���̃o�����XWii�{�[�h�Ȃ�A�̌��҂Ɉӎ��������ɏ�����͂����邱�Ƃ��ł���I�Ǝv�����킯�ł��B�Ȃ��Ȃ�A�����ɗ������邾���ŏd�S�̏��𓾂鎖���ł����Ⴄ��ł�����B

BBOSC

�o�����XWii�{�[�h��Mac��ڑ����邽�߂ɁuBBOSC�v�Ƃ����\�t�g�𗘗p�����Ă��������܂����B

4nchor5 la6 [BBOSC]�_�E�����[�h

[URL] http://456.im/wp/download/

�����グ�āAWii�{�[�h�̓d�r�{�b�N�X�̒��ɂ���[Sync]�{�^�������������B�т����肷��قNJȒP�ɐڑ��ł��܂����B

��������Mac�ɑ����Ă���S�J���̑̏d�̏����AProcessing�ɓn���킯�ł��B���̂�����́AWeb Designing 3����(2008�N)�̋L��[Beyond the Browser]���Q�l�ɂ����Ă��������܂����B

��G�c�Ɍ����΁ABBOSC���̏d�̏���OSC�Ƃ����K�i�ő��M�������Ă����̂ŁAProecssing���ł́uoscP5�v�Ƃ������C�u�������g���ăL���b�`����A�Ƃ��������ł��B

Processing

Processing�̓r�W���A���\�����e�ՂȃI�u�W�F�N�g�w���̃v���O���~���O����A�炵���B�͂����茾���Ė��O����m��܂���ł����B

Processing�ł͑̏d�̏������ɃI�[����`�悵�Ă����܂��B

�l�̏d�S�͐₦�������Ă�����́B���ꂾ�Ƃ�����ƈ����ɂ����̂ŁA���̐l�̕��ϓI�ȏd�S�ʒu�����߂邽�߂ɁA���b�̔��莞�Ԃ�݂��܂����B���̊ԁA�̌��҂ɂ͉�ʂɏW�����Ă����Ă��炢�܂��B�������Č��‚������d�S�̈ʒu���g���āA���̐l�̊�ƂȂ�1�F��ݒ肵�܂��B

���1�F�������Ɖ�ʂ��₵���̂ŁA�d�S�̈ړ��ɍ��킹�Ă�����x�A�F���ω�����悤�ɂ��܂����B���̕ω��̕����d�S�̈ʒu����ݒ肵�Ă��܂��B���g���̐l�����̃I�[���h���f�f�ł���悤�ɂȂ�܂����B

�����ĂȂ����Ƃ��܂��܂��������񂠂��ł����A��i�̂����܂��Ȏd�g�݂��Љ�Ă݂܂����B

�⑫�F�uBBOSC�v�Ƃ́H

�ȏ�̟���L�ᎁ�̃u���O�G���g���[�����ł��ƁA��񂪑���܂���̂ňȉ��⑫���܂��B

�uBBOSC�v�͐΋��f(�����΂����Ƃ�)�����G���u�E�F�u�f�U�C���j���O�v�A�ڋL���̂��߂ɊJ���������̂ŁAWiiRemote��Mac�𑀍�ł���uDarwiinRemote�v�Ȃǂ��J������Hiroaki Kimura���ɂ��AMacOS�ɂ�����WiiRemote�v���O���~���OAPI�uWiiRemote Framework�v���Q�l���ĊJ�����ꂽ�����ł��B

�Q�l�FHiroaki Kimura���̃u���O�uHirolog�v

�uDarwiinRemote�vWiiRemote��Mac�𑀍�ł���

[URL]�@http://blog.hiroaki.jp/2006/12/000433.html

�uWiiRemote Framework�v

[URL]�@http://blog.hiroaki.jp/2007/05/000456.html

OSC�Ƃ�Open Sound Control�̗��ŁA�d�q�y���R���s���[�^�̉��y���t�f�[�^���l�b�g���[�N�o�R�Ń��A���^�C���ɋ��L���邽�߂̒ʐM�v���g�R���A�‚܂�MIDI�̑�ւƂȂ邱�Ƃ��Ӑ}���Â���ꂽ�l�b�g���[�N�v���g�R���ł��B�J���t�H���j�A��w�o�[�N���[�Z�ɂ���CNMAT�iThe Center for New Music and Audio Technologies�j�𒆐S�ɃI�[�v���\�[�X�ŊJ������Ă��܂�(http://opensoundcontrol.org/)�B

�uBBOSC�v

�uBBOSC�v���s���ɁA�^�[�Q�b�g�ƂȂ�z�X�g��IP�A�h���X�ƃ|�[�g���w�肵�܂��B4�J���ɂ�����̏d��0-10000�ɃX�P�[������OSC�ő��M���܂��B�E��A�E���A����A�����ƁAWiiBoard�ɓ������ꂽ4�‚̂Ђ��݃Z���T�[�̒l�������܂����A���̂܂܂ł͎g���ɂ����̂ŁA�u�I�[���f�f�v�ł�{ X, Y}�̒l�ɕϊ����A���ς𗘗p���Ă��܂��B

WiiBoard���瓾����Z���T�[�l�̗��p

���̑��́u�I�[�������Z�p�v

�u�I�[���f�f�v���������邽�߂ɁABBOSC�̂ق��ɁA�J�����̗��p�Ə����ɁuJMyron�v�A�l�Ɣw�i�𕪂��邽�߂ɔw�i�����@��p���A�l�̗֊s���Ƃ邽�߂ɁublobDetection�v�Ƃ���Processing�̃��C�u�������g���Ă��܂��B

���̑��F�摜�����̂��߂̃��C�u����

�uJMyron�v

[URL] http://webcamxtra.sourceforge.net/download.shtml

�@���Ȃ݂ɁuMyron�v�Ƃ̓A�����J�̃R���s���[�^�A�[�e�B�X�g�~�����E�N���[�K�[(Myron Krueger, 1942)�B�ɗR�����閼�O�Ǝv���܂��B1980�N��ɃC���^���N�e�B�u�E�A�[�g��o�[�`�������A���e�B�[���g������i��������l�ł��B

�uMyron Krueger�v(YouTube����)

[URL] http://www.youtube.com/watch?v=A6ZYsX_dxzs

�ublobDetection�v[URL] http://www.v3ga.net/processing/BlobDetection/

�@Processing�̉摜�������C�u�����ł��B�uBlob�v�Ƃ́u������₵���J�^�}���v�̂��ƂŁA�l���Ȃǂ̌��o������ɂ͌����Ă��܂��B�Ȃ����̃z�[���y�[�W�ɂ͉摜�����𗘗p�������܂��܂ȃA�[�g�v���W�F�N�g�ւ̃����N������܂��B

�y���K���zMac��WiiBoard�̗��p

�Ȃ����̍�i�����\���ꂽ�����H�ȑ�w�u���f�B�A�R���e���c�W2009�v�̃z�[���y�[�W�ɂ́u�I�[���f�f�v�̑��ɂ��ʔ�����i�����������\����Ă��܂��B

�����H�ȑ�w�u���f�B�A�R���e���c�W2009�v

�u���C�t�G���^�e�C�������g�v

[URL] http://www.teu.ac.jp/mce/2009/work/lifeenter.html

���̃Z�N�V�����ɂ����͂�������������L�ᎁ���uEarth Surfer�v�Ƃ���WiiBoard���g�����ʂ́u�o�b�N�g�D�U�t���[�`���[���o�Ŏʐ^������v���W�F�N�g�v�𔭕\���Ă��܂��B

�uWiiBoard�vC#.NET�ł̊J��

�@Windows�‹��ł́uWiimoteLib�v��WiiBoard�𗘗p���邱�Ƃ��ł��܂��B����C#.NET��WiiBoard�𗘗p���������́A���⌤�C���ŃT���v�������J����Ă��܂��̂Ŋ��p����Ɨǂ��ł��傤�B

[URL] http://www.kosaka-lab.com/tips/2009/02/wiiwii-fit.html

�y���K�z����
Mac�‹��œ����uBBOSC�v��uWiiFlash�v�Ȃ�WiiRemote���p�c�[����T���AProcessing���g�����u�N���������Ƃ��Ȃ��v���f�B�A�A�[�g��i����ɒ��킹��B
�y���K�z������
WiiBoard���g���āA�l�Ԃ́u�����݁v�����o����VR���E���U������B�Ȃ��u�����ݓ����́v�ɂ‚��ẮA�����_�H��̓��c�Ӗ�搶���A�_������������܂��̂Ō������ĎQ�l����Ƃ悢�ł��傤�B

���̃Z�N�V�����ł�WiiBoard��MacOS�ł̊w���v���W�F�N�g�������܂����B�{���ł�MacOS�ł�WiiRemote�v���O���~���O��Procsssing��ActionScript�ȊO�͈����Ă��܂���ł������ABluetooth�ڑ��̈��芴������uWiiRemote Framework�v�ȂǁAWindowsXP�‹�������ɓ��{�l�J���҂ɂ���ăv���O���~���O�‹����J�񂳂�Ă�������������܂����B

�܂����̃Z�N�V�����ň������悤��OSC�̂悤�ȁu�l�b�g���[�N�o�R�̊y��Ƃ��Ĉ����v�Ƃ������@�́AVJ��A�[�e�B�X�g�n�ɐe���܂�Ă���C���^���N�e�B�u�ȃT�E���h�v���O�����‹��uMax/MSP�v�Ȃǂł悭�g������@�ł��B���ۂ�Max/MSP��WiiRemote���‚�����VJ�����Ȃǂ��悭�����܂��BWindows�‹������ɂƂ����K�v�͖����̂ł��B

�u�I�[���f�f�v�Ŏg�����悤�ȁA�J�����摜�����A�摜�G�t�F�N�g��g�ݍ��킹�A���コ��ɕ��L���w�Ńo�[�`�������A���e�B�A�[�g�A�r�f�I�A�[�g�A�C���^���N�V�����A�[�g��i�����܂�邱�Ƃ����҂��܂��B

��i��(2)�FSecondLife�Ŏg��

���E�I�ɗL���ȃo�[�`�������[���h�T�[�r�X�uSecondLife�v��WiiRemote���g����悤�ɂ��Ă݂܂��傤�BSecondLife�͖����ŗ��p�ł���o�[�`�������A���e�B��ԋ��L�T�[�r�X�ł��B�����f�����{�Ƃ�����Ђ��^�c���Ă���A�����f���h���Ƃ������Љ�Ɏ����ʉ݂𔃂�����A�y�n�̔����⌚�z�A�L�����N�^�[�̑�����v���O���~���O�Ƃ��������[�U�[�ɂ��R���e���c�쐬���s����̂������ł��B�悭�킩��Ȃ��l�́u�Q�[�����ړI�ł͂Ȃ�3D�l�b�g�Q�[���̂悤�Ȃ��́v��z������Ɨǂ��ł��傤�B

SecondLife�̃N���C�A���g�\�t�g�̃\�[�X�R�[�h�����J����Ă���킯�ł͂���܂��񂪁A��3�͂Ŋw�񂾁uGlovePIE�v���g���΁A�v���O���~���O��������邱�ƂȂ�SecondLife��WiiRemote�ő��삷�邱�Ƃ��ł���悤�ɂȂ�܂��BSecondLife���g�����o�[�`�������A���e�B��Ԃ̌��z��i���ŗL���Ȏ�s��w�����̓n糉p���搶���A�C���^���N�e�B�u�Z�p�̃C�x���g�̂��߂̎ʐ^�A�[�J�C�u��i�uLaval VRchive�v�̓W���p�X�N���v�g���쐬���Ă��܂��̂ŏЉ�܂��B

Second Life��i�uLaval VRchive 2009�v

SecondLife�pPIE�X�N���v�g

�܂��AGoogle Earth�p��PIE�X�N���v�g���x�[�X�ɁA������̃��[�U�r���e�B�������s�������ʁA�܂�SecondLife�ɂ��Ƃ��炠��O�i/��i�@�\���I�t�ɂ��邱�Ƃɂ��܂����B�u�o�[�`�������A���e�B��ԓ��œ��g��̃T�C�Y�ʼnߋ��̑̌��^�C�x���g�̎ʐ^�����L����v�Ƃ����R���e���c�̐݌v��A�O��Ɉړ����邱�Ƃ�����قǏd�v�ł͂Ȃ��Ɣ��f�����̂ł��B���̂悤�ȋ@�\�̊��荞�݂́A���[�U�[�C���^�[�t�F�[�X�f�U�C�������コ�����ŏd�v�ȋ@�\�����Ƃ����܂����AGlovePIE�œ��͂����Ȃ���Ηǂ��̂ŁA��r�I�ȒP�Ɍ������邱�Ƃ��ł��܂����B

�������Č������d�˂Ă�����ŁA�ŏI�I�ɂ́u�\���L�[�őO��ړ��{���E�]��C�w[B]�{�^���������Ȃ��灪���x�������́w�{�|�{�^���x�ŏ㏸���~�v�Ƃ����d�l�ɗ��������܂����B�ԊO���Z���T�[�̒l�̓}�E�X�|�C���^�Ɋ��蓖�ĂĂ���܂��BUSB���d�ł���Z���T�[�o�[���v���W�F�N�^�[�X�N���[���̉��ɐݒu���ASecondLife���́u�w�����v�Ɠ������o�ŁA��i���̃I�u�W�F�N�g��WiiRemote�������āA[A]�{�^�����������Ƃő��삷�邱�Ƃ��ł��܂��B

SecondLife�ł͂�����Ƃ������ƂŃJ�����A���O��������Ă��܂��̂ŁA[Home]�{�^���Ń��Z�b�g�ł���悤�ɂȂ��Ă��܂��B�܂�Second Life�̃R���e���c��W������ꍇ�A���j���[�o�[���ז��ɂȂ邽�߁A�f�B�x���b�p�[���[�h[Ctrl+Shift+D]�ɐ؂�ւ��A�u�C���^�[�t�F�C�X��off�v[Ctrl+Shift+1]�Ƃ������[�h�ɂ��Ă��܂��B���̏ꍇ�A��ʏ㕔�̃��j���[�o�[�͕s�Ž��ɂ͂Ȃ��Ă��܂����A���j���[�o�[���̂��̂͑��݂��Ă��邽�߁A��ʂ̏㉺�[��[A]���N���b�N����ƌ듮�삷�鋰�ꂪ����܂��B����̃X�N���v�g�ł͎������Ă��܂��񂪁A��ʂ̏㉺�[�Ƀ}�E�X�ړ��̃��~�b�^�[��t���邱�Ƃ��]�܂�����������܂���B

WiiRemote���g���ĕЎ�ő���ł���
[GlovePIE]SecondLife�uLaval VRchive 2009�v�W���pPIE�X�N���v�g(����)
Mouse.LeftButton = Wiimote.A
Keyboard.ESC = Wiimote.Home
Keyboard.Up = Wiimote.Up
Keyboard.Down = Wiimote.Down
Keyboard.Left = Wiimote.Left
Keyboard.Right = Wiimote.Right
Keyboard.E = Wiimote.Plus
Keyboard.C = Wiimote.Minus
if Wiimote.B & Wiimote.Up Then
 KeyBoard.Up = False
 Keyboard.E = True
 Wait 600ms
 Keyboard.E = False
endif
if Wiimote.B & Wiimote.Down Then
 KeyBoard.Down = False
 Keyboard.C = True
 Wait 600ms
 Keyboard.C = False
endif
���ȉ��A�ԊO���Z���T�[�̗��p����芴����̂��߂̃X�N���v�g��

�y���K���zSecondLife�{GlovePIE���ɂ߂悤

�y���K�z������
��LPIE�X�N���v�g�ƁA�{��3�͂��Q�l�ɂ��āA�uGlovePIE�v�ƁuSecondLife�v���g���āA���R�Ƀo�[�`�������A���e�B��Ԃ��U���ł���PIE�X�N���v�g���쐬����B���̍ۃk���`���N�Ȃǂ����p���āA�W�������A�f�X�N�g�b�v�����Ȃǂ̃J�X�^���o�[�W��������������B
WiiRemote���玩���ؒf����Ȃ��悤�ɂ�����

�@WiiRemote�̍X�V�������ԂȂɂ��Ȃ��ƁA���‚̊Ԃɂ��ؒf����Ă��܂��܂��B�ԊO����������Ȃǂ��āA�ؒf����Ȃ����|�[�g���[�h���g���Ɗm���ɐؒf�͂���Ȃ��̂ł����A���x�͓d�r���؂�Ă��܂��܂��B��������ɂ͒������Ԃ�������܂����A���XLED�o�͂Ȃǂ̐M���𑗂��Ă�����Ƃ悢�̂�������܂���B�Ȃ�Wii�{�̂ł́A���l��WiiRemote�������ԑ��삵�Ȃ��ƃX���[�v���[�h�ɓ���̂ł����A����WiiRemote�̃{�^���������ƁA�{�̑�����ēxBluetooth�̃y�A�����O��v������炵���A�ڑ�����������悤�ɂȂ��Ă��܂��B

�@Windows�‹��ɂ����Ă͂܂�Bluetooth�����ڑ��ɐ��������\�t�g�E�F�A�͂���܂��񂪁A�����Ă���l�����Ȃ��킯�ł͂���܂���B�����I�ɂ�DDK������̂ŕs�”\�ł͂Ȃ��͂��ł�(��p��HID�h���C�o����������������̂�������܂���...)�B���̂����������������x��WiiRemote�Ǘ����I�[�v���\�[�X��API�ʼn”\�ɂȂ邩������܂���ˁB

���m��(1)�F�Z���T�[�o�[�����삷��

WiiRemote�̐ԊO���Z���T�[�͔��ɑ��@�\�ō����ō��@�\�ł����A���̂܂܂̏�Ԃł́A�Z���T�[�o�[��Wii�{�̂ɐڑ����Ă��Ȃ���Ύg���܂���B��������PC��WiiRemote���g����̂ŁAWii�{�̂��Ȃ��Ă��悢�悤�ɁA�Z���T�[�o�[�̎d�g�݂�m��A����ɒ��킵�Ă݂܂��傤�B

WiiRemote�̉����x�Z���T�[�����g���\��̓ǎ҂̕���A�Z���T�[�o�[��Wii�{�̂ɐڑ����ė��p������́A���̃Z�N�V�����͓ǂݔ�΂��Ă��������Ă����܂��܂���B

�Z���T�[�o�[�̂�����

�Z���T�[�o�[�́A���O���������Ɓw���ɃZ���T�[�������Ă���x�悤�ɕ������܂����A���ۂɂ͐ԊO���Z���T�[��WiiRemote���Ɏ�������Ă���A�Z���T�[�o�[�����ɃZ���T�[�͑��݂��܂���B

�Z���T�[�o�[�����ɂ́A���E�ɂ��ꂼ��5�‚̐ԊO��LED����������Ă��܂��BWii�{�̂Ɛڑ����Ă���P�[�u���́A�����̓d���P�[�u���ŁA�ԊO��LED�̓v���O�������Ă���ԁA��ɓ_�����Ă���悤�ł��B�‚܂�LED�͐M���𑗂��ē���������A�ϒ�(���g����ς��Ė��x�⑬�x�𒲐����邱��)������A�Ƃ������Â������Ƃ͂����A�P���ɒ����d�����g���āA�������邳�œ_�����Ă��܂��B���Ȃ݂Ɂu�e���r�̗F�`�����l��G�K�C�hfor Wii�v�Ń����R���Ƃ��Ďg���Ƃ������́A�����R���M���̋K�i�ɍ��킹�č����ɓ_�ł��Ă��܂��B

������ϒ��Ƃ��������G�ȓd�q��H�̏ꍇ�́A�����ō��̂͏��X��ςł����ALED�_����H���炢�ł���΂���قǓ���͂���܂���(���w�����x���̓d�q��H�ł�)�B����LED�_����H��ԊO��LED��p���Ď��삷��΁A�I���W�i���̐ԊO���}�[�J�[�̂ł�������ł��B�Z���T�[�o�[�͕K�v�Ȃ��Ȃ�܂��BPC��WiiRemote�𗘗p����̂ɁA��������Wii�{�̂��N�����ăZ���T�[�o�[��_��������K�v�͂���܂��񂵁A�ԊO���Z���T�[���g��������̍�i�𗘗p�����ł̎��R�x���L����ł��傤�B

�ڂɂ͌����Ȃ��u�ߐԊO���v

���āA�����ł͐ԊO���ɂ‚��Ċw��ł����܂��傤�B�܂��A���̒��̌��ɂ͂��ׂāu�g���v������܂��B�g�����ς��ƐF���ς���Č����܂��B����v���Y����ʂ��đ��z�̌��𕪉����Ă݂�Ɓu�Ԟ򉩗ΐ—����v�Ƃ������Ԃɕ���Ō����܂��B�ԐF�ɋ߂��Ȃ�΂Ȃ�قǒ����g���A���F�ɋ߂��Ȃ�΂Ȃ�قǒZ���g���ł��B�l�Ԃ�����Ō��邱�Ƃ��ł���g���u�Ž����v�ɂ͌��肪����A���ۂɂ͂����Ƒ����̔g�������݂��܂��B

�ڂɂ͌����Ȃ��ߐԊO��

�u�ߐԊO���v�Ƃ�

�w�ԊO���x�ƈꌾ�Ō����Ă��A�{���ň����ԊO���͔g��700nm�`2500nm�ߕӂ́u�ߐԊO���v�ƌĂ΂��ԊO���ł��B���ɂ�2500nm�`4000nm�́u���ԊO���v��A�g��4��m�`1000��m�́u���ԊO���v(�M��)������܂��B��������l�̖ڂł͌����Ȃ����ŁA�u�d�g�v�����g���̒Z���u�d���g�v�̂��Ƃł��B���ԊO���ȏ�ɔg���������Ȃ�Ɓu�}�C�N���g�v�u���[�g���g�v�Ƃ������u�d�g�v�ƌĂ΂�܂��B

�l�Ԃ�������u�Ž����v�́A���������Ԃ�750nm���率��380nm���x�ŁA��������Z���g���ɂȂ�Ɓu���O���v�ƂȂ�A����ɔg�����Z���Ȃ�ƁuX���v��u�K���}���v�ƌĂ΂�A�������قȂ��Ă��܂��B�l�̂ɋz�����ꂽ��A�R�⌚����ʂ蔲������A��������������A�����ʐM�ł�����c�c�Ɣg�����Ƃɂ����ȗ��p��̓���������܂����A����WiiRemote���g����ł͔g��1000�`800nm�́u�ߐԊO���v�̌����g���܂��B���̋ߐԊO���́A�l�Ԃ̖ڂɌ����Â炢�Ƃ����ȊO�́A���i��X���ڂɂ�����ƂقƂ�Ǖς��Ȃ������������Ă��܂��B

�ߐԊO���͖ڂɌ��邱�Ƃ��ł��܂��񂪁A�Ž����ɋ߂����߁A�ڂɌ�������Ɏ����g�U�┽�˂��ώ@�ł��܂��B�ڂɌ����Ȃ��Ƃ������R����A�����h�A�̐ڐG�Z���T�[(�t�H�g�C���^���v�^)��A�e���r�̃����R���A�g�ѓd�b���m�̐ԊO���ʐM�uIrDA�v�ȂǂɎg���Ă��܂��B�������Ă݂�ƁA�X�̒��͐ԊO���Z���T�[���炯�Ȃ̂ł��I�Ȃ��C���t���G���U�Ŕ��M���Ă���l����������Ƃ��Ȃǂɂ��g����u�M�摜�J�����v��u�ԊO���T�[���O���t�B�[�v�Ƃ�΂�鉷�x�ɉ����ĐF����肠�Ă�J����������܂����A����͍��̕��˂ɂ��7.5�`13��m�̔g���A�‚܂艓�ԊO���ł��B

���̕s�v�c�ɂ‚��Ă����ƒm�肽��������c

�@�����Ȋw�Ȃ�2008�N�̉Ȋw�Z�p�T�ԂŔz�z�����u��Ƃ�1�����}�b�v�v�����ɗǂ��ł��Ă��܂��B�g�����A����Ƃ�������ɂ‚��āA���ۂɎg���Ă���Ⴊ�ʐ^����ŏЉ��Ă���|�X�^�[�ł��BPDF�ł������w�������̃z�[���y�[�W����_�E�����[�h�ł��܂��B

���u��Ƃ�1�����}�b�v�v

�@���쒘��F�����Ȋw�ȁ^�ďC�F�͓c���i�Ɨ��s���@�l�����w�������j

�@http://www.riken.go.jp/r-world/topics/080404_2/lightmap.pdf

�����Ȃ��ԊO����������悤�ɂ���ɂ́H

���M�d���Ȃǂ��ڂɌ������(�Ž�����)�ƂƂ��ɁA�M���ƋߐԊO���𔭌����Ă��܂��B�u�Z���V���O�p�r�v�‚܂�WiiRemote�̂悤�ȃZ���T�[�Ƃ��Č����g���ꍇ�ɂ́A�Ž�����M�͕K�v�łȂ��A�������ǂ��Ȃ��̂ŁA�}�[�J�[�p�����Ƃ��ĐԊO��LED�̔������g���ꍇ�������悤�ł��B

�Z���V���O�p�r�ł́A�ԊO��LED�����ɂ��킹�āA�t�H�g�_�C�I�[�h(PD)��t�H�g�g�����W�X�^�Ƃ���������̔g���̌��ɑ΂��Ĕ������锼���̂ƃZ�b�g�ŗ��p����܂��BTV�̃����R����g�ѓd�b��PC�̋ߋ����ʐM�Ɏg��IrDA(Infrared Data Association)�K�i�A�����h�A�����̐ԊO��LED�Ɣ����̑f�q�̃Z�b�g�ō\������Ă��܂��B

�Z���T�[�o�[�̐ԊO�����f�W�J���ŎB�e�����l�q

�ڂɂ͌����Ȃ��ԊO���ł����A�f�W�J����g�сAWeb�J�����Ȃǂ̉摜�Z���T�[���g�����ƂŁA�ԊO�����摜�Ƃ��Č��邱�Ƃ��ł��܂��B�f�W�J���ɗ��p����Ă���摜�Z���T�[�ł���uCCD�v��uCMOS�v�́A�{���A���肳�ꂽ���̔g���̌������d�q�ɕϊ��ł��Ȃ��̂ł����A�ԁE�΁E�‚Ƃ������A�l�Ԃ��摜�Ƃ��ė��p���邽�߂̎�������ȊO�ɂق�̏��������A�Ž����̊O���̔g���Ɋ��x������f�o�C�X������܂��B���̎�������𗘗p���āu�����Ȃ��ԊO��������v���Ƃ��ł��܂��B���̒m���͔��ɗL���ŁA�Z���T�[�o�[�����삵���Ƃ��⓮��m�F�������ŁA�ԊO����������J�������茳�ɂ����Ă����ƁA�ԊO��LED�̓_����Ԃ������Ĕ��ɕ֗��ł��B

�Ȃ��u�m�N�g�r�W�����v��u�i�C�g�X�R�[�v�v�ƌĂ΂��J�����́A���̎d�g�݂��g���ĖڂɌ����Ȃ��ԊO���Ƃ�����������‚����āA�钆��Èłł��B�e�ł���J�������������Ă��܂��B

WiiRemote�̎�������́H

�@WiiRemote�̐ԊO���Z���T�[�͂��������ǂ̂悤�Ȏd�g�݂łǂ�Ȕg���̌��������邱�Ƃ��ł���̂ł��傤�H

�@���ۂɂ͌^�Ԃ����J����Ă���킯�ł͂Ȃ��̂ł悭�킩��܂���B�������Ă݂邵���Ȃ��̂ł����AWiiRemote�ɓ�������Ă���Z���T�[�́A�C�V������p��PixArt Imaging��(http://www.pixart.com.tw/)�ɓ������ĊJ�������A���ʂȐԊO���摜�Z���T�[�Ƃ����Ă��܂��B�����͈̔͂��o�܂��񂪁A��𑜓x��CMOS�ŁA�f�W�J���̂悤�ȁu��f�l�v�ł͂Ȃ��ԊO���̖�����́u�d�S�̈ʒu�v�������ɏo�͂���^�C�v�̃f�o�C�X�̂悤�ł��B

�@��ʓI��Web�J�����Ȃǂ̉摜�������x�����b30-60�t���[�����x�Ȃ̂ɑ΂��āA����PSD��2�����̏d�S�ʒu���o�͂��邾���Ȃ̂ŁA�����ł��B�l�i�Ƒ傫���ɂ����܂����A���b400�t���[�����炢�o����f�o�C�X������܂��B

�@�Ȃ��M�҂���w4�N�̎��ɏ������_���u���w�I�R�����ʒu���o�@��p�������A���^�C���l�ԓ�����̓f�o�C�X�v�ł́A�l���z�g�j�N�X�А���PSD(Position Sensing Device)�J�������g���܂����B���̃J������WiiRemote��CMOS�Ɏ��������̃f�o�C�X�ł����A����100���~�ȏ�Ō��������w���������Ƃ��L�����Ă��܂�...�I

�d�q���i�����낦��E�H�삷��

�y���Ӂz

[!]���������͓d�q��H���̒m����������A���c���Ă̈����Ȃǂ��”\�ȕ��̂ݎ��H�ɗՂ�ł��������B�{���������Ƃ���PC�̔j����Ώ����̑��̕s���v�ɂ‚��āA���҂�o�ŎЂ͐ӔC�������܂���B

�����炪����USB�Z���T�[�o�[�̉�H�}�̗�ł��B

����USB�Z���T�[�o�[�̉�H��

�ޗ��Ƃ��ẮA�ԊO��LED�ƒ�R�A��ՁA���c���Ĉꎮ�A���Ƃ͕s�v��USB�̃P�[�u����1�{�A�ؒf���č��܂��B���^��USB�v���O�Ȃ�A�����[�q�ʂ����ɂ��č����珇��1,2,3,4��4�‚̒[�q���‚��Ă��܂��B����1�Ԃ��d���ƂȂ�VCC(+5V)�ŁA4�Ԃ�GND(�|)�ł��B��`��USB�̒[�q�̏ꍇ�͑�`�̒��҂������ɂ��ĉE�オ1�ԁA�E����4�ԂɂȂ�܂��BUSB�̃P�[�u����K���Ȓ����Őؒf���āA�e�X�^�[�ȂǂŊm�F���Ȃ���A�}����USB1�Ԃ���H��+5V�ɁAUSB4�Ԃ���H��GND�ɂ��ꂼ�ꔼ�c���‚����ÂȂ��܂��B

�ԊO��LED�͕��ʂ�LED�Ɠ������A�H�t����ʔ̂œ���ł���d�q���i�̂��X�Ŕ������Ƃ��ł��܂��B

�u�H���d�q�ʏ��v�̐ԊO��LED�����̗�

�^�ԁFOSIR5113A

VF=1.25V(��20mA)�A�s�[�N�g��940nm�A�����p15�x�A�����d��20mA

�@http://akizukidenshi.com/catalog/g/gI-00656/

�l�i��100�“����700�~�ƁA�d�q���i�Ƃ��Ă͋C�y�ɔ����镔�ނɓ���܂��B�w���O�ɁA�d�l�����悭���Ă��������B�d�v�Ȃ̂́u�s�[�N�g���v�A�uVF(DC Forward Current)�v�A�u�����d���v�A����Ɂu�����p(50% Power Angle)�v�ƌĂ΂��l�ł��B�s�[�N�g���͕ۏ�͂ł��܂��񂪁AWiiRemote�ɂ�900�`1000nm�̊Ԃ��炢���悢�悤�ł��B�����p�́A���ʂ�100���Ƃ����Ƃ��ɖ��邳�������ɂȂ�p�x�ł�(LED�ɂ͍L�p�̂��̂ƁA���ʂɎw�����̍������̂�����܂�)�B�Ȃ������ŏЉ���uOSIR5113A�v�͏��⌤�����ł����p���т����邻���ł��B

�܂�VF(mA)�ɂ���Đ�����R�̒l�����܂�܂��̂ŁA����ɍ��킹����R����������ɔ����Ă��������B������R���Ԃɓ���Ȃ��ƁA�������ɓd��������Ă��܂��A���Ɋ댯�Ȍ����ɂȂ��Ă��܂��܂��B�ň�PC�{�̂��󂷂�������܂���B

USB�d�͂̃T�[�W�x��

���̌x�����b�Z�[�W��USB�|�[�g�̓d����USB�̋K�i�Œ�߂�ꂽ���e�ʂł���500mA�𒴂����Ƃ��Ȃǂɕ\������܂��B�z�����Â���Vbus��GND���V���[�g���Ă���Ƃ��Ȃǂ����l�ɕ\������܂��̂ł��̃��b�Z�[�W���\�����ꂽ�Ƃ��́A���΂₭USB�|�[�g����v���O�𔲂��A�e�X�^�[�ȂǂŃV���[�g���Ȃ����m�F���Ă��������B

�܂�LED�̓_�C�I�[�h�Ƃ����d����������ɂ��������Ȃ������������܂��B�A�m�[�h(���̒����ق�)����J�\�[�h�֗���܂����A�t�ɂ͗���܂���B�ԊO����������f�W�J����T��ɂ����āA���g�݂�����e�X�g�ŋ쓮���Ă݂��肵�Ȃ�����Ȃ��ƁA����؂�����ł͋ɐ����킩��Ȃ��Ȃ�܂��̂Œ��ӂ��܂��傤�B

����̋ɏ�USB�Z���T�[�o�[�̐����

���̂悤�ɔ��ɏ�����USB�Z���T�[�o�[����邱�Ƃ��ł��܂��B���낢��Ɖ��p�̕����o�Ă��܂��B

�y���K���z�ԊO���Z���T�[�o�[�̎���

�y���K�z����
��L�̉�H�}�����p���āALED�ɑ΂��ēK�؂Ȑ�����R�l���Z�o���AUSB�ŋ��d����ԊO���Z���T�[�o�[��2�Z�b�g���삹��B
�y���K�z����
��L2�Z�b�g�̃Z���T�[�o�[(�eLED2�_)�A���v4�_�̐ԊO���}�[�J�[���擾�ł���v���O������WiiYourself!��WiimoteLib���g���č쐬����B
�y���K�z������
��1�́uSoundQuest�v�ɂ���悤�ȁA�񓙕ӎO�p�`�̒��_�ɐԊO����z�u���w�O�p�`�̌����x���擾�ł���v���O�������쐬����B�q���g�͕M�҂̃z�[���y�[�W�uAki4IRDemo�v�A�𓚗��Youtube����uSound Quest V1�v(http://www.youtube.com/watch?v=TMK7ULUG7S4)������B

���c���Ă����M�������Ĉ������݂̂����߂��܂��B���c���ĂʼnΏ������肵�Ă��A�{���͐ӔC�������܂���B

�ԊO���͖ڂɌ����Ȃ��̂ŁA��H�}�̐ԊO��LED�ɉ����āA�ʓd���Ă��邩�̊m�F�̂��߂ɉŽ��g��(�Ԃ��)��LED���g���ăp�C���b�g�����v�����Ƃ悢�ł��傤�B

���̉ۑ�͎���Z���T�[�o�[�����Ȃ��Ă�����ł��܂��B�O�p�`�̔F���ł�����Ɛ��w�p�Y��������܂����A�y����ʼn����Ă݂Ă��������BWiiRemote��4�_�܂Ō��o�ł��܂��̂ŁA�O�p�`�̌������E������A�ʂ�����ł�����ƁA���낢��ȉ��p������܂��B

�ԊO��LED4�_�œ񓙕ӎO�p�`�����o�������

���m��(2)�F���{�b�g����uWiiRemoteTank�v

WiiRemote���g���ă��W�R���J�[�𑀍삵�悤�Ƃ����A�C�f�B�A�����������l��(���E�ɂ�)�ӊO�ɂ���悤�ł��B

WiiRemote���‚����ă��W�R���J�[�𑀍�

http://gigazine.net/index.php?/news/comments/20061222_wii_rc/

http://www.inside-games.jp/news/329/32904.html

����2006�N12���̃j���[�X(Gigazine)�ŏЉ��Ă����́AWiiRemote����̐M����Bluetooth�o�R��PC�Ɏ�M���āA��������W�R���J�[�̃R���g���[���[(�v���|)�Ȃǂɑ��M������@�ł��B

�uWiiRemote��PC�����W�R���v���|�����W�R���v

�����ЂƂ‚̓�������l�ŁAWiiRemote�ɖO�����炸�A�k���`���N��WiiBoard�A�����iPhone���g���ă��W�R���J�[�𑀍삷�铮������J���Ă��܂��B

���{�b�g����uWiiRemoteTank�v

�l����������Ƃ������^���Ă��ʔ�������܂���B�����ł́A��̂悤�ȍ\���ł͂Ȃ��A

�uWiiremote��PC��WiiRemote�����W�R���v

�Ƃ����v���|����g��Ȃ����@�ŁA���W�R���𑀍삵�Ă݂����Ǝv���܂��B

���m�ɂ́uWiiRemote�Ń��W�R���𑀍�v�ł͂Ȃ��AWiiRemote�����W�R���ƍ��́A�‚܂�uWiiRemote�����W�R�����v�����wWiiRemoteTank�x���J�����܂��B

���{�b�g����uWiiRemoteTank�v

�قƂ�ǃ��{�b�g����ł��B����͂���܂���B

�����͊ȒP�ł��BWiiRemote����v���C���[�C���W�Q�[�^�[(4�‚̐FLED)�́AWiimoteLib��SetLEDs�֐��ŐM���𑗂邾���ŁAON/OFF�̏o�͂��ł��܂��B����LED�̓d�͂����[�^�[�h���C�o�[�ɐڑ����邱�ƂŃ��[�^�[�𐧌䂷�邱�Ƃ��ł��܂��B

���[�^�[�h���C�o�[�Ƃ́A���̖��̒ʂ胂�[�^�[�𐧌䂷��d�q���i�ł��B2�‚̐M���̑g�ݍ��킹�ɂ���āA���[�^�[�̉�]�A���]�A��~���s�����Ƃ��ł��܂��B���Ƃ��΁u[01]�őO�i�v�u[10]�Ŕ��]�v�u[00]�ŃX�g�b�v�v�Ƃ�����2bit�̃f�W�^���M���Ő���ł��܂��̂ŁALED�̓_��������o�͂����Ă�邾���ŁA���[�^�[�̓�����R���g���[���ł���킯�ł��B

�uWiiRemoteTank�v�̊J��

�����ł̓��{�b�g�̊J�������K���Ă���A����w���p���H�w�ȋ@�B�n3�N���̉��K�u�@�B�n���H�w���K�v�̋��ȏ����Q�l�ɂ��Ă��܂��B

����w �דc�k�搶�ɂ��u�@�B�n���H�w���KIII�v�e�L�X�g

[URL] http://www.robot.ams.eng.osaka-u.ac.jp/hosoda/enshu/start.html

��Toshiba�̃��[�^�[�h���C�o�[�uTA7291P�v�f�[�^�[�V�[�g

[URL] http://www.robot.ams.eng.osaka-u.ac.jp/hosoda/enshu/doc/TA7291F_TA7291SG_ja_datasheet_070613.pdf

�����ŏЉ��Ă��郂�[�^�[�h���C�o�[�uTA7291P�v���g���܂��BWiiRemote��LED��4�‚���̂ŁA���̃h���C�o�[���g����2�‚̃��[�^�[�𐧌䂷�邱�Ƃ��”\�ł��B���[�^�[2�‚ő���ł����ԂƂ����΁A�u�^�~���^���N�H���{�Z�b�g�v�ł��傤�B�I�����C����1,500�~�ōw���ł��܂��B

[URL]�^�~�� �^���N�H���{�Z�b�g

http://tamiyashop.jp/shop/product_info.php?cPath=17_149��products_id=70108

�����ăR���g���[���[�p��WiiRemote�Ɛ���p��WiiRemote��2���p�ӂ��܂��B�܂�����p��WiiRemote�𕪉����ALED�̐M�������o���܂��B

WiiRemote���u�����v...�H

�@����搶�́uWiiRemote�𕪉��v�Ƃ������菑����Ă��܂����AWiiRemote�̃l�W�͓���ȃh���C�o�[�łȂ���Ή񂷂��Ƃ���ł��܂���B�������S���ۏ؊O�̍s�ׂł����A���̂悤�ȃh���C�o�[�Ȃǖ����Ă��J���悤�Ǝv���ΊJ���邱�Ƃ͂ł��܂��B

�y�Q�l�z[URL] http://ameblo.jp/akihiko/entry-10056910390.html

�@����l�W���͂�������A���ʂ̃l�W�����Ă����܂��傤�B

�����h���C�o�[�ƃy���`���g��

���āA���̐��ԓ���̂́A�uWiiRemote�𕪉���LED�ɔz�����A���ʂ�Ɏ��߂邱�Ɓv���Ǝv���܂��B���Ȃ�̏W���͂��v������܂��B���⌤������Tips��WiiRemote��LED����������L��������̂ŎQ�l�ɂ��Ă��������B

���⌤����Tips�uWii�����R���̐FLED��ԐFLED�ɕύX�v

[URL] http://www.kosaka-lab.com/tips/2009/05/wiiledled.php

�e�X�^�[���g���Ċm�F���Ȃ���i�߂Ă��������BLED�̂��߂̐M�����E���āA���[�^�[�h���C�o�[�ɐڑ����܂��B

�R���g���[���[�p��WiiRemote�̌X����PC���ǂݎ��A���̌X���ɍ��킹�āA����pWiiRemote�ɐM���𑗂�v���O������ʓr�쐬���Ă����܂��B

���[�^�[��2�‚���܂��̂ŁA�����x�Z���T�[�̌X���ɍ��킹��2�‚�LED�ɑ΂���[00]�`[11]���o�͂���悤�ȃv���O�����ŏ\���ł��傤�B

LED�M�������[�^�[�h���C�o�[�ɐڑ�

�����ł̓���͏��⌤�����ɂČ��邱�Ƃ��ł��܂��B

���⌤����Tips�uWii�Ń��W�R���v

[URL] http://www.kosaka-lab.com/tips/2009/05/wii-2.php

�R���g���[���[�pWiiRemote���X����ƁAWiiRemoteTank���i�݂܂��B�����WiiRemote���v���|�ɂ��đ��삵�Ă��܂���WiiBoard�Ȃǂő��삵�Ă��ʔ������ł��B

LED�̏o�͂͂܂�2�`�����l�����c���Ă��܂�����A���ɂ������f�R���[�V�����𑕔�������AWiiRemote�̐ԊO���J�����𗘗p���āA�ԊO���������ɒǔ����ē������{�b�g��A���C���g���[�T�[(�������ɏ]���ē������{�b�g)�Ƃ��Ă��W�J���邱�Ƃ��ł���ł��傤�B

�y���K���zWiiRemote�ɂ�郍�{�b�g�J��

�y���K�z������
WiiRemoteTank�����p���āA���͂̐ԊO����T���ċ߂Â��Ă���u���{�b�g�y�b�g�v���J������B

�����WiiRemote�����{�b�g�֓��������Ƃ��āALED����M�����Ƃ���@���Љ�܂����BLED�ȊO�ɃX�s�[�J�[�̃A�i���O�o�͂�A�g���[�q��I2C�C���^�[�t�F�[�X���g���@���”\�������肻���ł��B�����ł̗�ł̓��{�b�g��Ԃł����A���킢�炵�������X�^�[�̂ʂ�����݂𒅂�����A�Q�[���ƘA���������肷��ƁA�r�b�O�ȃr�W�l�X�`�����X�����肻���ł�(��)�B

�T�[�r�X�ҁF�̂��s���R�ȕ��̂��߂̃C���^�[�t�F�[�X

���̃Z�N�V�����ł́A��8�͂Ŋw�񂾋Z�p�����p���āA�n���f�B�L���b�v�̂������WiiRemote���g���āA���R�ɃR���s���[�^�[��G���悤�ɁA�����ł��邩�H�𒆐S�ɍl���Ă݂����Ǝv���܂��B

�y���K���z�̂��s���R�ȕ��̂��߂̃C���^�[�t�F�[�X

�y���K�z����
WiiBoard���g���āA�肪�g���Ȃ��Ă��}�E�X����ł���\�t�g�E�F�A���쐬����B
�y���K�z������
WiiRemote�����ŕ������͂��ł���uWiiRemote�L�[�{�[�h�v���J������B
�y���K�z��������
WiiRemote�Ɂu�ʂ�����݁v�̔�����Ԃ��āA�c���Ɏ�������u���S�ʂ�����݃��{�b�g�v���J������B

�u�̂��s���R�v�ƈꌾ�ł����Ă��A��V�I�ɕs���R�ȕ������łȂ��A���̂�a�C�ŕs���R�ɂȂ����l��A�ꎞ�I�ɕs���R�ȂЂƂȂǂ��ꂼ��ł��B

����ȕ��X��WiiRemote�����Ńu���E�U�[�𑀍삵���胁�[�����������肷�邱�Ƃ��ł���C���^�[�t�F�[�X���J���ł���΁A���g�s���̕��Ȃǂ̐l����傫���ς��邩������܂���B

���K���Ƃ͂����A��������������\�t�g�E�F�A�ł�����A�������̂��ł�������J���܂��傤�B�Ȃ�ƌ����Ă�WiiRemote�ƃ\�t�g�E�F�A�����ł�����A��ʓI�Ȉ�Õ����@��ɔ�ׂĔ��ɋC�y�ɗ��p�ł��܂��B

���Ȃ݂Ɂu�n���f�B�Ȃ�Ď����ɂ͊֌W�Ȃ��v�Ǝv���Ă���ƁA�������܂��B���������M�҂��A���܂ꂽ�΂���̎����̐Ԃ�V��2���Ԃ����Ɏ������Ȃ���΂Ȃ�Ȃ��Ƃ�������܂����B��͘_�����������肵�Ă��邱�Ƃ������̂ŁA�Ȃɑ����Ď����S���Ȃ̂ł����A�~���N�������Ă��鎞�͗��肪�ӂ������Ă���̂ʼn����ł��܂���(�ƂĂ������Ȃ�)�B���̎��Ԃ��g���ă��[���ɕԐM������A�u���E�U�[��G������Ƃ������ȒP�ȍ�Ƃ��ł���΁A�q��ď����̎����X�g���X�͂ǂ�ȂɗL�Ӌ`�Ȏ��ԂɂȂ����ł��傤���I

�‚܂藼�肪�����Ă��錳�C�Ȃ����Ɂu���������\�t�g�E�F�A������Ă����΂悩�����I�I�v�Ɖ��x����������A�Ƃ������Ƃł�(��)�B

�c���������N�K�L�V�X�e���uPapier Poupee Painter�v�Ŏg�����u���S�ʂ�����݁v

�u�c���Ɏ������郍�{�b�g�v�͉����x�Z���T�[�̒l�����܂��g���āA���������������A�X�s�[�J�[���g������c�ƃA�C�f�B�A���L����܂��B�t�����X��ł͈��S�h�肮��݂̂��Ƃ��uPoupee�v�Ƃ����܂����A�M�҂͉ߋ��ɂ��̃A�C�f�B�A�ŗc�������̃��N�K�L�V�X�e���uPapier Poupee Painter�v���J���������Ƃ�����܂��B�U�邾���œh��G���ۂ����Ƃ��ł����i�ł����B

�c�����C���^���N�e�B�u�Z�p�̎��_�ł́u�n���f�B�����ƒ��[�U�[�v�Ƃ��܂�ς�肠��܂���B������y�C���g�u���V�̂悤�ȐF��I�Ԃ悤�ȋ@�\�͌��肵�āA���N�K�L�̖ʔ����������ۗ�������A�Ƃ����d�|����WiiRemote�̖����@�\�ƈ��萫�\�͑�ϖ��ɗ����܂����B

WiiMedia:Painting "Papier Poupee Painter" ver.Alpha (YouTube����)

[URL] http://www.youtube.com/watch?v=S8kYQbfN_9I

������(1)�ԊO�����ɂ߂�

WiiRemote�̐ԊO���Z���T�[�͔��ɍ����ŁA�g�������������񂠂�܂��B�����ł�2�_�̐ԊO��LED�̏�񂾂��ŁA�ǂ��܂Ő��m�ȁu���s�����܂߂�3�������W�v���擾�ł��邩���_�I�ɓ˂��l�߂Ă݂܂��B

�ԊO�����s������̊�{���_

�����ł́A�􉽓I�ȕ��@���‚�����2�_��LED���W����WiiRemote��3�������s���‚��̍��W���擾������@���l���܂��B�l�����̃g���[�j���O���Ǝv���ēǂ�ł݂Ă��������B

���܁AP(x,y,z)�Ƃ����ʒu�ɂ���WiiRemote���A���_O(0,0,0)�Ƃ����ꏊ�ɂ���Z���T�[�o�[�Ɍ������ĐԊO���Z���T�[���������Ƃ��AWiiRemote�Ŏ擾�ł���2�‚�LED�Q�̈ʒu��(IrX1,IrY1), (IrX2, IrY2)�Ƃ��܂��B

�����ł̍��W�n�ALED��WiiRemote�̈ʒu�֌W(���ʐ})

����2�‚�LED��X���W�AIrX1�AIrX2�ɂ‚��āA���̍��̐�ΒlIrZ�ɂ‚��ĉ����𗧂ĂĂ݂܂��B

IrZ = | IrX1 - IrX2 | ...(9-1)

���܂���WiiRemote�����_���牓����������Ɉړ��������ꍇ�A����IrZ�̒l�͉��ߖ@�ɏ]���āA�����ɍs���Ή����ɂ����ق�2�‚�LED�̍��͏������Ȃ�܂��BWiiRemote�ƃZ���T�[�o�[�̋���(�Ȍ�PosZ�ƕW�L�A�P�ʂ�mm)�͔��֌W�ɂ��邩������܂���B

���ŕ\���΁A

PosZ = K * IrZ ...(9-2)

�Ƃ����֌W���‚����”\��������܂��B��������K���ȒP�ɋ��܂�Ȃ�AWiiRemote�̐ԊO��LED�̒l(IrX1, IrX2)����A���s��PosZ���Z�o�ł������ł��B

�Ȃ��A���̎�(9-2)�ł�K�͔��֌W��\���Ă��邾���ŁA�萔���ǂ����A�‚܂�1���֐��Ȃ̂��ǂ����͍��̂Ƃ���킩��܂���B��蕡�G��2���֐��ȏォ������܂���B���ۂɑ��肵�Ă݂邱�Ƃɂ������܂��傤�B

�����F�ԊO�������̑���

�܂��A�ԊO���̑���l���擾�ł���v���O������p�ӂ��܂��傤�B�V���ɊJ������̂��ʓ|�ł���΁uWiinRemote�v�Ȃǂ��g���đ��肵�Ă����܂��܂���B

WiiRemote�ԊO����������̔z�u(��ʐ})

���܁A���_O(0,0,0)�Ɏ����LED�Z���T�[�o�[�̒��S������A�Z���T�[�o�[���ɂ���2�‚�LED�����O���[�v�Ԃ��AX��������200mm����Ă���Ƃ��āA�����LED2�_�ԋ���d�ƌĂт܂��B2�‚�LED�̒��_�����ꂩ�����������W�n�̌��_O�A{x,y,z}={0,0,0}�ɂ���A����Ɏg�p����WiiRemote�͍��WP(x,y,z)�ɂ���Ƃ��܂��BWiiRemote���Z���T�[�o�[����܂������������Ă����������A���߂����u���s��Z�v�A���E������X�A�㉺������Y�ƌĂт܂��BP�̍��W�ł͂Ȃ�������\������Ƃ��́uPosZ�v(�P�ʂ�mm)�ƌĂԂ��Ƃɂ��܂��B

������n�߂܂��傤�B���肵�₷�����Ȃǂ̈��肵���ꏊ�ɃZ���T�[�o�[��u���܂��B���̂Ƃ����ʂɐԊO�������˂��Ă���Ǝ��������s���Ă��܂��܂��̂ŁAWiiRemote��f�W�J�����g���āA�ԊO�����̋������˂��Ȃ����m�F���܂��傤�B�����ǂ����Ă����˂���ꍇ�͎����g���Ĕ��˂��g�U������Ɨǂ��ł��傤�B�Z���T�[�o�[���O�r�ɏ悹��Ȃǂ��Ă��悢�ł����A�ł����WiiRemote�𓯈ꕽ�ʂɒu���Ă��������B

�܂�WiiRemote�����_O�ɋ߂��ꏊ�ɒu��(�Ԃ‚����Ă��܂��܂��̂�)�A�������ƃZ���T�[�o�[���牓�����Ă����܂��B�ŏ��AWiiRemote��LED�̋��������܂�ɋ߂�����Ƒ���ł��܂���B�ԊO���̔������x������������A1�‚�LED�����Z���T�[�̎��E�ɓ���Ȃ������肷�邱�ƂɋN�����܂��B���X�ɉ��s�����L���Ă����ƁAPosZ = 300mm���x�̋����ɂȂ�ƁA�X�̐ԊO������lIRX1, IRX2��ǂނ��Ƃ��ł���̂ŁA����l�𑪒�V�[�g(EXCEL���ɒ��ړ��͂��Ă��ǂ�)�Ƀ������Ă����܂��B

����̎����ł͉��s�������̋��������ꂼ��PosZ = {330, 660, 990, 1320, 1650, 1980, 2310, 2640, 2970, 3300}(mm)��10��ނƂ��܂����B�܂����E�����̓������m�F���邽�߂ɁAX�����ɂ����ꂼ��PosX = {0, 330, 660}(mm)��3��ނő��肵�Ă��܂��B�S�Ă̑g�ݍ��킹��30�ʂ肠��܂��̂ō��C�悭�A������‚���ŁA�ӂ���ЂƑg�Ȃǎ�������Ɨǂ��ł��傤�B

�ȉ��̕\�̂悤�Ɏ����l���܂Ƃ߂܂��B

�y����V�[�g�z�ԊO���Z���T�[�̓����������[d=200mm]
[Pos] X = 0 X = 0 X = -330 X = -330 X = -660 X = -660
PosZ IRX1 IRX2 IRX1 IRX2 IRX1 IRX2
330 925 140 �\ �\ �\ �\
660 737 348 �\ �\ �\ �\
990 628 368 1003 755 �\ �\
1320 645 450 941 746 �\ �\
1650 598 442 874 717 �\ �\
1980 572 442 821 690 �\ �\
2310 583 471 768 656 957 845
2640 569 471 734 637 923 824
2970 597 512 709 622 854 768
3300 576 499 710 632 855 777

�u�\�v�ƂȂ��Ă���ӏ��͐ԊO��LED�͏�̒l���ǂ߂Ȃ������ꏊ�A�‚܂�ԊO���Z���T�[�̉�p�̊O���ł��B���ۂɑ���”\�ȃ|�C���g��22�_�ɂȂ�܂����B���̃f�[�^��PosZ�������A�ԊO���̑���lIx���c���Ƃ��ăv���b�g����ƈȉ��̂悤�ɂȂ�܂��B

WiiRemote�ԊO����������̌���

�O���t�������Ƃ���AIrX1��IrX2�͉��s��PosZ�ɑ΂��āA�P���Ȕ��֌W�������Ă͂��Ȃ��悤�ł��B���������E�ɑ΂��Ă͂قڑΏۂƂ�����ł��傤�B������PosX�����S����O��邱�Ƃ�(PosX = -330mm, -660mm)�A���E�̑Ώې��͕���Ă����悤�ł��B

���ۂ̉��s��(PosZ) - �ԊO���̍�(IrZ)[��]�CPosX���ꂼ��ɑ΂��� K �̗l�q[�E]
�e�ʒu(PosX,PosZ)�ł�IrZ(2�‚�LED�̍��̐�Βl)
PosZ X=0 X=330 X=660
330 785
660 389
990 260 248
1320 195 195
1650 156 157
1980 130 131
2310 112 112 112
2640 98 97 99
2970 85 87 86
3300 77 78 78

���Ɋe�ʒu�ł�2�‚�LED�̍��̐�ΒlIrZ�ɂ‚��ĎZ�o���܂��BPosZ�������AIrZ�Əc���ɂƂ����O���t�Ƀv���b�g����ƁAPosZ�ɑ΂��锽���Ɍ����܂��B���x��X ={0, 330,660}�ɑ΂��Ă��ꂼ��APosZ�������A�����Ė{���萔�ł���͂���K�A���Ȃ킿�ud / IrZ�v���c���Ƃ��Đ}9-32(�E)�̂悤�Ƀv���b�g���Ă݂܂��B

X�����ꂼ��X = {0, 330,660}�ƈقȂ�ɂ�������炸�A������1�{�̒����ɏ���Ă��܂��B���̒����̌X����PosZ�̍ő�-�ŏ����狁�߂��

K = 1284.64 * PosZ - 0.02 ...(9-3)

�Ƃ����AK��PosZ�̒�����1���������ŕ\�����邱�Ƃ��ł��܂��B

����K��p���Ď�����PosZ�ƁA�ő�ŏ��Ȃ�2�_���x��IrZ���v������΁A���̊Ԃ̉��s��Z���ȒP�ɋ��߂邱�Ƃ��ł��܂��B

�}9-33�́A���̗��_��p���ĎZ�o�������s���ƁA�����̉��s�����قڈ�v���邱�Ƃ������Ă��܂��B

����Z(����) �\ �Z�oZ(�c��)

�y���K���z�ԊO�����ɂ߂�

�y���K�z��
�ԊO���Z���T�[�̎���p(��p)�͉��x���B���������A���������ɂ‚��čő�l�𑪒肵�A�p�x�Ƃ��ĎZ�o����B
�y���K�z������
�{�Z�N�V�����ʼn���������_���Q�l�ɂ��āA�ԊO���̌v���l�Ǝ��ۂ̉��s�����L�����u���[�V��������v���O�������쐬����B
�y���K�z��������
�����x�Z���T�[��A�t�B���ϊ���g�ݍ��킹�āA���L�͈͂����o�ł���d�g�݂��l����B

���������̉�p�ɂ‚��Ă͂��̃Z�N�V�����ŏЉ���f�[�^�����ƂɁA�Z�o���邱�Ƃ��ł��܂�(�ӊO�Ƌ����ł�)�B

�L�͈͉��ɂ‚��Ă͂��܂��܂ȕ��@�����肦�܂����A�ȉ��̐}���q���g�ɍl���Ă݂�Ɨǂ��̂ł͂Ȃ��ł��傤���B

�����x�Z���T�[���g�����L�͈͉�
�X�v���[�ʂ̂悤�Ȏ�����

�����x�Z���T�[�ƘA�g������@�ȊO�ɂ��A�C�f�B�A�͂���܂��BWiiRemote�̐ԊO���Z���T�[�̓f�W�J����CCD�Ȃǂ̉摜�Z���T�[�ƈقȂ�A�c��ł��{�P�Ă�������l�͓����ł��̂ŁA�u�΂߂��猩��v�Ƃ������@�Ŏ����̑���͈͂��L��������@�͂���ł��傤�B

���̃Z�N�V�����ŏЉ��A�W���j�[�E���[�̃T���v�����A�ԊO���|�C���^���u�΂߂Ɍ���v���ƂŁA�L���͈͂�����”\�ɂȂ�R�[�h���܂�ł���悤�ł��B

������(2)Johnny Chung Lee������w�ڂ�

�A�����J�l�̃W���j�[�E���[��(Johnny Chung Lee, http://johnnylee.net/)�́A�J�[�l�M�[��������̊w�������AWiiRemote���g�����v���W�F�N�g�uHead Tracking for Desktop VR Displays using the Wii Remote(WiiRemote���g�����f�X�N�g�b�vVR�f�B�X�v���C�̂��߂̓����Ǐ])�v��2007�N12��21����YouTube�Ō��J���A�����܂�721����ȏ�Đ����ꐢ�E�I�ɗL���ɂȂ�܂����B

(���g���~���O��])Mr. Johnny Chung Lee�Ɣނ̂ڂ�ڂ�̃^�u���b�gPC(Laval Virtual 2008�ɂ�)
Johnny Chung Lee����WiiRemote�֌W�̃v���W�F�N�g�ꗗ

http://johnnylee.net/projects/wii/

����2�‚�WiiRemote�v���W�F�N�g���A���ꂼ��200����ȏ�Đ�����Ă��܂��B

�ߋ���WiiRemote�֌W�͎���Web�T�C�g�ɂ܂Ƃ߂��Ă��܂��B���ׂă\�[�X�R�[�h�Ǝ��s�t�@�C��������ł��܂��B�܂��͓���ƂƂ��Ɉȉ��̓��{������ǂ�ł݂Ă��������B

�uWiiRemote�ŋM���̎w���g���b�L���O�v(2007�N11��08�����J)
�ԊO��LED�̍s���WiiRemote�Ɠ������A�ċA�����ˍރe�[�v(���]�Ԃ̖h�Ɣ��˃e�[�v�̂悤�Ȃ���)���‚����āA�f��u�}�C�m���e�B���|�[�g�v���̋󒆑��_������������Ă��܂��BWiimoteLib1.1��C#�ADirectX���g���Ă��܂��B
�uWiiRemote���g�������[�R�X�g�A�����_�C���^���N�e�B�u�z���C�g�{�[�h�v(2007�N12��07�����J)
�ԊO��LED���d���񂾃y�����g���āA�C���^���N�e�B�u�ȃz���C�g�{�[�h�\�t�g�E�F�A���������Ă��܂��BWiiRemote���X�^���h�ɏ悹�Ă���v���W�F�N�^�[�Ɍ������ăy�������Z���ɂȂ��Ă��܂��B���Ɉʒu���킹�̃\�t�g�E�F�A���G��ł��BWiimoteLib1.2.1��C#�ŏ�����Ă��܂��B�I�[�v���\�[�X������AMac/Linux�ł����J����Ă��܂��B
�uWiiRemote���g�����f�X�N�g�b�vVR�f�B�X�v���C�̂��߂̓����Ǐ]�v(2007�N12��21�����J)
�t�]�̔��z�ł��B�e���r�̑O��WiiRemote�������āA�Z���T�[�o�[����̐ԊO��LED�����K�l�̗��e�ɂ‚��܂��B�uWiiDesktopVR�v�Ƃ����f���v���W�F�N�g�����J����Ă���A���𓮂�����3DCG�ŕ`����3�����I�ɔz�u���ꂽ�}�g�����_�ɂ��킹�ē����܂��B�傫�ȕ��i�ʐ^�Ȃǂ����_�ɂ��킹�ē����܂��B���傤�Ǒ��g��ʂ��Ă݂�悤�Ȋ����ł��BWiimoteLib��C#�ADirectX���v���O�����ł��B

�u�A�C�f�B�A�ꔭ�����I�v�̔��ɃV���v���ȃf���ł����A������J�̓��t�����Ă��킩��悤�ɁA�J���̃X�s�[�h���ƂĂ��������Ƃ��b��ɂȂ�܂����B

�܂��W���j�[�͌����҂Ƃ��Ă��������肵�Ă��āAWiiRemote�ȊO�ɂ����[�R�X�g�ȓ���J������A�v���W�F�N�^�[���g���čD���ȏꏊ(�Ⴆ�΁A��Ɏ�������)�ɍD���ȉf���𓊉e���錤�����s���Ă��܂�(�����炱��WiiRemote�̊��p�����������̂ł���)�B���ɂ��ʐ^��i��A����ȃy�C���g�{�[���p�`���R�̐���ȂǁA���낢��y�����v���W�F�N�g����������Ă���܂��B

���݁A�ނ̓}�C�N���\�t�g�̌������Ŏ��p�Ȋw(Applied Sciences)�O���[�v�œ����Ă��邽�߁A�\������WiiRemote�֌W�̊����͂���܂��񂪁A�����󔒂̌�A�Ȃ��2009�N6��1���̃u���O�G���g���[�ŁuProject Natal�v�Ɋ֌W���Ă��邱�Ƃ��������܂����B

�W���j�[�E���[���̃u���O�uprocrastineering�v

[URL]�@http://procrastineering.blogspot.com/

��Microsoft Project Natal(YouTube����)

[URL]�@http://www.youtube.com/profile?user=xboxprojectnatal

�uProject Natal�v�Ƃ́A��������Ă���������΂킩��܂����A�C�V��Wii�ɑ΍R����}�C�N���\�t�g�̑S�g�^�Q�[���C���^�[�t�F�[�X�ł�(�ڍׂ͎��̏͂ŏЉ�܂�)�B

�y���K���z�������悤

�y���K�z����
�W���j�[�E���[�̃T���v�������s���A������m�F����B�ԊO��LED�O�b�Y�̍쐬�͑�9.6�͂��Q�l�ɂ��A�”\�ł���Γ��{��ŕԐMYouTube������A�b�v���[�h����B
�y���K�z��������
�T���v�������r���h�������̃v���W�F�N�g�ɍė��p����B���ɃA�t�B���ϊ���f���f�������Ȃǂ͕֗��ł��傤�B

�ނ̌����҂Ƃ��Ă̘_�������ɖʔ����ł��B�֘A����ʔ����_��������΂ǂ�ǂ�ǂ�ł݂܂��傤�B�Ȃ��C�O�̘_�������΂₭���ׂ�Ƃ��ɂ́A�uGoogle Scholar�v�A���J����Ă���v���O�����R�[�h����������Ƃ��́uGoogle Code�v�����ɗ����܂��B���{��̘_�����C�ɂȂ�Ƃ��́uCiNii�v�Ƃ����������w���������^�c���Ă���_�������G���W�����g���Ɨǂ��ł��傤�B

�_���������T�[�r�X

�_�������uGoogle Scholar�v

[URL]�@http://scholar.google.com/intl/ja/

�������w�������uCiNII�v(�L�[���[�h"Wii"�Ō���)

[URL]�@http://ci.nii.ac.jp/search?q=Wii

�\�[�X�����uGoogle Code�v[URL]�@http://code.google.com/

�v���O���~���O��(2)�F������API���‚���

�{�͂̍Ō�́AWiiRemote�ɃA�N�Z�X����API�������ō��ۑ�ł��BDDK���g�����AC++�̃v���O���~���O�ł��B���ɗp�����Ȃ����͓ǂݔ�΂��Ă��������Ă��܂��܂��񂪁A���̌���Ȃǂ�WiiRemote��API���ڐA����Ƃ��ȂǁA���ɗ��‚�������܂���B

API���g��Ȃ��ڑ��ɂ‚��Ă̏��

�uWiiMedia2�v

[URL] http://code.google.com/p/wiimedia/source/browse/#svn/trunk/Wiimedia2/

��L�AGoogle Code�Ō��J����Ă���ADDK��C++���‚������@�\�ŏ����̎���API�ł��B

�}��p���u�d�]2007�FWii�����R����������񌩒����Ă݂܂��vby Iketaki

[URL] http://paken.s1.hayasoft.com/files/down/denno2007_wii.pdf

�}�g��w������ꒆ�E�����w�Z�p�[�\�i���R���s���[�^�������̕����ՂŔ��s���ꂽ������PDF�łł��B���ɒ��J�ɉ������Ă���܂��B

�uWiiMedia2�v����d�v��OpenWiiRemoteHID()�ߕӂ����p���Ă����܂��B

wm_base.cpp wm_base::OpenWiiRemoteHID()
HANDLE wm_base::OpenWiiRemoteHID(void) {
//LONG iHIDs;
  DWORD indexHID = 0;  
  BOOL bEndofDeviceList = FALSE;
  BOOL bDeviceDetected = FALSE; 
  PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceDetail = NULL;
  DWORD size = 0;
  DWORD RequiredSize;
  HIDD_ATTRIBUTES Attributes;
  HidD_GetHidGuid( &guidHID );
  hDeviceInfo = SetupDiGetClassDevs(
    (LPGUID)&guidHID, NULL, 
    (HWND)NULL, 
    DIGCF_INTERFACEDEVICE | DIGCF_PRESENT 
  );
  if ( 0 == hDeviceInfo ) { return INVALID_HANDLE_VALUE; } //���s
  do {
    bDeviceDetected=FALSE;
    //HID�C���^�t�F�[�X���
    deviceInfoData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
    if ( SetupDiEnumDeviceInterfaces 
      (hDeviceInfo, NULL, &guidHID, indexHID, &deviceInfoData)!=0 ) {
        printf("[%d] HID found.\n",indexHID);
      //�񋓂���HID�̏ڍׂ��擾
      SetupDiGetDeviceInterfaceDetail(hDeviceInfo, 
        &deviceInfoData, NULL, 0, &size,   NULL) ;
        DeviceDetail = (PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(size);
      DeviceDetail -> cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
      printf("HID detail size =%d.\n",DeviceDetail->cbSize);
      SetupDiGetDeviceInterfaceDetail (hDeviceInfo, 
        &deviceInfoData, DeviceDetail, size, &RequiredSize, NULL);
      hWiiRemoteHID = CreateFile( DeviceDetail->DevicePath, 
        GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, 
        (LPSECURITY_ATTRIBUTES)NULL, OPEN_EXISTING, 0, NULL);
      bDeviceDetected = FALSE;
      Attributes.Size = sizeof(Attributes);
      if ( HidD_GetAttributes( hWiiRemoteHID, &Attributes ) ) {
if ( Attributes.VendorID == 0x057e && Attributes.ProductID == 0x0306 ) {
if ( HIDP_STATUS_SUCCESS == GetDeviceCapabilities( hWiiRemoteHID ) ) {
         printf(" WiiRemote found.[V=0x%04d,P=0x%04d]\n",
          Attributes.VendorID,Attributes.ProductID);
         bDeviceDetected = TRUE;
        } else {
          printf(" GetDeviceCapabilities() failed.\n ");
        }  
       } else {
         printf(" It didn't match with WiiRemote.[V=0x%04d,P=0x%04d]\n",
          Attributes.VendorID,Attributes.ProductID);
         CloseHandle( hWiiRemoteHID );
       }
      } else {
        printf(" HidD_GetAttributes() failed.\n");
        CloseHandle( hWiiRemoteHID );
      } 
      free(DeviceDetail);
    } else {
      bEndofDeviceList = TRUE;
    }
    
    indexHID++;
  } while ( (bEndofDeviceList == FALSE) && (bDeviceDetected == FALSE) );

  if ( bDeviceDetected == FALSE ) {
        printf("Finally, I couldn't find any WiiRemote.\n");
    hWiiRemoteHID = INVALID_HANDLE_VALUE;
  } else {
        printf("Yes, I found a WiiRemote.\n");
  }
  SetupDiDestroyDeviceInfoList(hDeviceInfo);
  return hWiiRemoteHID;
}

�ŏ������T��ō��̂͑�ςł�����A�����������g��API���쐬�ɒ��킷��ꍇ�A��̃R�[�h�̂ق��ɁAWiimoteLib��WiiYourself!���Q�l�ɂ���Ɨǂ��ł��傤�B

�uGetDeviceCapabilities()�v�ߕӂ��d�v�ŁA���ꂪ�X��PC�‹���Bluetooth�X�^�b�N�ɂ���ĈقȂ�܂��B����ɑ΂��č��x�Ɋ������Ă���API�́AWriteFile()�Ȃǂ��H�v���āA�m���ɒʐM���s����悤�ɂ��Ă��܂��B���̑��A���|�[�g�^�C�v�̐ݒ�Ȃǂ́uWiili.org�v��uWiiBrew�v�Ȃǂ�Wiki�T�C�g�ŏ������‚߂č\�z���Ă����܂��B

�y���K���z

���̃Z�N�V�����ł̉��K���͓�Փx����ɍ����ݒ肵�Ă��܂��B���ɘr�Ɏ��M��������̂ݒ��킵�Ă݂Ă��������B

�y���K�z������
DDK��C++���g���Ď�����API���J������B�l�X�ȃX�^�b�N�œ��삷��悤�AWiiYourself!��WiimoteLib��lj����Q�l�ɂ���Ƃ悢�B
�y���K�z��������
Windows Mobile�ȂǑ��̃v���b�g�t�H�[���p��API���ڐA����B
�y���K�z����������
�X�^�b�N��DDK�����p���ABluetooth�ڑ����������ł���h���C�o�[���J������B

����Ŗ{�͂͏I���ł��B���܂܂Œʂ�X�e�b�v�o�C�X�e�b�v�̉�����s�����Ƃ��������܂����A�قƂ�ǂ��A�C�f�B�A�̗v�_�����A���Ƃ͉��K���Ƃ����\���ʼn�������A�ۑ�ݒ�ɗ͓_��u�����Ă��������܂����B

�ǎ҂̃X�L���𕝍L���Ƃ����{���ɂ����āA�p��ŏ������_�������̂܂ܗ��Ƃ����ނ͓̂�V���܂����B�c�O�Ȃ��犄�������l�^������������܂����A�M�҂̌o������WiiRemote�v���W�F�N�g�̂����‚����A���߂ē��{��ʼn������@��Ɍb�܂�܂����B

�{����WiiRemote�v���O���~���O���w�񂾊F���񂪁A�{���ł́u�l�^�v�����������ɁAYouTube�Ȃǂ�ʂ��āA��葽�����E���̐l�X�ƌ𗬂���邱�Ƃ��F���Ă���܂��B���̍ہu���l�^��WiiRemote�{���v�ƁA�{�������p���ɏ����Ă���������Ƃ���݂ɂȂ�܂��B

�܂�WiiMotionPlus�̓o��ȂǂŁA�{���̓��e���Â��Ȃ�����u�����Ƃ������@�������I�v�Ƃ��������ӌ�������Ǝv���܂��B��L�ŏЉ���uWiiMedia�v�v���W�F�N�g��AGoogle Groups�ɂăR�~���j�e�B�𗧂��グ�Ă���܂��̂ŁA�����p����������΍K���ł��B

�I�����C���R�~���j�e�B

[URL] http://akihiko.shirai.as/projects/WiiRemote�{���̃|�[�^���Ƃ��Ă����ɏ����܂Ƃ߂Ă��܂��B

Google Code�uWiiMedia�v

[URL]�@http://code.google.com/p/wiimedia/

�{���ŏЉ���T���v���ȂNJ֘A�̃R�[�h�������ŋ��L���Ă��܂��B

Google Groups�uWiiRemote�v

[URL] http://groups.google.com/group/wiiremote

�������u����Ȃ��Ƃł�����I�v�Ƃ����������񂹉������B

�����ɂ‚Ȃ���WiiRemote

���͖̏͂{���̍ŏI�͂ł��B���܂ŕM�҂ƂƂ��ɒ����������ɂ��t���������������A���肪�Ƃ��������܂����B

�����ł�WiiRemote�ł̃v���O���~���O���班������āA�C���^���N�e�B�u�Z�p�̖�����ǎ҂݂̂Ȃ���Ƃ�������ɍl���Ă݂����Ǝv���܂��B

�l���Љ�F�v���҃C���^�r���[

�܂��͖{���ň�����WiiRemote�v���O���~���O�Ɋւ���Ă���A���E�̍v���҂��疢����ǂ݉����Ă݂����Ǝv���܂��B

WiiRemote�v���O���~���O�ɂ�����PC�ł̍v���҂Ƃ����΁AAPI�J�����s����Brian Peek����gl.tter���ł��B�ӂ���̈̑�ȃn�b�J�[�ɁA���[���ł̃C���^�r���[�ɉ����Ă��������܂����B

�uWiimoteLib�v�̍�ҁFBrian Peek��

Brian Peek��

Q:�ǂ���ɂ��Z�܂��ł����H

A:�A�����J�A�j���[���[�N��Glenville�ɂ���ł��܂��B�j���[���[�N�s����120�}�C���قǖk�ɂ������Ƃ���ł��B

Q:���Ԃ̂��d���́H

A:�\�t�g�E�F�A�R���T���^���g�A���ҁA�����ăI�[���A���E���h��.NET���ł��ˁB

Q:WiimoteLib���J�����悤�Ǝv�������`�x�[�V�����́H

A:���́uCoding4Fun�v�Ƃ����E�F�u�T�C�g�̒��҂̈�l�Ȃ̂ŁA�v���W�F�N�g�Ƀg�s�b�N���K�v�ł���(��)�B���ۂɂ́A�����ł́u�ł��邩�ǂ��������v�Ƃ��������ł����B���̌�A���S�Ȃ��̂���������ɁA����WiiRemote��PC�Ŏg�����Ƃ̋���ȃ|�e���V����������ł����A�Ƃ��������ł��B

Q:�����ʔ����G�s�\�[�h�͂���܂��񂩁H

A:�����Ƃ��ʔ������ƂƂ����΁uNEWSWEEK�v���ɂ���Ď�ނ���A�L���Ƃ��Đ��E���ɔz�M���ꂽ���Ƃ��Ǝv���܂��B�G�L�T�C�e�B���O������...�B

Q:�����̖���ǎ҂ւ̃��b�Z�[�W���ǂ���

A:������������ȁuThank you�v�����̃��C�u�������g���Ċy����ł��ꂽ�F����ɂ��`���������ł��ˁB����͑�ςȎd���ł������A���΂炵��(amazing)�v���W�F�N�g���A���̃��C�u�������g���ēo�ꂵ�Ă���̂�q������̂͊y���������ł��B(���⌤�����́uLa Fleche l'odeur�v�Ȃǂ�����)���̎d�����A����Ȃɂ������̈قȂ�g�����Ɏg���Ă��邱�Ƃ�m���āA���ɖ������Ă��܂��B�@�@�\�\�\�u���C�A��

�uWiiYourself!�v�̍�ҁFgl.tter��

Q:�ǂ���ɂ��Z�܂��ł����H

A:�u�C�M���X��gl.tter�v�Ƃ�������点�Ă���B

Q:�uWiiYourself!�v���J�����悤�Ǝv�������`�x�[�V�����́H

A:���Ƃ͂Ƃ����΁A�����ׂ�(amazing)WiiRemote�ɐ�D�ȁAC++�̃Q�[���v���g�^�C�v�Ɏ��g��ł����񂾁B�l�͓���Brian Peek����.NET�̃R�[�h���烉�C�u�������������Ă��B�L�͂ɏ��������A�����̍D���ȕ��@�œ����悤�ɍœK�����A������񕡐���WiiRemote�̃T�|�[�g�A���悢�X�^�b�N�̃T�|�[�g�A�������o�A�X�s�[�J�[�@�\�ȂǁA�V�����@�\��lj������B���g�݂͂��߂ăx�[�^�����J�����̂��A2007�N��6���B�o�[�W����1.0��2008�N2��13�����J���ˁB�l�̃Q�[���A�C�f�A�́A1��1�̃��[�V�������蓖�Ă��K�v�������񂾁B�����WiiRemote�����ł͐������Ȃ������B�J���}��(Kalman)�t�B���^�[�Ƃ��A������萔�w�����ӂȁA����𓮂��悤�ɂ��Ă����u�N���v�����@�����‚��Ă����ɈႢ�Ȃ��A���ꂪ���̃��C�u���������J�����ЂƂ‚̗��R�Ȃ񂾁B

Q:�u�ǂ�����WiiYourself!�Ȃ�Ė��O�Ȃ́H�v

A:���O�͎��Ȑ����̈ꕔ�uGet your self Wii'ed up�v���WiiRemote���L�~�̃A�v�����”\�ɂ����I���ĈӖ��B�C�M���X�̂ق��̐l���������ʂ�C++���C�u�����ɑ΂��鉸�₩�ȃW���[�N�Ȃ񂾁B�ނ͂��̃��C�u���������J������Nintendo����Ɋ��ݕt���񂶂�Ȃ����Ƌ��ꂽ�̂ŁA�l�́uWiiYourself!�v���������񂾁B

Q:�ǂ����āu!�v�������Ă���́H

A:�P�Ȃ鋭���B�u���I���܂����I�v���Ă���(��)�B

Q:Wii�{�̂������Ă�H

A:�c�O�Ȃ��疳���B���Ċy���ވȊO�͗V�񂾂��Ɩ����񂾂�BWiiYourself!��Web�T�C�g�ɓ��悪����A�l�̃v���W�F�N�g�̃v���W�F�N�g�̂ЂƂ‚ł�������e�Q�[���uQ2Gunfrenzy�v���Ă����R���s���[�^�[�֌W����Ȃ��l���v���C�ł���悤�Ȃ̂������Ǝv���Ă�B�e���g���͎̂��R�ȍs�ׂ�����ˁB

Q:�c���[�ƁA�ŋ߂̋����́H

A:�}�C�N���\�t�g�́uProject Natal�v�͌����H�S�g�X�L�����Ɖ����F������BML�ɏЉ����A�݂�Ȝ������̂�������B

Q:�����̖���ǎ҂ւ̃��b�Z�[�W���ǂ���

A:�l��́A1��1�̃��[�V�����̎����ɂ́AWiiMotionPlus�̃W���C���X�R�[�v���Ȃ��ƕs�”\�����Ēm���Ă���A������WiiYourself!�ŃT�|�[�g�������Ǝv���Ă���B�@�@�\�\�\�\"gl.tter in UK"

�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@��

gl.tter���͓T�^�I�ȃC�M���X�̃n�b�J�[�Ƃ��������̐l���ł����A�����Ȑl�����Ɗ����܂��BML�ł̕ԓ��͂��܂߂ł����A�Ȃɂ���M������܂��B�Ȃ�WiiYourself!��v1.13����A�������ꂽ�΂���́uWiiMotionPlus�v���T�|�[�g����悤�ł��I

WiiMotionPlus�̏Ռ��Ɖ”\��

2009�N6���A�C�V����WiiRemote�̒lj��I�v�V�����uWii���[�V�����v���X�v(�{���ł́uWiiMotionPlus�v�ƕ\�L)�𔭔����܂����B

WiiMotionPlus�ƂƂ��ɔ��\���ꂽ�Q�[���^�C�g���uWii Sports Resort�v�́A���̖��̒ʂ�A���]�[�g�������Ղ�̃Q�[���ł��B

�uE3�v�ƁuGDC�v�A�uTGS�v�ƁuCEDEC�v

�@�A�����J�Ŗ��N6�����J�Â����uE3(http://www.e3expo.com/)�v��Electronic Entertainment Expo�̗��ŁA���傤�Ǔ��{�Ō����Γ����Q�[���V���E(TGS)�̂悤�ȃC�x���g�ł��B

�@E3�ɕ��ԁA�A�����J�ŊJ�Â����A�d�v�ȃQ�[���Z�p�̃J���t�@�����X���uGDC(http://www.gdconf.com/japan/japan.html)�v�ł��BGame Developers Conference�̗��ŁA���N3���ɊJ�Â���܂��B���{�ɂ͓��l�̋ƊE�J���t�@�����X�Ƃ��āuCEDEC�v�Ƃ����C�x���g������܂��BE3���Z�[���X�����AGDC���Z�p�����A�Ƃ������ݕ����ł��傤���B

5�{�������W���C��

���̂Ƃ���A�M�҂͂���WiiMotionPlus���A2008�N�́uE3�v�Ŕ��\����Ă���A���ۂɔ������O�ɂȂ�܂ł��܂苻���͂���܂���ł����B�{���ŏЉ�Ă����悤�ɁA�����WiiRemote�ł����Ȃ�̂��Ƃ��ł��܂��̂ŁA�C�V�����g���uWiiRemote�̃Z���T�[���s�\�����v�Ƃ������Ƃ������ĉ���Ă���悤���Ȃ��A�Ƌt�ɗ�߂Ă������炢�ł��B�������������O�ɂȂ��āA�C�V�������z�[���y�[�W�w�В����u���x�V���[�Y�Ō��J���ꂽ�AWiiMotionPlus�J����b��ǂ�ŁA�Ռ����󂯂܂����B

�w�В����u���x�uWii���[�V�����v���X�v�{�uWii Sports Resort�v���u2��ނ̃Z���T�[�̑g�ݍ��킹�Łv

http://wii.com/jp/articles/wii-motion-plus/crv/vol/page2.html

�@�w�В����u���x�V���[�Y�͔C�V����c�В������ځA�V�����v���W�F�N�g�Ɋ֌W�����Ј����C���^�r���[����`���ō\������Ă��܂��B

�@���̃y�[�W�̓d�q��H�S���̈ɓ����ɂ��w������1�b�Ԃ�1600�x�܂ŃZ���V���O�ł���悤�ɂ��܂����x�Ƃ������Ƃ��ǂ�ŁA���͈���ł���R�[�q�[�𐁂������ɂȂ�܂���(��)�B

�u�q���[�}���C���^�[�t�F�[�X�ɃW���C���X�R�[�v���g���v�Ƃ����A�C�f�B�A��WiiMotionPlus���p�C�I�j�A(����)�ł͂���܂���B�A�����J�̃W���C���[�V������(Gyration, http://www.gyration.com/)�����ɁA���������m����PC�𑀍�ł���󒆃W���C���}�E�X�Ȃǂ��J�����Ă���A�}�C�N���\�t�g�́uWindows XP Media Center Edition�v�̃����R���u���f�B�A�Z���^�[�E�����[�g�v�ɍ̗p����Ă��܂����B

���f�B�A�Z���^�[������[�g�́A���E�����̃����R���̐U�肾���Ń|�C���^�[�𓮂������Ƃ��ł��܂�(�ԊO���Z���T�[�͕s�v�ł�)�B���������ۂɎ����Ă݂�ƂȂ񂾂��u��������Ƃ��������v�ŁA����ɂ��܂蓮��ʂ��傫���Ȃ��̂ŁA�ړI�̈ʒu�A���Ƃ��Ή�ʂ̒[�܂Ń|�C���^�[�𓮂������߂ɉ��x�������R����U��Ȃ����K�v������܂����B

���̃W���C���X�R�[�v(�R���I���̗͂𗘗p������]���x�Z���T�[�ł��邱�Ƃ�����)���AWii�p�ɏ]���̌��o�����u5�{�v�ɍ��߂�Ƃ́c���{�̃Q�[���@��Y�ƁA����ׂ��A�ł��B

����ɂ��́w�В����u���x��ǂݐi�߂�ƁA�����Ɩʔ�����񂪏�����Ă��܂��B�{���ŏЉ�Ă����悤�ȁA�V�����C���^���N�V��������邽�߂̂��܂��܂Ȏ�����g�D�I�ɍs���Ă��邱�Ƃ��ǂݎ��܂��B�{���������܂œǂ݉������ǎ҂̊F����ł���΁A�C�V�����̊J���҂ł����܂��܂ȋ�J�����Ă��邱�Ƃ������ł���̂ł͂Ȃ��ł��傤���B

����SDK��S���������c���̊���́A�ǂ�ł��ă��N���N�ł���͂��ł��B�b�̒��ŏЉ��Ă���u�l�`�f���v�̕��ʊp�ł̉�](WiiRemote�𗧂Ă��Ƃ���Y����])�̃��[�V�����́A��ʂ̃Q�[���t�@���ɂ́u�H�v��������܂��񂪁A�{���̓ǎ҂͈ꌩ�ɒl���܂��B

���̑��ɂ��A�{���ň������b��ɋ߂��b���o�Ă��܂��B

�w�В����u���x�uWii Sports Resort�v���uWii���[�V�����v���X�Ő��~�߂��v

[URL] http://wii.com/jp/articles/wii-sports-resort/crv/vol/index.html

���̃y�[�W�ɂ���u�l�`�f���v�̓���͕K���ł��I

���u���@�̋Z�p��70�l�ƃ`�����o���v

[URL] http://wii.com/jp/articles/wii-sports-resort/crv/vol/page3.html

�@�{�{�����u���@�̎d�g�݁v�Ɛ�������u�U��ΐU��قǐ������Ȃ�v�Ƃ���������A�{���̓ǎ҂Ȃ�ǂ�����Ď������Ă���̂��A�z�����āA���삵�Ă݂����Ȃ��Ă���̂ł͂Ȃ��ł��傤���B

�u���~�߁v�͑�7�͂��9�͂ň����Ă���Ƃ���A�u�U�蔲���́v�Ɓu�~�߂�́v�̈Ⴂ�ŁA�]���̉����x�Z���T�[�ł����o�ł���̂ł����A���̏����ɂ͗��_��A���~���b�ł����A�f�B���C�����܂�Ă��܂��܂��B4000�~�ȉ��œ���ł���WiiRemote�ƃ\�t�g�E�F�A�Z�p�����ł͉����ł��Ȃ����E�������ɂ͂���܂��B

���́w�В����u���x�œǂݎ��郁�b�Z�[�W�́A�P�Ɂu�]���̉����x�Z���T�[�ɃW���C���X�R�[�v���‚��܂����v�Ƃ����b�ł͂Ȃ��̂ł͂Ȃ��ł��傤���B�����̃Z���T�[��g�ݍ��킹�A�����āA�{���ʼn�������悤�ȃC���^���N�V�������������邽�߂̃\�t�g�E�F�A�Z�p������A����ɖȖ��ȃe�X�g�̌J��Ԃ��ɂ��t�B�[�h�o�b�N�J���ɂ���Ă͂��߂āA�u��莩�R�Œ����I�Ŋy�������슴�v���ɂ߁A���x�ȃC���^���N�V��������荂�x�ɃQ�[���̌��ɂ����Ď����ł���悤�ɂȂ��Ă����̂ł��B���̊�Ǝp����C�V��������A���E�̃Q�[���t�@���ƃQ�[���Y�ƂɌ����Ĕ��M���Ă���̂��Ɗ����܂��B

WiiMotionPlus�A�C�O�̔���

���āA���{�l�̍������������uWiiMotionPlus�v�̊J���ł����A��L�w�В����u���x�̃y�[�W��(�����̒x��������Ă͂��܂���)�p���e����ɑf�����|�󂳂�uwii.com�v�őS���E�Ɍ����Č��J����Ă��܂��B

���̔��Ŋ��������o�ł����A���{���̔��������A�p�ꌗ�̂ق����AWiiMotionPlus�ɑ΂���J���҂̐���オ��͑傫���悤�Ɋ����܂��B�J���҃R�~���j�e�B�ł́A6���̓��{���������O�ɁAWiiRemote�����҂��W�܂�|�[�^���uWiiBrew�v�ɂ����āAWiiMotionPlus�ɐڑ����邽�߂̏�񂪕񍐂���Ă��܂��B

WiiBrew�ł�WiiMotionPlus���

[URL] http://wiibrew.org/wiki/Wiimote/Extension_Controllers

NOA(�C�V���A�����J)�̐헪������̂ł��傤�A�k�Ďs��ł͓��{�́uWii Sports Resort�v�̔�����2009�N6��25��������ɁA�uEA SPORTS Grand Slam Tennis�v�ƂƂ���2009�N6��8���ɁuWii Motion Plus�v���A�s��œ���ł���悤�ɂȂ�܂����B�A�����J�A���[���b�p�ł́uWii Sports Resort�v��7�������Ȃ̂ŁA�{�i�I��WiiMotionPlus�̏Ռ��́A���̂��Ƃ̃t�F�[�Y�ōL�����Ă���͂��ł��B

�C�V�������̃~�h���E�F�A�ł���uAiLive�v�������O�̑����i�K�őΉ����i���o���Ă��܂����B����AWiiMotionPlus���g�����V��������̃C���^���N�V�����J���́A���{�i�I�ɂ��܂��܂Ȑw�c����������œW�J������̂Ɨ\�����܂��B�l���x���̌����ҁA�w���v���W�F�N�g�Ƃ������������A��Ƃ̎��v�Ɛړ_�����ƒ`�����X�ł�����܂��B

�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@��

�C�V�����uReVolution�v�ŋN�������u�v���v�͂��̌�A�ǂ��֌������̂ł��傤���H�����̓��C�o���ł���}�C�N���\�t�g��\�j�[���A�V�����R���g���[���[(�ƐV�����C���^���N�V�����ւ̃A�v���[�`)�ɑ΂��Ė��m�ȓ����͏o���Ă��܂���ł������A���̃Q�[�����[�U�[���u�Z�ݕ����v�Ƃ��������Ɍ��������悤�Ɋ����܂��B

���[�U�[�̊��o�͂����ł������Ƃ��Ă��A�Q�[���Y�Ƃ̌����J����5�N�������Ƃ��āA������z���ē����Ă��܂��B�v���b�g�t�H�[���̒��S�ɂȂ�悤�ȋZ�p�v�f������A�����Đl�ނ̊m�ۂɂ‚��ẮA�e�ЂƂ��傫�ȓ��������m�ɂȂ��Ă��܂����B

�{�������́u�V�v���b�g�t�H�[����������2�N���v�Ƃ����A���̐ߖڂ̎����ł�����܂��B

�}�C�N���\�t�g�uProject Natal�v�̏Ռ�

��9�͂̍Ō�ɏЉ���W���j�[�E���[���̂悤�ɁA��w�̌����҂���}�C�N���\�t�g�œ����n�߂��l�������܂��B�W���j�[��Blog�ł������ɔ��\���������uProject Natal�v�Ƃ͂����������Ȃ̂ł��傤�H

�����T�C�g�uProject Natal�v

http://www.xbox.com/en-US/live/projectnatal/

�uProject Natal�v��2009�N6��1���A�}�C�N���\�t�g��E3�ŊJ�Â����L�҉�Ŕ��\����܂����B

��YouTube�`�����l���uXboxProjectNatal�v�Ȃ����̋L�҉�ɂ͉f��ēƒX�e�B�[�u���E�X�s���o�[�O�������\�҂Ƃ��ĎQ�����Ă���A�����̗l�q�͐�p��YouTube�`�����l���Ō��邱�Ƃ��ł��܂��B

http://www.youtube.com/user/xboxprojectnatal

��Steven Spielberg and Xbox Project Natal

http://www.youtube.com/watch?v=jh9plZmFIP4

�uProject Natal�v�́A�摜�J������[�x�J�����A�����z�u�����}�C�N���t�H�����p�v���Z�b�T����������Q�[���C���^�[�t�F�[�X�V�X�e���ŁA�S�g�̓�����3D�ŒǐՂ��A���߂�w���͉������g���āA�Q�[�����v���C�ł���Ƃ������̂ł��B

�{�[�����R��A�łA�L���b�`����Ƃ�����������R���g���[���[���g�p�����Ɏ������A��𓮂����A�����Ђ˂�A�b���ȂǁA���퐶���ōs�Ȃ���������邾���ŃL�����N�^�[�𓮂������Ƃ��ł���Ƃ������Ƃł��B�u�Q�[������R���g���[���[��s�v�ɂ���v�Ƃ������m�ȃR���Z�v�g���ł��o����Ă��܂��B

Xbox 360���g�����f���ł́A�v���C���[��48�J���̊֐߂�b��30�t���[���Ń��A���^�C���ɒǐՂ��A�e�Ԑڂ̕���������x�𕪐͂��A�l�Ԃ̐g�̂��ǂ̕����֓����̂���\�����Ă��������ł��B

�Ȃ��u�[�x�J�����v�Ƃ́u���s�����B�e�ł���J�����v�ł��B���݂����Șb�ɕ������邩������܂��񂪁A���ۂɐԊO����TOF(Time of Flight�A���𓊂��Ă���߂��Ă���܂ł̎���)���g���Đ[�x�J�����͎����ł��܂��B���͕M�҂�2004�N���A�������x���Ŏ��g��ł������Ƃ�����܂����A���̃}�C�N���\�t�g�͂��́uProject Natal�v�̂��߂ɁA���s���J�����ȂNJ֘A�Z�p�̉�Ђ𕡐����������A�ƃZ���V���O�f�o�C�X�ƊE�ł͉\�ɂȂ��Ă��܂��B

3DV Systems�uZcam�v

���̂�����1�ЁA�C�X���G���́u3DV Systems�v�Ђ�6��2���t���̃v���X�����[�X�Łu�T�[�h�p�[�e�B�����̏o�ׂ��~���܂����v�ƍ��m���o���܂����B

http://www.3dvsystems.com/news/news.html

TGS2007�ł�SIGGRAPH2008�ł����\���Ă����̂ŁA�����̃Q�[�����[�J�[�͖ڂ��‚��Ă����͂��ł����c�B

��You Are the Interface! ZCam?, 3DV's Depth-Sensing Camera (SIGGRAPH 2008)

http://www.siggraph.org/s2008/attendees/newtech/3.php

���Ȃ݂Ɂunatal�v�Ƃ͓��{��ł́u�o���v�Ƃ����Ӗ��ł��B�V�����G���^�e�C�����g�́u�o���v�ɂȂ邩�ǂ����A���҂��W�܂�܂��B

���́u�V�܁v�̃\�j�[

�����ЂƂ‚̍��Y���Y�Q�[���v���b�g�t�H�[���ƌ����΃\�j�[�ł��B������2009�N��E3�ɂ����āA�\�j�[��Natal�̂悤�ȑ傫�ȃV�X�e���ł͂Ȃ��A���݂̃v���b�g�t�H�[���ł���PlayStation3������2010�N�t��\��Ƀ��[�V�����Z���V���O�R���g���[���[�𓊓����Ă���悤�ł��B

PS3�p�uPlayStation Motion Controller�v

��Sony PS3 Motion Sensing Controller E3 2009 (YouTube����)

http://www.youtube.com/watch?v=gaQsXdKbUw8

��Engadget�ł̏Љ�

http://www.engadget.com/2009/06/02/sony-announces-new-ps3-motion-controller/

Play Station Eye�ƘA�g���邱�̃v���g�^�C�v�́A�J���[�{�[���̕t�����u���@�̏�v�Ƃ����������ڂł����A�~�����[�g���ȉ��̐��x�������Ă���Ƃ̂��Ƃł��B

�u�{�^���͊��S�ɂ͔p���Ȃ��v�Ƃ����R���Z�v�g�̂悤�ŁA�u���[�V�����R���g���[���[�Ō����g���A�]���̃R���g���[���[�ł���DualShock3�ŏ|���g���v�Ƃ������g������z�肵�Ă��邻���ł��B

���̓\�j�[�͉摜���g�����V�����Q�[���C���^�t�F�[�X�Ƃ��Ă͘V�܂ł�����܂��BPlayStation2�uEye Toy Play�v�������J�����x���ł�2001�N�ɂ̓v���g�^�C�v���o�Ă��܂������A�ŋ߂ł́uTHE EYE OF JUDGMENT�v�Ȃǂ̃J�[�h���g�����������܂��B

�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@��

�܂�ŃQ�[���G���̂悤�ɁA�{���������O�̍ŐV�̃Q�[���̓����ɂ‚��ă��|�[�g���Ă��܂��܂������A�v���b�g�t�H�[�����s���ׂ��A������G���^�e�C�����g�Z�p�̌����J���̕������́A�͂����肵�Ă����̂ł͂Ȃ��ł��傤���B

�V�����G���^�e�C�����g�A�C���^���N�V��������邽�߂ɂ́H�e�ЂƂ����̕����̌����J���ɕK���ł��B�\�t�g�E�F�A����n�[�h�E�F�A�A�C���^���N�V�����f�U�C���܂ł����郌�x���Ō��������i��ł��܂��B

�������x���̂��̂��A�ǂ�ǂ�ƐϋɓI�Ɏ�荞�܂�Ă����܂��B���{�̓C���^���N�V�����Z�p�̌����J�������E�ł����ɐi��ł��鍑�ł����A�����ڂ́u�`���h�����ɂ��������Ȃ��v�Ǝv���Ă������̕���̌������A���ꂩ��͐��E�I�Ɂu�M����������v�ɂȂ��Ă����ƍl���܂��B

���������ł͂Ȃ����ۂ̖ʔ����Q�[���ɂ��ǂ蒅���Ȃ���΂Ȃ�܂���B�Q�[���J���҂��A�����ăQ�[���G���Ȃǂ̃��f�B�A���A�����ăv���C���[���A�����́u�Q�[�����Ă̂́A����...�v�Ƃ����X�e���I�^�C�v�ɌŎ������A�V�����G���^�e�C�����g�Y�ƂƃC���^���N�e�B�u�Z�p�̖������������Ă��������Ƃ���ł��B

�\���̏�

�����Łu�\���̏��v�Ƒ肵�āA�G���^�e�C�����g�Z�p��10�N������Ă݂����Ǝv���܂��B

10�N�O�̏o����

10�N���肤�ɂ́A�܂�10�N�O�����邱�Ƃł��B

�̘b�ɂȂ��Ă��܂��܂����A�G���^�e�C�����g�Z�p�̌����J���Ƃ����΁A��炪���Y�\�j�[�́u�\�j�[�R���s���[�^�[�T�C�G���X������(Sony CSL)�v�Ƃ����������������Ă��܂��B�O�߂ŏЉ���uTHE EYE OF JUDGMENT�v�̋Z�p��CSL�́u�C���^���N�V�������{���g���[�v�Ƃ����������ŊJ������Ă��܂��B����SonyCSL�̓Q�[���Z�p�Ɍ��炸�A10�N�ȏ�O����l�X�ȃC���^���N�V�����V�X�e�����J�����Ă��܂����B

SonyCSL

[URL] http://www.sonycsl.co.jp/

�e���r�ł悭����Ȋw�ҖΖ،���Y�����������Ă��錤�����ł�����܂��B

1998�N��SIGGRAPH�ɂ����āA�M�҂́ASonyCSL�̗�{���ꎁ(���E����)�uHoloWall�v�ׂ̗ŁA�X���b�p�^�C���^�[�t�F�[�X�uFoot Interface: Fantastic Phantom Slipper!�v�𔭕\���Ă��܂����B�R�i�~���uDance Dance Revolution�v�𔭕\������̘̂b�ł��B

1998�N��SIGGRAPH�ł̏o����

��SIGGRAPH'98 Enhanced Realities Fact Sheet http://www.siggraph.org/s98/media/realities.html

��HoloWall(SonyCSL)

http://www.sonycsl.co.jp/person/rekimoto/holowall/

���̌�A��{���́ASonyCSL�Œ��N�C���^���N�V�������{���g���[�̎������΂߂��Ă����܂����B

�n���E�b�h�Ȃǂ�CG�Y�Ƃ̉e�����������E�ICG�̃t�F�X�e�B�o���Ɖ����Ă���uSIGGRAPH�v�ł����A�{���́u�R���s���[�^�[�O���t�B�b�N�X�ƃC���^���N�e�B�u�Z�p�v�̊w��ł��B1998�N�́uEnhanced Realities�v�Ƃ����A���݂ł́uEmerging Technologies�v�Ƃ��đ����Ă���A��i�I�ȃC���^���N�e�B�u�Z�p��W������f���Z�b�V����������܂����B

��L�̃t�@�N�g�V�[�g������ƁA��{���́uHoloWall: Interactive Digital Surfaces�v�ƕM�҂́uFoot Interface: Fantastic Phantom Slipper�v���ׂɕ���ł��܂��B���ۂɂ͂��ׂ̗�MIT�̊w�������[�U�[�X�L���i�[���g���ăC���^���N�e�B�u�ȃz���C�g�{�[�h������ēW�����Ă�����A���������{�b�g���g���ăQ�[����ʂƃC���^���N�V��������悤�ȃV�X�e�����W������Ă��܂����B���ɂ��L���m����MR(Mixed Reality�A����������)��������A�^���W�u���C���^�[�t�F�[�X�ŗL����MIT�Έ�T�搶�́uPingPongPlus�v��A����F�搶(�c���)�����E�I�ɗL���ɂȂ����u���w���ʁv���͂��߂Ĕ��\�����ꏊ�ł�����܂����B

���������10�N�O��U��Ԃ��Ă݂�ƁA�Ȃ񂾂����݂̃C���^���N�V�����Z�p�̊�ՂɂȂ��Ă���R���Z�v�g�A�Z�p�𐔑����������邱�Ƃ��ł��܂��B�����Č����҂�����10�N�O�Ƀf���𔺂��Ē�Ă����Z�p���A�܂������̎Y�ƂɂȂ��Ă��Ȃ����̂�����܂��B

�G��I�Ȍ������ԊJ���̂ɂ́A10�N���炢�̎��Ԃ�������A���������E�̎Y�Ƃ�傫���������悤�ȖG��I�Ȍ����ł���”\���������A���̎�̃C���^���N�V�����Z�p�̊�Ռ������A���́u���܂̓`���h�����ɂ��������Ȃ��v�Ƃ������Ƃ��������܂����ł��傤���H

����10�N��̌����g�s�b�N

�uSIGGRPAH'98�v���猻��܂ł�10�N�Ԃ̗��U��Ԃ�ƁA���܌����҂������M���Ȃ��Ă���u�l�^�v��10�N��̎Y�Ƃ̒��S�ɂȂ�Ƃ������Ƃ��A�����Â�����̂ł͂Ȃ��ł��傤���B

���́u�������Y�Ɓ������̊ԁv�Ƃ������Ԑi�s���o�́A���̂Ƃ��둼�̃n�C�e�N���p��������Ƃ��܂�ς�肠��܂���(��b�Ȋw�����ɂ�20�N����50�N�A����ȏ�Ƃ������������܂���...�I)�B

�ȉ��A�L�[���[�h�����ł��񋓂��Ă݂܂��B

�w�Q�[�������x����w�̌����x��

�w�S�g�x�̎��́w�G�o�x
�����A�S�g�A�Ƃ���ƁA���͐�΂Ɂw����肽����x�͂��ł��B�������G�o�̓��{�b�g�Z�p�Ƃ��֘A������A�i�������A���肵�ē��삷��A�ƂȂ�ƌ����J���Ɛ��Y�Z�p�ɓ������K�v�ȕ���ł��B������5�N��ł͒x���悤�ɂ��v���܂��B
�w�������낳�x�𕨗��I�ɑ���
�A���P�[�g�Ȃǂ̎�ςł͂Ȃ����@�Łu�g�̂��ǂꂮ�炢�g�������v�Ƃ����������I�ȕ��@�𑪂�Z�p���d�v�ɂȂ�ł��傤�B�V�񂾎��Ԃ�A�����������A������G�l���M�[�ȂǁA���̎�̕�������́u�ʔ����v���ʓI�ɑ��錮�ɂȂ�܂��B�������]���́u���[�U�r���e�B�]���v�Ƃ͑S���قȂ�u�ǂꂾ���V�񂾂��v�Ƃ����]���֐����K�v�ł��B
�e���r�ȊO�̏ꏊ�Ŏg��
�Q�[���@���u�e���r�Q�[���v�ƌĂ΂��̂́A���������I��肪���邩������܂���B�g�уQ�[���@��g�ѓd�b���r�f�I�Q�[���̎嗬�ɂȂ�A������ƒ�p�G���^�e�C�����g�V�X�e���ɋ��߂���@�\�ɂ‚��āA�r�W���A�����\���厲�ł͂Ȃ��Ȃ�A�L���Ӗ��ł̃R�~���j�P�[�V�����@�\�����S�ɂȂ�”\�����o�Ă���ł��傤�B�����łȂ���Όg�ѓd�b�̐i���ɕ����Ă��܂��܂��B
�w�S���`���f�o�C�X�x���J������
��L�́u�R�~���j�P�[�V�����@�\�v�Ɋ֘A���܂����A�g�ѓd�b�ł͂Ȃ����Ȃ��A�L���Ӗ��ł́A�R���s���[�^�[���f�B�A��ʂ����R�~���j�P�[�V�����Z�p�ɒ��ڂ��邱�Ƃ����厖�ł��B�ȒP�Ɍ����΁w�S���`���f�o�C�X�x�������ƊJ�����邱�Ƃł��傤�B
�����ɂȂ�Q�[�����爤�����Q�[����
�����ɂȂ��āA������Y��邽�߂Ƀv���C����A�Ƃ����u�Q�[���̖ړI�v�͂����ƕ��L���A�[�݂������Ă������ƂɂȂ�Ǝv���܂��B
�w�Q�[�������x����w�̌��Â���x��
���܂܂ł��A���ꂩ����A�Q�[���N���G�C�^�[�́u�Q�[���𔄂�v�̂ł͂Ȃ��u�̌����‚��肾���v�̂ł͂Ȃ��ł��傤���B�����ւ̏�M�ƁA��荞�݂��厖�ł��B

�A�[�g�͎��R�Ȃ���

�A�[�g�͐l�Ɋ�����^�������
�l�Ɋ�����^���Ȃ��A�[�g����������A�����Ă��������B�����̃Q�[�����A���̈ꕔ���Ǝv���܂��B
�~���[�W�A���֍s�����I
���{�ɂ́u���f�B�A�A�[�g�v��u�f�o�C�X�A�[�g�v�ƌĂ΂��Z�p�ƌ|�p�ƍI�݂̋Z���Z�������T�����삪����܂��B����͐��E�Ɍւ����{�̋Z�p�ł��蕶���ł��B���Ѓ~���[�W�A���ɏo�����āA�����̎�ŐG���āA�̌����āA���L���Ă݂Ă��������B
�u�J���C�C���Ɓv�����\�ɂȂ鎞��
�u���{�b�g�t�H���v�A�u�V���t�����v�ȂǁA�f�o�C�X�A�[�g�Ɍ��������Ƃł͂Ȃ��̂ł����A���܌g�ѓd�b�Łu�f�U�C�������\�v�ƌ����Ă��N�����ے�͂��Ȃ��ł��傤�B���l�Ɂu�J���C�C���Ɓv�����\�ɂȂ鎞�������̂ł͂Ȃ��ł��傤���B�u���킢���I�v�Ǝv���邱�Ƃ����W�J���ɍl���A�L���Ӗ��ł̋Z�p���������鎞�オ���Ă��܂��B
�����́u���f�B�A�A�[�g�v�͖����́u�Y�Ɓv�H
�u�����v�Ɓu�����v�̊Ԃ��ǂꂮ�炢����Ă���̂��A�߂��̂��c�͈ӊO�ɊF����̈ӎ������������肵�܂��B
�A�[�g�͎��R�Ȃ���
�����Ȃ�ł��A�{���I�Ɏ��R�Ȃ��̂Ȃ̂ł��B����������Ǝ��R�ɍl���Ȃ���΂Ȃ�܂��񂵁A�����̃A�[�g�������̎Y�ƂɂȂ��Ă��܂�����́A�A�[�e�B�X�g�́A�����Ƃ����ƁA�A���@���M�����h�ɁA���R�ɍl���Ȃ���΂Ȃ�Ȃ��ł��傤�B�Z�p�I�Ȏ��Ȃ�āA���\�ǂ��ł��������Ƃ��炯�ł��B���Ԃ𒴂��ĈӖ��𐶂ݏo���u�ߋ��̃A�[�g�v���A����������o���Ă��������B

�w��������A�ł��邱��

���ۊw��VR�R���e�X�g(IVRC)
�����{������Ɏ�������Ȃ����w���ŁA���E�̃X�e�[�W�Ŋ��􂵂����̂ł���΁AIVRC�ɎQ������ׂ��ł��B
���Ɛ���E���ƌ���
�����������A����Ǒ����A�ł��B���������̑��ƌ������l����ς���Ƃ͎v���Ă��܂���ł������A15�N��Ɏ����ň��p���邱�ƂɂȂ�Ƃ͎v���܂���ł����B
�܂��܂�����������Ȃ�
�^�ʖڂɌ������܂��傤�B�X�g�C�b�N�Ɍ������܂��傤�B�搶�Ɍ���ꂽ���Ƃ��J�����������Ŗ������Ă��邤���́A�����������Ƃɂ͂Ȃ�܂���B�u�悯���Ȃ��Ɓv�����܂��傤�A���E�������ƌ��킹��悤�ȁB
�w��������A�ł��邱��
�w���̗��_�Ƃ����΁u�����́v�ł��BMIT�Έ�T�搶���u�o������Y�͑ł���Ȃ��v�ƌ����Ă��܂����A�{���ɂ��̒ʂ�ł��B��������炵����l������Ă��āA�킩�����悤�Ȃ��Ƃ������āA���Ȃ��̃��`�x�[�V�������������Ƃ��Ă��A����ȎG���ɕ�������A���Ȃ��̕����ł��B�����������͂𔺂��āA�C�O����uAmazing!�v�ƌ����܂��傤�B���Ȃ݂�Amazing�̖�́u��v�ł͂���܂���A�u�������I�v�Ɩ󂷂ׂ��ł��B

�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@��

�������ɁF���ӂ̌��t

�Ō�̍Ō�ɁA���ӂ̌��t�ŏI��肽���Ƃ������܂��B

�܂��A���ۊw��VR�R���e�X�g�uIVRC�v�Ɋւ�����F����Ɋ��ӂł��B����搶�Ƃ̏o���IVRC�ł������A���Ɛ����������Q�[���ƊE�ɏA�E���Ă��܂��B�l�b�g�⎆�ʂł͏Љ�ł��Ȃ��悤�ȉ�����Face2Face�̃R�~���j�e�B�𒷔NIVRC���x���Ă��������Ă�����s�ψ����̊�?����(����A���c���)���͂��߃{�����e�B�A�w���̊F����A��Ƃ̊F����Ɋ��ӂł��B

�����āA�u�C�V���ւ݂̂Ȃ���v�Ɋ��ӂł��B�{���̓n�b�L���O��ړI�Ƃ������Ђł͂���܂���B�Q�[���ƊE�̖�����ꂩ��x����ׂ̏��ЂɂȂ�悤�A�撣���ď������‚���ł��B���j�Ɏc��v���A�u�^�̉��l����J���v���s�����͕̂�����Ȃ��C�V���̊F����ł��B�{���͂��̋Z�p����j�̈ꕔ����闧��ʼn�������Ă��������������ł��B���������̋Z�p���u�A���_�[�O���E���h�ȃn�b�L���O�v�ł͂Ȃ����{�̃Q�[���������Z�p�ʂ���x�����Ռ����͂ɂȂ��čs�����Ƃ����͖]��ł��܂��B�{���̓ǎ҂��C�V����T�[�h�p�[�e�B�̏A�E�ʐڂɗ����Ƃ��́A�ޓ���������������Ă���������΍K���ł��B

�����čŌ�Ɂu�ǎ҂̖����Ɋ��Ӂv�������Ƃ������܂��B

�t�����X����3�N�ԁA���{���i�i�����猩�Ă����M�҂́A�Q�[���Y�Ƃ�C���^���N�V�����Z�p�̍Ő�[���s�����{�������܂����Ďd�����Ȃ������ł��B����͉��Ă̊w������ɋ��ʂ̊��o�Ȃ̂ł��B

���͌��݁A���{�Ő��E�̊F����Ɍ����āA�Ȋw��`����d�������Ă��܂��B

���̖{����ɂƂ��āA�Ō�܂œǔj���ꂽ���Ȃ��͂����A�Q�[���Ɏg���Ă���C���^���N�e�B�u�Z�p���u�����̗V�сv�Ƃ͎v��Ȃ��Ȃ��Ă���ł��傤�B

�����āA���̐�̖����ɂ́A�����̑����Ƃ���܂������‚Ȃ������u���v��������͂��ł��B���̓��������������Ői�ނ��߂́A�v���O���~���O�ƍl�����Ƃ����u�ŏ��̕���v���A�{���͎������͂��ł��B

����΂��Ă��������A�܂����������܂��傤�I

2009�N7��1���A�z�[���^�E���̃}�N�h�i���h�̂��‚��̐ȂŁ@�@�@�\�\���炢�����Ђ�

�{���̃z�[���y�[�W�ł�����܂��傤

http://akihiko.shirai.as/projects/WiiRemote/

Google Groups�Ŏ�����󂯕t���Ă��܂��B

appendix

�l�b�g�œ���ł���WiiRemote�ŐV���

���C�V�������w�����u���x(wii.com)

���E�������ڂ��Ă��܂��B�L��헪�Ƃ��Ă��A�_�C���N�g�Ɏv�z���`�����ɂ悢�����y�[�W���Ǝv���܂��B

��WiiLi.org http://wiili.org/

��WiiBrew http://wiibrew.org/

��Wiimote Project http://www.wiimoteproject.com/

��mixi�R�~���uWii�����R����PC�Ŏg����vhttp://mixi.jp/view_community.pl?id=1610444

���{����Google Docs http://code.��

���M�҂�Blog��

�֘A�}��

����㗝.�C�V���g�����h�𐶂ޕ�����.���{�o�ϐV���o�Ŏ�, 2009.

�A�E�����ŔC�V�����u�]����l�́w�В����u���x�Ƌ��ɓǂ�ł����������ǂ��{�ł��B

�������݂�����. Visual C# 2008�t�����N�C�b�N���t�@�����XWindows Vista/XP�Ή�.�����R�~���j�P�[�V�����Y, 2009.

���̖��̒ʂ�AC#�ŋt�����������Ƃ��ɕ֗��Ȗ{�ł��B

�����㋱�q.���G�`���\�t�g���Ŋw�ԃO���t�B�b�N�X�v���O���~���O����.�G�a�V�X�e��, 2007.

Windows�ł��G�����\�t�g���J�����邽�߂̃v���O���~���O����{�ł��B���G�����\�t�g�������ŊJ���������l�͕K�ǂł��B���҂̑��㋱�q����͖{��9�͂łق�̏��������������u�ς҂Ղ؃y�C���^�[�v�̎菑�����p�X�e���`��G���W�����J�����������҂ł�����܂��B

���Ė{��.�y�����d�q�y��|����̃X�X���|.�I�[���ЊJ����, 2008.

�{���ł̓e���~���ɂ‚��Ă������舵���Ă��܂��܂������A���[���d�q�y��̐��E���܂Ƃ܂��Ă��܂��B�u���y�A�[�g×���c���āv���u�]����l�͂��ЁB

����C�q��. XML SmartDoc�������t�@�����X�}�j���A��.�s�A�\���G�f���P�[�V����, 2002.

�{�����M�ɂ�SmartDoc���g���܂����B�{���̂悤�ȋ���ȏ��Ђ������̂ɂ͌����Ă��Ȃ���������܂��񂪁A�e�L�X�g�G�f�B�^�Ŏ��M���ASVN�Ń\�[�X���Ǘ����AHTML��TeX�𓯎��ɍ쐬�������Ƃ��͕֗��ł��傤�B

�_��

����ŕF�A�v�ėS��Y�A�Óc���v�A���c�L�F:���w�I�R�����ʒu���o�@��p�������A���^�C���l�ԓ�����̓f�o�C�X�A�e���r�W�����w��Z�p�񍐁A20���A7���App.21-26�A1996.

Akihiko SHIRAI, Erik GESLIN, Simon RICHIR, WiiMedia: motion analysis methods and applications using a consumer video game controller, Sandbox: an ACM SIGGRAPH Video Game Symposium, San-Diego, 2007.

���̑��A�M�҂̘_���̓z�[���y�[�W(http://akihiko.shirai.as/)��A�uCiNii�v���̘_�������T�C�g�œ���”\�ł��B

�Q�l����

[1]��r ����. �o�[�`�������A���e�B�͎q�ǂ��ɉ����ł��邩 : �Տ���ʂł�VR. ���{�o�[�`�������A���e�B�w� = Journal of the Virtual Reality Society of Japan, 2003/09/25.
[2]���� �ŕF. �G���^�e�C�����g�V�X�e��. �|�p�Ȋw��_����, 2004.