Ownway.Info
 
HOMEプレゼンテーションシステム version 1.1 → プレゼンテーションの書き方
プレゼンテーションの書き方

本プログラムは、プレゼンテーションをXMLによって記述する。 同じXMLによって記述されたファイルでも、役割によって使うタグが異なることに注意する。 本プログラムは役割によって4種類のXMLファイルを読み分ける。 また、必ず読み込まれる特殊なファイルとしてconfig/config.xmlが存在する。 以下にファイルの種類とその役割を示す。

ファイルの種類役割
config/config.xml 全てのプレゼンテーションに共通の設定を記述する。
プレゼンテーションファイル(*.prt) プレゼンテーション全体に関する設定を記述する。
スタイルファイル(*.xsl) プレゼンテーションのスタイルを記述する。
リソースファイル(*.xml) プレゼンテーション中で使用するフォントや材質や画像などを記述する。
コンテンツファイル(*.xml) プレゼンテーションの内容を記述する。

このページでは、各ファイルの書き方について説明する。


1: config/config.xml

このファイルは、全てのプレゼンテーションに共通の設定を記述するファイルである。 一つは起動時のデフォルトのウィンドウサイズと、 もう一つは全てのプレゼンテーションに共通するスタイルファイルとリソースファイルを指定することである。 以下に例を示す。

<?xml version="1.0" encoding="Shift_JIS"?>

<presentation>
	<!-- ウィンドウサイズ -->
	<width>800</width>
	<height>600</height>
	<fullscreen>false</fullscreen>

	<!-- 共通スタイルシート -->
	<stylesheet>stylesheet1.xsl</stylesheet>
	<stylesheet>stylesheet2.xsl</stylesheet>

	<!-- 共通リソース -->
	<resource>resource1.xml</resource>
	<resource>resource2.xml</resource>
</presentation>

ウィンドウサイズの指定には、width・height・fullscreenの3つのタグを使用する。 以上に示した例では横800ピクセル・縦600ピクセルの通常ウィンドウにプレゼンテーションを表示する。 fullscreenにtrueを指定すると全画面表示モードでプレゼンテーションを表示する。

スタイルファイルとリソースファイルの指定には、それぞれstylesheetタグとresourceタグを使用する。 スタイルファイルとリソースファイルは、ともに任意数のファイルを指定できる。 指定したファイル名は、configディレクトリからの相対パスとして解釈される。 従って、以上に示した例ではスタイルファイルとしてconfig/stylesheet1.xsl・config/stylesheet2.xslを、 リソースファイルとしてconfig/resource1.xml・config/resource2.xmlを読み込むよう プレゼンテーションプログラムに指定している。

2: プレゼンテーションファイル(*.prt)
■ プレゼンテーションファイル(*.prt)

このファイルは、一つのプレゼンテーション全体に関する設定を記述するファイルである。 このファイルの内容はconfig/config.xmlとほとんど変わらない。 config/config.xmlとの違いは、 プレゼンテーションの内容となるファイルを指定するcontentsタグが使えることだけである。 以下に例を示す。

<?xml version="1.0" encoding="Shift_JIS"?>

<presentation>
	<!-- コンテンツ -->
	<contents>contents.xml</contents>

	<!-- ウィンドウサイズ -->
	<width>800</width>
	<height>600</height>
	<fullscreen>true</fullscreen>

	<!-- スタイルシート -->
	<stylesheet>stylesheet1.xsl</stylesheet>
	<stylesheet>stylesheet2.xsl</stylesheet>

	<!-- リソース -->
	<resource>resource1.xml</resource>
	<resource>resource2.xml</resource>
</presentation>

スタイルやリソースと異なり、プレゼンテーションの内容となるファイルは一つだけである。 ウィンドウサイズを指定しなかった場合は、config/config.xmlで指定した値がデフォルトで使用される。

3: スタイルファイル(*.xsl)

このファイルは、標準的なXSLによってXMLの変換規則を記述するファイルである。 一つのプレゼンテーションは、config/config.xmlとプレゼンテーションファイル のそれぞれで指定された複数のスタイルファイルを使用する。 プレゼンテーションとして最終的に画面に表示されるコンテンツは、 これら全てのスタイルファイルに記述された全ての変換を受けた結果である。 変換が行われる順番は、以下のようになる。

4: リソースファイル(*.xml)

このファイルは、プレゼンテーション中で使用するフォントや材質や画像を記述するファイルである。 ここで記述されたリソースには名前が付けられ、コンテンツ中から参照することができる。 以下に例を示す。

<?xml version="1.0" encoding="Shift_JIS" ?>

<resource>
	<!-- フォント定義 -->
	<fonts>
		<font name="big"    font="msgothic.ttc" size="56" />
		<font name="middle" font="msgothic.ttc" size="48" />
		<font name="normal" font="msgothic.ttc" size="40" />
		<font name="small"  font="msgothic.ttc" size="32" />
	</fonts>

	<!-- 材質定義 -->
	<materials>
		<material name="RED"
			ambient  =" 0.2, 0.0, 0.0"
			diffuse  =" 0.6, 0.0, 0.0"
			specular =" 0.7, 0.0, 0.0"
			shininess=" 1.0" />

		<material name="GREEN"
			ambient  =" 0.0, 0.2, 0.0"
			diffuse  =" 0.0, 0.6, 0.0"
			specular =" 0.0, 0.7, 0.0"
			shininess=" 1.0" />

		<material name="BLUE"
			ambient  =" 0.0, 0.0, 0.2"
			diffuse  =" 0.0, 0.0, 0.6"
			specular =" 0.0, 0.0, 0.7"
			shininess=" 1.0" />
	</materials>

	<!-- 画像定義 -->
	<images>
		<image name="image1" image="images/image1.jpg" />
		<image name="image2" image="images/image2.png" />
		<image name="image3" image="images/image3.gif" />
	</images>
</resource>

fonts内のfontタグでフォント、 materials内のmaterialタグで材質、 images内のimageタグで画像のリソースを記述できる。 font・material・imageの各タグは共通してname属性を持っており、 ここに指定した名前を使うことによってコンテンツからこれらのリソースを利用する。 各タグの指定方法を以下に示す。

■ fontタグ
■ materialタグ
■ imageタグ

フォントと材質はここで指定しなければコンテンツ中で使用することはできないが、 画像に関してはリソースとしてあらかじめ記述されていなくてもコンテンツ中でファイル名を直接指定できる。 ただし、コンテンツ中にファイル名を指定した場合は、 そのページが開かれるごとに画像が読み込まれるためページが切り替わるのに時間が掛かる場合は リソースとして記述してしまった方がいい。

*1: 画像の読み込みにはライブラリを用いており、そのライブラリに依存する。 たぶん、他にも色々読み込めると思うが、やったことがない。
5: コンテンツファイル(*.xml)

このファイルは、プレゼンテーションの内容を記述するファイルである。 注意して欲しいのは、このファイルに書かれた内容はスタイルファイルによって変換を受けるということである。 実際にコンテンツとして画面に表示されるのは、全ての変換を受けた結果である。 従って、指定したスタイルファイルの内容によってこのファイルに書かれる内容は大きく変わってくる。 ここでは、最終的に変換されたXMLがどのような記述になっていなければならないのかを説明する。

コンテンツの内容は、最終的に以下のような形式になっていなければならない。

<?xml version="1.0" encoding="Shift_JIS" ?>

<presentation defaultFont="normal">
	<!-- 1ページ目 -->
	<page>
		<!-- 1ページ目の内容 -->
	</page>

	<!-- 2ページ目 -->
	<page>
		<!-- 2ページ目の内容 -->
	</page>

	<!-- 3ページ目 -->
	<page>
		<!-- 3ページ目の内容 -->
	</page>
</presentation>

presentationタグのdefaultFont属性には、 デフォルトとして使うフォントのリソース名を指定する。 pageタグはプレゼンテーションの各ページを示すタグであり、 記述した順にプレゼンテーションのページとなる。

一つのページは特殊効果設定とページ内容の二つの情報を持つ。 以下に一ページの標準的な記述の例を示す。

<page>
	<effects>
		<!-- 特殊効果設定 -->
	</effects>

	<contents>
		<!-- ページ内容 -->
	</contents>
</page>

effectsタグ内で使うことのできるタグは、effectタグとorderタグの二つだけである。 effectタグはページ内で使用する特殊効果を定義する。 そして、orderタグは特殊効果が動作する順番を制御する。 以下に例を示す。

<effects>
	<!-- 特殊効果定義 -->
	<effect name="null" type="null" />
	<effect name="effect1" type="lift" />
	<effect name="effect2" type="top" axis="0.0, 1.0, 0.0" da="45.0"/>
	<effect name="effect3" type="effects">
		<effect type="lift" />
		<effect type="top" axis="0.0, 1.0, 0.0" da="45.0" />
	</effect>

	<!-- 特殊効果動作制御 -->
	<order name="null" />
	<order name="effect1" />
	<order name="effect2" />
	<order name="effect3" />
	<order name="effect1, effect2, effect3" />
</effects>
■ effectタグ
■ orderタグ

orderタグは特殊効果の起動順序を制御する。 特殊効果はプレゼンテーションソフトの操作に従って、記述された順序で作動する。 orderタグはname属性のみを持つ。name属性にはeffectタグによって定義された特殊効果名を指定する。 複数の特殊効果を同時に作動させたい場合は、カンマで区切って指定する。

contentsタグ内に記述したテキストは、文字として画面に表示される。 デフォルトのフォントとは別のフォントを使用したい場合は、fontタグで指定する。 画像を表示したい場合は、imageタグを使用する。 プレゼンテーションにアクセントをつけるために3Dのキューブを置くためにはcubeタグを使用する。 空白を入れたい場合はnullタグを使用する。 また、これらのオブジェクトを配置する位置を制御するためにはcontainerタグを使用する。 現在定義されているタグは、以上の非常に単純なタグだけである。 プレゼンテーションを記述するためには、以上のタグを組み合わせて使用する。 以下に、各タグの詳細を示す。

■ fontタグ

fontタグは、タグ内のテキストが使用するフォントを設定する。

<font font="big" />
<font color="255,0,0" />  <!-- 赤 -->
<font style="bold" />  <!-- 太字 -->
<font name="big" color="0,255,0" style="bold|italic" />  <!-- 緑で太字で斜体 -->
■ imageタグ

imageタグは画像を表示する。

<image image="image1" />
<image file="image1.jpg" />
<image image="image1" width="800.0" />  <!-- 幅は800、高さは画像のまま -->
<image image="image1" width="800.0" height="600.0" />  <!-- 幅は800、高さは600 -->
■ cubeタグ

cubeタグは3Dのキューブを表示する。

<cube size="50,50,50" material="RED" />
■ nullタグ

nullタグは何も表示しない区画を取る。

<null size="50,50,50" />
■ containerタグ

containerタグは、タグ内のオブジェクトの配置を制御する。

<!-- 3つのキューブを横に並べる -->
<container layout="horizontal">
	<cube size="50,50,50" material="RED" />
	<cube size="50,50,50" material="GREEN" />
	<cube size="50,50,50" material="BLUE" />
</container>

<!-- TESTというテキストにeffect1という特殊効果を加える -->
<container effect="effect1">
	TEST
</container>

<container layout="vertical" align="left,*,*" size="800,*,*">
	このテキストを、
	左側に揃えるようにして配置する。
	全体としての幅は500として設定される。
</container>
戻る: プレゼンテーションシステム version 1.1