広島工業大学紀要研究編
第 43 巻（2009）pp.323-330

論

文

触覚デバイスを用いたバーチャルギターの開発
田村真晴＊・山下英生＊＊（平成 20 年 10 月 31 日受理）

Development of a Virtual Guitar using Haptic Device
Masaharu TAMURA and Hideo YAMASHITA（Received Oct. 31, 2008）

Abstract
In recent years, a haptic device that output power as one of the computer output
devices has been developed. We can get the feeling that we really touch the material
through a sensor of haptic device when we touch a material simulated in a computer.
In this research, a virtual guitar in which the feeling playing guitar and the soundvolume are changed by adjusting power to input with a haptic device wasdeveloped. With the haptic device we feel as if we play a genuine guitar. Moreover,it seems that we can play various musical instruments by enhancing the system.
The purpose of this paper is to describe the composition of the virtual guitar
system and the calculation methods of power and sounds playing virtual guitar.

Key Words: haptic device, virtual guitar, vibration of bowstring, repulsion power ofbowstring

モデリングした映像をディスプレイに表示し，対象の動き

1．はじめにや，それに触ったときの弾力などを計算して触覚デバイス

コンピュータには様々な出力デバイスがある。映像や文に力を出力することにより，視覚および触覚情報を提示で字を出力するディスプレイ，音を出力するスピーカーなどきる。また，単純にある作業の力覚情報のみを記録し，そが一般的な出力デバイスであるが，力を出力する触覚デバの情報を元にその作業の訓練を行うシステムの研究開発もイスと呼ばれるデバイスがある。触覚デバイスは，コンピ行われている 2）。これは，ベテランの操作者がある作業をュータ内で計算・設定した力を，触覚デバイスのコントロ行った力覚情報を記録し，その力覚情報を再生することにーラに出力することができる装置である。これを応用する

より作業の力覚情報を実感することで，その作業の訓練をことにより，コンピュータ内で模擬された物質に触覚デバ行うものである。

イスを用いて触ると，実際にその物質に触っているような本研究では，この触覚デバイスを用いて，入力する力を加減することにより，ギターを弾く触感や音の大きさが変触感を得ることができる。
この触覚デバイスを使い，医学の分野において人間の本化するバーチャルギターシステムの開発を行った 3），4）。

物の身体を用いることなく，コンピュータを用いて手術の触覚デバイスを用いてコンピュータ内で模擬されたギター

1）

訓練をするシステムの研究開発が行われている 。対象を
* 広島工業大学大学院工学研究科情報システム工学専攻** 広島工業大学情報学部知的情報システム学科―323―

を弾くと，本物のギターを弾いているような触感が得られ田村真晴・山下英生

る。また，ギターを弾く力を加減することにより音の強弱接触による反発力を手に感じることができる。あらかじめをつけることができる。このようなバーチャル楽器は，他設定された硬さや摩擦力などから力を計算し，その大きさの楽器への拡張も可能で，さまざまな応用分野があると思に相当する力がコントローラにフィードバックされる。こわれる。の結果，このオブジェクトが表す物体に触っているような触感を得ることができる。

2．バーチャルギターシステムの概要

オブジェクトへの接触だけではなく，コントローラに付バーチャルギターとは，コンピュータ内で模擬されたギいているボタンの入力，カーソルがオブジェクトの一定距ターを，本物のギターを弾いているような感触で弾くこと離内に近づくなどのイベントに応じて力を出力することもができるシステムを目指す。触覚デバイスのコントローラできる。触角デバイスとコンピュータの関係を図 2 に示す。とギターを弾くピックを連動させて，ピックを用いてコンまた，単に入力装置や出力装置として使用することも可能

ピュータディスプレイ上に表示されたギターを弾く。これである。つまり，三次元コントローラとして使用したり，により，各弦に設定された振動周波数の音が出力される。

キーボードなどの他の入力装置からの入力に応じて力を出

触角デバイスは，バーチャルギターシステムにおいてギタ力したりすることも可能である。

ーの弦を弾く際の入力装置として使用され，ギターの弦を弾いたときの力の反応を感じることができる。
触覚デバイスを用いる利点としては，実際にギターを弾いているような触感が得られることである。弦の長さや線密度，弦とピックの距離などから弾力を計算して，触覚デバイスのコントローラに力を出力することにより，実際にギターを弾いているような触感が得られる。また，ギターを弾く強さによって音の強弱をつけることができる。強い力でギターを弾けば大きな音が，弱い力で弾けば小さな音が出力される。
バーチャルギターの音階の変更は，キーボードのキーを押さえることにより実現する。ある一つのキーを押すと，
図 1 触覚デバイス「PHANTOM Omini」

そのキーに対応したコードの音階を各弦に設定し，キーを押している間にその弦を弾けば弦に設定された音階の音が出力される。音が出力されている最中にピックが弦に触れると，その弦が出力している音が止まる。

3．触覚デバイス
触覚デバイスは，コンピュータ内で設定した力を出力することが出来るデバイスである。本研究で使用した触覚デ
図 2 触覚デバイスとコンピュータの関連

バイスは「PHANTOM Omini」と呼ばれる触覚デバイスであり，本体から伸びたアームの先にペン型のコントローラが付いている。「PHANTOM Omini」は最大出力が4．力の計算

3.3N と小さいため，あまり大きな力を使うシステムは作

ピックを用いて弦を弾いたときの反発力は，次のようにれないが，ギターの反発力程度なら適当である。触覚デバ計算する。まず弦の中心に最も近いピック上の点を求め，イス「PHANTOM Omini」の外観を図 1 に示す。
触覚デバイスのコントローラは，ワークスペース内におこの点と弦の中心位置から接触判定や力の計算を行う。そけるコントローラの現在位置座標を知ることができる。図

して，弦長から弦の反発係数を計算し，それらを元に弦の1 のコントローラ部分を持って動かすことにより，コント反発力を計算する。このようにして求めた力を触覚デバイ

ローラの動きに連動して，ディスプレイ上の三次元空間内スに出力する。

で表示されたカーソルが動く。このカーソルを操作して，三次元空間内のオブジェクトに接触すれば，ユーザはその―324―触覚デバイスを用いたバーチャルギターの開発

4.1

弦の中心に最も近いピック上の点の座標算出

図 3 にピックを使用して弦を弾くときの，ピックと弦の位置関係を示す。弦の中心点を点 Oとし，点 Oに最も近いピック上の点 P の座標を求める。この点の座標は，弦とピックの接触判定や反発力の計算に使用する。ピックの両端をそれぞれ点 D ，点 E とする。点 O から DE を通る直線に下ろした垂線とその直線の交点が点 P となる。点 Oに最も近いピック上の点の座標を求めるには，まずピックの傾きからベクトル OP の単位ベクトル N を求めておく。点 D ，点 E の座標はピックの中心座標とピックの傾きから求めることができる。長さ | OP |を求めれば，点 P の座標が求ま

図 4 点 P が線分 DE 外にある状態の弦とピックの断面図（1）式により，点 P の座標は（2）る。すなわち，長さ| OP |は4.2

式により求めることができる。

| OP | = OD : N …………………………………………（1）P = O + N : | OP | ………………………………………（2）

弦の反発係数の算出

弦の反発係数 k を算出する。弦の反発係数とは，弦を押さえたときに弦が元の位置に戻ろうとする力の係数である。弦の全長を , 0 [m]，ピックで弾く弦の弦長を , [m]，弦の線密度を t [kg/m]，弦の固有振動数を f [Hz]とおく。こ（2）式の P ， O は点 P ，点 O の座標を表すベクトルである。

れらの値からピックで弦を弾く位置と弦の張力を求め，そ

点 P が線分 DE 上にあるとき，点 P が点 O に最も近いピッこから弦の反発係数を求める。ただし，弦長と固有振動数ク上の点となる。点 P が線分 DE の外側にある場合，点 Pは音階変更を行うと変化する。の x 座標がピックの中心点 C の x 座標より小さければ点 E

一般にギターにおいて，弦をピックで弾く位置は，弦のを，大きければ点 Dを，点 Oに最も近いピック上の点とすブリッジから弦の全長の約 1/8 の距離 p の位置となる。こる。点 P が線分 DE 外にある状態を図 4 に示す。上述のよこでは，弦を弾く位置を，ブリッジから弦の全長の 1/8 のうにして求めた，点 Oに最も近いピック上の点を使い，接距離の位置に固定している。ブリッジから弦を弾く位置ま触判定や反発力の計算を行う。

での距離 p と弦の張力 T は，（3），（4）式で与えられる。

p = , 0 /8 [m] ……………………………………………（3）T = (2,f) 2 t [N] …………………………………………（4）両端を固定された弦に力を加えるとき，弦に力を加える位置によって，弦を一定距離だけ動かすときに必要な力の大きさが変わってくる。力を加える位置から弦の両端までの距離を，それぞれ p ， , - p とすると，弦の反発係数 kは（5）式で求められる。また，弦の変位距離を a としたときの弦の状態を図 5 に示す。

k = T (1/p + 1/ (, - p))
図 3 弦とピックの断面図…………………………（5）

ここで求めた弦の反発係数 k を使って反発力を求める。
触覚デバイスのコントローラを操作する（ピックを動かす）ことにより，図 5 に示すように弦がピックに押さえ込まれることによって移動する距離 a が常に変化するので，一定時間ごとに a を算出して反発力を求め，コントローラにその力をフィードバックさせる。

―325―田村真晴・山下英生

図 5 ピックにより押さえ込まれた状態の弦
図 6 弦とピックの接触時の断面図

4.3

反発力の計算弦とピックの接触判定を行い，接触していると判定すると反発力の計算を行う。接触している状態とは，コンピュータ内では弦とピックが交わっている状態であり，その状態を図 6 に示す。反発力を F ，弦の反発係数を k ，弦の中心点を点 O とし，点 O に最も近いピック上の点を点 P とする。ピックが弦と接触してから点 Oに近づいた距離，つまり弦の変位距離を a とし，ベクトル OP の単位ベクトルをN とする。弦の半径を r としたとき，弦の変位距離 a は（6）式により求める。図 6 のような状態でのピックにかかる反図 7 領域設定

発力 F を（7）式により求める。

a = r - | OP | ……………………………………………（6）F = (a : k) N ……………………………………………（7）しかし，この計算方法ではピックが弦の中心を通過すると反発力が逆方向に働いてしまう。そこで，図 7 のような領域設定を行う。図 7 のように弦の中心を基準に A ， B ，C ， D の 4 つの領域を設定したとき，1 フレーム前に点 Pが位置していた領域の，点 Oに対して対称の領域に点 P が（8）入った場合，点 P がその領域を出るまで反発力の計算を
図 8 ピックが弦の中心を通過したときの断面図式に変更する。

F = - ((r + | OP |) * k) N ………………………………（8）
これにより，ピックが弦の中心を通過しても，反発力が5．音データの作成
弦をピックで弾いたとき，弦を弾く強さと各音階のギタ逆方向に働くことはなくなる。このときの状態の断面図を
図 8 に示す。

ーの音波データから，出力する音波データを作成し，そのデータから WAVE 音源を作成して音をスピーカーに出力する。ギターを弾く強さによって音の強弱が決まり，ギターの音波データによって音階が決まる。ギターの音波デー
タは，音階ごとに音波データファイルを作成して，そこからデータを読込む。ギターを弾く強さと音の減衰率から再生時間を計算し，それを元に出力する音波データのサイズを求める。これらのデータから出力する音波データを作成する。
―326―

触覚デバイスを用いたバーチャルギターの開発

5.1

5.3

減衰振動

データサイズ計算

減衰振動とは時定数 a で音波の大きさが減少していく振音波データを作成するためにデータサイズを求める必要動のことであり，ギターの音波も減衰振動波として扱う。

がある。データサイズは，音波データを記憶する配列のデつまり，ピックで弦を弾いたときに出力される音の大きさータ領域確保と，WAVE 音源の作成に必要となる。サンは徐々に小さくなっていく。実際には音の高さや弾き方にプリング周波数を f s としたとき，データサイズは（11）式でより a は変化するが，バーチャルギターシステムでは減衰求められる。

率をすべての音波に対して a = 1.0 秒とする。すなわち，最初の振幅の大きさを A とするとき， t 秒後の減衰した振Datasize = t 0 : f s : チャンネル数: 量子化ビット数/8 ………………（11）

幅 Y は（9）式で表せる。縦軸が振幅，横軸が経過秒数とし，A = 1.0 としたときの正弦波の減衰振動を図 9 に示す。青色の線が振幅の大きさを表し，紫の線が波形を表している。

Y = A : exp (- 1.0 : t)…………………………………（9）チャンネル数とは音出力のチャンネル数のことで，モノラルだと 1，ステレオだと 2 となる。今回はモノラル設定とした。
サンプリング周波数とは，音波などをデジタルデータにする際に，1 秒間に採取する標本の頻度のことである。サンプリング周波数は採取対象音波の周波数の 2 倍以上でなければ，採取対象音波と異なる周波数の波形となる。現在
バーチャルギターシステムでは 1046Hz のドの音が最も高い周波数の音なので，サンプリング周波数は 2092Hz 以上である必要がある。サンプリング周波数が大きいほど，より高音質の音になるが，その分計算に時間がかかるためにシステムの動作が遅くなる。音楽 CD などのサンプリング

図 9 減衰振動

周波数は 44.1kHz となっているが，このサンプリング周波数の音波データで計算を行うと，本システムの動作が遅5.2再生時間の計算くなって満足に機能しなかった。そこで，本システムの動音波データのデータサイズを計算するために音の再生時作に影響がなく，なるべく高いサンプリング周波数を調べ間を計算する必要がある。音波は減衰振動するので，音波た結果 12kHz 位が妥当だということが分かった。本研究の振幅が 0 になるまでの時間が再生時間となる。しかし，では計算のしやすさなどを考慮に入れてサンプリング周波ある程度振幅が小さくなると人間の耳ではほとんど聞こえ数を 11.025kHz とした。

なくなる。そこで，振幅がある一定の大きさ A 0 以下になるまでの時間を再生時間 t 0 とした。

5.4

音波データ作成

弦を弾く強さは，弦の変位距離 a で表される。弦を弾く

音を 1 秒間再生するのに必要なデータ数は，サンプリン強さの最大値，つまり最大音量が出る弦の変位距離をグ周波数 f s に等しくなる。すなわち，音波データは 1/f s 秒

V̲MAX とする。弦を弾く強さは，量子化した量（ここ間隔で，減衰を考慮した波形の大きさを配列に格納するこでは 16 ビット）で表しているので，振幅の最大値はとになる。その配列の添え字番号を i としたときの音波デ32767 となる。再生開始から t 秒後の弦の振幅を A としたータは（12）式で与えられる。

とき（10）式が成り立つ。

W [i] = exp (- 1.0 (i/f s )) : a/V_MAX : w [i] ………（12）A = exp (- t) : (a/V_MAX) : 32767 …………………（10）t を 1 秒ずつ増やしながら A を計算し， A が閾値 A 0 以下になったときの時間 t を再生時間とした。現在，振幅の閾値 A 0 は，実際に再生してみてほとんど音が聞こえなかった値の 20 としている。

ここで w [i]は，ギターの減衰していない音波の元データを記憶している配列である。総データ数 DNum は（13）式で求める。

DNum = t 0 : f s …………………………………………（13）（12）
式の計算を，i が 0 から DNum-1 になるまで行えば，配列 W に再生する音波データが作られる。これにより作―327―

田村真晴・山下英生（1）メイン画面成した音波データから WAVE 音源を作成し，ギター音を出力する。

図 10 の右側がメイン画面で，弦を弾く部分を拡大して表示している。その拡大図を図 11 に示す。触覚デバイス

6．バーチャルギターシステムの機能のコントローラと連動させたピックで弦を弾くことによっバーチャルギターシステムの機能，および実行画面におて，実際にギターを弾いているような触感が得られ，音がける表示についての説明を行う。また，バーチャルギター出力される。

システムで使用するコード割当てファイルを作成するための，コード割当てプログラムについての説明も行う。

6.1

音階変更

ギターの音階はフレット部の弦を押さえることにより変更するが，弦を押さえる動作をキーボードのキーを押さえる動作に対応させた。しかし，6 つの弦の各フレットを押さえる動作全てをキーボードのキーに割当てるにはキーの数が足りない。そこで，音階の変更をド，レ，ミなどの単音から C，C#，D などのコード単位で変更することにした。コードとは和音のことである。
ある一つのキーを押すと，そのキーに対応したコードの
図 11

音階を各弦に設定する。キーを押している間にその弦を弾

メイン画面

けば，弦に設定された音階の音が出力される。一般的に，（2）コード対応表示画面

一つの曲に使用するコードの数はあまり多くないので，使用するコードのみを複数キーに割当てて使用する。現在の

図 10 の左上がコード対応表示画面で，音階変更の際にシステムは，「z・x・c・v・a・s・d・f・q・w・e・r」の押すキーボードのキーとギターコードとの対応が表示され12 個のキーにコードを設定できる。ている。その拡大図を図 12 に示す。コード対応表示画面のキー配置はコンピュータのキーボードと同じキー配置で6.2システム実行画面対応している。四角い枠が一つのキーを表し，その中に設バーチャルギターシステムの実行画面を図 10 に示す。

定されたコードを赤い文字で表示している。そして，枠の実行画面の画面構成は，（1）ギターを弾く部分を拡大表示

左下に対応するキーのアルファベットが記述されている。

するメイン画面，（2）ギターのコードとキーボードのキー

画面下には現在設定されているコード割当てのスロット番の対応を表示するコード対応表示画面，（3）フレット部分号が表示されている。コード割り当ての設定を記録したフを拡大表示しているフレット部表示画面の 3 つの画面を一ァイルがスロット 0 〜 9 にあり，これらはポップアップメつのウィンドウに表示している。

ニューから切り替えることができる。

図 10

図 12

バーチャルギターシステム実行画面―328―

コード対応表示画面

触覚デバイスを用いたバーチャルギターの開発（3）フレット部表示画面面と同じ配置で表示される。

図 10 の左下がフレット部表示画面で，フレットの部分

コード割当て設定ファイルの変更は，バーチャルギターを拡大して表示している。その拡大図を図 13 に示す。弦システムのポップアップメニューから行える。バーチャルの部分に表示された赤い球体オブジェクトは，音階変更のギターシステムの実行画面上で右クリックするとポップアキーを押しているときに表示され，現在，弦のどの位置をップメニューが開き，コード割当て設定ファイル作成時に押さえているかを表す。コードに対応したキーを押さえる入力した設定名が表示される。そのときの状態を図 16 にと，そのコードで弦を押さえる位置に赤い球体オブジェク示す。ここで，［曲名 0］を選べば［曲名 0］の，［曲名 2］トが表示される。また，この画面の左側に現在押されていを選べば［曲名 2］のコード割当て設定が読込まれて，コるコードの文字が表示される。

ード対応表示画面にそのコード割当てが表示されます。

図 14
図 136.3

コード割当てプログラム実行画面

フレット部表示画面

コード割当てさまざまな曲に対応するため，キーボードのキーに自由にコードを割当てた設定ファイルをいくつか作り，登録しておく。弾きたい曲に対応するコードの割当てを，登録したファイルから読込むようにした。コード割当て設定ファイルの作成は，バーチャルギターシステムとは別のプログラムで行う。
コード割当てプログラムの実行画面を図 14 に示す。メ
ニューの［ファイル］からコード割当て設定ファイルの読込みと保存，プログラムの終了が行える。また，メニュー

図 15

コード割当て画面の［コード］から［コード設定］を選ぶと，図 15 のようなコード割当て画面が表示される。ここでコードの割当てと，コード割当て設定の名前の入力を行う。これらの設定を，実行画面のメニューから任意のスロットに保存すれば，コード割当て設定ファイルが作成される。
図 15 のように各キーにコードを割当てた後，［OK］ボタンを押すか，または，図 14 の［ファイル］から［開く］を選んで既存のコード割当て設定ファイルを読込むと，図14 の実行画面中央に赤い文字でコード割当て情報が表示される。上部にある《設定名［ ］》という表示の括弧内に，このコード割当て設定ファイルの設定名が表示される。その下に，キーに割当てられたコードが，コード対応表示画―329―

図 16

ポップアップメニュー

田村真晴・山下英生

6.4

ピックの傾き変更

弦を弾きやすくするためにピックに傾きをつけているが，触覚デバイスのコントローラに付いている青いボタン

単な曲なら演奏することが可能であるが，コードの割り当てや操作方法などの，使い易さの面でまだ改良を行っていく必要がある。

を押すとピックの傾きが図 3 のときとは逆になる。ピック今後の課題としては，実行画面におけるメイン画面のカの傾きが逆になったときの弦とピックの状態を図 17 に示メラ位置を変更可能にすることである。これは，使用者がす。これは，ギターを弾く際に，普通の弾き方とは逆方向最も弾きやすい向きや角度に，自分でバーチャルギターのに弾くことがあるために実装した。

向きや傾きを調節できるようにするためである。また，ギターを弾く触感をよりリアルに再現するために，物質の質感の再現方法を考える必要がある。

文献

1）中尾 恵・小山 博史・小森 優・松田 哲也・高橋 隆，「心臓手術シミュレーションに要する心拍動の視覚及び力覚提示に関する研究」，日本バーチャルリアリティ学会論文誌，VOL.7 No.3，pp.413-420，（2002）2）嵯峨 智・梶本 裕之・館 日章，「Haptic Video ―インピーダンス情報を活用した作業環境記録再生手法」，日本バーチャルリアリティ学会論文誌，VOL.7 No.3，図 17

ピックの傾きが逆になったときの断面図

pp.413-420，（2002）
3）田村 真晴・山下 英生，「触覚デバイスを用いたバーチャルギターの開発」，平成 19 年度 電気・情報関連学会

7．おわりに中国支部 第 58 回連合大会 講演論文集，p.298，（2007）

本論文では触覚デバイスを用いたバーチャルギターシス4）田村 真晴・山下 英生，「触覚デバイスを用いたバーチテムについて述べた。ギターを弾いたときの触感とギターャルギターの開発（2）」，平成 20 年度 電気・情報関連

音の発生を実現した。触感を表す反発力はある程度再現で

学会中国支部 第 59 回連合大会 講演論文集，p.483，

きたが，細かい触感の再現までは至っていない。また，簡（2008）―330―