Doc:JA/2.6/Manual/Data System/Files/Import/COLLADA
目次
COLLADA のインポートとエクスポート
Collada モジュールは .dae ファイルのエクスポートやインポート用の柔軟なツールとして実装されました。数多くのツールとの間で Collada ファイルのやりとりを可能にするような、パラメータの提供に気を配りました。しかしながら、Collada モジュールはまだ完成していないことをどうか知っておいてください。目的の用途にかなう機能がまだサポートされていないことも考えられます。
Collada のエクスポート
プリセットのオペレータ
Second Life ユーザー向けのオペレータプリセットを2つ追加しました(オプションパネルの最上部をご覧ください):
- Second Life Static
static mesh のエクスポートに向いています。 - Second Life Rigged
SL default character のエクスポートに向いています。
Second Life ユーザー向けの特記事項:
- プリセットを使ってください。他のエクスポート設定はどれも、Second Life 用には動作しません。
- 人物の向きは、人物が正の X 方向を向くようにする必要があります。
- 拡大縮小と回転はエクスポート前に適用しておく必要があります!
エクスポートデータのオプション
モディファイアの適用
アクティブなモディファイアは非破壊なやり方ですべて適用されます。これは、メッシュのコピーに対してモディファイアが適用されるということです。したがってエクスポート前に自分でモディファイアを適用する必要はもうありません。バックグラウンドで自動的に行われます。
プレビュー/レンダーモード
モディファイアにはプレビューモードとレンダーグモードを別のメッシュ設定で行えるものがあります。モディファイアの適用時にはどちらのモードもサポートします。
|
Selection Only(選択部分のみ)
selection only を有効にすると、選択オブジェクトだけがエクスポートされます。無効なら可視、不可視両方のオブジェクトを含む、シーン全体がエクスポートされます。
Include Children(子を含む)
有効なら選択オブジェクトのすべての子要素も(選択されていなくても)エクスポートされます。
例
アーマチュアを1つだけ選んで「include children」を有効にしてエクスポートすると、そのアーマチュアに関連づけてリグづけしたメッシュもすべて、エクスポートされます。
|
Include Armatures(アーマチュアを含む)
有効なら選択オブジェクトに関連したすべてのアーマチュアも(選択されていなくても)エクスポートされます。
例
オブジェクトを選択して「include armatures」を有効にしてエクスポートすると、アーマチュアのデータもエクスポートされます。
|
Include Shape keys (シェイプキーを含む)
シェイプキー
このオプションにはシェイプキーの適用も含まれます! したがって現在のシェイプキーの形状がベイクされたメッシュをエクスポート可能になりました。
|
テクスチャのオプション
Only Active UV layer(アクティブな UV レイヤーのみ)
メッシュが UV レイヤーを複数持っていると、Blender はデフォルトではすべてのレイヤーをエクスポートします。このオプションを使うとアクティブな UV レイヤーだけをエクスポートできます。
Include Textures (テクスチャを含む)
Blender は2種類のオブジェクトのテクスチャマッピング方式をサポートします。
- 直接割り当てられている surface texture を使う方法
- マテリアルベースの画像テクスチャを使う方法
マテリアルベースの画像テクスチャは柔軟性を持つ一方で、surface texture を使う方法ははじめにテクスチャをレンダリングする必要なしに、素早く作れます。これまでは Blender がエクスポートできるのはマテリアルベースのものだけでした。新たなオプションを使うと、レンダリング結果を直接エクスポート可能です。
テクスチャのエクスポートにはマテリアルが必要です
surface texture を使うために、テクスチャ面それぞれに依然としてマテリアルを作る必要があります。そうすればあとはメッシュの正しい面に画像を割り当てるだけです。最終的にオブジェクトが希望どおりの外見になれば、そのオブジェクトを「Include UV Textures」オプションでエクスポートします。下の「Copy」オプションも参照してください。
|
Copy(コピー)
画像をマテリアルベースや surface textures でエクスポートすると、エクスポートファイル内に絶対的なファイル参照が作られます。
しかし「Copy」オプションが有効なら、替わりに画像のコピーを作り、エクスポートファイルに加えてコピーを置きます。この場合ファイル参照は相対的に作られます。
アーマチュアのオプション
Deform Bones Only(ボーンのみ変形)
有効にすると、エクスポートされたアーマチュアから変形しないボーンをすべて取り除きます。アーマチュアが、実際にはキャラクターの骨組みの一部ではない制御用ボーンを含むときに役立ちます。例えばこのオプションを有効にすると Avastar rig をエクスポート可能です。エクスポートされたリグは Second Life と互換性のあるものになります。ただし、この下の他の制約に注意してください。
Export for Second Life(Second Life用エクスポート)
非常に特別なオプションです。有効にするとボーン方向に関する計算が変わります。これはリグづけされたメッシュにだけ関係します。私はこのオプションがやがてもっと有意義なもの(かつ Second Life に依然互換性のあるもの)に置き換えられることを期待しています。ヒント: このオプションはリグづけされたメッシュをエクスポートしたいときにだけ重要です。静的なメッシュには単に何もしません。
Collada のオプション
Triangulate(三角面化)
メッシュはすぐに三角面化できます。三角面化はユーザーインタフェースにある「選択面を三角面にする」機能をベースにしています。三角面化を完全に制御するために、エクスポート前に三角面化を手動で行うことができます。ただ、このオプションはエクスポートされたデータの三角面化だけを行うものです。元のメッシュには影響しません。
Use Object Instances(オブジェクトのインスタンスを使用)
Blender では同じメッシュを複数のオブジェクトに再利用できます。これを「オブジェクトのインスタンス化」と呼んでいます。このオプションを有効にすると、Blender はオブジェクトのインスタンス化を Collada ファイルに伝播します。
Transformation Type(トランスフォームの種類)
Collada は2種類の変換行列(Transformation matrix)の仕様をサポートしています。<Matrix> として、または変換分解の集合としてです(Translate/Rotate/Scale 向け)。エクスポート機能はこの設定に厳密に従うわけではなく、可能であればヒントとして使います。これは、エクスポートされたデータタイプには変換行列の独自のエクスポート規則を持つものがあるからです。開発は継続中で、将来的にはあいまいさを抑えた方式を提供できるかもしれません。
Sort by Object Name(オブジェクト名で並べ替え)
データのエクスポート順序は内部のオブジェクトの順序に結び付けられていて、順序を確実に決めることができません。このオプションは Geometry node と Object node がどちらもアルファベット順にエクスポートされることを保証します。
Collada のインポート
Collad のインポート機能は主に、インポートしたデータによって制御されます。Blender が用意する追加オプションは1つだけで、Import units を制御するためのものです:
- Import Units(単位もインポート)
無効にすると、インポートされたデータは現在使用中の単位系にあわせて拡大縮小されます。Blender unit が1メートル であることを想定しています。有効にすると、Blender 側が Collad ファイルの持つ単位系に合わせて調整されます。
技術的詳細
メッシュ
インポート
サポートされるジオメトリ
- tris (未テスト)
- polylist
- polygons
- ngons
- trifans (未テスト)
- lines
エクスポート
メッシュデータは <polylist>、<lines> および <vertices> としてエクスポート。
光源
インポート
Blender は .dae から光源をインポートする際最善を尽くします。光源用の Blender profile が見つかると、そこにある値がすべて、替わりに使われます。これは Blender のエクスポートした .dae から 100% 再インポートできるということです。<extra> のサポートは Blender 2.57 で追加されました。
エクスポート
光源に関する Blender profile が <extra> tag を通じて追加されました。光源の 減衰曲線を除く、Blender の Lamp の構造全体がこの profile を通じてエクスポートされます。
マテリアルとエフェクト
エクスポート
Blender 2.57 以降では effect のエクスポートに少し変更が入っています。特筆すべきものとして <lambert> は specularity が 0 のときにだけエクスポートされます。
アニメーション
エクスポートとインポート
- オブジェクト(メッシュ、カメラ、光源)のトランスフォームのアニメーションをサポート。現在のところ、オブジェクトのデフォルトオプションであるオイラー回転のみがエクスポートされます。アーマチュアボーンのアニメーションではオイラーおよびクォータニオンの回転をサポート。
- 以下のパラメータのアニメーションの、インポート/エクスポートをサポート:-
- 光源
- カメラ
- マテリアルエフェクト
- スキンの制御用でないアーマチュアのボーンのアニメーション
- スキンを変形するボーンを使ったアーマチュアのアニメーション
- オブジェクトモードでのアーマチュアのアニメーション
- 完全に rigify で作られたアーマチュアのアニメーション。rigify で作られたアーマチュアのアニメーションは、以下の手順でエクスポートします。
- Bake Action を選びます(3d view でスペースを押し Bake Action を入力)
- deform bone だけを選択しているなら "Only Selected" をチェックします。dae ファイルが小さくなります。そうでなければ "Only Selected" のチェックを外します
- "Clear Constraints" にチェックします
- Bake Action を実行します
- メッシュを選んでボーンを変形します。"Only Selected" オプションを有効にして Collada にエクスポートします(厳密にはメッシュとボーンだけを選択する必要はありません。こうすると dae ファイルが小さくなります)
- デモ
Nodes
インポート時、<instance_node> 用の親のトランスフォームは正しく子ノードインスタンスに伝播します。Blender のマテリアルは次のマッピングを使ってエクスポートされます:
- phong
- blinn
- lambert
アーマチュアの木構造で葉ノードであるボーンのノード、またはボーンに子要素が2つ以上あるときには、こうした関節ノードのために情報用の blender profileが <extra> tag を使って追加されます。再インポート時に bone->tail 位置を正しく導き出すためです。
重要事項
- オブジェクトとデータブロックの名前は 21 文字(bytes)に制限されます
- UV レイヤー名は 32 文字 (bytes) に制限されます
- only armature animation on mesh, single skin controller
- モディファイアはまだサポートされていません
<instance_node> を持つ .dae をインポートすると、エクスポート時にこの情報は基本的に失われ、これらのノードは <node> になります。