DIFF 動作解析(Web 版)は、三次元動作分析装置(c3d)と床反力計のデータから、DIFF モデルに基づいて関節角度・身体重心・関節モーメント・関節パワーを計算する Web アプリです。この記事では使い方を説明します。
目次:はじめに / 準備するデータ / 解析の手順 / ビューアの使い方 / 出力ファイル / 動作ごとの解析 / 主な設定 / 困ったときは
はじめに
データは外部に送信されません。 計算はすべてお使いのブラウザの中で行われます。c3d ファイルやその内容がサーバーに送られることはありません。
- 推奨ブラウザ:Google Chrome、Microsoft Edge の最新版(パソコン)。
- 初回の読み込み:計算環境(約 30 MB)を読み込むため、数十秒かかります。インターネット接続が必要です。2 回目以降はブラウザに保存されるので速くなります。
- 解析の設定は、このブラウザに保存されます(c3d などのデータは保存されません)。
準備するデータ
| データ | 内容 |
|---|---|
| 動作データ(必須) | 解析する試行の c3d(マーカー座標と床反力計のアナログデータ)。 |
| 静止立位データ(推奨) | DIFF 直立肢位(両足を肩幅に開き、つま先開き角 0°)で計測した c3d。体重の推定、足部座標系の補正、足関節角度の 0° の基準などに使います。 |
| 被験者の計測値 | 性別、身長、膝関節左右径・足関節左右径(ノギスなどで計測)。体重は静止立位の床反力から推定できます。 |
マーカーセットは DIFF(検証データはViconで計測)を前提としています:左右の肩峰(SHD)、股関節(HIP)、膝関節(KNE)、外果(ANK)、第 5 中足骨頭(MP)、上腕骨外側上顆(ELB)、尺骨茎状突起(WRA)。名前が異なる場合は「DIFF モデルの設定」で変更できます。
膝関節・足関節左右径を入力しないと、その関節点はマーカー位置(DIFF 付録 A1 の第 1 近似)になり、とくに前額面の角度・モーメントの精度が下がります。
解析の手順

左側の設定欄
- 動作データの「ファイルを選択」で、解析する c3d を選びます。
- 静止立位データに、同じ被験者・同じ日の静止立位の c3d を選びます。
- 被験者情報で、性別・身長・膝関節左右径・足関節左右径を入力します。体重は 0 のままで静止立位から推定されます。
- 解析条件の「動作」で、歩行・立ち上がり・しゃがみ込みなどを選びます。動作に応じてイベントや相が検出されます。
- 必要に応じてフィルターや DIFF モデルの設定を変えます(通常は初期値のままで構いません)。
- 一番下の「解析する」を押します。数秒〜十数秒で結果が表示されます。

結果で確認すること
- 注意事項(黄色):左右径が未入力、足が床反力計の外で接地した、など。計算しなかった区間の理由もここに出ます。
- 床反力計の判定結果:どの床反力計にどの足(または椅子など)が乗ったかを自動で判定しています。違っている場合は、左の「床反力計の割り当て」で手動に変えて、もう一度「解析する」を押します。
ビューアの使い方
結果の下にあるビューアで、スティックピクチャーと各指標のグラフを同期させて確認できます。ビューアは「ビューア(.html)をダウンロード」で保存すると、このアプリがなくても開けます。

再生と描画区間

- 描画区間:開始・終了時刻を入力するか、「現在→開始」「現在→終了」で決めます。「相・周期から選ぶ」で、立ち上がりの各相や歩行周期をそのまま区間にできます。スティックピクチャー・グラフ・床面投影図がこの区間に限定されます。
- 時間軸の上には、相(帯)とイベント(離殿・踵接地など)が表示されます。
- 「被験者情報」を押すと、身長・体重などが表示されます。
3D スティックピクチャー
| 操作 | 方法 |
|---|---|
| 回転 | 左ドラッグ |
| 移動 | 右ドラッグ、または Shift+左ドラッグ |
| 拡大・縮小 | マウスホイール、または「+」「−」 |
| 視点の切り替え | 「視点」から 斜め・右側方・左側方・前方・後方・上方 |
| 元に戻す | 「リセット」またはダブルクリック |
マーカーにポインタを合わせると、名前と座標が表示されます。「マーカー名」「床反力ベクトル」「重心の軌跡」などはチェックボックスで切り替えます。
出力ファイル
| ファイル | 内容 |
|---|---|
| Excel(.xlsx) | 関節角度、体節絶対角度、重心、床反力、各床反力計、関節モーメント、関節パワー、関節点座標、マーカー座標、イベント、解析情報(設定の記録)。動作によって「相・所要時間」「歩行パラメータ」「歩行周期_右/左」も入ります。 |
| 縦長 CSV(R 向け) | 1 行 1 値の tidy 形式(trial, frame, time_s, category, variable, side, unit, value)。 |
| 歩行周期 CSV | 歩行で、1 歩行周期を 0〜100 % に正規化した値(各周期)。 |
| ビューア(.html) | スティックピクチャーとグラフ。単独で開けるので、共同研究者への共有にも使えます。 |
R での読み込み例:
library(tidyverse)
d <- read_csv("sample02_DIFF_long.csv")
d |>
filter(category == "関節モーメント", unit == "N·m/kg",
str_detect(variable, "膝関節モーメント 屈曲")) |>
ggplot(aes(time_s, value, colour = side)) + geom_line()
動作ごとの解析
| 動作 | 検出されるイベント・相 |
|---|---|
| 立ち上がり | 動作開始(体幹前傾の開始)、離殿、足関節最大背屈、股関節伸展終了。第 1 相(屈曲相)・第 2 相(重心移動相)・第 3 相(伸展相)の所要時間。 |
| しゃがみ込み | 動き始め(重心の下降開始)、着臀、座位到達。下降相・着座相の所要時間。 |
| 歩行 | 踵接地・つま先離地(床反力計の接地が近ければそちらを採用)。歩行パラメータ(立脚期 %、ケイデンス、重複歩距離、歩行速度、歩幅、歩隔)。グラフの横軸を「歩行周期 %」に切り替えられます。 |
離殿・着臀は、椅子の下の床反力計で判定します。椅子の下に床反力計がない場合は、股関節点の高さの変化から推定します。
主な設定
| 設定 | 説明(初期値) |
|---|---|
| カットオフ周波数 | マーカーのバターワース低域通過フィルター(6 Hz)。関節モーメントの計算には、床反力にも同じカットオフを使うのが推奨です。 |
| 床反力の閾値 | これ未満を無負荷とする鉛直力(20 N)。 |
| 関節点の近似法 | DIFF 付録 A1。股関節 3B(左右マーカー間距離の 18 % 内挿)、膝・足関節 3A(左右径の 1/2 内挿)。 |
| 静止立位の足関節角度を 0° とする | マーカーの貼り方の影響を除くため、静止立位の背屈・底屈角を差し引きます(オン)。 |
| 関節モーメントの符号 | DIFF 解説書(膝 屈曲+、股 内転+)か、一般的な表記(膝 伸展+、股 外転+)。 |
| 関節モーメントの座標系 | 遠位体節座標系(初期値)、近位体節座標系、実験室座標系。 |
計算方法の詳細(座標系、角度の定義、慣性係数、逆動力学など)は、リポジトリの計算仕様書 docs/methods.md にまとめています。論文の方法の記載に使ってください。
困ったときは
「準備しています…」から進まない
初回は計算環境の読み込みに数十秒かかります。数分たっても進まない場合は、インターネット接続を確認してください。所属機関のネットワークで外部サイト(cdn.jsdelivr.net)が遮断されていると読み込めません。
「マーカー ○○ が見つかりません」と表示される
c3d のマーカー名が DIFF の名前と違います。表示された「c3d にあるマーカー」を参考に、「DIFF モデルの設定」のマーカー名を合わせてください(左右の接頭辞 R/L を除いた部分を入力します)。
「体重が不明です」と表示される
体重を入力するか、床反力計に乗った静止立位データを指定してください。
関節モーメントが一部の区間で空欄になる
足が床反力計の外で接地している区間、両足が同じ床反力計に乗っている区間、椅子などが床反力計に乗っている区間(股関節のみ)は、正しく計算できないため空欄にしています。注意事項に理由が表示されます。
床反力計の判定が違う
左の「床反力計の割り当て」で、床反力計ごとに 右足・左足・その他(椅子など)・無視 を選び、もう一度「解析する」を押してください。



コメント