SCORMの仕組みは「パッケージング」「ランタイム通信」「シーケンシング」の3つに分けて理解すると、全体像がすっきりと見えてきます。この記事では、eラーニング教材とLMS(学習管理システム)がどのように連携して動いているのかを、初心者の方にもわかりやすいように図解・比喩を交えて解説します。

1. SCORMの全体像——3つの仕組み

SCORM(Sharable Content Object Reference Model:スコーム)は、eラーニング教材とLMSをつなぐ「共通ルール」です。このルールは、大きく3つの仕組みで成り立っています。

3つの仕組みを日常の比喩で理解する

SCORMの全体像を、「レストランの注文」にたとえて考えてみましょう。

  1. コンテンツ・パッケージング——料理の「メニュー表」にあたる部分です。お店(LMS)に「どんな料理(教材)があるのか」「どの順番で出すのか」を伝える仕組みです。
  2. ランタイム通信——お客さん(学習者)とウェイター(LMS)の「会話」にあたります。「注文します」「こちら料理です」「お会計お願いします」というやり取りが、教材とLMS間で自動的に行われます。
  3. シーケンシング——コース料理の「提供順序ルール」です。「前菜が終わってからメインを出す」ように、学習の順序を制御します。この機能はSCORM 2004のみに搭載されています。

これら3つが組み合わさることで、「教材を一度作れば、どのSCORM対応LMSでも同じように動く」という互換性が実現されているのです。

2. 仕組み1: コンテンツ・パッケージング

imsmanifest.xml——教材の「設計図」

SCORM教材は、学習コンテンツ(HTMLファイル、画像、動画など)と一緒にimsmanifest.xml(アイエムエス・マニフェスト・エックスエムエル)というファイルをまとめてZIP形式で圧縮したものです。このZIPファイルをSCORMパッケージと呼びます。

imsmanifest.xmlは、教材の中身を説明する「目次」のようなものです。このファイルには、以下の情報が記述されています。

  • 教材のタイトル——LMSに表示される教材名
  • 教材の構成——どのファイルがどの章に対応するか
  • 起動ファイル——学習者がアクセスしたときに最初に開くファイル
  • 学習項目の階層構造——章・節・ページの親子関係

「宅配便の伝票」で理解するパッケージング

パッケージングの仕組みは、宅配便の伝票にたとえるとわかりやすいでしょう。

  • ダンボール箱(ZIPファイル)——教材ファイル一式を入れる箱
  • 伝票(imsmanifest.xml)——中に何が入っているか、届け先(起動ファイル)はどこかを記載
  • 中身の品物(HTML / JS / CSS / 画像 / 動画)——実際の教材コンテンツ

宅配便が届いたとき、配達員は伝票を見て届け先を判断しますよね。同じように、LMSはimsmanifest.xmlを読み取ることで、教材の構成や起動方法を自動的に認識します。伝票の書き方が間違っていると届け先がわからないように、imsmanifest.xmlの記述に誤りがあると教材は正しく動作しません。

SCORMパッケージのファイル構成

典型的なSCORMパッケージのファイル構造は以下のとおりです。

ファイル / フォルダ役割
imsmanifest.xml教材の構成情報(マニフェストファイル)。必須
HTML / JS / CSS教材の本体コンテンツ
images / video / audio教材で使用するメディアファイル
XSD / DTDファイルマニフェストの書式を検証するための定義ファイル

重要なルールとして、imsmanifest.xmlはZIPファイルのルート(最上位階層)に配置しなければなりません。フォルダの中に入れてしまうと、LMSが教材を認識できなくなるので注意が必要です。

3. 仕組み2: ランタイム通信——教材とLMSの会話

SCORM APIとは

教材がLMS上で起動されると、ブラウザの中で教材とLMSがJavaScript API(ジャバスクリプト・エーピーアイ)を通じてデータをやり取りします。このAPIが、SCORMのランタイム通信の核心部分です。

APIとは、ソフトウェア同士が情報をやり取りするための「窓口」のようなものです。教材はこの窓口を通じて、LMSにデータを送ったり、LMSからデータを受け取ったりします。

通信の3ステップ——初期化→データ送受信→終了

SCORM教材とLMSの会話は、以下の3ステップで行われます。

ステップ1: 初期化(接続開始)

学習者が教材を開くと、教材はまずLMSに「これから通信を始めます」と宣言します。これをInitialize(初期化)と呼びます。電話にたとえれば「もしもし」にあたる部分です。

ステップ2: データの送受信(学習中のやり取り)

初期化が完了すると、教材はLMSとの間でデータを読み書きできるようになります。

  • GetValue(値の取得)——LMSから情報を受け取る。例:前回の中断箇所を読み込む
  • SetValue(値の設定)——LMSに情報を送る。例:テストの点数を記録する
  • Commit(確定送信)——設定した値をLMSに確実に保存させる

電話の会話にたとえれば、GetValueは「前回の内容を教えてください」、SetValueは「今回の結果を伝えます」、Commitは「今の内容、メモしておいてくださいね」にあたります。

ステップ3: 終了(接続終了)

学習者が教材を閉じるとき、教材はLMSに「通信を終了します」と伝えます。これをTerminate(終了)と呼びます。電話の「それでは失礼します」にあたり、この宣言によってLMS側でデータの保存処理が完了します。

具体的にどんなデータがやり取りされるのか

ランタイム通信で実際にやり取りされるデータの例を紹介します。

やり取りの方向データの例内容
LMS → 教材学習者の名前教材内で「○○さん、こんにちは」と表示するため
LMS → 教材前回の中断位置前回の続きから学習を再開するため
教材 → LMS学習ステータス「完了」「未完了」「合格」「不合格」などを記録
教材 → LMSテストの点数0〜100の数値で得点を記録
教材 → LMS学習時間教材に費やした時間を記録
教材 → LMS中断位置次回アクセス時に続きから再開できるように保存

これらの通信はすべてブラウザ上のJavaScriptで処理されるため、特別なソフトウェアのインストールやサーバー設定は不要です。

4. SCORM データモデル——何が記録されるのか

データモデルとは

SCORMのデータモデルとは、教材とLMSの間でやり取りできるデータ項目の一覧表のことです。「何を記録してよいか」「どんな値が許されるか」がすべて仕様で決められています。

たとえば、学習ステータスには「completed(完了)」「incomplete(未完了)」「passed(合格)」「failed(不合格)」など、決められた値しか設定できません。この厳密なルールがあるからこそ、異なるLMS間でもデータの互換性が保たれるのです。

主要なデータ項目一覧

以下は、実際の現場でよく使われるSCORMデータモデルの主要項目です。SCORM 1.2の名称で記載し、括弧内にSCORM 2004での対応名称を示します。

データ項目SCORM 1.2での名称説明
学習ステータスcmi.core.lesson_status学習の状態(completed, incomplete, passed, failed など)
合計得点cmi.core.score.rawテストの得点(0〜100の数値)
最低得点cmi.core.score.min得点の最小値
最高得点cmi.core.score.max得点の最大値
学習時間cmi.core.session_time今回のセッションで費やした時間
累積学習時間cmi.core.total_timeこれまでの学習時間の合計
中断データcmi.suspend_data中断時のデータ保存用(最大4096文字)
前回の中断位置cmi.core.lesson_locationブックマーク(中断箇所の目印)
学習者の名前cmi.core.student_nameLMSに登録された学習者名
学習者IDcmi.core.student_idLMSに登録された学習者の識別番号

特に重要なのはlesson_status(学習ステータス)、score.raw(得点)、session_time(学習時間)、suspend_data(中断データ)の4項目です。ほとんどのSCORM教材で、この4つは必ずと言ってよいほど使われています。

suspend_dataは「教材側の自由帳」のような存在です。教材が独自に保存したいデータ(どの問題に正解したか、どのページまで見たかなど)を文字列として保存できます。ただし、SCORM 1.2では最大4,096文字という制限があるため、大量のデータを保存したい場合は工夫が必要です。

5. 仕組み3: シーケンシング——学習順序の制御

シーケンシングとは

シーケンシング(Sequencing & Navigation:学習順序制御)は、SCORM 2004で追加された仕組みです。教材の中で「どの順番で学習させるか」「どの条件を満たしたら次に進めるか」を、imsmanifest.xmlの中にルールとして定義できます。

SCORM 1.2にはこの機能がないため、学習者は教材の中を自由に行き来できます。「Chapter 1を完了しないとChapter 2に進めない」といった制御をしたい場合は、SCORM 2004を選ぶ必要があります。

シーケンシングの具体例

シーケンシングで設定できるルールの例をいくつか紹介します。

  • 前提条件の制御——「Chapter 1を完了しなければChapter 2は表示しない」
  • 合格条件の制御——「テストで80点以上を取らないと次の章に進めない」
  • 繰り返し受講の制御——「不合格の場合、同じ章をもう一度受講させる」
  • スキップの制御——「事前テストで90点以上なら基礎編をスキップして応用編へ進む」

これらのルールはすべてimsmanifest.xml内に記述され、LMSがルールを解釈して学習者の画面遷移を制御します。ただし、シーケンシングの仕様は非常に複雑であり、LMSによって対応度にばらつきがあるのが実情です。

6. SCORM 1.2と2004で仕組みはどう違うか

SCORMの2つのバージョンは、3つの仕組みそれぞれに違いがあります。ここでは技術的な差異を簡潔にまとめます。

通信API名の違い

教材がLMSと通信するときに呼び出すAPI(関数名)が異なります。

操作SCORM 1.2SCORM 2004
APIオブジェクト名APIAPI_1484_11
初期化LMSInitialize("")Initialize("")
値の取得LMSGetValue(element)GetValue(element)
値の設定LMSSetValue(element, value)SetValue(element, value)
確定送信LMSCommit("")Commit("")
終了LMSFinish("")Terminate("")

SCORM 1.2では関数名に「LMS」というプレフィックス(接頭辞)が付きますが、SCORM 2004ではシンプルな名称に変更されています。

データモデルの違い

項目SCORM 1.2SCORM 2004
学習ステータスlesson_status(1つで管理)completion_status + success_status(2つに分離)
得点の範囲0〜100の数値0〜1の小数(例:0.85 = 85点相当)
データモデル項目数約30項目約90項目
suspend_dataの上限4,096文字64,000文字
シーケンシングなしあり

SCORM 2004では、lesson_status(学習ステータス)がcompletion_status(完了状態:completed / incomplete)とsuccess_status(成否状態:passed / failed)の2つに分離されました。これにより、「学習は完了したがテストは不合格」といった状態をより正確に表現できるようになっています。

7. SCORMが動くまでの流れ——5ステップで理解

ここまでの内容を踏まえて、SCORM教材が実際に動くまでの流れを5つのステップで整理します。

ステップ1: 教材の制作

HTMLやJavaScriptで教材コンテンツを作成します。オーサリングツール(iSpring Suite、Articulate Storylineなど)を使えば、プログラミングなしで制作可能です。教材の中には、SCORM APIを呼び出すためのJavaScriptコードが含まれています。

ステップ2: SCORMパッケージの作成

制作した教材ファイル一式にimsmanifest.xmlを追加し、ZIP形式で圧縮してSCORMパッケージを作成します。オーサリングツールを使っている場合は、「SCORM形式でエクスポート」の操作で自動的にパッケージが生成されます。

ステップ3: LMSへのアップロード

作成したSCORMパッケージ(ZIPファイル)をLMSにアップロードします。LMSはZIPを展開し、imsmanifest.xmlを読み取って教材の構成情報を登録します。この時点で、教材のタイトルや章立てがLMS上に表示されるようになります。

ステップ4: 学習者が教材を起動

学習者がLMS上で教材をクリックすると、LMSは教材をブラウザ上で起動します。教材が起動されると、まずInitialize(初期化)が実行され、教材とLMS間の通信が開始されます。前回の中断データがあれば、この時点で読み込まれます。

ステップ5: 学習データの記録

学習者が教材を進めるにつれて、学習ステータス・得点・学習時間などのデータがリアルタイムでLMSに送信されます。教材を閉じるとき(または学習完了時)にTerminate(終了)が実行され、すべてのデータが確定保存されます。管理者はLMSの管理画面から、学習者ごとの進捗や成績を確認できます。

8. まとめ

  • SCORMの仕組みは3つ——コンテンツ・パッケージング、ランタイム通信、シーケンシング(SCORM 2004のみ)
  • imsmanifest.xmlが教材の「目次」となり、LMSが教材の構成を認識する
  • SCORM APIを通じて教材とLMSが自動的にデータをやり取りし、学習ステータスや得点が記録される
  • SCORM 1.2と2004ではAPI名・データモデル・シーケンシングの有無が異なる
  • 教材制作→パッケージング→LMSアップロード→学習者起動→データ記録の5ステップで動作する

SCORMの仕組みや教材制作について、ご不明な点やお困りのことがあれば、お気軽にご相談ください。eラーニング専門18年・3,000件超の実績を持つエレファンキューブが、貴社のSCORM導入・教材制作をサポートいたします。

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

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

無料で相談する

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

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

コーポレートサイト