スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 目玉はタッチ操作? | トップページ | 一週間で完成させる予定 »

実用性を鑑みた効率的な開発

今は、AmuseGraphics Ver1.4.2の開発フェーズなのだが、今回の更新では、機能拡張は殆ど行わない事にしつつ、不具合修正に注力する予定だ。もっとも、時代に合わせた変更は行うのだが、あまり意味のない変更は行わない。

昨日書いた様に、AmuseGraphics Ver1.4.2では、ピュアタブレットで使った場合にも、それなりに操作できる様にしようとしているのだが、ピュアタブレットでも、マウスポインタや左ボタン相当の機能はWindowsがデフォルトで提供している。

なので、AmuseGraphics的には、マウスの右ボタン相当の機能とホイール回転関連の機能をタッチ対応化すれば、ピュアタブレットでも動作可能にできる事になる。

まあ、キーボードが使えないと効率的な作業が出来ない、というケースは多々あるかもしれないのだが、ピュアタブレットとして使っても、スクリーンキーボードは使えるので、操作不能に陥るという事はない。

と、言う事で、昨日書いた様に、マウスの右ボタンからのポップアップメニュー表示に関しては、若干のコード追加で既に可能になっているので、後は、ホイール回転関係、つまり、ズーム処理を何とかすれば、タッチ対応は可能になる。

もっとも、昨日書いた様に、作者的には、Surface Go 2に搭載されている高精度タッチパッド関連のAPIが気になっているので、調べてみたりしたのだが、高精度タッチパッドが搭載されていないX202Eと搭載されているSurface Go 2では、Chromeの動作が異なる事は確認した。

具体的には、Surface Go 2では、画面上でのパン動作時と同様に、タッチパッド上で二本指で横にパンすると、前後ページに移動させる事が出来るのだが、X202E上で同じジェスチャーをしてみても、それは出来ない、という事になる。

また、画面上で二本指を使ったズーム用のジェスチャーを行うと、Surface Go 2とX202Eの両方で、スムーズに表示倍率が変化するのだが、タッチパッド上でのズームジェスチャーでは、Surface Go 2では、画面上でのジェスチャーと同様に、スムーズな表示倍率変化になるのに対し、X202Eでは、段階的な倍率変化になる。

使用OSは、両方共、64Bit版Windows10なので、やはり、Chromeは、高精度タッチパッドが搭載されている環境では、それに最適化した操作を可能としている様なのだが、X202E上でも、縦横スクロールは、タッチパッド上の操作でも、滑らかに行えている。

つまり、スクロールをマウスホイールで行う場合、普通は、その移動量が1回あたり120ピクセル相当になっているのだが、タッチパッドでの操作時には、高精度タッチパッドでなくとも、それよりも小さい移動量で処理されている事になる。

もっとも、Windows8.1のMac mini Late 2014に接続したMagic Trackpad 2で二本指スクロールを試してみた所、一回あたりの移動量は120ピクセル相当になったので、この辺の扱いはOSかデバイスドライバに依存しているのかもしれない。

しかしまあ、上記の移動量の算出は、現行版のAmuseGraphicsの処理ルーチンで表示する格好にしてあるので、ズームジェスチャーについては、何等かの対処を行わないと高精度タッチパッドの恩恵が受けられない感じなのだが、スクロールについては、送られてくる変化量をより正確に扱う格好にすれば、現行の処理ルーチンでも、よりスムーズなスクロールを実現できる事になる。

と、言う事なので、AmuseGraphics的には、画像の拡大/縮小用には、マウスドラッグによる独自の方式を開発した事で、大昔から、スムーズに行える様になっている事を鑑みれば、今更、高精度トラックパッドに対応させる為に、全く新しいAPIに対応させる必要はなさそうだ。

なので、今回の更新では、画面のタッチでのポップアップメニュー・画像の拡大/縮小に対応させ、トラックパッドでの操作については、現行の操作方法に対する若干の改良を行う格好に留める事にする。

つまり、高精度タッチパッド用に特別な処理ルーチンは開発しない事にするのだが、それでも、現行の処理ルーチンを改良すれば、二本指での縦横方向のスクロールがより滑らかに行える事になる筈だし、画面上のタッチジェスチャーでズームを可能にするので、タッチパッド上の同様の二本指ジェスチャーでの画像倍率調整も可能にする事にする。

高精度タッチパッドに対応しない事によるデメリットとしては、タッチパッド上のジェスチャーで画像の倍率調整を行うと、段階的な調整しか行えない、という事になるのだが、AmuseGraphicsには、別に、滑らかな倍率調整を行わせる手段があるので、大きな問題にはならない筈だ。

ちなみに、ネットを見ていると、高精度タッチパッドでスムーズな拡大/縮小を可能としたければ、Direct Manipulation を使う必要がある感じだ。

上記には、サンプルプログラムも提供されていて、Visual Studio 2019でもビルド可能だったので、動作させてみたりもした。

なので、上記のAPIを使うのも難しくは無いかもしれないのだが、前述の様に、AmuseGraphics的には、上記の様な大袈裟なAPIを使ってまで、一般的なジェスチャーで、スムーズな拡大/縮小を行わせる必要はなさそうなので、上記のAPI利用は、少なくとも今回は、見送る事にした。

それでは、次バージョンでは、どんな改良を行うのか、というと、以下の通りだ。

・縦スクロールの解像度を上げる

・マウスチルト/タッチパッドでの横スクロールを可能にする

・タッチパッドでの一般的なジェスチャーによる拡大/縮小を可能にする

・AmuseGraphics独自の拡大/縮小を左右ボタンの同時押しがなくても可能にする(Shiftキー併用?)

・画面長押しでのポップアップメニュー表示を可能にする

・画面タッチジェスチャーでの拡大/縮小を可能にする

・画面タッチジェスチャー(二本指タップ?)でのページ前後移動を可能にする

なお、画面タッチでの縦横スクロールについては、画面タッチ時にはドラッグによる自由方向スクロールが行えるので実装しない予定だ。

と、言う事で、上記の様な改良は、このブログ記事を書いている時間よりも短時間で実装可能な筈なので、明日には作業は終わっている筈だ。

« 目玉はタッチ操作? | トップページ | 一週間で完成させる予定 »

2020年10月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google