���̏͂ł͖ؑ��G�h����̂����͂ɂ��AWiiFlash��Flash��ActionScript���ł͂Ȃ��AProcessing���g���ė��p������@��������Ă��Ă����܂��B
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
�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���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�͂ƂĂ��Ȓ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
��������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���N�����邾���ł��B�N�����̃X�v���b�V���E�B���h�E���\�����ꂽ��A�ȉ��̂悤�ȉ�ʂɂȂ�ΐ����ł��B
�܂���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
���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
��ʂ肱�̃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
�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
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���Ȃǂ�
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
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
�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�����[�^���㉺������ if (wiimote.up.pressed) { someparam++; } else if (wiimote.down.pressed) { someparam--; } if (wiimote.a.pushed) { background(10); // A�{�^���������ꂽ���ʂ����� }
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
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
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);
�Ō��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
���ā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