zoomonkey, take 2

| No Comments | No TrackBacks

昨日書いたzoomonkeyを使って、プレゼンテーションの中身を作る作業に取りかかったのだけど、これがやはり茨の道になった。

まず、編集ソフトが無い以上、内容を何かしらの形でやっつけるしかない。最初のサンプルはgoogle docsからtomblooでキャプチャした画像を貼り付けただけだったので、とても簡単だった。しかしこれを全部のページについてやるわけにはいかない。後から内容を編集するたびにキャプチャするのは大変だからだ。

というわけで、テキストから機械的に変換できる方法を探し始めた。最初に思いついたのがSVG編集ソフトで編集したSVGをXAMLに変換するやり方だ。

  • SVGをXAMLに変換するソフトはいくつかあるようだが、無償で使えるもので真っ先に見つかったのはcodeplexにあったsvg2xamlだった。というわけで最初はこれを試すことにした。
  • OO.o ImpressにはプレゼンテーションをSVGで出力する機能がある。というわけでgoogle docsで作成したプレゼンテーションをPPTでダウンロードしてOO.oで開いてSVGで保存して、svg2xamlをかけてみたが、案の定うまくいかない。どうやらそもそもPPT->SVGの段階で失敗しているようだった。PPTなどをソースにするのは早々にあきらめた。
  • inkscapeには何とXAMLをインポート/エクスポートする機能がある。というわけで早速SVGでプレゼンテーション内容を少し作成して変換を試してみたが、ノードが全部変換されず(多分最初に失敗したところで続行を放棄している)、おまけに数分後にアプリケーションエラーで落ちた(変換は即時に終了しているので、何らかの別プロセスが悪さをしているのだろう)。inkscapeでダメなら多分他はAdobe製品やMS Expressionなどを当たらないと無理だろう。

というわけで、ある程度探したものの、これは無理だということであきらめて、VWD2010 ExpressからついてくるSilverlightのGUIデザイナを使って書くことにした。これはこれで困難だったのだけど、それは別途書いたのでここでは繰り返さない。

これをmoonlightに持っていったら、案の定まともに表示してくれなかった。デフォルトフォントが日本語に対応していない。仕方がないのでIPAGothicを明示的に指定することにした(Silverlightアプリとしては好ましくないが)。あとはXAMLのTextBoxに改行入りテキストの問題くらいで、それなりにすんなり行ったと思う(もう覚えていない)。

そしてこれからが苦行になった。移動したいロケーションとzoom比率をactionとして定義するのだけど、これをきっちり機械的に処理できるようにしていなかったので、全て手探りで手入力することになった。40ポイント程度を定義するのに、全部で3時間以上かかった。

これは移動枠ごとにCanvasを定義して、そこから自動計算できるようにすると良いのだろう。あるいは、デザイナツールで、ロケーションの定義をマウスカーソルで選択できるようにするとか。前者は明らかにハッカー的な手法で、一般人は後者でないと使えないだろうが、いずれにせよ、それくらいのことが出来るようにならないと、これを使ってプレゼンテーションを作成するのは困難そうだ。

preziはそこまで含めて実現して公開しているのだからすばらしい。

moonlightチームに今出来ている資料を見せたらうけていたので、汎用化すれば使い物になるかもしれない。

ちなみに名前はもちろんzoomとmonkeyを掛け合わせているのだけど、最初の構想の時に考えていたdeep zoomはかけらも使っていない。CanvasにScaleTransformをかけているだけだ。まあズームしているとも言えなくはないので、このままでいいだろう。

No TrackBacks

TrackBack URL: http://veritas-vos-liberabit.com/noteon/mt-tb.cgi/107

Leave a comment

About this Entry

This page contains a single entry by note on published on April 26, 2010 2:21 AM.

zoomonkey was the previous entry in this blog.

新しいMIDI program/bank selectorの設計 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.23-en