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��u@-quoted 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‹Á‚­‚Ù‚ÇŠÈ’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.