Flexispotの電動昇降デスクの信号をハックしてスマホやPCから操作できるようにする

概要

Flexispot製(に限らず)電動昇降デスクの手元操作コントローラーの信号は解析している人がいるため、適当なマイコンボードに置き換えることが出来ます。出来ました。

これによって

  • 大きなコントローラーを天板から省いてデスクがすっきり
  • スマホやPCブラウザから操作できて楽
  • タイマー機能やセンサー連動が可能に

なりました。結構便利!

youtu.be

terminalからも叩けるよ!

使ったマイコンは M5AtomS3というもので

  • wifiが使える(PCやスマホから操作しやすい)
  • LCDが付いている(現在の高さを表示しておきたい)
  • コンパクト(かなりかわいいサイズ)
  • ボタンが2個使える(開発中のデバッグに便利です)
  • ケースがついてる

みたいな観点で選びました。3000円弱です。(もうちょっと安くするならM5StampS3とかM5AtomS3Liteとかでも良いと思います)

ATOMS3 — スイッチサイエンス

サイズ感です。キーキャップよりちょっと大きいくらい!

作り方

Flexispotは手元操作用のコントローラーをRJ45(LANケーブル)端子で差し込んでいます。

これは内部的にはシリアル通信を使っていて、LANケーブルの内5本を適切に接続してシリアル通信をすると、どんなマイコンでもFlexispotからはコントローラーとして認識されます。

この手のコントローラーはLocTek社のOEMの事が多いので、LocTek社のサイトを見ながら、自分の使っている電動昇降デスクのコントローラーの型番を調べます。 (僕はHS01B-1でした)
www.loctekmotion.cn

そしてコントローラーの結線情報やシリアル通信の中味について調べているこちらのリポジトリを見ながら、マイコンとコントローラーの間をはんだ付けします。

github.com

手抜きのため、適当なLANケーブルを引きちぎってM5AtomS3に直接繋ぎました。

あとは この辺を見ながらガガッとファームウェアを書いてあげれば、なんとなく動くようになります

もうちょっと細かい話

  • コントローラーの種類によって結線対応に差があるので、変換基板を作って売る場合は何種類か作らないといけないかも
  • 4本の結線で動くかと思いきや、5本目のPIN20をHIGHにする必要があり、ちょっと予想外でした
  • M5AtomS3は、デモ動画を撮るときに今の机の高さを表示するLCDが付いてて便利だから選びましたが、1500円くらいのM5AtomLiteとかでも動くと思います
  • ESP32系は電源オンにするときに(マイコンとしては)結構電流を食うのですが、今回のマイコンではwifiを使っても電源供給は足りました

標準コントローラーとのサイズ比較

家電に対して適切な補償に入ることで修理コストを下げて生活を安定させる

概要

エンジニアに限らず、現代の暮らしはドラム式洗濯機や高価なスマートフォン、PCなどを使用することが多いです。

そしてそれらはメーカー保証が1年で、それを越える延長保証は各社様々なサービスがあり、選択肢もいろいろあります。(メーカー独自の延長保証、家電量販店の延長保証、クレジットカード付帯の動産保険など)

最近それらを調べて、個人的にオススメ(つまり、おそらく保険料に対して修理の期待値的に得しそうなもの)が幾つかあったので紹介をします。

忙しい人向けに結論を書くと以下です。

くらしTEPCOの住設・家電修理サービス

東京電力が提供する月額300円から月額450円でエアコン・冷蔵庫・洗濯機の保証。設置から10年以内のものなら一回あたり50万円までの修理を保証してくれるもの。
ポイントは

  • 別に電気やガスを東京電力と契約していなくても加入できる
  • 中古品購入でも製造日から10年以内なら保証可能
  • 設置証明(購入日証明)がとれなくても製造日から10年以内なら保証可能
  • ドラム式洗濯機は、多くの機種で構造上ホコリが掃除不能な場所に溜まり、10年以内に故障する可能性が十分に高い

という点で、個人的には10年で5-6万円を払ったとしても ドラム式洗濯機が10年で一度でも故障したら元が取れるライン なのでお得だと思いました。 オマケでエアコンや冷蔵庫の保証もついてくる、と考えるとヘタな家電量販店の延長保証よりもお得そうです。

// もしこのサービスの加入者が全員ドラム式洗濯機を使ってたら赤字になっちゃうんじゃないかなって思いました。

www.service.tepco.co.jp

2023/12/04 23:50追記:給湯器などの保証を含めるなら月450円、賃貸などで給湯器の保証は不要の場合は月300円で加入できることをコメントで補足いただきました!

www.service.tepco.co.jp

スマホ

1台あたり月額100円から(破損や盗難などの保証をオプションで追加すると高くなります)でスマホやノートPCの修理代を保証してくれる保険です。
類似のサービスは幾つかありますが

  • 一度の修理金額上限が10万円(1年1度まで)
  • 国内販売実績のあるスマホならメーカー問わず(つまりApple製品も )中古白ロム機でも加入可能
  • 免責はあるけど1度あたり5000円の出費なので許容可能

という点で類似のサービスに対して優位だと思いました。

たとえば折り畳みスマホはディスプレイの修理で5万円以上が発生します。(そして実際折り畳みスマホは画面の破損がめちゃくちゃ多いです) また、iPhoneなどの高価な端末も破損時の修理コストが重いです。

キャリア純正の修理保証やAppleCareなどメーカー純正の保証は月あたり1000円近く掛かることを考えると極めてお得 だと思いました。

また、スマホケは名前に反してノートPCやタブレットも加入可能なので、MacBook ProやiPadProなど、価格が高い製品も加入する価値がありそう に思いました。

// もしこのサービスの加入者が全員折り畳みスマホを使ってたら赤字になっちゃうんじゃないかなって思いました。

一応メモとしてこんなことを覚えておくと良さそうです。

  • 海外輸入端末は加入不可
  • 加入時に大きな傷がついてない、正常に動作することをIMEIを添えた写真を撮って送る必要がある
  • いわゆる赤ロムの保証は付いていない
  • そのため、キャリア販売の残債の無い中古の白ロムを買う人に一番適してそう

sumahoke.jp

終わりに

これ以外にもよく調べたらめっちゃお得じゃん!みたいなサービスがきっと色々ありそうなので知りたいですね!

知ったかぶりするためのソーシャルゲームのイベントマネタイズ構造

概要

ソーシャルゲームは円熟期を迎えつつあり、なかなか新規開発をするときに根性を入れて作る必要があり大変だったりしますが、マネタイズについての話を書いておくと、コンシューマや他の業界から入った時に理解がしやすいのかな、と思ったので書きます。

とはいえ、ここに書いてあることは幾つものソーシャルゲームの講演や公開資料の最大公約数なので、特に新規性はありません。

このエントリはマネタイズ手段としてキャラクターのガチャをメインに据えた運用型のスマホゲームを前提にしています。 そういったゲームを開発、運用する上で売上を確保する部分をどう頑張るか、の前提知識の確認になればうれしいです。

ソーシャルゲームは魅力的なキャラクターが大事

(いや、ロボゲーもいけるしパズルゲーもあるんですが)大体の場合においてキャラクターが魅力的、というのは七難を隠すので魅力的なキャラクターを作れる舞台設定やストーリーを作りましょう。

原作付ゲームだとここで一歩リードした地点から始められる(既に魅力的なキャラクターであることが保証されている)というのは素晴らしいですね。
声優さんやイラストレーターさんには頭が上がりません。いつもありがとうございます。

マネタイズ手段としてガチャは有力

ソーシャルゲームはリリースして終わりではなく、その後も運用を続けないといけないため、開発コストを出し切ってマスターアップ!はいおしまい!というわけではなく、運用コストがかかり続けます。

そのため、運用中に売り上げを継続して出し続けるためのマネタイズエンジンが必要になります。ソーシャルゲームのマネタイズエンジンとして一般的なものは、皆さんご存じの通りガチャです。

ガチャを回してもらうには魅力的なキャラクターをドンドン出す

売上のためには魅力的なキャラクターをドンドン出していきたいですね。

とはいえ、キャラ絵をドーン!(ボイス付)と突然出してもプレイヤーは感情移入もへったくれもないので、「このキャラは魅力的だ!是非課金してでもガチャを回したいな!」と思わせる為のストーリーを追加する必要があります。

メインストーリーで大活躍するキャラ、は当然有利ですが、ずーっとメインストーリーを作り続けるのは開発ライン的に厳しいので、季節に合わせたサブイベントの開発ラインを並走して運営タイトルとしての安定感をあげましょう。

でも報酬がないとユーザはストーリーを読んでくれないよ!!!!

  1. 魅力的なキャラクターを作る
  2. そのキャラが活躍するストーリーを見せる
  3. そのキャラを引けるガチャを出す
  4. ユーザはガチャを引く

と言うのが現代のソーシャルゲームの定番システムです。

このシステムを実現するためにはユーザにサブイベントを遊んでもらう必要があります。 そのためによく使う方法が育成素材を普段は絞って、サブイベントの報酬として育成素材を多めに出すという方式です。

ユーザはその時のお気に入りのキャラを育てる時に育成素材が足りない(ようにリソースを計算しましょうね!)ままにして、サブイベントを走れば育成が進めやすいよ、と報酬設計で誘導します。

そしてサブイベントを走る過程で新キャラを活躍させる!これがキモになります。

  • 普段は育成素材を絞る
  • 育成素材をイベント時に豊富に入手可能にする
  • ユーザをイベントに誘導し、イベントをフックに新キャラを見せてガチャを引かせる

というゲーム運用の流れを意識しておきましょう。

いやー、ストーリーだけで引っ張るのは厳しいよ

その場合は性能やレアリティを運用フェーズに合わせて見直しましょう(安易なインフレは避けましょう)。あるいはなんらかのユーザ間競争イベントを用意して、そのイベントを有利に進める能力を付けたキャラを出しましょう!!

感情移入だけでなく実利面のアピールも手札に持っている、ということを念頭に置いておきましょう、 (乱用するとゲームが荒れるので本当に慎重にしましょうね…)

月額課金は何のため

基本的に上に書いたようなループでソーシャルゲームは売上を確保しますが、当たりはずれの波があったり有料ガチャを回すのに抵抗があるユーザに向けたマネタイズ手段です。 売り上げの予測が立てやすく、施策を考えるに当たっての指標として使うことができるので、是非とも検討したいところです。

月額課金パックは毎日ログインするときのボーナスを増やす、みたいな効果にしておくと継続率にも効いてくるので最近のゲームには搭載されてることが多いと思います。

最後に

ソーシャルゲームを遊ぶ時は、このエントリの事なんて頭から追い出して楽しく遊んでいきましょう!!!

課金の話だけじゃなくてもっと多方面(特にこのエントリでは意図的に省いた初動の重要性や継続率など)の例はトリリオンゲーム4~5巻、スマホゲームを作る部分を読んでみてください。おすすめです。

もうちょっと技術寄りのお話が読みたい人は、こちらを読んでみてください。

neon-izm.github.io

いかにして人類はVRアプリケーションの標準UIを手から伸びるレーザーポインター方式に確定したのか

概要

昨今のVR-HMDを使うアプリケーションは複雑な設定が必要なもの(例えばVR-SNSやクリエイティブツール)において、ほぼデファクトスタンダードなUXとしてUIパネルに並んだボタンやスライダーを手に持ったコントローラから伸びるレーザーポインターで選択して人差し指トリガーで決定、という物を採用しています。

なんでこう収斂したのか、という私見とメモを書いていきます。

前史

Oculus Touch/Vive Wandが登場するまでは、GearVRやOculus Rift DK2などがコンシューマ向けVRの主戦場でした。

これらのデバイスではコントローラの向きは取得できる(位置を取得できない)+コントローラに決定ボタンがある、という操作環境です。
そういった環境に置いてVR-UIの最適解はコントローラの先端からレーザーポインターが伸びて、レーザーポインターの先にあるボタンをポイントして、決定ボタン(トリガー)で選択、という物でした。

手の位置がわからないので手を伸ばして何かを掴む、手を伸ばしてボタンを押す、ということが出来ません。なのでレーザーポインターポインティングして決定、をするしかなかったです。

(厳密には、顔の正面から伸びたレーザーポインターで一定時間見つめ続けると選択、というUIもあったんですが、あまり複雑な操作をするアプリでは見かけなかったです)

Oculus Rift CV1( Touch) /Vive Wandの登場

VR元年です!家庭用VR機器なのに、両手の位置と姿勢がミリ単位で正確に取得できる夢のデバイスが出てきました。

このときに各社様々な操作方法を試みますが、前史にあるようにレーザーポインター+トリガーに対して手の位置が取得できるこの環境では「物理的に手でボタンを押す」という事が可能になったので、直接ボタンを押す。というUXが多く用いられました。

この空間上にあるボタンを手で押すのは直感的な操作 であり、しかも 手垢のついたレーザーポインター方式ほどダサくない という点で、未来感もありました。今まではハードウェア制約から渋々(?)レーザーポインターを使っていたんですが、今なら素直に直接UIを触れるようになったので採用したくなる操作です。(ボーンアイデンティティのUIを見てください、直接宙に浮いてるUIを触って操作してますよね。これです!!これができるハードウェアを長い間待ってたんです!)

更に言うと、このOculus Rift CV1/HTC Viveの頃は片目当たりの解像度は1000x1000ピクセル程度で、それほど細かいUIを用意しても視認性が高くない為、空間上に浮いているボタンを大きくする必要があり、その大きなボタンを直接押すというVR-UIが流行しました。

特にOculus社のToyboxデモの直感的なUIは開発者を魅了しました。直接手を伸ばしてアイテムを取り出すなんてすごくクール!!!

youtu.be

OculusQuest 以降

Quest/Quest2の登場によって、多くのVRユーザが生まれました。 これらの機器は片目あたり1600x1600以上の解像度を持ち、片目あたりのピクセル数で言うと前世代のPC向けVRの2倍にもなります。

こんな凄い解像度だと ボタンが小さくても視認できます
さらに、直接手でボタンを押す操作は、奥行知覚を最大限に使うので押したと思っても奥行きを間違えていて押せない、などの問題が起きてきました。(あと、物理的に押すUIって疲れちゃいますしね)

そこで小さなボタンを並べたUIを手のコントローラから伸びるレーザーポインターでポイントして、トリガーで選択する。というレーザーポインター方式のUIが復権しました。

レーザーポインターは離れるほどポイントしにくい、という難点はありますがポインターに対して「手ぶれ補正」を掛けることで小さなボタンもポインティングできます。
また、レーザーポインターは奥行き判定を気にしなくても良いという利点があります。

そんなわけで前史に先祖返りした、とも言えますが現在のVR-UIは大体がレーザーポインター方式を採用するようになりました。

// 他の要因としては、例えばVR空間内で文字入力をする時、キーボードを空間に浮かせると一個づつのキーが小さくなってしまって、レーザーポインターじゃないと難しい、という説もあります。なのでQuestのOSのUIもレーザーポインターですね!

というお話でした

これが8年程度、VR-HMDを使ったコンテンツ開発を仕事にしている僕から見えているVRUIの変遷です。

VRUIはダサいレーザーポインターからカッコイイ直接ボタンを押す方式に移行したんだけど、揺り戻し的に今はレーザーポインターに回帰しているわけですが、こういった経緯があったんじゃないかなあと思いを馳せるのも楽しいですね。

VRChat向け下半身トラッキングデバイスHaritoraXが発売+発送開始されました。

概要

2021年2月に僕と愉快な仲間達で作っていた同人ハードウェアのHaritoraを、株式会社Shiftallさんと業務提携して量産改良版HaritoraXとして開発することを発表しました。

そのHaritoraXが本日付で発送が開始されました。

izm-11.hatenablog.com

ja.shiftall.net

この記事では同人ハードウェアの量産改良版発売における役割分担やソフトウェアの改良などについて書こうと思います。

ちなみに気になる予約台数はShiftall CEOの岩佐さんより、本予約開始直後の5/27時点でこのツイートがあります。その後の数字は非公開とのことですが、びっくりするぐらいの台数が出ているようです。

同人ハードウェア発でメーカーから量産改良版が何千台も出る、ありがたい時代ですね。

f:id:izm_11:20210716011616j:plain
発売を喜ぶ筆者イメージ図
この発売記念イラストは海老原べにこさんに描いて頂きました。感謝。腕が良くて仕事が早いので皆さんもイラストを依頼しましょう。 海老原べにこ🍤 (@ymdbnk) | Twitter 

役割分担

HaritoraXは新規設計になるハードウェア面について、取り付け用専用スーツ含めほとんどShiftallさんにお任せしています。(一部僕が口を挟んでいる場所もありますが)

新規設計のハードウェアに合わせたファームウェアもShiftallさんによる開発です。

また、製品のサポートやドキュメント、宣伝などもShiftallさんがやってくれます。

ということは僕は何もしなくてもオッケー!!!(?)かと言うとそうでもなく、結構いろいろソフトウェアの改良をしました。
次の項で、こんなことしたよ!という事をまとめておきます。

たぶんハードウェアの工夫や大変さなどについては追って Shiftall さんから面白い情報が出ると思います!

ソフトウェア改善箇所

ラッキング

ラッキングアルゴリズムに手を入れて、ジャイロの数が少ない割に良い感じに動く実装をしました。
(以下トラッキング技術勉強会の発表スライドにも載せています) speakerdeck.com

www.youtube.com

UI

フォントをフォントワークスさんの物に置き換えました。VR-HMDのバーチャルデスクトップ環境を考慮してフォント視認性を上げています。(mojimo-gamesはインディゲーム専用では無く、他のソフトウェアでも使っても良いのです) mojimo.jp

UIレイアウトや可読性を全般的に修正(zenさんありがとうございます) f:id:izm_11:20210716013039p:plain

例:スタート画面
f:id:izm_11:20210716013130p:plain こんな感じに修正↓ f:id:izm_11:20210716012955p:plain

使い勝手

細々といろいろなエラーハンドリングを追加しています。例:ハードウェアのBluetoothコネクションがタイムアウトしたときの挙動など。

今までのユーザフィードバックを元に、なるべくユーザが困らないように、ということを重視しています。

HaritoraX専用機能

HaritoraXの電池残量表示を作ったりしました。
そしてHaritoraX向けのBluetooth経由のOTAファームウェアアップデートを実装しました。(これをUnityでやってる人はあまりいないはず)
www.youtube.com

まとめと今後の展望

以前に書いた業務提携の発表時のエントリだと「Amazonで売るよ!」とありますが、どうやら当面は既にオーダー頂いてる方への発送が優先のようです。

ご存じの通り、昨今の様々な情勢により半導体が全体的に調達コストが上がったり、納期が異常に伸びたりする中で当初スケジュールである春~夏出荷開始を維持したShiftallさんの尽力に感謝しています。(クラファンのハードウェア系は軒並み出荷予定が伸びてますね…)

発売したよ、で終わりでは無く、まだまだHaritoraプロジェクトで面白いことをしていきたいなあと思っているので今後もメンテしていこうと思います。

とりあえず無印Haritoraを対象としたハードウェアハッカー向けドキュメントを書きます!!(みんな自前のファームウェア書いて遊びたいよね!)