ATOM フォーマットの説明

.atom ファイル フォーマットは .anim フォーマットに類似しており、アニメーション カーブの保存では同じスキーマを使用します。ただし、.atom ファイル フォーマットには、アニメートされていないスタティック値、ベイク処理された値、アニメーション レイヤなどの追加データも含まれます。また、コンストレイントとセット ドリブン キーを再構成するための情報が収容される埋め込まれた書き出し編集ファイルも含まれます ( ATOM ファイル フォーマットも参照)。

.atom ファイルの書き出し後は(.atom アニメーションを書き出す)、任意のテキスト エディタでファイルを表示し、編集することができます。このトピックでは、ファイルの次のセクションごとにフォーマットについて説明していきます。

.atom ファイル全体(説明なし)を確認するには、.atom ファイルの例を参照してください。

.atom 構文に関するその他の注意事項は次のとおりです。

ヘッダー(Header)セクション

.atom ファイルのヘッダー セクションには次の情報が含まれています。

atomVersion 1.0;
mayaVersion ;
mayaSceneFile string
timeUnit [game|film|pal|ntsc|show|palf|ntscf|hour|min|sec|millisec]
linearUnit [mm|cm|m|km|in|ft|yd|mi]
angularUnit [rad|deg|min|sec]
startTime [float] 
endTime [float]
startUnitless [float] 
endUnitless [float]
offlineFile [string:optional]

例:

atomVersion 1.0;
mayaVersion ;
mayaSceneFile C:/Users/user/Documents/maya/projects/default/scenes/test.ma;
timeUnit film;
linearUnit cm;
angularUnit deg;
startTime 1;
endTime 8;
offlineFile ;
atomVersion

ファイル フォーマットのバージョン番号です。This is a required line.

mayaVersion

Maya のバージョン。この文字列は MGlobal::mayaVersion()mayaVersion 文字列の値です。

mayaSceneFile

(オプション).atom ファイルが保存されたシーン ファイルの名前です。

timeUnit

これらのキーワードは、ファイルの単位を設定するのに使用されます。アニメーション カーブ、スタティック値、ベイク処理された値には、それぞれ独自の単位を設定できます。ここで設定した単位は、アニム カーブの単位が指定されない場合の既定の単位となります( animData を参照)。単位が指定されなかった場合は、UI 単位が使用されます。

ファイルのヘッダー セクションにのみ含めることができます。

linearUnit
angularUnit
startTime

クリップボードの開始フレームとクリップボードの終了フレームです。時間入力のあるアニメーション カーブ、およびベイク処理された値によって使用されます。

ベイク処理された値がファイルに存在しない場合、これらの行はオプションとなります。これらの行が含まれていない場合、クリップボードの範囲は、クリップボードに含まれているアニメーション カーブによって定義された範囲に設定されます。

注: これらの値は、ベイク処理された値がファイルに存在する場合は必須になります。理由は、これらの値によって、ベイク処理された値の開始時間と終了時間が決定されるためです。
endTime
startUnitless

クリップボードの開始値とクリップボードの終了値です。時間入力のないアニメーション カーブによって使用されます。

endUnitless
offlineFile

このキーワードはオプションで、書き出し編集がファイルに含まれている場合に指定されています。既定では、.atom ファイルの最後に書き出し編集が埋め込まれます。offlineFile キーワードの後にファイル名を指定すると、そのファイルがオフライン編集ファイルとして使用されます。

.atom フォーマットでは、オフライン編集を使用して、コンストレイントとセット ドリブン キー アニメーションが格納されます。

ファイルのヘッダー セクションにのみ含めることができます。

埋め込まれたオフライン編集ファイル(.editMA)も参照してください。

アニメーション レイヤ(Animation Layers)セクション(オプション)

アニメーション レイヤ セクションの最初の行には、そのファイル内のオブジェクトに存在するすべてのアニメーション レイヤの名前が含まれています。

animLayers {string string ...}

この行の後には、各アニメーション レイヤのアトリビュートのリストが続きます。

この情報は、読み込み時に、ターゲット シーン内の名前付きアニメーション レイヤが欠落しているかどうかをチェックするのに使用されます。欠落している場合は、そのアニメーション レイヤを作成します。

例:

animLayers {   BaseAnimation  AnimLayer1 }
animLayer {
  BaseAnimation 0 0;
  static mute mute 0;
  { 0 }
  static lock lock 1;
  { 0 }
  static solo solo 2;
  { 0 }
  static override override 3;
  { 1 }
  static passthrough passthrough 4;
  { 1 }
  static preferred preferred 5;
  { 0 }
  static weight weight 6;
  { 1 }
  static rotationAccumulationMode rotationAccumulationMode 7;
  { 0 }
  static scaleAccumulationMode scaleAccumulationMode 8;
  { 1 }
}
animLayer {
  AnimLayer1 0 0;
  static mute mute 0;

本体(オブジェクト)セクション

ファイルの本体には、.atom ファイルに保存されている個々のノードがリストされます。サポートされているノード タイプには、DAG ノード(dagNode キーワード)とシェイプ ノード(shape キーワード)が含まれています。他のノード タイプについては、ディペンデンシー ノード(node キーワード)がリストされます。

重要: .anim ファイルとは異なり、.atom ファイルの DAG ノードとシェイプ ノードは、Maya シーンでの存在の仕方に一致した特定の順序でソートされます。たとえば、.atom ファイルでは、DAG ノードの子シェイプ ノードは親 DAG ノードの直後にリストされます。.atom ファイルを編集してこの順序を変更すると、特定の操作が意図したとおりに実行されなくなる場合があります。

ファイルに含まれている各オブジェクトの最初の行では、ノード名、深度、子の数が指定されます。

dagNode {
pSphere1 1 1;
注: DAG ノードを除くすべてのノードでは、これらの値はどちらも 0 になります。DAG ノードについては、深さは、含まれている親の数になります(ルートを含む。したがって既定は 1)。また、子の数によって、兄弟の順序番号が特定されます(既定は 1)。これらの値は、読み込み時の階層一致で使用されます。

各ノード識別子の後には、左カッコと右カッコ { } がペアで配置されます。このカッコの間に各アトリビュートの情報が含まれています。ATOM ファイルでは、スタティック値(アニメートされていない単一の値)、ベイク処理された値(フレームごとの値のリスト)、またはアニメーション カーブ値がサポートされます。

これは、.anim ファイルと .atom ファイルの主な違いの 1 つです。.anim ファイルには、簡単なアトリビュート リストが含まれています(アトリビュート リストの一部として関連オブジェクトが記載される)。これに対し、.atom ファイルでは、属するオブジェクトの下に各アトリビュートがリストされます。結果として .atom ファイルが読みやすくなり、読み込み時の一致が向上します。

dagNode {
pSphere1 1 1;
}
static string string int string|optional
cached int|float|double int|float|double int|float|double ... 
anim string string int string|optional 

例:

dagNode {
  pSphere1 1 1;
  anim translate.translateY translateY 0;
  animData {
    input time;
    output linear;
    weighted 0;
    preInfinity constant;
    postInfinity constant;
    keys {
      1 0 auto auto 1 1 0;
      10 -0.48952813 auto auto 1 1 0;
    }

各アトリビュートは、static 識別子、cached 識別子(ベイク処理の場合)、または anim 識別子(アニメーション カーブの場合)を使用して同じ方法で書き出されます。また、アトリビュートのロング ネーム、ショート ネーム、アトリビュート番号、オプションのアニメーション レイヤ名も記述されます。

dagNode {
  pSphere1 1 1;
  anim translate.translateY translateY 0;
  animData {
    input time;
    output linear;
    weighted 0;
    preInfinity constant;
    postInfinity constant;
    keys {
      1 0 auto auto 1 1 0;
      10 -0.48952813 auto auto 1 1 0;
    }
  }
  cached translate.translateX translateX 0;
  { -5.2988979 -4.7870473 -3.4152877 -1.4293071 0.92520503 3.4025622 5.4610407 0.70032059  }
}
dagNode {
  pPlane1 1 2;
  static rotate.rotateX rotateX 0;
  { 0 }
  static rotate.rotateY rotateY 1;
  { 0 }
  static rotate.rotateZ rotateZ 2;
  { 0 }
  static scale.scaleX scaleX 3;
  { 1 }
  static scale.scaleY scaleY 4;
  { 1 }
  static scale.scaleZ scaleZ 5;
  { 1 }
  static visibility visibility 9;
  { 1 }
}

注: アニメーション レイヤ名が存在する場合は、そのノードと、その指定されたアニメーション レイヤのアトリビュートに指定のデータが存在します。このため、アトリビュート名は複数回表示されます(含まれるアニメーション レイヤごとに 1 回)。
スタティック

static 識別子の後には、アニメートされていないアトリビュートの値を指定する単一の値がカッコのペアで囲まれてリストされます。

この値は、整数、浮動少数、ダブル、文字列、または列挙型で指定することができます。

cached

ベイク処理された値はスタティック値に類似していますが、開始時間と終了時間で指定されたタイム レンジにおけるフレームごとの値を表します。書き出し時にベイク処理されたアニメーション(Baked Animation)オプションがオンになっていると、値がベイク処理されます。

書き出されたアトリビュートは、単純なアニメーション カーブではドリブンされず、アニメーション レイヤ、コンストレイント、セット ドリブン キーとして書き出されません。

このため、ベイク処理された値の場合は、指定された開始時間と終了時間の間のフレームの数と等しい数の値セットをカッコの間に記述します。

anim

保存されたアトリビュートは、.anim ファイルと同じようにアニメーション カーブでドリブンできます。

前述のとおり、anim キーワードの後には、その文字列のロング ネーム、ショート ネーム、およびアトリビュート番号が記述されます。

重要: この点が .anim ファイルとは異なります。.anim ファイルでは、アトリビュート番号の前に行(深度)および子の数も保存されます。このため、.anim データを .atom ファイルに統合する場合は注意が必要です。これらの重複している数値は除去する必要があります。

(次の項目を参照)

アトリビュートがアニメーション カーブによってドリブンされる場合は、anim 行の後に、キー データを指定する animData ブロックが記述されます。

animData  {
  input [time|unitless]
  output [time|linear|angular|unitless]
  weighted [1|0]
  inputUnit [game|film|pal|ntsc|show|palf|ntscf|hour|min|sec|millisec]
	 outputUnit [game|film|pal|ntsc|show|palf|ntscf|hour|min|sec|millisec]
  outputUnit [mm|cm|m|km|in|ft|yd|mi]
  outputUnit [rad|deg|min|sec]
  tangentAngleUnit [rad|deg|min|sec]
  preInfinity [constant|linear|cycle|cycleRelative|oscillate]
  postInfinity [constant|linear|cycle|cycleRelative|oscillate] 
例:
anim rotate.rotateY rotateY 5 AnimLayer1;
  animData {
    input time;
    output angular;
    weighted 0;
    preInfinity constant;
    postInfinity constant;
    keys {
      1 0 auto auto 1 1 0;
      8 0 flat auto 1 1 0;
animData

アニメーション カーブのキー データの開始を示します。次の定義が含まれます。

input

アニム カーブの入力タイプです。既定は time です。

output

アニム カーブの出力タイプです。既定は linear です。

weighted

カーブにウェイト付き接線があるかどうかを指定します。既定は false です。

inputUnit

時間入力の場合は、アニム カーブ入力の単位です。既定は、ファイルのヘッダー セクションで指定された時間単位です。

outputUnit

アニム カーブ出力の単位です。出力単位は、カーブの出力タイプと一致している必要があります。既定は、ファイルのヘッダー セクションで指定された単位です。

tangentAngleUnit

接線角度の単位です(固定された接線が存在する場合)。既定は、ファイルのヘッダー セクションで指定された角度単位です。

preInfinity

プリインフィニティ タイプです。既定は constant です。

postInfinity

ポストインフィニティ タイプです。既定は constant です。

keys

(次の項目を参照)

各ブロックの最後の行に実際のキーフレーム データが含まれます。カッコでくくられたセクションの各行が 1 つのキーになります。

 keys {
 [float] [float] [in tan] [out tan] [tan locked] [weight locked][breakdown]
float

最初の 2 つの値は、inputUnit キーワードと outputUnit キーワードで定義された単位での入力値および出力値です。

in tan

out tan

接線タイプ インおよび接線タイプ アウトです。有効な接線タイプにする必要があります。

tan locked

weight locked

breakdown

接線ロッキング、ウェイト ロッキング、およびブレイクダウン フラグを表す整数値です。0 のとき、値はロック解除されます。または、ブレイクダウンではないことを示します。0 以外のとき、値はロックされます。

このいずれか、または両方、あるいは接線が固定されている場合は、次の追加情報が必要です。接線角度およびウェイト。

この 2 つの値は、固定された接線ごとに行の最後に追加されます。

たとえば、62.345 は最初の接線の接線角度です。接線ウェイトは 0.04 です。

1.0 2.0 fixed linear 1 1 0 62.345
0.04;

固定された接線が 2 つある場合の例は次のとおりです。

1.0 2.0 fixed fixed 1 1 0 62.345
0.04 45.3 0.023;

埋め込まれたオフライン編集ファイル(.editMA)

ヘッダーに offlineFile 識別子が存在する場合は、.atom ファイルに埋め込まれたオフライン編集ファイル(.editMA ファイル)を含めることができます。

例:

offlineFileData //Maya ASCII 2013ff03 scene
//Name: test.editMA

offlineFileData 識別子の後には、埋め込まれた .editMA ファイルが含まれるデータ ストリームが記述されます。このデータは、ファイルの最後に配置する必要があります。

重要: このデータは変更しないでください。

関連項目

ATOM アニメーション ファイル フォーマット

.atom アニメーションを書き出す