locked
SilverLight・WPFのアニメーションについて常々思うこと・・ RRS feed

  • 質問

  • 私は、これまでAdobe Flashの制作をやって来ましたが、最近 SilverLightにも
    手を出し始め、そのタイムラインの考え方にちょっと疑問を感じているところです。

    ちょっと例えで書きますと・・・・
    Flashでは、台本(タイムライン)は、役者さん(ムービークリップ)に1冊与えられるのですが
    SilverLightでは、複数の台本(ストーリーボード)が監督さんの手元にあって、
    Aという役者さんの演技は、台本1、台本2、台本3・・・ と、様々な場所に書くことが
    できます。
    いったい 役者Aさんはどういう演技をするのか???管理できるのだろうか?
    プログラマーが重複しないように、キッチリ管理しないと、思わぬ演技をしてしまうのでは
    ないか?という疑問が生まれてきました。

    ExpressionBlendを使い始めて間もないので、偉そうなことは言えませんが、この仕様って
    Microsoftさんはベストだと考えているんでしょうか?

    以上、どちらかというと "Flash野郎"の素朴な疑問でした。

    2010年4月4日 7:05

回答

  • 個人的には一つのstoryboardで一つというか、関連するものだけ動作させた方がいいと思います。

    「なんでもかんでも動かせてしまうから他人のオブジェクトにちょっかい出してもいい」という方針でやっていると確かに破たんしますが、ちゃんとこのオブジェクトの動作はこのstoryboardと責務の分担を決めていれば、見やすいと思います。

     名前のスコープ(http://msdn.microsoft.com/ja-jp/library/ms746609.aspx)を使ってうまくできるとは思いますが、自分でやってないので深くは書けません…


    Thanks, K.Kamegawa (http://d.hatena.ne.jp/kkamegawa/)
    • 編集済み kkamegawaMVP 2010年4月6日 15:08 少し修正
    • 回答としてマーク 山本春海 2010年5月14日 2:05
    2010年4月6日 14:00

すべての返信

  • 個人的にはアニメーションを管理するのはどちらかといえばプログラマの役割ではないと思っています。デザイナーさんがアニメーションを作って、都合のよいようにStoryboardで管理します。

    Blend3からはビヘイビア使ってBlend内で完結することもできる(もちろんすべてのケースには対応できないかもしれませんが)ので、プログラマがアニメーションを考えることはより少なくなると思います。


    Thanks, K.Kamegawa (http://d.hatena.ne.jp/kkamegawa/)
    2010年4月4日 13:08
  • kkamegawaさん、ご意見ありがとうございます。
    アニメーションを管理するのはデザイナの役割という点、ごもっともです。
    ExpressionBlendはその点・・・すなわち役割分担を明確に分けられるのが良いところですよね。

    で、私が書きたかったのは、その「デザイナの役割」の方です。
    わかりにくい書き方でごめんなさいね。

    例えば、丸いオブジェクトを 右から左に移動させるストーリーボードを書いたとします。
    そして同じオブジェクトを、上から下に移動するストーリーボードも別に作ったとします。
    すると、オブジェクトは斜めに動きますよね。
    この例は単純なので問題ないのですが、複雑な作品になると、ストーリーボードが激増して意図しない動きになった場合には、その原因追求がややこしくなりますよね。

    私が考えるところでは、整然としたアニメーション管理をするには、例えば次のような  「自分ルール」  を設けることが必要があるのかなと思うんです。
        --- ひとつのストーリーボードには、ひとつのオブジェクトの動作しか書かない。
        --- ストーリーボードの命名は、『"stb" + オブジェクト名 + 動作の説明 』のようにする。
    うーん、几帳面でないとアカンなぁ。

    ということからして、最後にまた繰り返しになりますが・・・・・
    このような管理をしなければならない ExpressionBlendのアニメーション仕様は、本当にマイクロソフトさんが ベストだとお思いになっているのかなぁ?という疑問を持つのです。

       『 いや~、 今は我慢してくれ、次期バージョンではFlashを凌ぐ使いやすさにするのだ』 
    という思いでいらっしゃるならとても心強く嬉しいです。

    以上、長々とすみません。<(_ _)>

     

    2010年4月5日 7:03
  • 個人的には一つのstoryboardで一つというか、関連するものだけ動作させた方がいいと思います。

    「なんでもかんでも動かせてしまうから他人のオブジェクトにちょっかい出してもいい」という方針でやっていると確かに破たんしますが、ちゃんとこのオブジェクトの動作はこのstoryboardと責務の分担を決めていれば、見やすいと思います。

     名前のスコープ(http://msdn.microsoft.com/ja-jp/library/ms746609.aspx)を使ってうまくできるとは思いますが、自分でやってないので深くは書けません…


    Thanks, K.Kamegawa (http://d.hatena.ne.jp/kkamegawa/)
    • 編集済み kkamegawaMVP 2010年4月6日 15:08 少し修正
    • 回答としてマーク 山本春海 2010年5月14日 2:05
    2010年4月6日 14:00
  • kkamegawaさん、コメントありがとうございます。

    >>個人的には一つのstoryboardで一つというか、関連するものだけ動作させた方がいいと思います。
    ↑ 私もそう思います。
    この点は、デザイナがしっかり管理しないといけない領域ですね。

    以下は、私の独り言として書き込んでおきます。
    私は、ExpressionBlendを使ってみて、やはり 開発ツールとしての成熟度は 閃光のFlashに軍配が上がると思っております。(どこかのサイトにも 『Flashに一日の長あり』との書いてありました。)
    是非、後発の利点として 良い機能を 参考にしてもらいたいと思います。

    どこかの会社で、SilverLight開発ツールのサードパーティとして、使い勝手がFlashそっくりのものを試したことがあります。Flashユーザーの私にはとても 理解しやすく 使い易かったです。
    その時にも 『マイクロソフトさんは、どうしてこのようなインターフェースにしないのかなぁ?』 と不思議に思っておりました。 特許 とか 意匠 とか  もしかすると メンツ とかの理由で今のインターフェースで進んでいるのかな・・・・と想像を巡らせてはおりますが。

    既に、現在のインターフェースになじんでいらっしゃる方々も多くいると思いますので、私の拙案としては・・・
        [A] オリジナルインターフェース
        [B] adobe 風インターフェース
    と切り替えられれば なぁ と思っています。
    もしできたとしたら、数多くのFlashユーザーからの 乗換も期待できるのではないでしょうか。


    以上、つまらない独り言でした。<(_ _)>

    2010年4月7日 0:08
  • 一度に複数のストーリーボードを動作させなければ問題ないきもするんですよね。

    たぶんイベントによってアニメーションの動作を変えたいとかで、予め複数のストーリーボードを用意できるようにしている気がする。

    複数のストーリーボードを強調して動作させたいとかなると、かなり大変な気がします。

    2010年4月8日 2:08