DXPresentation 1.07 ●DXPresentation とは ・DXPresentation は高橋メソッドを用いたプレゼンテーションツールです ・指定されたフォーマットのテキストファイルを再生します ・文字はスクリーン一杯に描画されます お使いの PC 環境で十分にテストをしてから使用してください。 どんなことが起きても一切の責任をとることができません。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ビデオカードやドライバに依存する不具合が存在するかもしれません。 バグを発見したら是非ご連絡ください。 ●動作環境 Windows Vista/XP .NET Framework 2.0 Managed DirectX 1.1 ●ZIP 版インストール方法 適当なディレクトリを作成し、アーカイブを展開します。 アップデートは上書きします。 ●ZIP 版アンインストール方法 インストールしたディレクトリを丸ごと削除します。 ●DXPresentation の起動 DXPresentation.exe のアイコンをダブルクリックして起動します。 常に DXPresentation.exe と同じフォルダの startup.txt が開かれます。 ウィンドウ下メニューバー左端の[▲]-[開く]またはドラッグアンドドロップでテキストファイルを開きます。 コマンドラインからファイル名を指定して起動することもできます。 DXPresentation は起動時に CTRL+SHIFT が押されていると、設定をクリアしてもいいかユーザに尋ねます。 ●操作 進む →キー PageDown キー または スペースキー または 右クリック 戻る ←キー PageUp キー または BS キー または 左クリック 10枚前 SHIFT+← 10枚後 SHIFT+→ 前のラベル CTRL+← 次のラベル CTRL+→ 最初に戻る HOME キー 最後に進む END キー フルスクリーン Ctrl+F マウスホイールを手前に回すとスポットライトがオンになります その他メインウィンドウの左下隅からメニューがポップアップしますので参照してください ●テキストファイルの文法 # では始まる行はコメントとして無視されます 空行は無視されます 文章を行頭から書きます 行頭の空白、タブ文字などのインデント要素は無視されます 「\n」は改行とみなされます なるべくウィンドウ一杯になるようなフォントサイズが選択されます コマンド指定は行頭から「.」で始めます コマンド指定は「;」で区切って一行に複数書くこともできます 上から順に再生されます 「\」記号は特殊なものとみなされ表示することはできません テキストスライドの行末が \ の場合は、それを改行とみなし次の行と連結します # ○テキスト属性 #.font [font] フォントを指定します #.fontbold [on|off] フォントを太字にするかどうかを指定します #.color #cccccc テキストのカラーを指定します #ffffff(白)などRGB16進数指定します #.montacolor #cccccc もんたメソッドで表示されるフォントのカラー指定 #.montablockcolor #cccccc もんたメソッドのブロック部分のカラー指定 #.textspeed [Xspeed] テキスト移動の速さ係数です。デフォルトは 1.0。 # # ○テクスチャ #.texturemappingmode [mode] 文字へのテクスチャマッピングモードを指定します。normal で通常、sphere で球面になります。 #.texture [filename] 文字に対するテクスチャファイルを指定します。JPEG、PNG、TARGA、BMP に対応します #.notexture 文字に対するテクスチャファイルの指定を取り消します。 # # ○背景 #.bgcolor #cccccc 背景のカラーを指定します #.gbgcolor #cccccc #cccccc 背景のカラーをグラデーション指定します #.w 白地に黒のフォントカラーに設定します #.b 黒地に白のフォントカラーに設定します #.s 背景とフォントカラーを交換します #.bgimage [filename] 背景画像を指定します。 #.bgimagemode [mode] 背景画像の配置方法を指定します。normal、stretch、cylinder、cylider2、sphere、sphere2 が指定できます。 #.bgimagecolor #cccccc #cccccc [speed] 背景画像の色調を指定します。カラーを一つ指定するとその色調になり、二つ指定すると二つの色調をループするアニメーションをおこないます。speed はデフォルト100です。 #.nobgimage 背景画像を表示しないようにします。 # # ○画像 #.image [filename] <スライド要素> 画像を表示します。JPEG、PNG、TARGA、BMP に対応しています。GIF は無視します。 #.i [filename] <スライド要素> .image と同じです。 #.ii #cccccc [filename] <スライド要素> .image と同じですが背景色を指定します。背景色の寿命はこのスライド1枚です。 #.bilinearfilter [on|off] .image で指定される画像拡大時にバイリニアフィルタリングをおこなうかどうかを指定します(デフォルト ON) # # ○WEB #.web [URI] <スライド要素> IE を利用して、WEB を表示します。 # # ○メッシュ #.mesh [Xfile] <スライド要素> メッシュを表示します #.meshrot [axis] [speed] メッシュの回転軸とスピードを指定します。axis には x、y、z、none を指定します。none は回転しないことを意味します。speed には 0.0 以上の値を指定します。 # # ○サウンドエフェクト #.sound [wavfile] スライド切り替え時にワンショットサウンドエフェクトを再生します。.stopsound を指定されるまで再生が続きます。 #.stopsound スライド切り替え時のワンショットサウンドエフェクトをこれ以降停止します。 # # ○オーディオストリーム(BGM等) #.startaudio [MP3/WMA file] BGM 等の演奏を開始します。 #.startaudiorepeat [MP3/WMA file] BGM 等の演奏を開始します。演奏が終わると最初から演奏を繰り返します。 #.stopaudio BGM 等の演奏を停止します。 # # ○ビデオ #.video [filename] <スライド要素> ビデオを再生します。WMV、AVI、MPG などに対応しています。 #.videor [filename] <スライド要素> ビデオを繰り返し再生します。WMV、AVI、MPG などに対応しています。 #.videoc [filename] <スライド要素> ビデオを再生し、再生終了時には次のスライドに移行します。WMV、AVI、MPG などに対応しています。 # # ○サブテキスト #.subtextattr [size] [pos] #cccccc ヘッダの属性指定 / size:高さ / pos: top-left、top-center、top-right、bottom-left、bottom-center、bottom-right / 色 #.subtextfont [font] サブテキストのフォント指定 #.subtextblink [count] サブテキスト出現時に点滅回数 / 現在は点滅をするかしないかだけを 0 or 1 で指定可能 #.subtext [text] サブテキスト指定 #.nosubtext サブテキスト消去 # # ○サブイメージ #.subimagepos [pos] サブイメージの位置指定 / pos: top-left、top-center、top-right、screen-center、bottom-left、bottom-center、bottom-right #.subimage [image] サブイメージ指定 (JPEG、PNG、TARGA、BMP ファイルを指定する) #.nosubimage サブイメージ消去 # # ○ボタンツリー #.begintree [name] インデントによるツリーの開始を宣言します。name に名前を指定すると位置の読み書きに使用されます。 #.endtree ツリーの終了を宣言します。 #.buttoncolor #cccccc ボタンのカラーを指定します。 # # ○進行制御 #.goto [ラベル名] ラベルにジャンプします #.label [ラベル名] ラベルを宣言します #.label [ラベル名] [目次項目名] ラベルを宣言し、目次へ登録します。 #.toc <スライド要素> 目次のスライド #.blank <スライド要素> 空白のスライド #.startslideshow [msec] 自動スライドショーを実行します。インターバルを msec 単位で指定します #.stopslideshow 自動スライドショーを直前の文で終了させます #.pagewidth [width] スライドの配置間隔を調整します。デフォルトは 8.0 です <スクリプトに一箇所だけ記述可能> #.load [script] ロードしたスクリプトを最初から再生します #.fullscreen [mode] ロード時のフルスクリーン化の制御方法を指定します <スクリプトに一箇所だけ記述可能> # mode = off(何もしません。前回終了時の方法で起動します。デフォルト) # mode = primary(プライマリディスプレイでフルスクリーン化し、ミラーを消去します) # mode = secondary(セカンダリディスプレイでミラーウィンドウをフルスクリーン化します) # mode = auto(セカンダリディスプレイが存在したときは secondary、シングルディスプレイでは primary として動作します) #.mirrorwait [wait] ミラーリング時にプライマリ側の描画頻度を落として、古いビデオカードでもせめて観衆に見せるスクリーンの方はパフォーマンスを落とさないようにします。wait には 1 以上の値を指定できます。デフォルトは4。 # # ○メモ書き #.note ... メモ書きを直後のスライドに対して適用させます。現状では非フルスクリーン時にタイトルバーに表示されます。 # # ○タイムキーパー #.settimekeeper [min] タイムキーパーウィンドウに目標時間を分単位でセットします <スクリプトに一箇所だけ記述可能> #.starttimekeeper タイムキーパーを出現させ計測を始めます。すでに計測中のときは何もしません。 # # ○エフェクト制御 #.effect [エフェクト名] [on|off] 特定のエフェクトをオン・オフします #.effectset [エフェクト名,...] エフェクトをクリアし指定された複数のエフェクトをオンにします #.noeffect 全てのエフェクトをオフにします # # ○カメラ制御 #.camera [camspeed] [lookspeed] [mode] # モードは spline(スプライン補間=デフォルト) または linear(一次補完)。 # camspeed はカメラ座標の動作速度係数(デフォルト1.0)、lookspeed は注視座標の移動速度係数(デフォルト1.0)です。 #.cameratrans [x] [y] [z] スライド進行時の瞬間のカメラ座標をオフセットします。デフォルトは 0.0 0.0 0.0 です。 #.cameratrans [x] [y] [z] [tz] スライド進行時の瞬間のカメラ座標を x y z 分オフセットし、カメラの目標 Z 値を tz 分オフセットします。 #.cameratrans cameratrans パラメータを全て初期値に戻します。 # # ○縦位置調整 #.offsety [line] # 行単位でスクリーンの縦位置センターを上方向にオフセットします。デフォルト0.1です。負の値は指定できません。 # # ○テキストレイアウト # .textalign [align] 複数行テキストの横方向アラインメントを指定します。align には center か left が指定可能です。デフォルトは left です。 # .textheight [height] テキストの行間を指定します。フォントの高さに対する係数。デフォルトは 1.2 です。 # # ○テキストエフェクト名 # trans スライド間で共用している文字を再利用します。 # spin 文字を回転させます # spiny 文字をY軸回転させます # point パーティクルを描画します(バリエーション1) # point2 パーティクルを描画します(バリエーション2) # point3 パーティクルを描画します(バリエーション3) blur をオンにしたほうが効果があります # fade 文字を一文字ずつ登場させます # away 文字を近くから登場させます(slide をオフにしたほうが効果があります) # blur ブラーエフェクトを描画します # rand 文字の初期位置をランダムに設定します # dissolve 出現時にフェードインします # shadow 文字にシャドウを付加します。カメラがスクリーンの向こう側にあるときは背景色を反転させます。 # slow スローモーション再生します # backlight 後光が射したような表現を目指します # slip 横方向に文字を滑らせます # spring 文字同士をバネでつないだような動きをさせます # stay スライド進行時に、それまでの文字を残します # # ○カメラエフェクト名 # slide 右から左へスライドをアニメーションします。デフォルトではオンです。 # revcam カメラ位置を文字の向こう側に配置します # pancam カメラ位置を文字の直前に配置します # spincam カメラを少し傾けます # swingcam カメラ位置を振り子のように揺らします(尺が長いです) # cutswingcam swingcam + カット割 # dollyupcam カメラを目標にゆっくり近づけます # teasecam 全体像を見せないカメラワークを繰り返しおこないます # # ●インライン要素 # [[色名 ...]] で部分着色 # [[monta ...]] でもんたメソッド # [[hide ...]] で後出し。色は montacolor で指定されたものが現在は使われる。 # [[... ]] は現在入れ子にできません # 「\n」が改行 ●カラー指定について #RRGGBB 形式でカラーを指定します。(例 黄色=赤255,緑255,青0=#FFFF00) または、Web カラーの名前を使用します。 ●マルチディスプレイ使用のヒント ・プライマリディスプレイにメインウィンドウ、タイムキーパー、次のスライドウィンドウを配置します ・セカンダリディスプレイにミラーウィンドウを配置し、フルスクリーン化します ・セカンダリディスプレイポートにプロジェクタを接続します ・セカンダリディスプレイの解像度はプライマリより落とします。たとえばプライマリ=1280x800、セカンダリ800x600などとします。 ・mirrorwait でウェイト調整します。mirrorwait で大きな値を指定するとプライマリディスプレイ側のFPSが下がり、セカンダリディスプレイ側が上がります。 ●バージョン履歴 0.00 2006.6.16 開発開始 0.01 2006.6.16 公開 0.02 2006.6.19 画像を表示できるようにした。対応するフォーマットは JPEG、BMP、PNG、TARGA。GIF には対応しない。 「読み直し(Ctrl+R)」コマンドを追加した 0.03 2006.6.20 スライドにペンを使って書き込めるようにした(マウスの左ドラッグで書き込み、中クリックで消去する) コマンド .pencolor #cccccc を追加した。ペンのカラーを指定する。 コマンド .pensize [pixel] を追加した。ペンのサイズを指定する。 画像のフェードアウト処理がうまく動作していなかったので修正した コマンド .gbgcolor #cccccc #cccccc を追加した。背景にグラデーションを指定する。 0.04 2006.6.27 メニューバーに次のスライドのテキストを表示するようにした フルスクリーン(Ctrl+F)機能を追加した。ただしメニューバーは消えない。 SHIFT+←で10枚前のスライドに戻るようにした SHIFT+→で10枚後のスライドに移動するようにした 0.05 2006.6.28 メニューバーを下に移動した 細かい調整 0.06 2006.7.5 自動進行機能を追加した。左下のメニューの[自動進行]から指定する。インターバルを指定することができる .effect [エフェクト名] [on|off] コマンドを追加した -> エフェクトには現在、spin、trans、point、slide を指定することができる。同時にいくつものエフェクトをオンにすることもできる .noeffect コマンドを追加した。全てのエフェクトをオフにする 0.07 2006.7.6 fade エフェクトを追加した。文字を一文字ずつ登場させる。.effect fade on で利用できる away エフェクトを追加した。文字をカメラ近くから登場させる。.effect away on で利用できる 背景だけを表示する機能を追加した。プレゼンターに注目を戻したいときに使用する。メニューの[背景のみ] Ctrl+B または Tab キーで機能する。 ビデオ再生対応準備 0.08 2006.7.7 blur エフェクトを追加した。全画面にブラーエフェクトを適用する rand エフェクトを追加した。文字の初期位置をランダムに設定する revcam エフェクトを追加した。カメラ位置を文字の向こう側に配置する メニューバーのスライド予告文字をスライドあたり最大48文字に制限した メニューバーのスライド予告文字に含まれるインライン要素を表示しないようにした 0.09 2006.7.8 .texture [imagefilename] コマンドを追加した。3Dテキストにテクスチャマッピングを行う .notexture コマンドを追加した。テクスチャマッピングを禁止する pancam エフェクトを追加した。カメラ位置を文字の直前に配置する spincam エフェクトを追加した。カメラを少し傾ける 0.10 2006.7.9 slow エフェクトを追加した。スローモーション再生する。 .effectset コマンドを追加した。現在のエフェクト設定をクリアし複数のエフェクトを一括してオンにする。 0.11 2006.7.10 dissolve エフェクトを追加した。出現時にフェードインする。 .startslideshow [msec] コマンドを追加した。自動スライドショーを実行する。インターバルを msec 単位で指定する。 .stopslideshow を追加した。自動スライドショーを直前の文で終了させる。 .font の指定でスペースを含むフォント名を指定できなかったので修正した .image の指定でスペースを含むファイル名を指定できなかったので修正した 0.12 2006.7.12 .label コマンドを追加した。ラベルを宣言し、キーボードからラベルの頭文字を入力することによりそのスライドにジャンプする .texturemappingmode [mode] コマンドを追加した ->文字へのテクスチャマッピングモードを指定する。mode が normal で通常、sphere で球面マップを用いた環境マッピングをおこなう。 テクスチャへのバイリニア処理が全く行われないことがあったので修正した。 存在しないコマンド名、ファイル名、エフェクト名を指定されていたときは、起動時にエラーを表示するようにした。 0.13 2006.7.13 shadow エフェクトを追加した。文字にシャドウを付加する。カメラが紙面の向こう側にあるときは背景色を反転させる。 point2 エフェクトを追加した。パーティクルエフェクトのバリエーション。 ウィンドウへのテキストファイルのドラッグアンドドロップを受け付けるようにした。 0.20 2006.7.20 サブテキストをサポートすることにした。ヘッダ・フッタとして利用が可能。 -> これに伴い、.sutextattr、.subtextfont、.subtext、.nosubtext コマンドを追加した。 サブイメージをサポートすることにした。ヘッダ・フッタとして利用が可能。 -> これに伴い、.subimagepos、.subimage、.nosubimage コマンドを追加した。 TMPresentation のデータとの互換性のために、.footeralign、.footerimage、.nofooter、.headerattr、.headerfont、.header、.noheader コマンドを追加した。 .bgimage コマンドを追加した。背景画像を指定する。 .bgimagemode コマンドを追加した。背景画像の拡大方法を指定する。normal と stretch が指定できる。 -> normal は縦横比を維持し背景画像の左上を基準に隙間無く拡大・縮小する。画像の左上に重要なものがあると決めうちしている。 -> stretch は縦横比を無視して背景画像をウィンドウサイズへ拡大・縮小する。 .nobgimage コマンドを追加した。 背景画像を表示しないようにする。 .goto [label] コマンドを追加した。指定したラベルへジャンプする。 行頭と行末の空白・タブを無視するようにした。 .blank コマンドを追加した。明示的な空白のスライドを意味する。 0.25 2006.7.21 もんたメソッドに対応した -> .montacolor #cccccc コマンドを追加した。もんたメソッドで表示されるフォントのカラー指定。 -> .montablockcolor #cccccc コマンドを追加した。もんたメソッドのブロック部分のカラー指定。 -> インライン要素 [[monta 文字列]] でもんたブロックを指定する。 -> もんたメソッドで指定された文字列は隠された状態で登場し、クリックするとブロックが消滅する。 ウィンドウのサイズを変更するときに停止するバグがあったので修正した(サブイメージ表示時のみ) 細かい停止バグの修正 0.26 2006.7.21 slide エフェクトを用いた際に前のスライドの文字列が描画されないバグを修正した(0.25 で発生したバグ) ペンによる描画が、slide エフェクト使用時などに全く描画されないことがあるバグを修正した。 ファイルを何も開いていない状態での動作がおかしかったので修正した。 ウィンドウサイズを変更するときに、その後のスライドに .image での画像の読み込みが存在すると、画面にスライドが表示されなくなるバグを修正した 最下行のメニューバーはスライド毎の背景色を反映していたが、コントラストが低すぎて見にくい場合は色を補正するようにした ウィンドウサイズを小さくしすぎる停止していたので修正した メインウィンドウの最小化を暫定的に禁止した。不便だがいろいろな問題が発生することが判明したため。 _effect_point.png が存在しないときに起動できなかったので、エラーダイアログを表示するようにした。このファイルはパーティクルに使用される。 そのほか細かいバグの修正 0.27 2006.7.24 .fullscreen on コマンドを追加した。DXPresentation はファイルのロード時に、このコマンドどこかに一つ以上ある場合即座にフルスクリーン化する。コマンドの位置はどこにあっても動作に無関係である。 .bgimagecolor を追加した。背景画像のカラーを調整する。二つの色のアニメーションさせることも可能。 0.28 2006.7.25 trick1 エフェクトを追加した。 0.29 2006.7.26 swingcam エフェクトを追加した。 0.30 2006.7.31 ツリー構造を持ったスライド構築のための作業をはじめた。現在「ツリー構造を持つボタン」が使用可能。次のコマンドを追加した。 -> .begintree インデントによるツリーの開始を宣言します。 -> .endtree ツリーの終了を宣言します。 -> .buttoncolor #cccccc ボタンのカラーを指定します。 .fontbold [on|off] コマンドを追加した。フォントを太字にするかどうかを指定する。 0.31 2006.7.31 ノードボタンがスクリーンからはみださないようにカメラを調整した ノードボタン関係の修正。上位階層に移動するときにそれまでのルートのアルファ値とスケール値がきちんとセットされず、不自然な絵になっていたので修正した 親ノードボタンをクリックしたときは一つ上の階層へ移動するようにした ノードボタンの出現・消滅時に回転させるようにした 訪問済みノードのボタンカラーを変更できるようにした -> .buttoncolor コマンドの第2引数に訪問済みボタンの色を指定できるようにした そのほかノードボタン操作の細かい修正 0.32 2006.8.1 ウィンドウのサイズを変更したりフルスクリーン化すると停止していたので修正した(0.31で発生したバグ) ツリーのスライドから他のスライドに移行したあとに、ツリーのスライドに再度移行すると表示位置がおかしかったので修正した 0.33 2006.8.2 .mesh [Xfile] コマンドを追加した。メッシュ(.x)ファイルを読み込み表示する .meshrot [axis] [speed] コマンドを追加した。メッシュの回転軸とスピードを指定する。 dollyupcam エフェクトを追加した。カメラを目標にゆっくりと近づける。 コマンドを「;」で区切って一行に複数書けるようにした(これにより .subtext コマンドに「;」を含めることができなくなった) ノードボタンをクリックしたときのユーザへのフィードバックが足りないので、点滅するようにしてみた。 0.34 2006.8.3 ミラーウィンドウ機能を追加した。ウィンドウのミラーを作る。しかしビデオカードによっては著しくパフォーマンスが落ちることが判明した。初期化処理の何かを間違えているか、根本的に勘違いしているか、そもそも無理なのかのどれかだ。 タイムキーパーツールを追加した。メニューまたは Ctrl + K で起動する。 次のスライドウィンドウ機能を追加した。メニューまたは Ctrl + N で起動する。文字だけが表示されるなど、簡易的な表示。 メインウィンドウのタイトルバーにいろいろな情報を表示するようにした。 0.35 2006.8.3 スポットライト機能を追加した。 -> マウスホイールを手前に回すとスポットライトがオンになる -> スポットライトがオンの状態でホイールを回すとスポットの大きさを調整できる -> マウスホイールを奥へ回しきるとスポットライトがオフになる -> ホイールボタンでもスポットライトをオン・オフできるが、書き込んだラインの消去が優先する -> メニューの[スポットライト Ctrl+L]でもスポットライトをオン・オフできる Ctrl+→ で次のラベルに、Ctrl+←で前のラベルに移動するようにした 0.36 2006.8.4 背景画像がスポットライトに反応していなかったので修正した。 従来は全て .NET フレームワークにガベージコレクションを任せていたが、適切なタイミングでおこなうようにしてリソース消費を抑えるようにした。 .image で指定した画像に対するライティングにおいて、読みにくい場合があるのでスペキュラ成分をなくした。 .image で指定した画像へのスポットライトが非常に暗かったので修正した。この変更に伴い画像の頂点数が4→2500と非常に増えたのでパフォーマンスに影響が出るかもしれない。 タイトルバーに現在のラベル名を表示するようにした 0.37 2006.8.6 クローズアップ機能を追加した。 -> スポットライトで照らしている部分を左クリックでクローズアップする -> クローズアップから抜けるには左クリックするか、スポットライトをオフにするか、次のページに進めばよい -> 画像の細部を見せたいときに便利 -> クローズアップ中にマウスホイールを回すと拡大率が変化する マウスカーソルに関して次の変更をおこなった。 -> プレゼンにおいて差し棒と同様な使われ方をされると想定した場合、文字に対して小さすぎると思われたので、カーソルを巨大化した。_effect_cursor.png でサイズ・形状・色をカスタマイズ可能。 -> ミラーウィンドウでもマウスカーソルを表示するようにした。差し棒として使われることが多いと判断したため。 -> カーソルの移動がしばらくない場合は、差し棒として機能していないと DXPresentation は判断する。このときカーソルが邪魔な表示物とならないように、半透明化するようにした。 0.38 2006.8.7 .image コマンドによる画像表示において、スポットライト以外のライティングと背景カラーのアニメーションを廃止した。 マウスカーソルのデザインを修正 アプリケーションのアイコンのデザインを変更した その他細かい修正 0.39 2006.8.8 移動ウィンドウを追加した。Ctrl+J で出現する。 SHIFT+→、SHIFT+←による次ラベル・前ラベルへのジャンプの挙動がおかしかったので修正した。 .audio [wavfile] コマンドを追加した。ページ切り替え時にオーディオを再生する。wav ファイルのみの対応。 .noaudio コマンドを追加した。オーディオの再生を中止する。 「次のスライドウィンドウ」で画像も表示できるようにした。 ミラーウィンドウのメニューバー表示を廃止した (ツールウィンドウが増えてきたので、ウィンドウの位置とサイズを保存できるようにしないと使いにくい) その他細かい修正 0.40 2006.8.9 DirectX 管理下のリソースがメモリリークする致命的な問題が存在していたので修正した。 -> これによりプレゼン中に突然プログラムが停止するような重大な不具合を取り除くことができたはず。 従来高速化のため次の画像の読みこみを別スレッドでおこなっていたが、危険であることが判明したので暫定的に廃止した そのほかレンダリング処理のタイミングを安全性向上のため大幅に修正した ウィンドウのリサイズ処理を全面的に書き換え、安定化を図った。 メインウィンドウの最小化を復活させた。ミラーがある場合はミラーを隠すようにした。 ミラーウィンドウのサイズ変更をメインウィンドウのサイズに反映させるようにした メインウィンドウがフルスクリーンのときはミラーを使えないようにした。逆にミラーがあるときは、メインウィンドウをフルスクリーンに変更できないようにした メインウィンドウがフルスクリーンのときはメニューバーを消すようにした その他細かい修正 0.41 2006.8.11 開発環境を VS2005 に変更 ビデオ対応作業(実装中) メニューバー上でのマウスカーソルが見にくかったので、普通のカーソルに戻すようにした 細かい修正 0.42 2006.8.12 スライド追加機能を追加した。 Ctrl+A でテキストのスライドを追加できる。授業中に話が脱線した時や、講演後の質疑応答の時などに簡単にスライドを追加するのが目的。 追加したスライドは一時的なものなので保存できない。 追加したスライドを個別に削除することはできない。 追加したスライドを一括して削除する特別なコマンドはないが、再読み込み(Ctrl+R)で可能。 開発環境を VC#2005 に戻した 0.43 2006.8.16 スライド追加機能を使うと、そのスライド後方のツリーボタンのノードの親子関係が破壊されるバグを修正した。 移動ウィンドウの最初の出現時に、現在のスライドをカーソルが指していなかったので修正した。 ビデオ対応作業(実装中) 細かい修正 0.44 2006.8.17 最小化時に CPU 負荷が増大するバグがあったので修正した。 ミラーウィンドウ出現時にアニメーション進行速度が異常に速くなることがあったので修正した。 ビデオ対応作業(実装中) 細かい修正 0.45 2006.8.19 Web をスライドとして表示する機能を追加した。 .web [URI] コマンドを追加した。ローカルの html ファイルや、フラッシュ、PDF、インターネット上のコンテンツなどをスライドの要素として扱うことができる。 ファイルをオープンするときにカレントディレクトリをそのファイルの存在するディレクトリにセットするようにした。これにより.imageや.webでの相対パス指定のベースディレクトリが、オープンするファイルへのパスとなった。 細かい修正 0.46 2006.8.20 Web 表示しているときに、ウィンドウをリサイズするとそのたびに再読み込みが発生していたので修正した。 メニューバーのカラーを調整し、次のスライドボタンにはアイコンを付加した。 細かい修正 0.47 2006.8.21 単独のオーディオストリームの再生に対応した。.startaudio、.stopaudio コマンドにより BGM などに対応する。 .startaudio [audio file] コマンドを追加した。オーディオストリームの再生を開始する。[audio file] には MP3、WMA ファイルなどを指定する。演奏終了後に .stop しない限りスライド切り替え時に自動的に再演奏する .startaudiorepeat [audio file] コマンドを追加した。オーディオストリームを自動リピート再生する。 .stopaudio コマンドを追加した。そのとき演奏しているストリームの再生を終了する。 スライド移行時にワンショット SE を演奏する .audio コマンドを .sound コマンドに改名した。.audio も残す。 .noaudio コマンドを .stopsound コマンドに改名した。.noaudio も残す。 メニューバーのカラーを調整した 0.50 2006.8.23 ビデオ再生機能を追加した。 .video コマンドを追加した。WMV、ASF、MPG ファイルなどビデオを再生することができる。ただし、ライン書き込み、クローズアップなどはできない(DirectX.AudioVideoPlayback.Video のバグのため、あきらめた) コマンドラインからの起動において、第1引数に読み込むファイルを指定できるようにした Web の表示機能において、Web1 -> テキストスライド -> Web2 と再生していくと、Web2 に移動したときナビゲートが終わるまで Web1 が表示されたままになっていたので修正した。 メニューバーのカラーを再度調整した 細かい修正 0.51 2006.8.24 .videor [filename] コマンドを追加した。ビデオを繰り返し再生する。 .videoc [filename] コマンドを追加した。ビデオを再生し、再生終了時に次のスライドに移行する。 ミラーウィンドウ出現中のビデオ再生において、映像と音のずれが発生することがあったので修正した。 ミラーウィンドウ出現中のビデオ再生において、ミラー側のツールバーに.subtextで指定されたテキストを表示するようにした。 ビデオのコントロールボタンのデザインを修正した。 ミラーウィンドウ出現中の Web スライドにおいてツールバー部分がミラー側で真っ黒になっていて見苦しかったので修正した。 サンプルスライドの細かい修正 Web スライドの表示後、描画パフォーマンスが落ちるバグがあったので修正した 0.52 2006.9.4 cutswingcam エフェクトを追加。swingcam エフェクトにカット割を加えたもの。 細かい修正 0.53 2006.9.5 randomwords エフェクトを追加。単語をランダムに表示する。 細かい修正 0.54 2006.9.12 Windows Vista(x64)で動作しなかったので修正した 0.55 2006.9.26 ツリーのノードボタン使用時にメモリリークが発生していたので修正した サブイメージの Z 順を上げ、最上位のカーソルの下に設定した 0.60 2006.9.29 .load [filename] コマンドを追加した。新しいスクリプトファイルをロードして制御を移す。 dollyupcam エフェクトで初期 XY 位置が数フレームおかしかったので修正した dissolve エフェクトを .image で指定したピクチャにも反映させるようにした slide エフェクトでピクチャが去るときにカラーをフェードアウトさせるようにした .pagewidth [width] コマンドを追加した。slide エフェクトにおいて、スライドの占有する幅係数を指定する。width のデフォルトは 8.0。 0.61 2006.10.2 .camera コマンドを追加した。カメラモーションの基本特性を指定する。 -> .camera [camspeed] [lookspeed] [mode] が書式 -> camspeed はカメラ座標の動作速度係数(デフォルト1.0) -> lookspeed は注視座標の移動速度係数(デフォルト1.0) -> mode は spline(スプライン補間=デフォルト) または linear(一時補間)を選択可能。 -> これによりカメラ移動全般の移動方法と速さを指定することが可能になった slide エフェクト時のカメラの移動速度を調整した offsety [line] コマンドを追加した。line 行分、上にテキストをオフセットする。 -> このコマンドにより、階段状になっていないプレゼン会場などにおいて、スクリーンの下部が見えにくい問題に対処する -> 会場のスクリーンの設置状態に依存する要素であり、スクリプトとは関係がないことなので、この機能は将来はアプリ側に分離させたい .textalign [align] コマンドを追加した。複数行テキストの横方向アラインメントを指定する。align には center か left が指定可能。デフォルトは left。 .subtextblink [count] コマンドを追加した。サブテキスト出現・変更時の点滅回数を指定する。現在は点滅をするかしないかだけを 0 or 1 で指定可能。 .textheight [height] コマンドを追加した。行の高さを指定する。フォントの高さに対する割合で指定する。デフォルトは1.2。 0.62 2006.10.5 クローズアップ中にカーソルキーを入力するとスクロールするようにした(+SHIFT で 10 倍長) クローズアップ中に ESC キーを入力すると、スポットライトをオフにするようにした 0.63 2006.10.5 .i [filename] コマンドを追加した。.image コマンドの省略形。 .ii #cccccc [filename] コマンドを追加した。.image と同じく画像を表示する。背景色をそのスライドに対して指定できる。 .bilinearfilter [on|off] コマンドを追加した。.image で指定される画像拡大時にバイリニアフィルタリングをおこなうかどうかを指定する(デフォルト ON)。 アイドル時にフルタイムレンダリングしていたが、負荷低減の目的で廃止した。 0.70 2006.10.11 .settimekeeper [min] コマンドを追加した。タイムキーパーウィンドウに目標時間を分単位でセットする。スクリプトに一箇所だけ記述可能。 .fullscreen [mode] コマンドを追加した。ロード時のフルスクリーン化の制御方法を指定します <スクリプトに一箇所だけ記述可能> mode = off(何もしません。前回終了時の方法で起動。デフォルト) mode = primary(プライマリディスプレイでフルスクリーン化し、ミラーを消去) mode = secondary(セカンダリディスプレイでミラーウィンドウをフルスクリーン化) mode = auto(セカンダリディスプレイが存在したときは secondary、シングルディスプレイでは primary として動作syry) なお DirectX8 世代以前の古いビデオカードではミラーウィンドウのパフォーマンスは非常に悪いので注意。 .mirrorwait [wait] コマンドを追加した。ミラーリング時にプライマリ側の描画頻度を落として、古いビデオカードでもせめて観衆に見せるスクリーンの方はパフォーマンスを落とさないようにします。wait には 1 以上の値を指定する。デフォルトは4。 セカンダリディスプレイが存在する環境下において、ミラーウィンドウを開いた場合には、必ずミラーをセカンダリディスプレイにフルスクリーン表示するようにした。 従来のミラーを出したいときは「リサイズなしミラー」メニュー(Ctrl+Shift+M)を使用する 各種ウィンドウの位置を保存することにした。DXPresentation.exe と同じ場所に、Settings.ini ファイルを保存するようにした。 起動時に Ctrl + Shift キーが押されていたときは、Settings.ini ファイルを読み込まないようにした。 .note コマンドを追加した。メモ書きを直後のスライドに対して適用させます。現状では非フルスクリーン時にタイトルバーに表示される。 0.71 2006.10.12 セカンダリディスプレイが存在する環境下において、ミラーウィンドウをフルスクリーン表示したときの挙動に関して以下の修正をおこなった。 メインウィンドウのリサイズ時にアスペクト比を常にミラーウィンドウのそれに一致させるようにした 切り替え時に、プライマリスクリーンに対するメインウィンドウのサイズが 90 % を超えないようにした。 [その他]メニューに[メインウィンドウサイズをミラーに合わせる(Alt+M)]コマンドを追加した。 .cameratrans [x] [y] [z] コマンドを追加した。スライド進行時の瞬間のカメラ座標をオフセットする。デフォルトは 0.0 0.0 0.0。 メッシュの読み込みで例外が発生したときに、タイトルバーにエラー情報を出し、プレゼンの進行は停止させないようにした。 0.72 2006.10.13 タイムキーパーウィンドウに、消化したスライドと経過時間を直交軸とするグラフを表示するようにした。 キーボード一文字入力により指定されたラベルへ移動する機能において、頭文字が一致するものが複数ある場合は、それらを順次サーチするようにした。 クローズアップ時にもラインをひけるようにした。ただしカーソルキーでスクロールしたりホイール入力すると消える。今後改善したい。 クローズアップ時にもアローカーソルを描画するようにした。クローズアップ時においても指し棒機能が必要と判断したため。 クローズアップ時のスポットライトのアルファ値を半減させ、コントラストがなるべく失われないようにした。 0.73 2006.10.15 Web 表示の拡大率を変化できるようにした。Web ツールバーの[表示]メニューから 25% - 400% の幅で指定可能。 メインウィンドウを最小化したときに、タイムキーパー、次のスライド、移動ウィンドウを隠すようにした。 0.74 2006.10.16 移動ウィンドウに .subtext コマンドで指定された文字列を「キャプション」として表示するようにした 移動ウィンドウに、キャプションまたはラベルからスライドを検索するボタンを追加した。 移動ウィンドウを表示した際にフォーカスを検索文字列ボックスに移動するようにした。 移動ウィンドウ、次のスライドウィンドウ、タイムキーパーウィンドウをウィンドウの最上面に配置していたが、これを廃止した。 ビデオツールバーのシークバーが見えなくなっていたので修正した 0.75 2006.10.17 WindowsXP において起動時に System.Text.EncoderFallbackException 例外が発生することがあったので修正した。 0.76 2006.10.18 インライン要素として hide を追加した。[[hide 後出しテキスト]]と記述すると「後出しテキスト」の部分は最初は登場しない。次のスライドに進む操作(スペースキー、右クリックなど)で順次登場する。 .textspeed [Xspeed] コマンドを追加した。テキスト移動の速さ係数を指定する。デフォルトは 1.0。カメラの移動スピードとは無関係なので混同しないように注意。 0.77 2006.10.27 ドラッグアンドドロップによる起動でエラーが発生していたので修正した コマンドラインからの起動において、スクリプトファイルの指定を相対パスでは記述できなかったので修正した ノードツリー出現中の「次のスライド」ウィンドウでは、ツリーを抜けた最初のスライドを表示するようにした .starttimekeeper コマンドを追加した。タイムキーパーを出現させ計測を開始する。すでに計測中のときは何もしない。 スライドを PNG ファイルに書き出せるようにした。メニューの[書き出し...]コマンドを使用する。常に全てのスライドを連番つきで書き出す。 0.78 2006.11.18 センタリング(.textalign center)設定時に、一行に一文字しかない場合レイアウトが乱れていたので修正した blast エフェクトを実装(このエフェクトは実装途中です montablockcolor で指定されたカラーを暫定的にエフェクトに使用しています) 0.79 2006.11.19 センタリング(.textalign center)設定時の、point2 エフェクトのパーティクル描画がずれていたので修正した 0.80 2006.11.21 point3 エフェクトを追加した。パーティクルのバリエーション。ブラーを ON にしたほうが効果がある。 0.81 2006.11.22 フルシーンアンチエイリアスを指定できるようにした。settings.ini ファイルに bAntiAlias=TRUE と記述する point3 エフェクトで背景の色指定によって停止することがあったので修正した。 point3 エフェクト実行中に背景色がおかしくなることがあったので修正した。 プログラマブルシェーダ準備 0.82 2006.11.25 backlight エフェクト追加。後光が射したような感じの表現を目標とする。このエフェクトはまだ開発中。 細かい修正 0.83 2006.11.27 backlight エフェクトでのライティング修正。ポイントライト追加。 backlight エフェクトを多少高速化した。このエフェクトはピクセルフィルレートの高いビデオカードが必要。 細かい修正 0.84 2006.11.29 Windows Vista において、「次のスライド内容」をサイドショーガジェットに表示できるようにした(実験中・取り扱い注意) [設定]メニューを追加した。フルシーンアンチエイリアシングとサイドショーガジェットの設定が可能。 0.85 2006.11.30 サイドショーガジェットにおいて、タイムキーパーが動作しているときは残り時間を表示するようにした サイドショーガジェットにおいて、現在のスライドにノートがある場合は表示するようにした サイドショーガジェットへの書き出し処理を高速化した 0.86 2006.12.2 DXPSideShow.exe のパフォーマンスを改善した 0.87 2006.12.5 slip エフェクトを追加した。横方向に文字を滑らせる。 spring エフェクトを追加した。文字同士をバネでつないだような動きをさせる。 0.88 2006.12.9 カウントダウン機能を追加した -> 講演中のインターミッションや授業の開始前などに、開始時刻までをカウントダウンする -> カウントダウン(Ctrl+I)メニューより指定する -> 現在のスライドがムービーまたは WEB の場合はカウントダウンできない Microsoft Presenter 3000 への対応を始めた -> Presenter 3000 のマウスモードには中クリックがないので、左クリック→右クリックの順に同時に押すと中クリックとして機能するようにした ->Presenter 3000 のプレゼンターモードにおいて十字キーを活用する準備の影響で、Shift+B のみショートカットとして利用できなくなった。B キーで代用できる。 -> 今後ボタンツリーともんたメソッドにプレゼンターモードを対応させたい 0.89 2006.12.10 Shift+B を押すと TAB キーと押したときと同様に背景のみの描画をするモードに移行するようにした。 タイムキーパーを一度閉じて開くと、残り時間がリセットされていたので修正した。 タイムキーパーの残り時間をメインウィンドウの右下隅に非常に小さく描画できるようにした。タイムキーパーウィンドウの残り時間チェックボックスにより制御する。 0.90 2006.12.26 目次ツールを追加した。目次ツールはオーディエンスにも見えることを前提としている。 -> Enter キーで目次ツールは出現する。 -> Escape キーまたは Enter キーで目次ツールは閉じられる。 -> カーソル上下キーでも目次ツールは出現する。 -> 目次ツールが表示されているときは、カーソル上下キーで項目を移動することができる。 -> 目次ツールに記述する項目は .label コマンドを使用する。.label の第2引数が目次に表示される。 .label コマンドを拡張した。.label [ラベル名] [目次項目名] という書式にした。目次項目名は省略することができる。 .toc コマンドを追加した。目次のスライド要素を示す。 randomfade エフェクトを追加した。文字をランダムな順で登場させる。 .effectset コマンドでエフェクト名を列挙するときスペースでも区切れるようにした 0.91 2007.1.4 カーソル上下キーで目次ツールが起動してしまう不具合を修正した。このバグは特にクローズアップ時に不便だった。 .video コマンドのファイルが存在しないときのエラーメッセージがおかしかったので修正した。 ビデオツールバーのシークバーがまた見えなくなっていたので修正した フルスクリーン化したミラーウィンドウ出現時のメインウィンドウのサイズ調整がおかしかったので修正した フルスクリーン化したミラーウィンドウ出現時のメインウィンドウのアスペクト比調整を廃止した 0.92 2007.1.5 タイムキーパーウィンドウにおいて、従来はタイマー停止後の再開ではラップをリセットしていたが、これを廃止した。この措置に伴いリセットボタンを追加した。 -> これによりプレゼンの練習をしながら原稿を編集するときに、タイマーの利便性が上がると思われる。 0.93 2007.1.7 次のスライドテキストを画面の左下に表示できるようにした。設定ウィンドウより設定する。シングルウィンドウ・クローンディスプレイでのプレゼンに便利。 タイムキーパーウィンドウのボタンの文字が Windows XP において見づらくなっていたので修正した。 0.94 2007.1.8 「次のスライドウィンドウ」及び Vista サイドショーガジェットサポートにおいて、次のスライドがノードツリーだった場合にノードツリーのトップ項目を表示するようにした 0.95 2007.1.13 .startaudiorepeat コマンドによる BGM 再生において、リピートが全く機能していなかったので修正した。 .video コマンドの次にスライドが .toc コマンドによる目次スライドだった場合例外が発生し停止していたので修正した。 0.96 2007.1.17 spiny エフェクトを追加した。文字を Y 軸回転させる。 テキストエディタを起動する機能を追加した。現在読み込まれているテキストを行数指定つきで開くことが可能。設定ウィンドウから設定する。 -> メニューより「エディタで編集」(Ctrl+E)で起動する 0.97 2007.1.21 設定ウィンドウでテキストエディタを指定すると、カレントディレクトリが変更され、その後設定ファイルの保存場所がおかしくなっていたバグを修正した。 0.98 2007.1.22 細かい修正 0.99 2007.2.5 移動ウィンドウに「クリップボードにコピー」機能を追加した。レジュメを作るときの素材に便利。 プログラムのデフォルト言語を英語とした。そして日本語版は日本語にローカライズした。 テキストスライドの行末が \ の場合は、それを改行とみなし次の行と連結するようにした。 -> 改行の多いスライドを作る場合に便利 stay エフェクトを追加した。文字をその場に残す。 .cameratrans コマンドを拡張し、第 4 引数 tz を受け付けるようにした。カメラの最終目標 Z 値を tz 分オフセットする。 1.00 2007.2.5 メインウィンドウがアクティブになる時に、スクリプトが書き換わっていたら自動的にリロードするようにした スクリプトの読み込み時に検出したエラーのウィンドウをモードレスウィンドウに変更した。またエラーをダブルクリックすると、指定したテキストエディタで開くようにした 設定ファイルの保存場所がおかしくなるバグ(0.99より発生)を修正した なお 1.00 というバージョンナンバに正式版の意味を持たせていない 1.01 2007.2.6 英語版の文字間隔等の細かい修正 1.02 2007.2.7 カーソルファイル _effect_cursor.cur の読み込みに失敗していたので修正した スクリプトファイルの読み込み中に発生した例外を全てハンドルし、エラーウィンドウに表示するようにした 1.03 2007.2.20 .web コマンドでフラッシュを読み込んだときに一度目のクリック以外に反応していなかったので修正した 1.04 2007.2.22 ビデオ再生時のツールバーの位置と、プログレスバーのサイズを変更した .bgimagemode [mode] コマンドの mode に cylinder、cylider2、sphere、sphere2 を追加した。背景をスクロールさせる。 1.05 2007.2.26 teasecam エフェクトを追加した。全体像を見せないカメラワークを繰り返しおこなう。 書き出しメニューに「全フレーム」を追加した。全てのフレームを JPEG ファイルで書き出す。ムービーの作成に役立つかもしれない。この機能は現在 Vista ではうまく動かない。 1.06 2007.3.17 「スライド追加」コマンドにおいて Enter キーを押したときのフォーカスがおかしかったので修正した Web 表示機能において、Web ツールバーのアドレス入力ボックスへ Enter キーを入力したときの入力フォーカスがおかしかったので修正した 細かい修正 1.07 2007.7.11 Windows Vista + Intel 系ビデオカード対策をした。設定ウィンドウよりオンオフできる。 ●サイドショーガジェットのインストールについて ・Windows Vista 専用の機能です ・デタッチャブルなガジェットが今後登場したときに、マルチディスプレイなしに次のスライド内容を確認することができます ・インストールした場合に何が起きても責任を取ることは一切できません ・ガジェットをインストールする場合は、インストール方法を完全に理解してからにしてください インストール方法: 1. ガジェット現物がまだ発売されていないため、ガジェットシミュレータをインストールします 1.1 WindowsSDK をインストールします 1.2 SDK の Bin ディレクトリの中から WindowsSideShowVirtualDevice /regserver を実行します 2. DXPSideShow をインストールします 2.1 DXPSideShow.reg をシステムにインストールし、レジストリに書き込みます 3. 使い方 3.1 システムのコントロールパネルの「Windows SideShow」に現れる「DXPresentation SideShow Gadget」にチェックをいれます 3.2 SDK の Bin ディレクトリの中から VirtualSideShow.exe を実行します 3.3 DXPresentation を起動して、[設定]メニューからサイドショーガジェットを有効にします DXPSideShow.exe のソースコードは、Microsoft Windows SDK の Sideshow サンプル「Pictures」のコードを 流用して作成されました。 ●開発環境 Windows Vista RC1 Visual Studio 2005 (C#) Managed DirectX 1.1 ●謝辞 高橋メソッドを考案された高橋征義氏に敬意を表します Identity 2.0 のプレゼンをされた Dick Hardt 氏に敬意を表します ●作者 HASHIMOTO N. (nyk) メール: nyk@palette.plala.or.jp WEB: http://www6.plala.or.jp/nyk 感想、要望などありましたら、是非ご連絡ください。