2006年10月27日金曜日

DXPresentation 0.77 リリース


  • ドラッグアンドドロップによる起動でエラーが発生していたので修正した

  • コマンドラインからの起動において、スクリプトファイルの指定を相対パスでは記述できなかったので修正した

  • ノードツリー出現中の「次のスライド」ウィンドウでは、ツリーを抜けた最初のスライドを表示するようにした

  • .starttimekeeper コマンドを追加した。タイムキーパーを出現させ計測を開始する。すでに計測中のときは何もしない。

  • スライドを PNG ファイルに書き出せるようにした。メニューの[書き出し...]コマンドを使用する。常に全てのスライドを連番つきで書き出す。

2006年10月26日木曜日

REMIX TOKYO にいってきた

マイクロソフトのREMIX TOKYOで20分程しゃべってきた。プレゼンに DXPresentaion を使ったが、まだまだ足りない機能・エフェクトがあることが本番でわかった。このソフトはもう少しいじってみる。


[追記] REMIX TOKYO 関連記事


Internet Watch 「Windows VistaとLiveのガジェット開発で新たなビジネスチャンスを」
http://internet.watch.impress.co.jp/cda/event/2006/10/27/13758.html


RBB TODAY 「Vistaへの標準搭載でだれでもガジェットを使う時代に」http://www.rbbtoday.com/news/20061026/35304.html


2006年10月18日水曜日

TMPresentation 0.32 リリース


  • DXPresentation との互換性のため .ii と .i コマンドを追加した。

    PCの事故などでDirectXや.NET2.0が使えないPCを使わなければいけなくなったときのために、イメージ読み込みコマンドはせめて追加することにした。

2006年10月17日火曜日

DXPresentation 0.75 リリース

  • ミラーウィンドウを開いた状態で終了した次の起動において次の致命的な不具合があったので修正した。
    •  WindowsXP において起動時に System.Text.EncoderFallbackException 例外が発生することがあった。

2006年10月16日月曜日

DXPresentation 0.74 リリース

  • 移動ウィンドウに .subtext コマンドで指定された文字列を「キャプション」として表示するようにした
  • 移動ウィンドウに、キャプションまたはラベルからスライドを検索するボタンを追加した。
  • 移動ウィンドウを表示した際にフォーカスを検索文字列ボックスに移動するようにした。
  • 移動ウィンドウ、次のスライドウィンドウ、タイムキーパーウィンドウをウィンドウの最上面に配置していたが、これを廃止した。
  • ビデオツールバーのシークバーが見えなくなっていたので修正した

2006年10月15日日曜日

DXPresentation 0.73 リリース


  • Web 表示の拡大率を変化できるようにした。Web ツールバーの[表示]メニューから 25% - 400% の幅で指定可能。

  • メインウィンドウを最小化したときに、タイムキーパー、次のスライド、移動ウィンドウを隠すようにした。

2006年10月13日金曜日

DXPresentation 0.72 リリース


  • タイムキーパーウィンドウに、消化したスライドと経過時間を直交軸とするグラフを表示するようにした。

  • キーボード一文字入力により指定されたラベルへ移動する機能において、頭文字が一致するものが複数ある場合は、それらを順次サーチするようにした。

  • クローズアップ時にもラインをひけるようにした。ただしカーソルキーでスクロールしたりホイール入力すると消える。今後改善したい。

  • クローズアップ時にもアローカーソルを描画するようにした。クローズアップ時においても指し棒機能が必要と判断したため。

  • クローズアップ時のスポットライトのアルファ値を半減させ、コントラストがなるべく失われないようにした。


タイムキーパーウィンドウ - 横軸が時刻、縦軸がページのグラフが加わりました
練習に便利です。本番でもデュアルディスプレイ環境なら有効に使えます。


2006年10月12日木曜日

DXPresentation 0.71 リリース


  • セカンダリディスプレイが存在する環境下において、ミラーウィンドウをフルスクリーン表示したときの挙動に関して以下の修正をおこなった。


    • メインウィンドウのリサイズ時にアスペクト比を常にミラーウィンドウのそれに一致させるようにした

    • 切り替え時に、プライマリスクリーンに対するメインウィンドウのサイズが 90 % を超えないようにした。

  • [その他]メニューに[メインウィンドウサイズをミラーに合わせる(Alt+M)]コマンドを追加した。

  • .cameratrans [x] [y] [z] コマンドを追加した。スライド進行時の瞬間のカメラ座標をオフセットする。デフォルトは 0.0 0.0 0.0。

  • メッシュの読み込みで例外が発生したときに、タイトルバーにエラー情報を出し、プレゼンの進行は停止させないようにした。

2006年10月11日水曜日

DXPresentation 0.70 リリース

主にミラーウィンドウツールまわりの改良作業。



  • .settimekeeper [min] コマンドを追加した。タイムキーパーウィンドウに目標時間を分単位でセットする。スクリプトに一箇所だけ記述可能。

  • .fullscreen [mode] コマンドを追加した。ロード時のフルスクリーン化の制御方法を指定します <スクリプトに一箇所だけ記述可能>


    • mode = off(何もしません。前回終了時の方法で起動します。デフォルト)

    • mode = primary(プライマリディスプレイでフルスクリーン化し、ミラーを消去します)

    • mode = secondary(セカンダリディスプレイでミラーウィンドウをフルスクリーン化します)

    • mode = auto(セカンダリディスプレイが存在したときは secondary、シングルディスプレイでは primary として動作します)

    • なお DirectX8 世代以前の古いビデオカードではミラーウィンドウのパフォーマンスは非常に悪いので注意。 

  • .mirrorwait [wait] コマンドを追加した。ミラーリング時にプライマリ側の描画頻度を落として、古いビデオカードでもせめて観衆に見せるスクリーンの方はパフォーマンスを落とさないようにします。wait には 1 以上の値を指定できます。デフォルトは4。

  • セカンダリディスプレイが存在する環境下において、ミラーウィンドウを開いた場合には、必ずミラーをセカンダリディスプレイにフルスクリーン表示するようにした。

  • 従来のミラーを出したいときは「リサイズなしミラー」メニュー(Ctrl+Shift+M)を使用する

  • 各種ウィンドウの位置を保存することにした。DXPresentation.exe と同じ場所に、Settings.ini ファイルを保存するようにした。

  • 起動時に Ctrl + Shift キーが押されていたときは、Settings.ini ファイルを読み込まないようにした。

  • .note コマンドを追加した。メモ書きを直後のスライドに対して適用させます。現状では非フルスクリーン時にタイトルバーに表示されます。
                   

ミラーツールは非常に便利。ただ当初のもくろみでは、ミラー表示を高速化するためにDirectXを使ったのだが、実際にはそんなに速くならなかった。DirectX8世代以前のGPUや、DirectX9世代でも非力なチップでは、全く使い物にならないかもしれない。特にノートPCでは、ミラー機能のパフォーマンスが十分に出せるものはまだまだ少ないと思う。あと、Vistaのほうがこの機能に関してはかなりパフォーマンス的に有利なようだ。


2006年10月10日火曜日

DXPresentation 開発メモ - 高橋メソッド

TODO:

  • マルチディスプレイ使用時のハンドリングが悪いのでなんとかする。ノートPCは外部出力VGA端子にコネクタを接続した瞬間にディスプレイが認識されるので、プレゼン会場で切羽詰っているような場面で、現在の仕様では不便
  • マルチディスプレイ環境時に、ノート機能(プロンプター機能)を使えるようにする

実はあるカンファレンスで DXPresentation を使って発表するのだが、貸し出されたノートPCで1024x768x32bでミラーリングすると、かなり見苦しいノイズが出ることが発覚した。Vista だからというのもあるかもしれない。1024x768x16bでは問題ないが、マッハバンドが見苦しい。1280x1024ではノイズは目立たないが、プロジェクターの仕様にマッチするかわからない。

いろいろ試した結果、ミラーリングではなくマルチディスプ
?¬イにしたところうまくいくようなので、これでいくことにした。そうなると、それはそれでDXPresentation の機能的に不便なところが見つかったので、急いで改善するところだ。
ちなみにノートPCにはATI mobility FireGL5200 が搭載されている。ハード的リフレッシュレートやアプリ側のプレゼンテーションインターバルをいくら変えてもノイズは減らなかった。ほかのノートPCではミラーリングを含め大丈夫なことより、おそらくビデオドライバのバグだ。


2006年10月6日金曜日

Google Code Search

Google Code Search
http://www.google.com/codesearch
を使ってみた。ネット上のソースコードに対して grep できる。恐ろしく便利なわけだが、grep しているにしては処理が速すぎる。どうやって実現しているのだろう。

2006年10月5日木曜日

DXPresentation 0.63 リリース

  • .i [filename] コマンドを追加した。.image コマンドの省略形。
  • .ii #cccccc [filename] コマンドを追加した。.image と同じく画像を表示する。背景色をそのスライドに対して指定できる。
  • .bilinearfilter [on|off] コマンドを追加した。.image で指定される画像拡大時にバイリニアフィルタリングをおこなうかどうかを指定する(デフォルト ON)。
  • アイドル時にフルタイムレンダリングしていたが、負荷低減の目的で廃止した。
上記のうち4つ目の変更の影響範囲がでかいので、実際にプレゼンに使う人は十分にテストしたほうがいい。0.62はサーバから削除したが保存しておいたほうがいいかもしれない。

ところで、このところ公私ともに忙しい。.NET3.0 / WPF で作りたいものがたくさんあるのだが、全然勉強が進まない。WPF に関しては資料も
??れなりにある感じなので、切実に時間が欲しい。コンピュータ関係以外でも Web を探せば学びたいことのヒントがそこら中に落ちているが、飛ばし読みするに留まってしまう。まあ今は時間がないからしょうがないが、老後の余暇候補が増えるのはいいことなのかもしれない。

「日の丸検索エンジン、Google に対抗」について

asahi.com のトップ記事にCEATEC絡みで「日の丸検索エンジン、グーグルに対抗 厳しい指摘も」という記事があった。http://www.asahi.com/life/update/1004/013.html


経済産業省の「情報大航海プロジェクト」(NTTレゾナント、シャープ、NEC、NTT、富士通、電通、日立、早稲田大学、東大ほか)がやろうとしていることで、3年で300億円かけるそうだ。


官と大企業の共同プロジェクトであることや、いくつかの理由により記事からは、既に腐臭が漂っている。こういうことは最初の個人の考え出すアイディアが重要なのであって、アイディアがよければ少人数でもうまくいくし、だめならいくら人月を投入しても無駄なだけだ。それから大規模プロジェクトにしては予算が少ないように思える。


このプロジェクトは、よほど面白いことを誰かが思いつかない限り必ず失敗するが、どうせ失敗するなら途中までの成果物をオープンにしてほしい。そうすればそれを使って、また誰かがうまいことを思いつくかもしれないからだ。
または莫大な懸賞金と具体的要件を提示して、ベンチャーや個人からものを募るというのはどうだろう。もしかするととんでもないものを高校生が作ることだってあり得る。


なお、Google のプロダクツは不気味なくらい良くできている。しかも全てがだ。恐ろしい会社だ。


2006年10月4日水曜日

DXPresentation 0.62 リリース

  • クローズアップ中にカーソルキーを入力するとスクロールするようにした(+SHIFT で 10 倍長)
  • クローズアップ中に ESC キーを入力すると、スポットライトをオフにするようにした

Managed DirectX 2.0 は明日までの命

Managed DirectX 2.0 は10月6日以降起動しなくなる。


Adieu, Managed DirectX 2.0
http://letskilldave.com/archive/2006/09/20/Adieu_2C00_-Managed-DirectX-2.0.aspx


2.0 はベータ版だから、こういう仕込みはありなのかもしれないが、Managed DirectX 自体廃れていく感じがして残念だ。


で、これからも GPU のパワーを使ったプログラムを作っていきたいわけだが、いくつかの選択肢がある。



  1. Unmanaged DirectX に移行する

  2. Managed DirectX 1.1 を使い続ける

  3. XNA に移行する

  4. WPF でお気楽に作る

  5. OpenGL を使う

1.は真っ当な方法で、今後DirectX10世代のGPUを生かせることは間違いない。しかし現状では生産性が低い。
2.は今後の見通しが良くない。MDX1.1には以前のエントリでも触れたが、よくわからないバグがある。
3.はゲーム制作ならよいと思うが、自分が作りたいのは普通のアプリなのだ。
4.はマイクロソフト的には、おすすめのやり方だと思うし自分も使うと思うが、生DirectXと比較するとできないことがいくつかあると思われる。WPFは今後いろいろといじっていきたい。
5.はVistaで、OpenGLのパフォーマンスが低下するのかしないのかよくわからないので、なんともいえない。


どうしたものか。


なお、自分の作っているプログラム(DXPresentation、Picmv.NET)は MDX1.1 だから影響はない。


2006年10月2日月曜日

マウスが壊れた

かなり長いこと使っている、IntelliMouse Optical の左ボタンが、ボタンアップ時にボタンダウンのメッセージを出すようになってしまった。マイクロスイッチを清掃すれば直るかもしれないが、いじっている暇もないのでまた買ってこようと思う。会社でもこのマウスを使っているが、今のところ気に入っているのはこの機種しかないのだ。マウスはマイクロソフト製以外も含め、十数機種は試していると思うが、結局これに戻ってきてしまう。

最近のチルトホイール付のマウスの場合、いろいろ理由があるのだと思うが、ホイールを回したときのクリック感がない。この場合、WM_MOUSEWHEEL メッセージが回転角にきちんと線形に比例して出てくれれば、問題はないのだが、なぜかクリック感のあるマウスと同じように、かなり離散的な値が飛んでくる。したが
ってユーザの入力に対して期待した結果にならない。つまりクリック感のなさがそのままUI上不適切なフィードバックとなっている。以前のクリック感のあるマウスとのソフト的な互換性の問題などあるのだろうが、この問題のおかげで新しいマウスを使うことができずにいる。手になじむものが出てくればロジテック(ロジクール)に乗り換えればいいのかもしれないが、なぜかマイクロソフトのマウスは自分の手に妙にフィットするのだ。

DXPresentation 0.61 リリース


  • .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。