SCORM教材がLMSで動かない、学習履歴が記録されない、完了ステータスが反映されない——こうしたトラブルには必ず原因があります。本記事では、SCORMでよくあるトラブルを症状別に分類し、原因の特定方法と具体的な対処法をステップバイステップで解説します。
1. SCORM教材のトラブル——まず確認すべき3つのポイント
SCORM教材のトラブルに直面したとき、いきなり原因を探し始めるのは非効率です。まずは以下の3つの基本チェックを行いましょう。ほとんどの問題はこの段階で原因が絞り込めます。
1-1. imsmanifest.xmlの存在確認
SCORM教材パッケージ(ZIPファイル)を解凍し、ルート直下にimsmanifest.xmlが存在するかを確認してください。このファイルはSCORM教材の「目次」にあたるもので、LMS(学習管理システム)が教材を認識するために必須のファイルです。
ファイルが存在しない場合、LMSはそのZIPファイルをSCORM教材として認識できません。オーサリングツール(教材作成ツール)からの書き出し設定を見直しましょう。
1-2. ZIPの構造確認
ZIPファイルを解凍したとき、imsmanifest.xmlがフォルダの中にさらに入れ子になっていないかを確認します。よくあるミスは、フォルダごとZIP圧縮してしまい、以下のような構造になってしまうケースです。
- 正しい構造:
教材.zip > imsmanifest.xml, index.html, ... - 誤った構造:
教材.zip > 教材フォルダ > imsmanifest.xml, index.html, ...
ZIPを解凍して最初に見えるのがimsmanifest.xmlでなければなりません。
1-3. SCORM規格バージョンの確認
教材のSCORMバージョン(SCORM 1.2 / SCORM 2004)と、LMSが対応しているバージョンが一致しているかを確認します。imsmanifest.xml内のタグ(規格バージョンを示すXML要素)を見れば、教材がどのバージョンで作られているかがわかります。
- SCORM 1.2の場合:
1.2 - SCORM 2004の場合:
(Editionは異なる場合あり)2004 4th Edition
LMSがSCORM 1.2にしか対応していないのにSCORM 2004の教材をアップロードしている、というケースは意外と多いトラブルの原因です。
2. 症状別トラブルシューティング一覧
以下に、SCORMでよくある症状とその原因・対処法をまとめます。該当する症状から対処法を確認してください。
| # | 症状 | 主な原因 | 対処法 |
|---|---|---|---|
| 1 | 教材が表示されない / 真っ白になる | 起動ファイル(HTMLファイル)のパスがimsmanifest.xmlで正しく指定されていない。または教材内のJavaScriptエラー | imsmanifest.xmlのタグ内のhref属性(起動ファイルのパス指定)を確認。ブラウザの開発者ツール(F12キー)でコンソールのエラーを確認する |
| 2 | 「教材が見つかりません」エラー | ZIPファイルの構造が不正(imsmanifest.xmlがルート直下にない)。またはLMSがSCORMパッケージとして認識できていない | ZIPを解凍してimsmanifest.xmlがルート直下にあるか確認。フォルダごと圧縮していないか確認し、正しい構造で再ZIP化する |
| 3 | 学習履歴が記録されない | SCORM APIのInitialize(初期化処理)やCommit(データ保存命令)が正しく呼ばれていない。またはポップアップブロッカーによる通信阻害 | ブラウザの開発者ツールでSCORM APIの呼び出しログを確認。LMSのポップアップ許可設定を確認する |
| 4 | 完了ステータスが反映されない | 教材が完了ステータス(cmi.core.lesson_statusまたはcmi.completion_status)をLMSに送信していない、または送信タイミングが不適切 | 教材の最終ページ到達時または合格判定時にステータスをセットしているか確認。Commit呼び出しが行われているかも確認する |
| 5 | スコア(点数)が記録されない | スコアの値をSCORM APIにセットしていない。またはデータ型(SCORM 1.2は0〜100の数値、2004は0〜1の小数)が規格と合っていない | 教材のスコア送信処理を確認。SCORM 1.2ではcmi.core.score.rawに0〜100、2004ではcmi.score.scaledに0〜1の値をセットする |
| 6 | 中断・再開(レジューム)が効かない | ブックマーク情報(中断位置)の保存・読み取り処理が実装されていない。またはLMS側でレジューム機能が無効化されている | 教材側でcmi.core.lesson_location(1.2)またはcmi.location(2004)への書き込み・読み取り処理を確認。LMSのレジューム設定も確認する |
| 7 | 別のLMSに移行したら動かなくなった | 旧LMS独自の拡張機能や非標準のAPI呼び出しに依存していた。またはLMS間でSCORM実装の微妙な差異がある | SCORM標準の機能のみを使用しているか確認。SCORM Cloud(後述)でテストし、教材側の問題かLMS側の問題かを切り分ける |
| 8 | モバイル(スマートフォン・タブレット)で動かない | 過去に作成された教材がFlash(Adobe Flash Player)を使用している。またはレスポンシブ対応(画面サイズに応じたレイアウト調整)がされていない。ポップアップ型の起動がモバイルブラウザでブロックされている | HTML5ベースの教材に作り直す。レスポンシブデザインを適用する。LMSの教材表示方式をiframe埋め込み(ページ内に教材を表示する方式)に変更する |
3. デバッグの基本テクニック
トラブルの原因を正確に特定するには、適切なデバッグ(問題の原因調査)が不可欠です。ここでは、SCORM教材のデバッグに役立つ2つの方法を紹介します。
3-1. ブラウザ開発者ツール(F12)でのコンソール確認
ほぼすべてのSCORMトラブルの調査は、ブラウザの開発者ツールから始まります。
手順:
- LMS上で問題の教材を開く
- F12キーを押して開発者ツールを起動する
- 「Console」タブを選択する
- 赤字で表示されるエラーメッセージを確認する
よく見られるエラーの例:
API not found/API_1484_11 not found→ SCORM APIの検出に失敗している(後述の「5. SCORM API通信のよくある問題」を参照)404 Not Found→ 教材内のファイルパスが間違っているTypeError/ReferenceError→ JavaScriptのプログラムエラー
「Network」タブも併せて確認すると、ファイルの読み込み失敗(HTTPステータスコード(サーバーの応答状態を示す番号)が404や500のもの)を発見できます。
3-2. SCORM Cloudでのテスト
SCORM Cloudは、Rustici Software社が提供するSCORMのテスト・配信環境です。自社のLMSを介さずに教材単体の動作を検証できるため、「教材の問題なのかLMSの問題なのか」を切り分けるのに非常に有効です。
使い方:
- cloud.scorm.com にアクセスし、無料アカウントを作成する
- SCORM教材のZIPファイルをアップロードする
- 教材を起動し、正常に動作するか確認する
- 「Activity Details」画面でSCORM APIの通信ログ(送受信されたデータの記録)を確認する
SCORM Cloudで正常に動作するのに自社LMSでは動かない場合、LMS側の設定や互換性に問題がある可能性が高いと判断できます。逆にSCORM Cloudでも動かない場合は、教材側に問題があります。
4. imsmanifest.xmlのよくある記述ミス
imsmanifest.xmlはSCORM教材の「設計図」であり、ここに記述ミスがあると教材は正しく動作しません。以下は特によくあるミスです。
4-1. ファイルパスの間違い
タグのhref属性に記述する起動ファイルのパスが、実際のファイル配置と一致していないケースです。
<!-- 誤: 大文字・小文字が違う -->
<resource identifier="SCO1" type="webcontent" adlcp:scormType="sco" href="Index.html">
<!-- 正: 実際のファイル名に合わせる -->
<resource identifier="SCO1" type="webcontent" adlcp:scormType="sco" href="index.html">
WindowsのローカルPCでは大文字・小文字を区別しませんが、多くのLMS(Linuxサーバー上で動作するもの)では区別されます。ファイル名の大文字・小文字を正確に一致させてください。
4-2. identifier(識別子)の重複
タグやタグのidentifier属性は、パッケージ内で一意(ユニーク)でなければなりません。コピー&ペーストで複数のSCOを追加した際に、identifierの変更を忘れるミスが多発します。
4-3. XMLの構文エラー
タグの閉じ忘れ、属性値の引用符の欠落、特殊文字(<, >, &)のエスケープ漏れ(XMLで使えない文字を安全な表記に変換すること)などが原因で、XMLとして不正になるケースです。
<!-- 誤: &がエスケープされていない -->
<title>Q&A テスト教材</title>
<!-- 正: & に変換する -->
<title>Q&A テスト教材</title>
XMLバリデーター(XML文法チェックツール)やテキストエディタのXML検証機能を使って、構文の正しさを事前にチェックしましょう。
4-4. エンコーディング(文字コード)の問題
imsmanifest.xmlの文字コードはUTF-8が標準です。Shift_JISやEUC-JPで保存されていると、日本語のタイトルやメタデータが文字化け(意図しない文字に変わること)したり、XMLパーサー(XML読み取り処理)がエラーを起こしたりします。
ファイル冒頭の宣言部分がになっていることを確認し、テキストエディタの「文字コード指定保存」機能でUTF-8(BOMなし)で保存してください。
5. SCORM API通信のよくある問題
SCORM教材とLMSの間のデータ通信は、JavaScript APIを通じて行われます。この通信部分のトラブルは、学習データが記録されない問題の最大の原因です。
5-1. Initialize / Terminateの呼び出し漏れ
SCORM通信を行うには、最初にInitialize(初期化)を呼び、最後にTerminate(終了処理。SCORM 1.2ではLMSFinish)を呼ぶ必要があります。
- Initialize(1.2:
LMSInitialize("")/ 2004:Initialize(""))を呼ばないと、以降のすべてのAPI呼び出しが無効になります - Terminate(1.2:
LMSFinish("")/ 2004:Terminate(""))を呼ばないと、最後にセットしたデータがLMSに保存されない場合があります
教材のページ読み込み時にInitializeを、ページ離脱時(window.onbeforeunloadイベントなど)にTerminateを確実に呼ぶ実装になっているか確認してください。
5-2. Commitの漏れ
Commit(1.2: LMSCommit("") / 2004: Commit(""))は、セットしたデータをLMSに確実に保存させる命令です。SetValue(データの書き込み)だけではデータが即座にLMSに反映されないケースがあるため、重要なデータをセットした後には必ずCommitを呼びましょう。
特に、学習ステータスやスコアをセットした直後にCommitを呼ばないまま教材を閉じると、データが消失するリスクがあります。
5-3. API検出の失敗
SCORM教材は、起動時にLMSが提供するAPIオブジェクト(JavaScriptのグローバルオブジェクト)を自動検出する必要があります。
- SCORM 1.2:
APIという名前のオブジェクトを親ウィンドウから検索 - SCORM 2004:
API_1484_11という名前のオブジェクトを親ウィンドウから検索
このAPI検出が失敗する主な原因:
- ポップアップブロック: 教材がポップアップウィンドウで開かれる設定なのにブラウザがブロックしている
- クロスドメイン制限: LMSと教材が異なるドメイン(Webアドレスの異なるサイト)にある場合、ブラウザのセキュリティ制限でAPIにアクセスできない
- フレーム構造の問題: APIオブジェクトの検索ロジックが、LMSのフレーム構造(iframeの階層)と合っていない
pipwerks SCORM Wrapper(SCORM API通信を簡略化するオープンソースライブラリ)などの実績あるAPIラッパーを使用すると、API検出の問題を回避しやすくなります。
6. LMS側の設定で確認すべきポイント
教材に問題がない場合でも、LMS側の設定が原因でトラブルが発生することがあります。以下のポイントを確認してください。
6-1. ファイルサイズ制限
多くのLMSには、アップロード可能なファイルサイズの上限が設定されています(一般的に100MB〜500MB程度)。動画を含む大容量教材の場合、この制限に引っかかることがあります。
対処法: LMS管理者にアップロード上限を確認し、必要に応じて引き上げを依頼します。動画ファイルは外部のストリーミングサーバーやCDN(コンテンツ配信ネットワーク)にホスティングし、教材からはURLで参照する設計にすると根本的に解決できます。
6-2. ポップアップブロック
LMSによっては、SCORM教材を別ウィンドウ(ポップアップ)で開く仕様のものがあります。ブラウザのポップアップブロック機能が有効になっていると、教材の起動自体が阻害されます。
対処法: LMSのURLをブラウザのポップアップ許可リストに追加するよう、学習者にアナウンスします。可能であれば、LMS側の設定を「iframe内表示(同じページ内に教材を埋め込む方式)」に変更すると、ポップアップブロックの影響を受けません。
6-3. セキュリティ設定
近年のブラウザはセキュリティが強化されており、以下の設定がSCORM通信に影響する場合があります。
- サードパーティCookieのブロック: LMSのセッション管理がCookie(ブラウザに保存される小さなデータ)に依存している場合、ブロックされるとログイン状態が維持できず、SCORM通信も失敗します
- Mixed Content(混在コンテンツ)のブロック: LMSがHTTPS(暗号化通信)で、教材内のリソースがHTTP(非暗号化通信)で参照されている場合、ブラウザが読み込みをブロックします
- CORS(Cross-Origin Resource Sharing)設定: 教材が外部ドメインのリソースを参照する場合、サーバー側でCORS(異なるドメイン間のリソース共有を許可するHTTPの仕組み)の設定が必要です
対処法: LMSと教材のすべてのリソースをHTTPSに統一します。サードパーティCookieの問題は、LMSベンダーに対応状況を確認してください。
6-4. タイムアウト設定
LMSにはセッションタイムアウト(一定時間操作がないと自動的にログアウトする機能)が設定されていることがあります。長時間の教材を受講している途中でセッションが切れると、それ以降のSCORM通信が失敗し、学習データが記録されません。
対処法: LMS管理者にセッションタイムアウトの時間を確認し、長時間教材の場合は適切な値に延長してもらいます。教材側でも、定期的にCommitを呼んでデータを中間保存する実装にしておくと、データ消失のリスクを軽減できます。
7. 自力で解決できないときは
ここまでの対処法を試しても問題が解決しない場合、以下のような状況が考えられます。
- 教材とLMSの相性問題——特定のLMSとオーサリングツールの組み合わせで発生する固有の問題
- SCORM規格の仕様解釈の違い——教材側とLMS側でSCORM規格の解釈が異なる場合に生じる互換性の問題
- 複合的な原因——ネットワーク環境、サーバー設定、ブラウザバージョンなど複数の要因が絡み合っている場合
こうしたケースでは、SCORM規格に精通した専門家に相談するのが最も効率的です。問題の切り分けから解決策の提案まで、専門知識に基づいた対応が可能です。
エレファンキューブは、eラーニング専門18年・SCORM教材の制作実績3,000件超の経験を活かし、SCORMに関するあらゆるトラブルの診断と解決をサポートしています。「原因がわからない」「LMSベンダーに聞いても解決しない」といった場合でも、お気軽にお問い合わせください。
8. まとめ
- まず基本の3点(imsmanifest.xmlの存在、ZIPの構造、SCORMバージョンの一致)を確認する
- 症状から原因を絞り込み、本記事の対処法を順に試す
- ブラウザ開発者ツールとSCORM Cloudを使えば、教材とLMSどちらの問題かを切り分けられる
- imsmanifest.xmlの記述ミスとSCORM APIの呼び出し漏れが、トラブルの大半を占める
- 自力で解決できない場合は、SCORM専門家への相談が最も確実で効率的
SCORMのトラブルでお困りですか?エレファンキューブは、eラーニング専門18年・3,000件超の制作実績で培ったノウハウを活かし、SCORM教材の制作からトラブル対応まで幅広くサポートしています。まずはお気軽にご相談ください。
株式会社エレファンキューブ
eラーニング教材制作の専門会社。2008年の創業以来、3,000件超の制作実績を持ち、SCORM 1.2 / SCORM 2004 / xAPI / cmi5など各種規格に精通。企画からLMS搭載まで、ワンストップで対応しています。
コーポレートサイト