資料公開Webエンジニアのpawaと申します。今年はピクシブ社員史上初の学会(言語処理学会第24回年次大会ワークショップ)での登壇をこなしたり、ピクシブ史上初の運動部である硬式庭球部を設立したり、ピクシブ史上初のIT健保の硬式テニス大会に出場したりといった1年でした。年内にまだ1つビッグなことがあるはずですが何が起こるかはお楽しみです。今回は、テニス部(活動詳細はこちら)の活動を通じて私が生み出した、テニス用ITツールを紹介します。無償配布しているのでぜひご利用ください。以下、私がどういう過程で問題を見つけてそれをどう技術で解決したかをトレースできるよう綴っていきます。自作ながら今も愛用してテニスしています。アマチュアのテニスで使う腕時計型スコアカウンターとしては執筆時点で世界一使いやすい自信があります。私は、Pebbleというスマートウォッチを2016年から愛用しています。このスマートウォッチ上で使える「Tennis」というテニスのスコアカウンター用のアプリがストアに無償でありました。アマチュアのテニスのルールまでは十分にカバーされておらず、「かゆいところに手が届かない」状態でした。そこで、私が改良してリリースしたのが今回紹介する「Tennis+」(図1)です。買収されて、今はPebbleのオンラインサービス(ストアからアプリをダウンロードしたりといった機能)も終了されています。Rebbleという非公式の開発グループが代替となるオンラインサービスを維持していて、今でも特に問題なく使えます。そもそもなぜスコアカウンターが必要と考えたか?テニスの公式ルールブックでは、「チェアアンパイアがつかない試合方法」としてセルフジャッジの方法が定められています。アマチュアのテニスでは、この「セルフジャッジ」をする機会が大変多く(図2)、もしセルフジャッジ中にスコアを忘れた場合はプレーヤー同士が合意できるポイントまでさかのぼってから試合再開となります。図2:セルフジャッジ時のスコアのコール「スコアを忘れることなんてあるのか?」と思われる方もいるかもしれませんが、私の初めての大会出場時に、相手プレーヤーがスコアを忘れて試合が過去のポイントに戻るということが実際に起こりました(ボコボコにされる運命には変わりありませんでしたが)。これを回避するためにスコアカウンターへの需要が生じます。試合中に身につけられるものを考えるとスマートウォッチがちょうど良かったため、スマートウォッチで実現することにしました。9000円弱)が見つかりました。以下のようなアマチュアのテニスで使うルールには対応していないようでした。後、次の1ポイントでゲーム)タイブレイク1セットのゲーム数と何セットマッチかなどの調整Pebbleで使えるオリジナルの「Tennis」アプリも「ノーアド」や「1セットのゲーム数の調整(例えば1セット4ゲームマッチなど)」には対応していません。そこで、「Tennis」がオープンソースであることを利用して、これを改良して、自身でこれらのアマチュアのテニスのルールに対応させた「Tennis+」を作ることにしました。アマチュアのテニスでも使えるスコアカウンターの要件定義プロが行うテニスの試合形式には既存の「Tennis」アプリが対応していたので、私が作るのはアマチュアのテニスで使われる以下の機能だけでした。スコアカウントを終えられる機能(テニスコートをレンタルして使えるのは通常は時間単位であり、試合途中で終わるということも間々あるため)C言語で開発PebbleアプリはC言語かJavaScriptで作れるようですが、「Tennis」はC言語で書かれていたので、C言語で必要な機能を追加していくことにしました。GitHubでオリジナルの「Tennis」をフォークしてプルリクエストベースで開発しました。以下の3つのプルリクエストで主要な機能は実装完了となりました。元のコードがとても綺麗だったため、平日の真夜中に3日ほどプログラミングするだけで必要な機能を追加できました(ひょっとしたらどこかにバグがあるかもしれませんが)。選択可能化https://github.com/pawa-/pebble-tennis-plus/pull/5試合途中でスコアカウントを終えられる機能オリジナルの「Tennis」では試合終了までスコアカウントすると最後に簡単な統計情報が表示されます(図3)。match」で試合を途中で放棄すると統計情報が見られなくなります。match)が欲しいと思って実装しました。しても統計情報は大体あっているはずですが、バグがないかやや怪しいです。後にポチポチと2回ボタンを押す手間(アドバンテージを飛ばすため)が1回に減って、少し感動するところがありました。あとは、ダブルスで1セット4ゲームで試合することが多いので、それにも対応しているのは使いがいがあると感じます(「Tennis+」を使わずに試合をするということがまったくなくなりました)。アップロードできないようなので個人サイトで配布することになるかもしれません)。登録と公開,Pebbleアプリの開発フローこの「Tennis+」開発当時(2018年3月末)、FitbitによるPebble買収に伴ってPebbleのアプリストアも3ヶ月後に閉鎖されるという状況でした。store,どうも私が最後のPebbleアプリ登録者だったようです)。用のテニススコアボードです。社会人になってからテニスを始める我々が効率よく上達するには自身のフォームをよく把握することが不可欠なので、我がテニス部では、第1回目の活動からすべて動画撮影しています。28回の練習会を終えた今、過去の動画を見ると、打ち方がまったく別人という具合で大変感慨深く感じられます。動画撮影して編集するなら「部員が観てテンションの上がる編集力」を身に付けたいと思ってしまった私は、テニス経験ゼロからテニス部を創部してコート予約しつつ練習メニューを考えつつ自身のテニスに関するPDCAを回しに回しつつ、動画編集に関しても経験ゼロから独学で学んでいきました。X」に進んでいきました。音楽の使い方は、テニス系YouTuberである「TENNISISM【テニスイズム】」や「テニスのゴンちゃん」を大いに参考にしました(テニスイズムには実は出演したことがあって、YouTubeに映っていない場面でテニスイズムのメインキャラクターであるテニ男さん・テニ吉さんとラリーしたりしました)。35歳テニス経験ゼロのテニ吉さんがテニス歴30年以上のテニ男さんの指導を受けて練習して大会出場して勝利を目指すYouTubeチャンネルなのですが、音楽の使い方だけでなく、動画編集の仕方・テニスの考え方・スポーツ経験の生かし方・常に進化を目指し続ける姿勢・経験ゼロからどうやって上達するかなど、多くのことを学ばせてもらっている非常にオススメのチャンネルです。図5のように20本近く動画編集経験を積んだところで、テニス動画を編集する上で学ぶことはほぼなくなったと感じました。動画編集画面ただ、動画編集時に「うまくスコアを表示する手段がない」という唯一不満に思うことはあったので。この不満を解消しながら動画編集能力をさらに引き上げようと思いました。図6のように表示できるのを理想と考えて要件定義しました(絵は描けないので伝わるか自信がない)。図6:スコア表示のイメージ構成要素は図7の通りです。上で実現することを目指しました。score」などで検索しても利用できそうなものは出てこなかったので、どうやれば実現できそうか調べました。上で使えるものが作れそうだということまで分かったのですが、理想的なテニスのスコアボードができるかという確信には至っていませんでした。これでできないならばどうやっても作れないのではないかと思って2018年10月3日にMotion5を購入しました。上で編集・表示可能なものを作れるかを検証しました。Xでテキスト編集した上で動画に埋め込めることを確認できました(図9)。あとは、テニススコアボード用の背景を用意して、セット・ゲーム・ポイントごとの入力欄を用意すれば、「理論上は実現可能」という結論に至りました。実際に作ってみた実際に作ってみると思っていたよりもずっと簡単にできました(図10-12)。ベースとなるものは6時間もかからなかったくらいです。最強のプラグインと言われる訳が分かりました。プラグインとして無償配布したかったのですが、調べてもやり方が分かりませんでした。Motion5のファイルを配布する手が使えそうですが、Motion5が使えるユーザーならこの程度のスコアボードはユーザー自身で作れると思われるのでスコアボードの配布はなしにしました。この前、taskey株式会社との合同練習が実現しました。元テニスコーチということで、ありがたいことに懇切丁寧に指導していただきました。までぜひメールをください!pawa2015年10月に新卒入社。言葉を扱うWebアプリケーションを作るのが好き。»common.min.js.html。