SCORMデータモデル(CMIエレメント)とは、eラーニング教材(SCO)とLMSの間でやり取りされるデータ項目の定義です。学習者の進捗状況・得点・完了状態などを、どのような名前・形式で記録するかを標準化しており、SCORM準拠の教材開発では必須の知識となります。

1. SCORMデータモデルとは

SCORMのランタイム通信では、教材(SCO)がJavaScript APIを通じてLMSにデータを読み書きします。このとき使用されるデータ項目をデータモデル(Data Model)またはCMIエレメントと呼びます。

データモデルには大きく分けて2つのバージョンがあります。

  • SCORM 1.2 —— cmi.core.* を中心としたフラットな構造
  • SCORM 2004 —— cmi.* を中心とした拡張・再設計された構造

教材開発者は、これらのエレメントを LMSGetValue() / GetValue() で読み取り、LMSSetValue() / SetValue() で書き込むことで、LMSと学習データを連携させます。

2. SCORM 1.2 CMIエレメント一覧

SCORM 1.2で使用される主要なCMIエレメントの一覧です。R=読み取り専用、W=書き込み専用、RW=読み書き可能を示します。

cmi.core 系(必須エレメント)

エレメント名説明データ型R/W
cmi.core.student_id学習者のIDCMIString255R
cmi.core.student_name学習者の氏名CMIString255R
cmi.core.lesson_location学習位置(ブックマーク)CMIString255RW
cmi.core.credit単位認定の有無"credit" / "no-credit"R
cmi.core.lesson_status学習ステータス"passed","completed","failed","incomplete","browsed","not attempted"RW
cmi.core.entry初回/再開の区分"ab-initio","resume",""R
cmi.core.score.raw素点CMIDecimal (0-100)RW
cmi.core.score.min最低点CMIDecimalRW
cmi.core.score.max最高点CMIDecimalRW
cmi.core.total_time累計学習時間CMITimespan (HHHH:MM:SS.SS)R
cmi.core.session_time今回のセッション時間CMITimespanW
cmi.core.exit終了方法"time-out","suspend","logout",""W
cmi.core.lesson_mode学習モード"browse","normal","review"R

cmi.suspend_data / cmi.launch_data 系

エレメント名説明データ型R/W
cmi.suspend_data中断データ(自由形式の保存領域)CMIString4096RW
cmi.launch_data起動時パラメータCMIString4096R
cmi.comments学習者コメントCMIString4096RW
cmi.comments_from_lmsLMSからのコメントCMIString4096R

cmi.objectives / cmi.interactions 系

エレメント名説明データ型R/W
cmi.objectives._count目標の数CMIIntegerR
cmi.objectives.n.id目標IDCMIIdentifierRW
cmi.objectives.n.score.raw目標の素点CMIDecimalRW
cmi.objectives.n.score.min目標の最低点CMIDecimalRW
cmi.objectives.n.score.max目標の最高点CMIDecimalRW
cmi.objectives.n.status目標のステータス"passed","completed","failed","incomplete","browsed","not attempted"RW
cmi.interactions._countインタラクション数CMIIntegerR
cmi.interactions.n.idインタラクションIDCMIIdentifierW
cmi.interactions.n.type問題の種類"true-false","choice","fill-in","matching","performance","sequencing","likert","numeric"W
cmi.interactions.n.result解答結果"correct","wrong","unanticipated","neutral",CMIDecimalW
cmi.interactions.n.latency解答にかかった時間CMITimespanW

3. SCORM 2004 CMIエレメント一覧

SCORM 2004ではデータモデルが大幅に拡張され、名前空間も整理されました。以下に主要エレメントを示します。

学習者情報・基本エレメント

エレメント名説明データ型R/W
cmi.learner_id学習者のIDlong_identifier_type (4000文字)R
cmi.learner_name学習者の氏名localized_string_typeR
cmi.location学習位置(ブックマーク)characterstring (1000文字)RW
cmi.credit単位認定の有無"credit" / "no-credit"R
cmi.completion_status完了ステータス"completed","incomplete","not attempted","unknown"RW
cmi.success_status合否ステータス"passed","failed","unknown"RW
cmi.entry初回/再開の区分"ab-initio","resume",""R
cmi.mode学習モード"browse","normal","review"R
cmi.exit終了方法"time-out","suspend","logout","normal",""W
cmi.session_time今回のセッション時間timeinterval (PT形式: PT1H30M)W
cmi.total_time累計学習時間timeintervalR
cmi.suspend_data中断データcharacterstring (64000文字)RW
cmi.launch_data起動時パラメータcharacterstring (4000文字)R
cmi.max_time_allowed最大許容時間timeintervalR
cmi.time_limit_action時間超過時の動作"exit,message","exit,no message","continue,message","continue,no message"R
cmi.completion_threshold完了とみなす閾値real (0.0-1.0)R
cmi.scaled_passing_score合格とみなす閾値real (-1.0-1.0)R
cmi.progress_measure進捗度real (0.0-1.0)RW
cmi.learner_preference.audio_level音量設定real (>=0)RW
cmi.learner_preference.language言語設定language_typeRW
cmi.learner_preference.delivery_speed再生速度real (>=0)RW
cmi.learner_preference.audio_captioning字幕設定state (-1, 0, 1)RW

スコア系エレメント

エレメント名説明データ型R/W
cmi.score.raw素点realRW
cmi.score.min最低点realRW
cmi.score.max最高点realRW
cmi.score.scaled正規化スコア(-1.0〜1.0)real (-1.0-1.0)RW

cmi.objectives / cmi.interactions / cmi.comments_from_learner 系

エレメント名説明データ型R/W
cmi.objectives._count目標の数integer (non-negative)R
cmi.objectives.n.id目標IDlong_identifier_typeRW
cmi.objectives.n.success_status目標の合否"passed","failed","unknown"RW
cmi.objectives.n.completion_status目標の完了状態"completed","incomplete","not attempted","unknown"RW
cmi.objectives.n.score.scaled目標の正規化スコアreal (-1.0-1.0)RW
cmi.objectives.n.progress_measure目標の進捗度real (0.0-1.0)RW
cmi.interactions._countインタラクション数integer (non-negative)R
cmi.interactions.n.idインタラクションIDlong_identifier_typeRW
cmi.interactions.n.type問題の種類"true-false","choice","fill-in","long-fill-in","matching","performance","sequencing","likert","numeric","other"RW
cmi.interactions.n.result解答結果"correct","incorrect","unanticipated","neutral",realRW
cmi.interactions.n.latency解答にかかった時間timeintervalRW
cmi.interactions.n.timestamp解答日時time (ISO 8601)RW
cmi.comments_from_learner._count学習者コメント数integerR
cmi.comments_from_learner.n.commentコメント本文localized_string_type (4000文字)RW
cmi.comments_from_lms._countLMSコメント数integerR
cmi.comments_from_lms.n.commentLMSコメント本文localized_string_type (4000文字)R

4. SCORM 1.2 → 2004 マッピング表

SCORM 1.2のエレメントがSCORM 2004ではどのエレメントに対応するかを示します。移行時の参考にしてください。

SCORM 1.2SCORM 2004備考
cmi.core.student_idcmi.learner_id名前空間の変更のみ
cmi.core.student_namecmi.learner_name同上
cmi.core.lesson_locationcmi.location最大文字数が255→1000に拡張
cmi.core.lesson_statuscmi.completion_status + cmi.success_status1つのステータスが完了と合否の2軸に分離
cmi.core.score.rawcmi.score.rawデータ型がrealに変更
cmi.core.score.mincmi.score.min同上
cmi.core.score.maxcmi.score.max同上
(なし)cmi.score.scaled2004で新規追加(正規化スコア)
cmi.core.total_timecmi.total_time時間形式がHHHH:MM:SS→ISO 8601 PT形式に変更
cmi.core.session_timecmi.session_time同上
cmi.core.exitcmi.exit"normal"が追加
cmi.core.entrycmi.entry変更なし
cmi.core.creditcmi.credit変更なし
cmi.core.lesson_modecmi.mode名前の変更のみ
cmi.suspend_datacmi.suspend_data最大文字数が4096→64000に大幅拡張
cmi.launch_datacmi.launch_data最大文字数が4096→4000に微減
(なし)cmi.progress_measure2004で新規追加(進捗度0.0-1.0)
(なし)cmi.completion_threshold2004で新規追加
(なし)cmi.scaled_passing_score2004で新規追加

5. よく使うエレメントの解説

lesson_status / completion_status + success_status

SCORM 1.2では cmi.core.lesson_status 1つで「完了かつ合格」「未完了」などを表現していました。SCORM 2004ではこれがcompletion_status(完了状態)success_status(合否)の2つに分離されています。

これにより「完了したが不合格」「未完了だが途中経過は合格ライン」といった細かい状態表現が可能になりました。移行時は、1.2の lesson_status の値を2つのステータスに振り分けるロジックが必要です。

suspend_data

suspend_data は教材が自由に使える保存領域で、学習の中断・再開時にブックマーク情報やUIの状態を保持するために使います。SCORM 1.2では最大4096文字でしたが、SCORM 2004では64000文字に大幅拡張されました。

JSON形式でデータを格納するのが一般的ですが、LMSによっては日本語(マルチバイト文字)の扱いに差異がある場合があります。encodeURIComponent() でエンコードしてから保存すると安全です。

score.scaled(SCORM 2004のみ)

SCORM 2004で追加された cmi.score.scaled は、-1.0から1.0の範囲で正規化されたスコアです。cmi.scaled_passing_score(合格閾値)と比較することで、LMSが自動的に cmi.success_status を判定できる仕組みになっています。100点満点のテストで80点なら 0.8 と設定します。

session_time の形式の違い

SCORM 1.2では HHHH:MM:SS.SS(例: 0001:23:45.00)という独自形式を使いますが、SCORM 2004ではISO 8601のDuration形式(例: PT1H23M45S)に変更されました。フォーマットを間違えるとLMSに記録されないことがあるため注意が必要です。

6. よくある質問(FAQ)

Q1. SCORM 1.2と2004でデータモデルの最大の違いは何ですか?

最大の違いは lesson_statuscompletion_statussuccess_status に分離された点です。これにより学習の完了状態と合否を独立して管理できるようになりました。また、suspend_data の最大容量が4096文字から64000文字に大幅拡張されたことも実務上の大きな変更点です。

Q2. cmi.suspend_data に日本語を保存しても問題ありませんか?

SCORM仕様上は問題ありませんが、LMSの実装によっては文字化けやデータ欠損が発生するケースがあります。安全のため、encodeURIComponent() でエンコードしてから保存し、読み出し時に decodeURIComponent() でデコードすることを推奨します。

Q3. cmi.interactions は必ず実装する必要がありますか?

必須ではありません。テスト結果の詳細(各問題の正誤・解答内容)をLMSに記録したい場合に使用します。単純な進捗管理だけであれば lesson_status(1.2)や completion_status / success_status(2004)の設定で十分です。

Q4. SCORM 1.2の教材をSCORM 2004に移行する際、データモデル部分で注意すべき点は?

主な注意点は3つです。(1) lesson_statuscompletion_statussuccess_status に分離するロジックの実装、(2) 時間形式を HHHH:MM:SS.SS からISO 8601 PT形式に変換、(3) API関数名の変更(LMSGetValueGetValue など)。マッピング表(第4章)を参考に、1つずつ対応を確認してください。

Q5. LMSによってサポートされるエレメントに差異はありますか?

はい、あります。SCORM仕様では必須エレメント(Mandatory)とオプションエレメント(Optional)が定義されていますが、特に cmi.interactionscmi.objectives の対応範囲はLMSによって異なります。導入前にLMSベンダーに対応エレメントを確認することをお勧めします。

7. まとめ

  • SCORM 1.2cmi.core.* を中心としたシンプルな構造で、導入・実装が容易
  • SCORM 2004completion_statussuccess_status の分離、score.scaled の追加など、より精密な学習管理が可能
  • suspend_data の容量はSCORM 2004で約15倍に拡張(4096→64000文字)されており、複雑な教材の中断・再開に対応しやすい
  • 1.2から2004への移行時は、ステータスの分離・時間形式の変換・API関数名の変更が主な対応ポイント
  • LMSによるオプションエレメントのサポート差異があるため、事前確認が重要

SCORMデータモデルの実装やバージョン移行でお困りの方は、eラーニング専門18年・3,000件超の実績を持つ株式会社エレファンキューブにご相談ください。教材のSCORM変換から技術的なトラブルシューティングまで、専門スタッフがサポートいたします。

SCORMのことならお気軽にご相談ください

SCORMのことなら、何でもご相談ください

SCORM変換・教材制作・技術トラブルの解決まで、ワンストップで対応します。ご相談・お見積もりは無料です。

無料で相談する

株式会社エレファンキューブ

eラーニング教材制作の専門会社。2008年の創業以来、3,000件超の制作実績を持ち、SCORM 1.2 / SCORM 2004 / xAPI / cmi5など各種規格に精通。企画からLMS搭載まで、ワンストップで対応しています。

コーポレートサイト