---
title: ".x3dファイルの確認、編集、および検証を行います"
date: "2020-08-21"
categories: 
  - "applications"
  - "json"
  - "xml"
  - "xsl"
tags: 
  - "industry-standards"
  - "json-editor"
  - "x3d"
  - "xml-editor"
  - "xslt"
description: .x3dファイル形式について、3Dモデリングにおけるその応用、そしてXMLSpyのツールや技術を用いて、これらのファイルを検査、編集、検証する方法を解説します。
---
Status: #blog

Tags:  #industry-standards #json-editor #x3d #xml-editor #xslt

Categories: [development](/blog/ja/category/development.md) | [json](/blog/ja/category/json.md) | [xml](/blog/ja/category/xml.md) | [xsl](/blog/ja/category/xsl.md)
# .x3dファイルの確認、編集、および検証を行います

.x3dファイル形式は、ISO/IECが定める、XMLベースの3次元画像の表現に関する標準規格です。X3Dとも呼ばれ、.x3dファイルは、当初はコンピュータグラフィックスにおける3次元画像の表現を目的として開発されました。その後、その用途はバーチャルリアリティ（VRML）、CAD設計、建築デザイン、3Dプリンティング、医療・解剖学的イメージング、分子化学構造の表現、人物アニメーションなど、多岐にわたる分野へと広がりました。

[Web3Dコンソーシアム](https://www.web3d.org/x3d/what-x3d/)は、X3D規格を維持しており、XMLスキーマに関するドキュメントは[こちら](http://www.web3d.org/specifications/X3dSchemaDocumentation3.3/x3d-3.3.html)で確認できます。現在のバージョンには、250種類以上のXML要素、100種類以上の単純型、70種類以上の複雑な型、および40種類以上の定義済みのノードグループが含まれています。

精密に製造された機械部品から、豊かな表現を持つ仮想環境まで、あらゆるものを正確に記述するには、それだけの複雑さが必要となります。特に、照明、テクスチャ、視点などを考慮すると、その重要性は増します。XMLSpyは、XMLおよびJSON関連技術の[モデリング、編集、変換、デバッグ](https://www.altova.com/ja/xmlspy-xml-editor)において世界で最も利用されているツールであり、.x3dファイルをサポートしています。XMLSpyは、.x3dファイルを検査、交換、利用、または検証する必要があるすべての人にとって、標準に準拠したツールを提供します。いくつかの例を見てみましょう。

![](/blog/images/draft_x3d_01.png)

<!--more-->

まず、XMLSpyのツールメニューをカスタマイズして、.x3dファイルから3D画像を簡単に表示するための新しいメニュー項目を作成できます。ウェブサイトのweb3d.orgに掲載されている2つのX3Dプレイヤーをインストールしました [X3D リソース](https://www.web3d.org/x3d/content/examples/X3dResources.html) それぞれのページで結果を比較できるようにするため、ここにユーザーが定義できるメニューオプションを作成します

[![](/blog/images/tools-menu-1a-1.png)](tools-menu-1a-1.png)

次に、.x3dファイルが必要です。オンライン上には多くのサンプルが公開されています。アメリカ国立衛生研究所（NIH）が提供しています [.x3dファイル群のライブラリ](https://3dprint.nih.gov/) これらのファイルには、化学構造モデル、3Dプリンターで出力できるオブジェクト、そして細胞組織や生物の実際のレンダリングなど、様々なX3Dアプリケーションが含まれています。詳細は、ウェブサイトをご覧ください。

まず、3Dプリンターで出力できる形状について説明します。以下のスクリーンショットでは、あるファイルを読み込み、ツールメニューを使用して、そのファイルをH3DViewerアプリでも開いています

[![XMLSpyは、.x3dファイルを起動すると、自動的にそのファイルの内容を検証します](/blog/images/Capture-earsaver-1.png)](Capture-earsaver-1.png)

メインのテキスト表示の下にあるメッセージウィンドウにご注意ください。XMLSpyは、.x3dファイルを読み込む際に、自動的にそのファイルの内容を検証します。H3Dビューアでは、画像をクリックしてドラッグすると、それを回転させてより詳細に確認することができます

[![](/blog/images/Capture-earsaver-2-1.png)](Capture-earsaver-2-1.png)

この製品は、3Dプリンターで出力できる、マスクの耳ゴム留め具です。マスクを着用する際に、耳の後ろへの刺激を軽減することを目的としています。

最初のスクリーンショットで確認したように、ファイルの大半は14行目から始まる座標定義を含んでいます。もし、例えばオブジェクトの色を変更するためにファイルを編集したい場合、XMLSpyのグリッドエディタビューに切り替えることを検討できます。グリッドエディタビューは、XMLドキュメントやDTDの階層構造を、簡単に展開・折りたたむことができるネストされたコンテナのセットで表示します。ここでは、すべての形状の座標を含むコンテナを折りたたんだままにして、他のドキュメントの機能に焦点を当て、誤って形状の値を変更することを避けます。

以下に示されたスクリーンショットは、グリッドエディタでシェイプ要素をダブルクリックした際に何が起こるかを示しています

[![](/blog/images/Capture-earsaver-2a.png)](Capture-earsaver-2a.png)

XMLSpyは、ポップアップウィンドウでヘルプを表示し、そのファイル内の特定の場所にある「Group」要素の子要素として有効な、スキーマで定義されている他のすべての要素を一覧表示します。これは、CAD環境用のプロトタイプ.x3dファイルや、一人称視点の没入型ゲームのシーンを作成または修正する際に役立ちます。

このファイルで定義されているオブジェクトの色を変更しましょう。マテリアル要素のdiffuseColor属性の値を編集するためにクリックすると、XMLSpyはXMLスキーマに基づいてデフォルト値を表示します。ユーザーは、このデフォルト値を受け入れるか、新しい値を入力することができます。

[![XMLSpyのグリッドビューで、.x3dファイルを編集します](/blog/images/Capture-earsaver-3-1.png)](Capture-earsaver-3-1.png)

XMLSpyには、編集中に.x3dファイルを検証するオプションが含まれています。もし「3 3 3」と入力してファイルを保存しようとすると、XMLSpyはすぐにエラーを検出します

[![.x3dファイルを検証し、詳細なエラーメッセージを表示します](/blog/images/Capture-earsaver-4.png)](Capture-earsaver-4.png)

この属性の値は、それぞれ1未満でなければなりません。例えば、0.3、0.2、0.1といった値を入力し、H3Dビューアで画像を再読み込みすることができます

[![](/blog/images/Capture-earsaver-5-1.png)](Capture-earsaver-5-1.png)

その物体は、今では青色ではなく、青銅色になっています。

NIHのウェブサイトやその他の場所にあるファイルには、X3Dの他の応用例が示されています。以下に、エボラや新型コロナウイルス感染症の治療薬として期待されているレムデシビルの化学モデルを示します。この形状は、「耳当て」とは全く異なる方法で定義されています

[![レムデシビルの化学構造を記述した.x3dファイル](/blog/images/Capture-remdesivir.png)](Capture-remdesivir.png)

もしあなたが十分な勇気を持っていれば、人類の敵ともいえる存在に立ち向かうことも可能です

[![](/blog/images/Capture-covid-19.png)](Capture-covid-19.png)

### .x3dファイルをJSON形式に変換する

Web3Dコンソーシアムは、X3DをJSON形式で保存するための標準化作業が完了間近であり、XSLスタイルシートを公開しました [.x3dファイルをJSON形式に変換する](https://www.web3d.org/x3d/stylesheets/X3dToJson.html). XMLSpyには、非常に高速なRaptorXML XSLT 3.0プロセッサが搭載されており、これとWeb3DのXSLスタイルシートを組み合わせて、ファイル変換を試すことができます。

まず、XMLSpyのオプションダイアログで、XSLT処理におけるデフォルトのファイル拡張子を変更することができます

[![XMLSpyにおけるXSL処理に関するオプション設定画面](/blog/images/Capture-XSL-options.png)](Capture-XSL-options.png)

また、編集中に常に検証を行っているため、「XMLファイルの検証」オプションを無効にしました。

次に、.x3dファイルを開いた状態で、F10キーを押すか、XSL/XQueryメニューから「XSL変換」を選択してください。

変換が完了すると、生成されたJSONファイルが新しいウィンドウで開きます。以下の画像は、NIHのフェイスマスク用イヤースーバーに関する情報を、XMLSpyのテキスト表示とJSONグリッドエディタの表示でそれぞれ示したものです

[![](/blog/images/json-output.png)](json-output.png)

.x3dファイルを検査、編集、または検証する必要がある場合は、以下の情報を参照してください [XMLSpyのデモ版](https://www.altova.com/ja/xmlspy-xml-editor/demos) さらに詳しいビデオや、GridエディターをはじめとするXMLSpyの様々な機能に関する詳細なチュートリアルは、こちらのページをご覧ください。3D環境を.x3dファイルで定義し、実際に体験したい場合は、XMLSpyの無料版をダウンロードしてください [30日間の無料トライアル](https://www.altova.com/ja/xmlspy-xml-editor/download).
