このトピックでは、Open XML SDK for Office Animate クラスと、Open XML ファイル形式 PresentationML スキーマとの関係について説明します。 PresentationML ドキュメントを構成するパーツと要素の全体的な構造の詳細については、「PresentationML ドキュメントの構造」を参照してください。
PresentationML のアニメーション
ISO/IEC 29500 仕様では、Open XML PresentationML フレームワークのアニメーション セクションは次のように記述されます。
PresentationML フレームワークのアニメーション セクションには、オブジェクトの動作と関連情報が格納されます。 このスキーマは、XML を使用してマルチメディア プレゼンテーションを記述するための W3C 勧告である SMIL (Synchronized Multimedia Integration Language) の構文と概念に大まかに基づいています。 スキーマでは、スライド上にあるすべてのアニメーションの効果に加えて、スライドからスライドに移動するとき (画面切り替え) に実行されるアニメーションも記述します。 スライド上のアニメーションは本質的に時間ベースで、オブジェクトやテキストのアニメーション効果で構成されます。 一方、画面切り替えはこの概念には従わず、常にスライド上のアニメーションより前に表示されます。 このスキーマで記述する要素はすべてスライド XML ファイル内に格納されます。 具体的には、次に示すように <transition/> 要素と <timing/> 要素に含まれます。
<p:sld>
<p:cSld> … </p:cSld>
<p:clrMapOvr> … </p:clrMapOvr>
<p:transition> … </p:transition>
<p:timing> … </p:timing>
</p:sld>
アニメーションはさまざまな動作で構成されます。
ISO/IEC 29500 仕様では、PresentationML ドキュメントの基本的なアニメーション動作を表すために使用される Open XML PresentationML <anim/> 要素について次のように説明します。
この要素は、アニメーション化される属性のセマンティックをほとんどまたは全く理解する必要のない一般的なアニメーション要素です。 図形内のテキスト、あるいは図形自体をアニメーション化することができます。[例: フォントのサイズを 150% に変化させて、図形内のテキストを強調してみます。 要素を次のように使用します。
<p:anim to="1.5" calcmode="lin" valueType="num">
<p:cBhvr override="childStyle">
<p:cTn id="1" dur="2000" fill="hold">
<p:tgtEl>
<p:spTgt spid="1">
<p:txEl>
<p:charRg st="1" end="4">
</p:txEl>
</p:spTgt>
</p:tgtEl>
<p:attrNameLst>
<p:attrName>style.fontSize</p:attrName>
</p:attrNameLst>
</p:cBhvr>
</p:anim>
次の表は、アニメーションの操作時に使用される <anim/> 要素の子要素と、それらに対応する Open XML SDK クラスの一覧です。
| PresentationML 要素 | Open XML SDK クラス |
|---|---|
<cBhvr/> |
CommonBehavior |
<tavLst/> |
TimeAnimateValueList |
ISO/IEC 29500 の仕様に記載されている以下の表は、<anim/> 要素の属性です。
| 属性 | 説明 |
|---|---|
| 作成元 | この属性は、アニメーションを開始する前に、その位置に応じてアニメーションの相対的なオフセット値を指定します。この属性に使用できる値は W3C XML スキーマ文字列データ型で定義されます。 |
| calcmode | この属性は、アニメーションの補間モードを指定します。この属性に使用できる値は、ST_TLAnimateBehaviorCalcMode単純型 (§19.7.20) によって定義されます。 |
| from | この属性は、アニメーションの開始値を指定します。この属性に使用できる値は W3C XML スキーマ文字列データ型で定義されます。 |
| から | この属性は、アニメーションの終了値をパーセントで指定します。この属性に使用できる値は W3C XML スキーマ文字列データ型で定義されます。 |
| valueType | この属性は、プロパティ値の種類を指定します。この属性に使用できる値は、ST_TLAnimateBehaviorValueType単純型 (§19.7.21) によって定義されます。 |
Open XML SDK Animation クラス
OXML SDK Animate クラスは、PresentationML ドキュメントの Open XML ファイル形式スキーマで定義されている <anim/> 要素を表します。 PresentationML ドキュメント内の個々の<anim/>要素を操作するには、Animate クラスを使用します。
<anim/> 要素の子要素を表すクラス、したがって一般的に Animate クラスに関連付けられているクラスを次の一覧に示します。
CommonBehavior クラス
CommonBehavior クラスは、<cBhvr/> 要素に対応します。
ISO/IEC 29500 仕様の次の情報では、<cBhvr/>element について説明します。
この要素は、アニメーションの一般的な動作を表します。
フォントのサイズを変更して、図形内のテキストを強調することを検討してください。 要素を次のように使用します。
<p:anim to="1.5" calcmode="lin" valueType="num">
<p:cBhvr override="childStyle">
<p:cTn id="6" dur="2000" fill="hold">
<p:tgtEl>
<p:spTgt spid="3">
<p:txEl>
<p:charRg st="4294967295" end="4294967295"/>
</p:txEl>
</p:spTgt>
</p:tgtEl>
<p:attrNameLst>
<p:attrName>style.fontSize</p:attrName>
</p:attrNameLst>
</p:cBhvr>
</p:anim>
TimeAnimateValueList クラス
TimeAnimateValueList クラスは、<tavLst/> 要素に対応します。
ISO/IEC 29500 仕様の次の情報では、<tavLst/>要素について説明します。
この要素は、時間でアニメーション化される値要素のリストを示します。
例: 「フライ イン」アニメーションの図形を考えてみます。 要素を次のように使用します。
<p:anim calcmode="lin" valueType="num">
<p:cBhvr additive="base"> … </p:cBhvr>
<p:tavLst>
<p:tav tm="0">
<p:val>
<p:strVal val="1+#ppt_h/2"/>
</p:val>
</p:tav>
<p:tav tm="100000">
<p:val>
<p:strVal val="#ppt_y"/>
</p:val>
</p:tav>
</p:tavLst>
</p:anim>
Animate クラスを使用する
したがって、<anim/>要素を表す Animate クラスは、<anim/> 要素の子要素を表す他のクラスにも関連付けられます。これには、一般的なアニメーション動作を記述する CommonBehavior クラスや、前の XML コードに示すように時間アニメーション化された値要素のリストを指定する TimeAnimateValueList クラスも含まれます。
Animate クラスに関連付けられているその他のクラスは、スライド上のすべてのアニメーションのタイミング情報を指定する Timing クラスと、アニメーション効果を適用するターゲットの子要素を指定する TargetElement クラスです。
関連項目
Open XML SDK for Officeの方法: ファイル名を指定してプレゼンテーションを作成する方法: プレゼンテーションに新しいスライドを挿入する方法: プレゼンテーションからスライドを削除する方法: テーマをプレゼンテーションに適用する