(57)【要約】【課題】様々な形状の筋肉を容易に作成することができ、それを用いた人体モデルにより、人体の動きのシミュレーションを行うことができるシミュレーション・システムの提供。【解決手段】人体モデルの筋肉を、２つの楕円球を切り出した形状の筋束を所定の位置に配置して形成して、人体モデルの骨格に装着する。そして、筋束を体積一定で、筋束同士が干渉しないように動作させることにより、前記筋肉を動かすことで、前記人体モデルの動きのシミュレーションを行う。この動きとしては、伸縮、曲げ、捻り等を行う。【選択図】図１４
2004078698.tif 000002
【特許請求の範囲】
【請求項１】
筋肉を含む人体モデルによるシミュレーション・システムであって、
前記筋肉は、２つの楕円球を切り出した形状の筋束を所定の位置に配置して形成して、人体モデルの骨格に装着し、
前記筋束を体積一定で、筋束同士が干渉しないように動作することにより、前記筋肉を動かすことで、前記人体モデルの動きのシミュレーションを行う
ことを特徴とする人体モデルによるシミュレーション・システム。
【請求項２】
請求項１に記載の人体モデルによるシミュレーション・システムにおいて、
筋肉の動きのうち、筋肉の伸縮の動きは、筋肉を構成するすべての筋束の、楕円球の幅と高さの比と、２つの楕円球の長さの比を変えずに、筋束の長さを変化することで行う
ことを特徴とする人体モデルによるシミュレーション・システム。
【請求項３】
請求項１に記載の人体モデルによるシミュレーション・システムにおいて、
前記筋肉の動きのうち、筋肉を曲げる動きは、筋肉の芯を通って直交する複数の平面を曲げ、それに接する筋束を前記平面と干渉せずに曲げるとともに、筋束同士も干渉せずに曲げて行う
ことを特徴とする人体モデルによるシミュレーション・システム。
【請求項４】
請求項１に記載の人体モデルによるシミュレーション・システムにおいて、
前記筋肉の動きのうち、筋肉を捻る動きは、筋肉の芯を通る直交する複数の平面を捻り、それに接する筋束を前記平面と干渉せずに動かす
ことを特徴とする人体モデルによるシミュレーション・システム。
【請求項５】
請求項１に記載の人体モデルによるシミュレーション・システムにおいて、
前記筋肉の動きのうち、筋肉の力みは、筋肉を構成する筋束を、筋束の幅と高さの比を収縮の強さに応じて変化させて動かす
ことを特徴とする人体モデルによるシミュレーション・システム。
【請求項６】
請求項１〜５に記載の人体モデルによるシミュレーション・システムをコンピュータ・システムに構築させるプログラムを記録した記録媒体。
【請求項７】
請求項１〜５に記載の人体モデルによるシミュレーション・システムをコンピュータ・システムに構築させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、人体のモデルによるシミュレーション・システムに関するものであり、特に筋肉のモデル化に関するものである。
【０００２】
【技術的背景】
コンピュータ内で表現されたバーチャル・ヒューマン（仮想人間）は、アミューズメントの世界だけでなく、様々な産業分野で着実にその用途を広げつつある。たとえば、製造分野では、工場内の作業員が作業する様子を事前にシミュレーションするディジタル・ファクトリーが注目を集めているが、そこでは、仮想作業員がどの程度の作業をこなせるかが重要な意味を持つ。作業の負荷解析・姿勢解析や安全性評価などからなるエルゴノミクスを仮想作業員によって評価できることなどが要求されてくる。現状では、この種の市販されているソフトウェアにおけるバーチャルヒューマンは、各関節は剛体を前提とした形状モデルからなり、筋肉などのモデル化は行っていない。しかしながら、より高度なシミュレーションを行うためには、筋肉を含めたより高度なモデリング技術が必要になることが、このようなソフトウェア業界においても認識され始めている。
【０００３】
バーチャル・ヒューマンにおける筋肉モデルの研究として有名なのは、１９９２年のＣｈｅｎらの有限要素法を用いた研究（Ｔ．Ｄ．Ｃｈｅｎ，ａｎｄ　Ｄ．Ｚｅｌｔｚｅｒ　：Ｃｏｍｐｕｔｅｒ　ａｎｉｍａｔｉｏｎ　ｏｆ　ｂｉｏｍｅｃｈａｎｉｃａｌｌｙ　ｂａｓｅｄ　ｍｏｄｅｌ　ｏｆ　ｍｕｓｃｌｅ　ｕｓｉｎｇ　ｔｈｅ　ｆｉｎｉｔｅ　ｅｌｅｍｅｎｔ　ｍｅｔｈｏｄ，Ｃｏｍｐｕｔｅｒ　Ｇｒａｐｈｉｃｓ　（ＳＩＧＧＲＡＰＨ　９２　Ｃｏｎｆｅｒｅｎｃｅ　Ｐｒｏｃｅｅｄｉｎｇｓ）　Ｖｏｌ．２６，Ｎｏ．２　，Ｊｕｌｙ．１９９２，８９−９８参照）である。彼らの方法では、自重と自身が発生する張力による筋肉の変形などを表現しているが、有限要素法は計算コストが大き過ぎ、広範な筋肉層を表現するのには適さない。
人体の表現には、特有の丸みを表現するために、しばしば楕円球が使われており、筋肉に関しても同様である。１９９７年のＷｉｌｈｅｌｍらによる研究（Ｊ．Ｗｉｌｈｅｌｍｓ，ａｎｄ　Ａ．Ｖ．Ｇｅｌｄｅｒ：Ａｎａｔｏｍａｔｉｃａｌｌｙ　Ｂａｓｅｄ　Ｍｏｄｅｌｉｎｇ，Ｃｏｍｐｕｔｅｒ　Ｇｒａｐｈｉｃｓ　（ＳＩＧＧＲＡＰＨ　９７　Ｃｏｎｆｅｒｅｎｃｅ　Ｐｒｏｃｅｅｄｉｎｇｓ），Ａｕｇ．１９９７，１７３−１８０参照）では、筋肉層を楕円球で表現し、皮膚層は弾性膜モデルで表現している。楕円球で表現された筋肉は、体積をほぼ一定に保つように伸縮が行われる。実際の筋肉は関節をまたがりその部分で曲げを生じるが、この研究における筋肉の動作は伸縮のみである。したがって、曲げが顕著に現れる筋肉には扱うことができない。
１９９７年のＳｃｈｅｅｐｅｒｓらによる研究（Ｆｒｅｄｉ．Ｓｃｈｅｅｐｅｒｓ，Ｒｉｃｈａｒｄ．Ｅ．ＰＡＲＥＮ，Ｗａｙｎｅ．Ｅ．Ｃａｒｌｓｏｎ，Ｓｔｅｐｈｅｎ．Ｆ．Ｍａｙ：Ａｎａｔｏｍｙ−Ｂａｓｅｄ　Ｍｏｄｅｌｉｎｇ　ｏｆ　ｔｈｅ　Ｈｕｍａｎ　Ｍｕｓｃｕｌａｔｕｒｅ，Ｃｏｍｐｕｔｅｒ　Ｇｒａｐｈｉｃｓ（ＳＩＧＧＲＡＰＨ　９７　Ｃｏｎｆｅｒｅｎｃｅ　Ｐｒｏｃｅｅｄｉｎｇｓ），Ａｕｇｕ．１９９７，ｐｐ．１６３−１７２参照）では、ほぼ一定で体積変化する楕円球とＢｅｚｉｅｒ曲面の二つで筋肉の表現を行っている。Ｂｅｚｉｅｒ曲面は、曲げ変形が必要とされる部分に用いられる。曲げ変形はＢｅｚｉｅｒ曲面の制御点を操作することで行い、楕円球と同じく体積をほぼ一定に保つように変形させる。また、彼らは、伸縮、曲げ以外にも力を込めた時の筋肉の表現にも取り組んでいる。実際の筋肉は、力を込めると、体表方向、皮膚の方向に隆起する。そこで楕円球の長軸、短軸を調整し、楕円球を体表方向に起こすのである。Ｂｅｚｉｅｒ曲面の場合も断面はあらかじめ楕円になるよう調整しておき、同様の処理を行う。Ｓｃｈｅｅｐｅｒらの研究によって、出力例はより厳密になり、今まで以上に良好なものになった。しかし、筋肉のポリゴンデータは、解剖学的な根拠に基づいたものではなく、研究者がそれらしい外見をもつように作成する必要がある。そのため、近似度の高い筋肉層の作成には、作成者の技量が必要となる。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、筋肉の形状全体を作成者がデザインするのではなく、各筋肉に共通な構成要素である筋束レベルからのモデル化を行うことにより、様々な形状の筋肉を容易に作成することができ、かつ、どの筋肉に関しても、伸縮変形、曲げ変形、力みの表現、そして新たに捻りの表現を統一的に行えることのできる新たな筋肉モデリングによるシミュレーション・システムを提案することである。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明は、筋肉を含む人体モデルによるシミュレーション・システムであって、前記筋肉は、２つの楕円球を切り出した形状の筋束を所定の位置に配置して形成して、人体モデルの骨格に装着し、前記筋束を体積一定で、筋束同士が干渉しないように動作することにより、前記筋肉を動かすことで、前記人体モデルの動きのシミュレーションを行うことを特徴とする。
筋肉の動きのうち、筋肉の伸縮の動きは、筋肉を構成するすべての筋束の、楕円球の幅と高さの比と、２つの楕円球の長さの比を変えずに、筋束の長さを変化することで行うことができる。
また、筋肉を曲げる動きは、筋肉の芯を通って直交する複数の平面を曲げ、それに接する筋束を前記平面と干渉せずに曲げるとともに、筋束同士も干渉せずに曲げて行うことでできる。筋肉を捻る動きは、筋肉の芯を通る直交する複数の平面を捻り、それに接する筋束を前記平面と干渉せずに動かすことでできる。
筋肉の力みは、筋肉を構成する筋束を、筋束の幅と高さの比を収縮の強さに応じて変化させて動かすことで表現できる。
これらの人体モデルによるシミュレーション・システムをコンピュータ・システムに構築させるプログラムやプログラムを記録した記録媒体も本発明である。
【０００６】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
＜解剖学に基づく筋肉層＞
ここでは、解剖学的な見地から、筋肉の階層構造および筋肉を構成する筋束について述べる。
（筋肉の階層構造）
筋肉は、ｍｕｓｃｌｅ　ａｒｃｈｉｔｅｃｔｕｒｅ（筋肉構造）と呼ばれる階層的な構造をもっている（山田茂，福永哲夫：骨格筋運動による機能と形態の変化，ナップ（１９９７）参照）。ｍｕｓｃｌｅ　ａｒｃｈｉｔｅｃｔｕｒｅには、図１に示すように、マクロからミクロまで、１〜４のレベルがある。
第１レベルは、骨格上の各部位にどのような筋肉が配置されているかを、第２レベルは、ある筋肉において、筋束がどのように配置されているかを表す。筋束とは、後で詳しく述べるが、筋肉を構成する線維組織である。第３レベルは、ある筋束において筋線維がどのように配置されているかを表す。筋線維とは直径１０〜１００μｍ程度の筋束を構成する線維状の組織である（Ｒｏｌｆ．Ｗｉｒｈｅｄ著，金子公宥，松本迪子・訳：目でみる動きの解剖学　スポーツにおける運動と身体のメカニズム，大修館書店（１９８６）参照）。第４レベルは、ある筋線維においてサルコメアがどのように配置されているかを表す。サルコメアとは、筋肉の収縮における基本単位を担う組織である（例えば、藤森聞一，生理学体系ＶＩＩ　運動系の生理学，医学書院（１９６６）参照）。
【０００７】
（筋束と筋肉）
筋束とは筋肉の腱から腱、つまり収縮方向に端から端まで延びている線維組織である。前に述べたように、数十本の筋線維が筋小膜、筋鞘という膜に包まれて筋束を構成する。筋束内には、これらの組織の他にも血管や脂肪があるが、主たる構成要素は筋線維である。筋線維は体積一定の性質をもっている（山田茂，福永哲夫：骨格筋運動による機能と形態の変化，ナップ（１９９７）参照）。
図２に筋肉の構造を示す。図２（ｂ）は図２（ａ）の部分的拡大図である。筋肉は、筋束を内周筋膜で固定し、外周筋膜で覆った組織である。外周筋膜は筋肉の動きに合わせて伸縮する。内部の筋束は両端点に近づくと次第に細くなり腱線維に変わる。腱線維が集まっている部分が腱である。腱との境界を筋腱接合部分と言う。
また、筋肉は神経終末から信号を受けて、張力を発生する。張力を発生していない状態の筋肉は皮膚から圧迫を受け、押しつぶされている。内部の筋束もまた、圧迫により骨方向に潰される。一方、張力を発生した筋肉は、隆起して体表に凹凸を出現させる。このとき筋束は、圧迫を退けて潰れていない状態になっている。
従来の筋肉の構造を表現する研究（例えば、Ｆｒｅｄｉ．Ｓｃｈｅｅｐｅｒｓ，Ｒｉｃｈａｒｄ．Ｅ．ＰＡＲＥＮ，Ｗａｙｎｅ．Ｅ．Ｃａｒｌｓｏｎ，Ｓｔｅｐｈｅｎ．Ｆ．Ｍａｙ：Ａｎａｔｏｍｙ−Ｂａｓｅｄ　Ｍｏｄｅｌｉｎｇ　ｏｆ　ｔｈｅ　Ｈｕｍａｎ　Ｍｕｓｃｕｌａｔｕｒｅ，Ｃｏｍｐｕｔｅｒ　Ｇｒａｐｈｉｃｓ（ＳＩＧＧＲＡＰＨ　９７　Ｃｏｎｆｅｒｅｎｃｅ　Ｐｒｏｃｅｅｄｉｎｇｓ），Ａｕｇｕ．１９９７，ｐｐ．１６３−１７２．や、Ｊ．Ｗｉｌｈｅｌｍｓ，ａｎｄ　Ａ．Ｖ．Ｇｅｌｄｅｒ：Ａｎａｔｏｍａｔｉｃａｌｌｙ　Ｂａｓｅｄ　Ｍｏｄｅｌｉｎｇ，Ｃｏｍｐｕｔｅｒ　Ｇｒａｐｈｉｃｓ　（ＳＩＧＧＲＡＰＨ　９７　Ｃｏｎｆｅｒｅｎｃｅ　Ｐｒｏｃｅｅｄｉｎｇｓ），Ａｕｇｕ．１９９７，１７３−１８０参照）は、ｍｕｓｃｌｅ　ａｒｃｈｉｔｅｃｔｕｒｅの第１レベルだけを扱っており、一方、本モデルは、第２レベルまでを扱うことになる。
【０００８】
（筋束のモデル化）
ここで、前に述べた解剖学的な知見を参考にして考案した筋束モデルについて述べる。筋束モデルは、楕円球を基にした中膨らみの形状をもち、近似的に体積を一定に保ちながら変形する。
（筋束の初期形状）
図３に、筋束の初期形状とそのパラメータを示す。筋束は筋腹という筋質の部分と、腱線維の部分からなる。図３（ａ）は側面図，図３（ｂ）はｃｅｎｔｅｒ（中央）の横断側面図である。
筋腹は、図３に示すように、２個の楕円球の一定範囲を切り出して作成する。図３において、２つの楕円球の形状は、ｘ，ｙ，ｚ方向の長径，短径を表すａ，ｂ，ｃ１とａ，ｂ，ｃ２によって表現される。ａ，ｂは筋束の横断面における長軸と短軸であり、２ａを幅とし２ｂを高さとする。ｃ１，ｃ２は図３における楕円球の長さにあたる。２個の楕円球は横断面が最大の位置で接続する。両楕円球とも、横断面の幅と高さは等しいので、接続した後の形状は　ｃ０連続でつながる。しかし、ｃ１＝ｃ２であればｃ２連続であるので、ｃ１＝ｃ２の方が望ましい。楕円球のどの範囲を切り出して筋腹にあてるかを、それぞれの楕円球の長さＬ２，Ｌ３によって決定する。
腱線維の長さは、Ｌ１，Ｌ４によって決定する。腱繊維の断面は、Ｌ２，Ｌ３によって切り出された楕円球の断面と同じ形状とする。
図４は、筋束のポリゴン・モデルを示している。ポリゴン・モデルは筋束の長さ方向（ｚ軸の方向）に層を成しており、各層では多角形を使用して横断面を近似的に表現している。各層の多角形の頂点を結ぶことで、筋束のポリゴンが生成される。
【０００９】
（体積一定での筋束の変形）
図３．図４に示した筋束モデルの変形は、筋腹部分の体積を近似的に一定に保ちながら行う。これは、前に述べたように、筋束の主な構成要素である筋線維が、体積を一定に保って変形するからである。
・筋束の伸縮変形
筋束の伸縮変形は、筋腹部分の伸縮変形によって表す。筋腹は２個の楕円半球から作られている。楕円半球を足し合わせた体積ｖは、次式で表される。
【数１】
2004078698.tif 000003
また、ａ，ｂの比Ｒａｂを式（２）で表す。比Ｒａｂは伸縮変形時に、一定に保たれる。
【数２】
2004078698.tif 000004
（１）式に（２）式を用いると、次式が得られる。
【数３】
2004078698.tif 000005
この式を用いて体積をあらかじめ算出しておく。伸縮変形は、楕円半球の長さｃ１，ｃ２が変化することによって行われる。このとき、ｃ１，ｃ２の伸縮変形後の値をｃ１’，ｃ２’とし、次式の性質をもたせる。長さｃ１，ｃ２は同じ比率で変化させる。
【数４】
2004078698.tif 000006
長さｃ１，ｃ２を変化させた後の体積ｖを一定とし（３）式から楕円半球の幅ａを求める。次に、（２）式により幅ａから高さｂが求まる。これによって筋腹を形作る楕円半球の形状が定まる。楕円球の使用部分を決定するＬ２，Ｌ３も伸縮と同じ割合で変化させる。Ｌ２，Ｌ３の変形後の値Ｌ２’，Ｌ３’は次式で求める。
【数５】
2004078698.tif 000007
図５に、体積一定とした筋束の伸縮の様子を示す。図５（ａ）が伸長した状態、図５（ｃ）が収縮した状態である。図（ｂ）はその中間である。
・力みの表現
上述した（２）式で定義した筋束の幅２ａと高さ２ｂの比であるＲａｂについて考える。Ｒａｂ＝０．５のとき、高さを示す半径ｂは幅を示す半径ａの半分で、筋束の横断面は潰れた楕円になる。一方、Ｒａｂ＝１．０の時は幅と高さを示す半径が同じで横断面は円になる。このＲａｂの０．５〜１．０までの変化を力みの表現に対応させる。
収縮の強度ｓを０〜１．０の範囲にとり、収縮の強度ｓと筋束の幅と高さの比Ｒａｂの関係を次式で結びつける。
2004078698.tif 000008
収縮の強度がｓ＝０に近いほど筋束の横断面は潰れた楕円になり、ｓ＝１．０に近いほど筋束の断面は円になる。力みを表現する際には、長さｃ１，ｃ２を変化させず、式（３）の体積ｖを一定に保つ。幅ａと高さｂは一意に定まる。
【００１０】
（筋束の曲げ変形）
筋束の曲げ変形は、ポリゴンモデルを作成するときに定義した各層に傾きを与えることで表現する。各層に傾きを与えても体積はそれほど変化しないと考え、近似的に体積を一定に保ち、楕円球の長軸を折り曲げたような様子を表現する。図６に曲げ変形の様子を示す。筋束の曲げ変形は、図６（ａ）（変形前），図６（ｂ）（変形後）に示すように、楕円球の軸を折り曲げることで表現する。中心軸は、幾つかの線分とそれを繋ぐ関節によって表現される。中心軸の線分は、図６（ｃ）に示すように、ポリゴン層と対応しており、軸ともにポリゴン層に角度を定義することで曲げが表現される。このとき、各ポリゴン層の横断面積の調整はしない。
【００１１】
（筋束の非干渉処理）
この非干渉処理は、筋束を束ねて筋肉を形成するときに必要になる。筋肉を構成する筋束同士が干渉しないようにして得られる形状を、筋肉の外形とする。
まず、筋束が衝突したかどうかの判定を行うために，筋束の衝突判定の範囲を図７に示すように，ポリゴン層ごとに定義する。図７（ａ）に示した筋束のポリゴンによる表示が図７（ｂ）に示されている。これを、拡大したものが図７（ｃ）である。図７（ｃ）に対して、具体的に、層ｎに関するパラメータを挙げると，下面の楕円を定義するａｎ，１，ｂｎ，１、上面の楕円を定義するａｎ，２，ｂｎ，２、高さｌｎの５つによって定まる（図７（ｄ）参照）。また，滑らかな衝突判定の範囲を作るために、ａｎ，１＝ａｎ−１，２，ｂｎ，１＝ｂｎ−１，２とする。外形を求める手順については、後で詳しく述べる。
筋束と平面の非干渉処理と、筋束同士の非干渉処理を次のように行う。
【００１２】
・筋束と平面の非干渉処理
平面との非干渉処理は、筋束を平面に接触させ、図４で示したポリゴンモデルにめり込まないように曲げ変形を行うことで表現する。図８は平面との接触処理を行った様子を示している。図８（ａ）では平面と離れている筋肉が、図８（ｄ）では筋束全体で衝突している。この図から分かるように、ポリゴンモデルで表現されている筋束が曲げ変形を行うことで、平面が筋束にめり込まない。
詳細にみると、図８（ｂ）では、筋腹部分の楕円中心部分の接触を行っている。筋束を平行移動させたのである。次に、図８（ｃ）では筋腹の楕円中心の部分から両端に向かって順に折り曲げを行っている。このときのポリゴンの層ｎの折り曲げ角度αｎの算出は、図８（ｃ）の部分拡大図である図９（ｂ）に示すように、楕円中心から層ｎ　までの各層がすでに面に接触している状態として行う。このときαｎは、次の式によって求まる。
【数６】
2004078698.tif 000009
上式によって曲げ角度を求め，筋束の端まで順番に変形を行って端まで達すると図８（ｄ）の状態になる．
【００１３】
・筋束同士の非干渉処理
筋束同士の非干渉処理を行うときは、筋束を「基準となる筋束」と「基準に従う筋束」の２種類に分ける。「基準となる筋束」は非干渉処理によって形を変形させない。「基準に従う筋束」だけを曲げ変形させ、めり込みを防止する。「基準となる筋束」と「基準に従う筋束」の分け方については、後で述べる。
この非干渉処理の様子を、図１０に示す。衝突後の図１０（ｂ）に示すように、基準となる筋束は変形せず、基準に従う筋束が変形している。
この筋束同士の非干渉処理について、図１１〜図１３で詳細に説明する。
まず、「基準となる筋束」に接する面分の集合を考えて、その面分と「基準に従う筋束」との衝突処理を行っている。図１１　に「基準となる筋束」から面分を作成する様子を示す。図１１に示すように、「基準となる筋束」の各層に関して、「基準に従う筋束」と接する線を、図７で定義を示した衝突判定の範囲の境界上に定義する。次に、その線を含み、衝突判定の境界面に接する面分を得て、衝突処理のための面分としている。
「基準に従う筋束」は、定義した面分の集合との衝突処理を行う。図１２は、層ｎの折り曲げ角度を示す。衝突処理の対象が平面ｘ＝０のときと同様に、楕円中心の部分から両端に向かって順に折り曲げを行うので、層ｎ＋１の下端、層ｎの上端はすでに面分に接している。「基準に従う筋束」の層ｎはαｎとβｎの和を折り曲げ角度にすれば、「基準となる筋束」に接するように折れ曲がる。角度αｎは前述の式で算出され、βｎの値は面分ｎの傾きに相当する。
図１２では、面分ｎと面分ｎ＋１との交線が、層ｎの上面の高さと一致し、また面分ｎと面分ｎ−１の交線が折り曲げた後の層ｎの下面と一致しているが、一般的にこのように一致することはない。そこで、図１３に示すように、折り曲げ前の層ｎにおける下面と同じ高さの点を、境界面分上にとり、層ｎの上面と境界面分の接点とそこからの垂線がなす角度をβｎとする。
このようにしてβｎを取得すると、「基準となる筋束」と「基準に従う筋束」の間で多少のめり込みが生じる。層ｎの高さ幅ｌｎが、衝突処理の対象である面分の高さ幅ｈｎに比べて大きくなるにつれ、めり込みの量が増加する。
【００１４】
＜筋束による筋肉のモデル化＞
筋肉を構成する主な組織は筋束である。筋肉は筋束を格子状に配置することで作成する。筋束は、横断面における幅ａを表す長軸をｘ軸に平行に、高さｂを表す短軸をｙ軸と平行に配置する。図１４に作成した筋肉の底の部分を示す。
（筋束の配置）
図１５は、図１４に示した筋肉の、ｘ≧０，ｙ≧０の範囲である第１象限の横断面を示したものである。筋束上に書かれている数字は配置の順序である。
図１５において最初に配置される筋束は、筋肉の芯に接する図１５における１番の筋束である（図１６（ａ）参照）。１番の筋束については、平面ｘ＝０と平面ｙ＝０の２つの平面との非干渉処理を行う。
次に配置される筋束は、平面ｙ＝０に接する筋束である。２番から１０番までの筋束にあたる（図１６（ｂ）参照）。これらの筋束については、平面ｙ＝０と、左側の筋束すなわち直前に配置した筋束との非干渉処理を行う。
同様に、平面ｘ＝０に接する１１番から１９番までの筋束を配置する（図１６（ｃ）参照）。これらの筋束については、平面ｙ＝０と、下側の筋束すなわち直前に配置した筋束との非干渉処理を行う。
平面と接する筋束の配置が終了すると、次は２０番から７９番までの筋束の配置を行う（図１６（ｄ）参照）。付けられている番号からわかるように、筋束は左下から右に向かって配置し、右端まで達すると一つ上の段の配置を同様に行う。これらの筋束については、自分の左側の筋束と下側の筋束との非干渉処理を行う。
以上で、第１象限の筋束の配置が終了する。他の象限についても、同様にして筋束の配置を行う。これにより、図１７（ｂ）（ｃ）に示す筋肉が完成する。図１７（ａ）はモデル図（断面図）、図１７（ｂ）は断面図、図１７（ｃ）は外観図である。
図１７において、切り口の筋腱接合部分に曲線が現れているのは、作成例の筋肉が並行筋という種類の筋肉を作成したものであり、腱線維が筋線維部分に食い込んでいる様子を表現したからである。図１７の例では、外側の筋束ほど、筋腹を長く定義した。筋腹の長さの違いから、このような切り口が現れ、全体の形状にも影響を与えている様子がわかる。
図１８〜図２０に、いくつかの筋肉の作成例を示す。図１８は烏口腕筋、図１９は肘筋、図２０は上腕筋で、それぞれ図の（ａ）は筋肉、（ｂ）は骨格に装着した場合の正面や背面、（ｃ）は側面を示している。各筋肉は、４００本程度の筋束で構成した。筋束を細くし、本数を増やすと、表現が詳細になる。４００本程度という本数は、腕部分における個々の筋肉を表現するために、適当な詳細さを得られる本数である。
【００１５】
（筋肉の変形）
筋束の変形に基づき、筋肉の伸縮変形と力みを表現する。また、筋肉の芯を操作することで、曲げ変形、捻り変形の表現を行う。
前に述べたように、構成要素である筋束の体積を近似的に一定としたため、筋肉におけるどの変形も、近似的に体積一定である。
・伸縮変形
筋肉は筋束の方向に伸縮する。筋肉の伸縮変形では、筋肉の長さの変化を比率で定義し、その筋肉に含まれている筋束をすべて同じ比率で伸縮させる。前に述べたように、筋束は伸縮によって横断面積が変化する。横断面積が変化したあと、再び非干渉処理を行って筋肉の形状を求める。図２１に伸縮変形を示す。図２１（ａ）が伸長した場合、図２１（ｃ）が収縮した場合で、図２１（ｂ）がその中間である。
【００１６】
・力み表現
筋束は、横断面における幅ａを表す長軸がｘ軸と平行に、高さｂを表す短軸がｙ軸と平行になるように配置されている。力み表現では、筋肉の収縮の強度ｓを定義し、その筋肉に含まれている筋束をすべて同じ強度ｓで変化させる。前で述べたように、筋束は、横断面の長軸と短軸の比Ｒａｂを変化させる。横断面の形状が変化したあと、再び非干渉処理を行って筋肉の形状を求める。図２２に力み表現を示す。図２２（ａ）が力を緩めた状態（ｓ＝０．０，Ｒａｂ＝０．５）、図２２（ｃ）が力をいれた状態（ｓ＝１．０，Ｒａｂ＝１．０）で、図２２（ｂ）がその中間（ｓ＝０．５，Ｒａｂ＝０．７５）である。
【００１７】
・曲げ変形
筋肉の曲げ変形は、芯を折り曲げることで表現する。図２３に筋肉の芯を示す。曲がっていない状態の芯はｚ軸と一致している（図２３（ａ）参照）。芯の周りには面分ｘ＝０と面分ｙ＝０が定義されている。
筋肉の曲げは、図２３（ｂ）に示すように、一定の間隔で区切り、その繋ぎ目に折り曲げ角度を与えることで定義する。芯にｘ軸周り，ｙ軸周りの曲げを与えることで、芯の周りの面分ｘ＝０，面分ｙ＝０を変形させる。ｘ＝０，ｙ＝０の面分に接していた筋束を、新たに定義された面分と非干渉処理に基づいて曲げ変形させる。その後で、面分に接触していなかった残りの筋束を非干渉処理によって折り曲げる。図２４に曲げ変形の例を示す。
【００１８】
・捻り変形
捻り変形は、筋肉の芯を捻ることで表現する。曲げ変形の場合と同様、図２５に示すように、芯に回転角度を与えることで、芯の周りの面分ｘ＝０，面分ｙ＝０を変形させる。その後で周囲の筋束を非干渉処理によって折り曲げる。
このとき、図２５（ｂ）に示すように、両面分と筋束の間に隙間やめり込みを少なくするために、両面分のｚ軸方向の分割を細かく行う。
筋肉を楕円球や、Ｂｅｚｉｅｒ曲面で表現する従来の手法では、捻り変形は表現できなかった。腕の後ろの前腕部分には、捻れた状態で配置されている筋肉が多い。捻り変形により、これらの筋肉をより高い近似度で表現することが可能になる。図２６に捻り表現の例を示す。
【００１９】
（多頭筋の表現）
筋肉の中には、１本に束ねられていた筋束が途中から複数本に別れているものがある。このような筋肉を多頭筋という。多頭筋では、筋肉の芯を複数本定義し、筋束をどの芯周りに配置するかを定義する。
図２７に二頭筋を示す。この場合、芯は矢印で示したａ，ｂ，ｃの３本である。破線Ａより下では、全ての筋束は芯ｃの周りに配置する。破線Ａより上では、破線Ｂの左側の筋束は芯ａの周りに、破線Ｂより右の筋束は芯ｂの周りに配置する。これによって、破線Ａを境にして一本だった筋肉が２本に別れる。
（筋肉層の作成）
筋肉層は、いくつかの筋肉から構成される。ここでは、腕部分の筋肉層に着目し、その作成を行った例を示す。作成した筋肉層は、解剖学で上腕の筋肉に分類されている５個の筋肉、前腕の筋肉に分類されている１８個の筋肉、大胸筋及び三角筋の合計２５個の筋肉からなる。解剖学の資料の記述や絵図から、各筋肉における筋束のおよその配置を理解し、それに基づいて筋束モデルの配置や定義を行うことができる。
図２８に、作成した筋肉層を示す。また、図２９に腕の屈伸運動を行った様子を時間ｔの経過とともに示す。この図２９では、各筋肉の判別がしやすいように、筋肉ごとに異なる着色を行っている（図２９では濃淡で示した）。腕の屈伸運動は、肩、肘、手首の関節を動作させ、筋肉層をその動きに追随させた。
また、図３０はちからこぶを示している。前に述べた筋肉の収縮の強度ｓを、ｓ＝０．０から曲げ角度が大きくなるにつれてｓ＝１．０に近づけ、筋肉層の隆起を表現している。動作は体表解剖学の資料（たとえば、佐藤達夫，監訳：体表解剖学カラーアトラス，南江堂（１９８９）参照）を参考にして作成した。また、筋肉同士のめり込みは、隆起の度合いによって定まる筋肉の曲げ変形によって防止している。
上述した全てのことは、コンピュータ・システムに対して、プログラムを実装し、それを動作させることで実現することができる。
【００２０】
【発明の効果】
本発明では、筋束レベルのモデル化を行い、解剖学の資料に基づき、個々の筋肉における各筋束の長さや指向性の表現によって、筋肉層を作成した。そのため、Ｂｅｚｉｅｒ曲面等によるモデリングをする必要がない。また、新たに筋肉の捻りを表現したこともあり、複雑な腕全体の筋肉層を作成できる。
この手法は、筋肉を構造から表現したため、個々の筋肉の表現力に優れている。
【図面の簡単な説明】
【図１】筋肉構造のレベルを説明する図である。
【図２】筋肉の構造を示す図である。
【図３】筋束の形状データを説明する図である。
【図４】筋束モデルを示す図である。
【図５】筋束の伸縮を示す図である。
【図６】筋束の曲げを示す図である。
【図７】衝突の判定の範囲の定義を説明する図である。
【図８】筋束と平面の非干渉処理を説明する図である。
【図９】筋束の折り曲げ角度を示す図である。
【図１０】筋束同士の非干渉処理を示す図である。
【図１１】基準となる筋束が作る面分を示す図である。
【図１２】基準となる筋束に従う筋束の折り曲げ角度を示す図である。
【図１３】折り曲げ角度のβｎの取得を説明する図である。
【図１４】筋束の配置を説明する図である。
【図１５】筋束の配置順序を説明する図である。
【図１６】筋束の配置結果を示す図である。
【図１７】作成した筋肉を示す図である。
【図１８】作成した烏口腕筋を示す図である。
【図１９】作成した肘筋を示す図である。
【図２０】作成した上腕筋を示す図である。
【図２１】筋肉の伸縮を示す図である。
【図２２】並行筋の力みを示す図である。
【図２３】筋肉の芯と曲げを示す図である。
【図２４】筋肉の曲げの変化を示す図である。
【図２５】筋肉の芯と捻りを示す図である。
【図２６】筋肉の捻りの変化を示す図である。
【図２７】作成した二頭筋を示す図である。
【図２８】筋肉の装着図である。
【図２９】腕の屈伸運動を示す図である。
【図３０】力こぶを示す図である。
【図１】
2004078698.tif 000010
【図２】
2004078698.tif 000011
【図３】
2004078698.tif 000012
【図４】
2004078698.tif 000013
【図５】
2004078698.tif 000014
【図６】
2004078698.tif 000015
【図７】
2004078698.tif 000016
【図８】
2004078698.tif 000017
【図９】
2004078698.tif 000018
【図１０】
2004078698.tif 000019
【図１１】
2004078698.tif 000020
【図１２】
2004078698.tif 000021
【図１３】
2004078698.tif 000022
【図１４】
2004078698.tif 000023
【図１５】
2004078698.tif 000024
【図１６】
2004078698.tif 000025
【図１７】
2004078698.tif 000026
【図１８】
2004078698.tif 000027
【図１９】
2004078698.tif 000028
【図２０】
2004078698.tif 000029
【図２１】
2004078698.tif 000030
【図２２】
2004078698.tif 000031
【図２３】
2004078698.tif 000032
【図２４】
2004078698.tif 000033
【図２５】
2004078698.tif 000034
【図２６】
2004078698.tif 000035
【図２７】
2004078698.tif 000036
【図２８】
2004078698.tif 000037
【図２９】
2004078698.tif 000038
【図３０】
2004078698.tif 000039