薄いブログ 〜全てが薄い〜

だいたい酔った勢いで書いてる

ボルダリングアプリを作ろうとした話

突然ですが、去年の10月中頃からボルダリングにハマり始めました。

 

だいたい週3回、毎回4〜5時間程度のペースでジムに通い

ジムの3級課題が登れる程度、

だいたい中級者の壁を叩き始めたあたりで

ランジ(ジャンプして次のホールドを掴む)で思いっきり突き指をして

クライミングはおろか、ズボンのチャックを上げる事もままならない状態です。

 

タイピング速度も全盛期の1/10まで低下し、

仕事に大きく支障をきたし、上司には怒られました。散々です。

ちなみに、この記事はおおむね音声入力で書いてます。

 

ついでに7月からiOSエンジニアとしてデビューしたので

アプリの勉強も兼ねてボルダリングアプリを作っていました。

今回はその話をしようと思います。

 

ちなみにあとで言及しますが、挫折しています。

 

どんなアプリを作ろうと思ったのか

一言で言うとうまくのぼれていることを可視化するアプリです

 

ボルダリングは難易度ごとにコースが分かれていて

基本的には特定のコースを登れたか否か、

このON/OFFでしか自分の腕前が判断できませんた。

 

例えば3級の課題をのぼれたら自分は3級相当の腕前、

3級は登れないけど4級が登れるならだいたい4級の腕前、

みたいな感じです。

 

ところが1級レベルの課題を登っている上級者に話を聞いてみると

「1級を登ってから初段の課題を1つ登れるようになるまでに2年から3年かかった」

とのこと。

 

僕は非常にせっかちなので、

自分が上達しているか2年も定量的に判断できない状態は嫌だなぁ、と感じて

「登り方の巧さをスコア化できないか」

と考えました。

 

 

登り方の巧さを、どうスコア化するのか

ボルダリングがうまい人の登り方を見ていると

とてもスムーズに、なめらかに登っていることがわかります。

 

逆にボルダリングが下手な人の登り方をよく見ると

足腰が左右に大きく振られたり、体が不安定に動き続けていることがわかります。

 

滑らかで、ほぼ静止している状態で登れている状態を

Static(スタティック)

と呼ぶそうです。れっきとしたボルダリング用語で、「静的」という意味ですね。

 

そこでチョークバッグにiPhoneを入れて

「iPhoneの加速度」を測ることで

どれだけスタティックに登れているか測れるのではないか、と考えました。

 

チョークバッグとは

登っていると手に汗を書いて滑りやすくなるので

滑り止めとして「チョーク」を指につけるのですが

このチョークを格納する腰袋を「チョークバッグ」と呼びます。

 

ボルダリングのコースで使う人は稀だと思いますが

外岩とか、長いコースを登る人はほぼ確実に持っているので

これにiPhoneを入れてもらう想定です(チョークで汚れるけど)

 

f:id:shun10982:20180122180531j:plain

ちょうど腰あたりに付けるので

腰の加速度が取れて、スコア計測に向いてそうです。

(腰が一番重いので、ここの動きが登りの巧さに重要という仮説)

 

実際どんな数値が取れるのか

取り急ぎアプリを作って、試しに自分のチョークバッグに入れて実験したところ

こんなデータが取れました。

 

 

f:id:shun10982:20180122180612p:plain

 

スパイク(急な加速度の変化)はわざと壁から飛び降りたシーンです。

すごく簡単なルートだったのでほぼ完璧にスタティックで、

加速度の変化が少ないのがわかります。スコアも高いですね。

 

 

スコアはどうやって計算しているのか

とても悲しいですが、基本は減点方式です。スコア100から開始して

 

・加速度の平均

・スパイクの回数

 

にそれぞれ定数をかけて、100から引き算しています。

なので極端な話「スタート」を押してから机の上に放置していると

余裕で100点が取れます。

正解は沈黙、みたいな状況です。

 

「スパイク」というのは一定値を超える急激な加速度の変化です。

強引に腰を動かすと「スパイク」を検知して、スコアが減点されます。

 

点数に応じてかわいいマスコットが褒めてくれるようにしたくて

「100点だよ!やったね!」

 「3点か。類人猿の恥さらしめ」

みたいなメッセージまでは作ったんですが

画力がない、という致命的な問題に直面して断念しました。

 

気をつけたところ

 

コース毎に上達が分かる

コースを登録しておくと、コース毎のスコアが分かるので

同じコースをずっと挑戦している状態でも、

自分の上達が見えるようにしました。

 

手を使わなくても操作できる

基本的にボルダリング中は手が汚いので、そもそもスマホを触りたくありません。

なので画面を傾けることで画面を移動したり、

振って計測を開始・停止できるようにしました。

 

飛び降りた時の加速は使わない

コースを登りきった後は飛び降りる人が多いのですが

その加速度を拾ってしまうとスコアがだだ下がりするので

終了直前のスパイクはカウントしないようにしています。

 

 

 

問題点

一応アプリとしては形になったんですが

いくつか致命的な問題点があります。

 

 

そこまでやる人が居ない

自分で言うのもアレですが、

趣味レベルとしては相当ストイックにボルダリングに取り組んでいました。

 

食事制限で体重を70kgから65kg、体脂肪率は15% -> 9%まで落とし、

登らない日は足腰の強化のためにランニング+筋トレをしたり、

自分が登るところを動画撮影したり、

ジムのスタッフさんに色々と教えてもらったり、

コンペに参加したり。

 

指を鍛えるためにトイレのドア枠で指懸垂したり、

足裏の感覚を養うために片足でバランスディスクに乗りながら

もう片方の足の指で靴下を掴んでバランスボールに載せるのが日課でした。

 

改めて冷静な目で当時の自分を振り返ると

極めて特殊な性癖を持った人間に近づいていたのが分かります。

 

最終的にはiOSアプリでスタティックの計測を始めたわけですが

ここまでボルダリングをやる人が、ぶっちゃけあんまり居ません。

 

ジムに100人居るとして

 

10人:初段以上に取り組む上級者(スタティック?できて当たり前では)

20人:3級以上に取り組む中〜上級者(あースタティックね、意識してるよ)

50人:ジム経験5回未満の初心者(スタティック?なにそれ?)

20人:今回が初めて(はやく終わって飲みにいきたい)

 

みたいな割合です。

トレーニングの話をすると3割とは話が合い、7割は引かれます。

 

実際ジムに居る人にヒアリングをしてみると

3級前後に挑戦している中級者層が一番このアプリに興味を持ってくれましたが

中級者の中でも「いや、その数値は興味ないわ」みたいな層も多く

感覚派、理論派、みたいな分岐もあるようです。

 

つまり、そもそも欲しい人が居ませんでした。

 

ある程度上手くなると、出来て当たり前になる

アプリが完成した時点で

初段あたりを登ってる人に実際に使ってもらったのですが

全員スコアが94~98くらいしか出ませんでした。

 

上級者にとって簡単なルートでスタティックは出来て当たり前なので

その優劣で技術の巧拙は評価できませんでした。

 

むしろ本当に難しいルートに挑戦している人がオラァ!と飛びついたりしてると

せっかく凄いルート登れて歓喜の瞬間を迎えているのにスコアが3になって「類人猿の恥さらしめ」とか言われて微妙な空気が流れるので

これはあくまでもスタティックを測る役にしか立ちません。

 

つまり、そもそも欲しい人が居ませんでした。

 

自分で評価できる

ついでに言うと、スタティックに登れたか否かは

意識している人なら、感覚的にわかります。

僕もこのアプリを作り始めてからスタを強く意識するようになり

「だいたい今回は80かな」とか分かるようになったので

もうアプリで計測する意味ないんですよね。

 

つまり、気づいたら僕自身も欲しくなくなっていました。

 

飽きる

ランニング・サイクリング用にStravaという計測アプリがあるのですが

同じルートを走った人の順位とかが表示されるので

自分はこのルート中10位か・・・もっと頑張るぞ!とか思えて楽しいです。

 

同じ事をこのボルダリングアプリでも実現したかったのですが

ボルダリングはルートが2,3ヶ月に入れ替えられてしまうし、

GPS的にもずっと同じ位置で登っているので、

AさんとBさんが同じルートを登っている、という比較が出来ません。

 

なのでひたすら黙々と己の加速度(なんとなく分かっている)を記録するアプリと化し、作っている僕ですら「このアプリつまらねぇ・・・」と呟いていました。

 

 

結論

ZOZOSUITみたいなものを着れば自分の態勢、重心が分かるので

あとは足場の位置が分かれば

「上級者はもっと腰を近づけている」とか「腰が低い」とか分かるので

もう少し面白くなると思います。

 

しかし加速度だけでは如何ともし難いので、

ひっそりと僕のゴミ箱に格納されました。