電動昇降デスクとオーダー天板で夢の作業環境を自室に構築した話

概要

自室の模様替えをする機会があり、今まで使っていた机を処分して新規に用立てたらメチャクチャ快適になったので書きます。

f:id:izm_11:20200203222505j:plain f:id:izm_11:20200203222432j:plain

f:id:izm_11:20200203222642j:plain

セットアップとしては

  • 椅子(ハーマンミラーのエンボディチェア)
  • 電動昇降デスクの脚(FlexiSpotのE3B)
  • オーダー天板(パイン集成材)

という組み合わせになります。その他ケーブル周りの色々小道具を買いました。

掛かった費用としては、机周りで合計7万円弱くらいです。

今回の大事な点、電動昇降デスクとオーダー天板

電動昇降デスク

電動昇降デスクは、スタンディングと椅子を自由に切り替えられます。
健康志向というか、集中力を維持し続ける為に腰痛対策としてスタンディング机との切り替えが必要になりました。

手動昇降デスクでハンドルを回して高さを調整したりするのは、怠惰な僕には無理なので

  • 電動昇降機能
  • ワンボタンで指定した高さに切り替えられるプリセット付き
  • 最低時の天板の高さを65cm以下に出来る

という3点を重視して FlexiSpotのE3B を選びました。

電動昇降デスクは選択肢が幾つかありますが、最低時の机の高さが70cmを超えていると、結局肩が凝ったり、フットレストを用意する事になります。

一般的なオフィス用机の高さは72cmですが、これは身長175cm以上の人にフィットします。僕はそこまで背が高くない…

参考

www.bauhutte.jp

今回購入した FlexiSpotのE3Bは最低時に60cm(これに天板厚が3cmだと、計63cm)なので、多くの人にフィットすると思います。

天板

今回は幅1800mm以上、奥行き700mmの天板を想定していました。このサイズの天板がある電動昇降デスクは、市販だと結構高いのでDIYする価値があります。 (参考:オカムラ swiftで15万円程度)

横幅1820mm :電子工作や複数PCの同時立ち上げ検証をする機会があるため、出来るだけ幅を確保したいと考えて1820mmです(今回買ったFlexispotの電動昇降デスク脚のサポートする最大幅が1800mmです

奥行き700mm :今まで奥行き600mmの机を自室で使っていて、不満があった部分なので10cm足しました。(職場の机の奥行きと合わせました)

多くの先人 たちが、マルトクショップで天板をオーダーしていたので、それに倣って注文しかけたのですが
【DIY】木材の天板で仕事用デスクを自作してみた|コウノ アスヤ|note

マルトクショップの見積もりを見たら結構高かったので、お手軽価格の物を探しました。

天板に使う木としてはスーパービバホーム豊洲でパイン集成材が1820mm x 910mm x 24mm で5980円です。いわゆるサブロク板です (この記事にあるようなスギ集成材も同じようなサイズと価格で良さそうです)

99diy.tokyo

天板自体は6000円ですが送料と加工費で約7000円くらい(本体より高い!!!)です。プラス思考に考えると、加工費入れてもIKEAの送料より安いとも言えます。スーパービバホーム豊洲は神。

出来上がった後の写真

天板を一番下げた時の様子

f:id:izm_11:20200203222755j:plain

  • 天板が地上高63cmの場所にあります (これは身長161cm の人の最適らしいです)

  • エンボディチェアは肘掛けの可動範囲が広いので、天板が低いデスクでも肘掛け衝突を避けられて良いです

普段のスタンディング時の様子(椅子とのスペースに注目)

f:id:izm_11:20200203222735j:plain

  • 85cmくらいの高さにしています
  • 椅子は撮影時の比較用に置いてあります。普段はスタンディングで使っている時、椅子は後ろに逃がしています。

    背面の取り回し

    f:id:izm_11:20200203222831j:plain

  • エルゴトロンのLXマウントアームとか、モニタ裏にPSVRコントロールボックスを貼り付けるとか、色々やってます
  • 43インチモニタを作業用に使う場合は、脚を取り払って机天板にモニタ下部をベタ付けする為に、モニタアームを使うのがオススメです。モニタの上の方を見るときに、首が疲れなくなります

天板裏のケーブル周り処理

f:id:izm_11:20200203222550j:plain

天板の塗装

f:id:izm_11:20200203233419j:plain 東急ハンズ渋谷店でワトコオイルのダークウォルナットと布の端切れ、ビニール手袋などを買って端切れをそのまま手袋越しに掴んで室内で2度塗り。 天板の梱包に使われてたプチプチが養生になるので、うっかり捨てなくて良かった…

天板の加工依頼

f:id:izm_11:20200204001838p:plain

こんな感じのポンチ絵を用意して天板を買ったホームセンターで加工の人にお願いしました(照

まとめ

  • 7万円くらいと、ちょっとの覚悟があれば、市販で買うと結構高いサイズの電動昇降デスクが手に入ります。
  • オシャレなMacベースと無線で構築したケーブル少ない仕様、とかは仕事内容的に難しい人も、試す価値があります。VR関係の開発はケーブル地獄になりがち…
  • 電動昇降デスクって床にPCあるとケーブルの伸び縮みやばいんじゃないかと思うかもしれないけど、天板の上下幅は40cmそこらなので、ケーブルをピンと張らずに遊びを持たせておけばなんとかなります。
  • 机の横に棚が無いと、天板の上が物置になるので、まずは机の横に棚を買おう!おっきくて背が高いやつ!

以下余談

ツイッターの様子

組み立てに電動ドライバーが必要になる

こういう安いやつで良いのであると便利です。手で回すと死んでしまう…
アイリスオーヤマさんの電動ドライバーは、USB充電出来てバッテリーで使えて便利!

その他機材

OculusQuestハンドトラッキング実装によせて(エッセイ

概要

OculusQuestがハンドトラッキングを実装します。

www.oculus.com

それに伴って「コントローラは要らなくなる!」とか「どうせ使いものにならない!」とかtwitter上で色んな意見を見たので僕の気持ちをまとめておきます。

入力デバイスの「決定」を示す操作の歴史

タップやマウスクリック相当をハードウェア無しのハンドトラッキングでどうやるか、みたいなのは結構大事です。 (大雑把に言って)入力デバイスは「選択」と「決定」を行うためのものです。

マウスクリックやキーボード打ち込みは物理的な押し込みフィードバックがあります。これはユーザが決定をした、という意図を検出するのがかなり容易で正確です。
スマートフォンというかタッチパネルは、押し込みフィードバックが無い代わりに、ユーザにとっては「板に触れた」というフィードバックがあり、画面上の音やグラフィックの遷移によって実際に作用したのが分かるようになっています。

このスマートフォンのタッチパネルも、最初は「いや、板を指で触るだけだとキー入力が出来ないやんけ」となってましたが、フリック入力が結構使える(そして音と見た目で押したと分かる)ようになって、結構文字打ったり操作するのはハードウェア的にはタダの板であるスマホでもいける。となっているのが現在の様子です。

この「決定」を示す操作が物理フィードバック無くてもいける、というのが個人的に印象に残っています。

ハンドトラッキングや視線トラッキングにおける「決定」を示す操作

それに対してLeapMotionやOculusQuestのハンドトラッキング、あるいはカッコ良い視線入力で問題になるのが、ユーザが行う「決定」をどうやって判断するか、という点です。板に触れる、というのに比べて、ハンドトラッキングや視線入力は(多くの人が知っている)決定的な解決策が提示されていません。

HololensのAirTapや、視線入力のサッカード、LeapMotionの押し込みタップ、OculusQuestのつまんで選択、など様々な方法が試行錯誤されています。そう、今は試行錯誤のフェーズ です。

ハンドトラッキングに対するポジティブな見方とネガティブな見方

ポジティブに考えると決定時の物理フィードバックが無いスマホがなんとかなったように、ハンドトラッキングや視線入力も何とかなる。 という説があります。

ネガティブに見ると「スマホは物理的なフィードバックは無いけど板に触れるという物理的な仕組みがあったので良かった。視線入力やハンドトラッキングはそれが無いからダメ」とも取れます。

僕の考え:ポジティブ

僕の立場はポジティブです。
例えば指のめっちゃ細かい動きがセンシング出来るようになったと仮定します。 そうなると、太ももの上に指を置いたら、スマホの板の代わりを自分の太ももにすれば良くなります。

ハンドトラッキングの検出範囲が広がったら、手を胸の高さに上げなくても、手をブラリと下げた状態でも認識できるようになります。

現時点のOculusQuestに実装されたハンドトラッキングは処理速度と精度の問題で手を胸の高さに上げて、大きな動きが必要だから、疲れるとか実用的ではない。と言う話に対しては、同意します。

でもiPhoneのタッチパネルがありえん精度(とソフトウェアの良さ)で普及したのと同じで、精度が良くなれば解決する問題なら、それは解決される可能性を見越しておく方がお得、というのが僕の考えです。

もちろん、それが一年後なのか百年後なのかはおいておいて…

という感じのことを深夜にツイートしてたんですが、まとめておきたくなったのでまとめました。

元値15万円の人型ロボット「プリメイドAI」が2万円で買えるようになったのでハックして遊ぶとすごく楽しい。という話

簡潔なまとめ

人型ロボットが2万円で買えます。 元値が高いだけあってしっかりした作りなのでおすすめ。

ハードウェア無改造でPCから、こんな感じで操作できます。

こちらから買えます。

【楽天市場】ホビーロボット > ロボット完成品:グラスロードカンパニー

f:id:izm_11:20190704103937p:plain

f:id:izm_11:20190706021443j:plain
ウキウキでプリメイドAIの良さを語る様子
illustrated by 河地りん 河地りん💡三日目西Q30a (@gingatrain814) | Twitter さん、ありがとうございます!!!

経緯

DMM.make ROBOTS さんで取り扱いがあるプリメイドAIという50cmくらいの25軸(25個のサーボが入っている)人型ロボットがあります。

プリメイドAI - 世界最高水準ダンスコミュニケーションロボット - DMM.make ROBOTS

本来は15万円+ 操作するには専用アプリ(Androidのみ対応) + モーション自作は出来ない という商品でした。2015年発売です。

ところが、最近になって一部ショップで2万円(税別)まで値下がりしています。
それだけ安くなると、何かに使えないかなあ…と思って買う人が出てきます。僕とか @GOROman さんとか @kirurobo さんとかです。

6/21購入で 6/27 くらいに届きました。

プリメイドAIを動かすための仕組み

プリメイドAIを動かすにはAndroidアプリを眺める限り

  • ハードウェア的に組み込みの既定ポーズが20種
  • Androidアプリ内からダンスモーションの追加ダウンロード→プリメイドAIに転送→再生

の2種類の動かすルートがあります。

前者はファームウェア吸出とかが必要そう&自由度が少ない予感です。
なので後者を利用して「任意のダンスモーションを生成」→プリメイドAIに転送→再生 を行うアプローチを取ります。

ハックの様子

ハードウェアの信号解析を GOROmanさんが始めて、Androidアプリとプリメイド間の通信はBTのSPP(要するに、Bluetooth接続になっただけのシリアル通信プロトコル)であることを確認しています。

僕はAndroidアプリ側でダウンロード出来るダンスモーションファイルの解析をUnity上で実装していました。

Windows上でBluetoothでプリメイドAIとペアリング(RNBT-で始まるデバイスです)すると、普通にデバイスマネージャー上ではシリアルポートとして認識されます。

そしてUnityEditor上からシリアルポートを使って信号を送れることを確認出来ました。

現在の成果物

pmaファイルのモーションプレビュー

@kirurobo さんによる解析と @Schwarz_Sardine さんのモデルによって高精度なモーションプレビューが実現できました。 https://user-images.githubusercontent.com/3115650/60764234-fcfb3f80-a0c0-11e9-9ae9-88d45da23fc4.gif

簡易リモコン

簡易リモコン的なサンプルシーンを作りました。秒間1フレームだけ転送することでインチキなリアルタイムモーション反映を実現しています。

https://user-images.githubusercontent.com/3115650/60763727-7db43e80-a0b5-11e9-859a-88568630d1bb.gif

ビルド済みのWindows向けバイナリはこちら。

https://www.dropbox.com/s/6eof04lvtyd17u5/Build_RremoteControl.zip?dl=0

Unity Mecanim Animatorのモーション反映

https://user-images.githubusercontent.com/3115650/61169086-3a653e80-a593-11e9-8836-fb726bd9d9f1.gif

VR-HMDを使ったマスタースレーブシステムデモ

https://user-images.githubusercontent.com/3115650/61320956-8b9c5900-a845-11e9-9578-00d1973acd3c.gif

以上の成果をUnityプロジェクトとしてApache2.0ライセンスで公開しています。 github.com

また、信号解析については以下のGoogle SpreadSheetにあります。

docs.google.com

まとめ

2万円で買えて(本来は出来ないんだけど) Unityから ラジコン制御出来そうな25軸の人型ロボット があります。破格だと思うのでみんな買いましょう!そしてハックして遊びませんか。

最後に大事な事なのでもう1度書くと ハードウェア無改造で遊べます。

モノビットエンジンについて調べてみたので書く

概要

先のエントリでPUNの話をしたとき、モノビットエンジンはどうなっているのか気になったのでサイトを見たり、モノビットの人に教えてもらいました。 幾つかの点で競合の他サービスと比較して採用を検討する利点や、あるいは難点もあったので情報をまとめておきます。
調べて書いた程度なので、実案件運用をしての感想ではない事ご容赦ください。

前提として個人あるいは小規模のUnity向けMOゲーム開発を想定しています。

モノビットエンジンでネットワークゲームを作る、という時に取りうる選択肢

Photonには、PUNというUnitySDKがあります。このSDKを使って

  1. Windowsサーバを建ててPhoton Serverのプログラムをホストして、クライアントはPUN。サーバロジックを自由にPhotonServerに書く。
  2. PhotonCloud ,世界中にあるPUN用のリレーサーバを使って、クライアントはPUN(クライアントの内、一台をサーバロジックが動くHOST、マスタークライアントとする)

という2種類の選択肢があります。

モノビットエンジンの場合も、このPhotonと同じようにMUNというUnity向けSDKがあります。

  1. MUN Server。サーバを開発者が自前で立てて、MUNのサーバプログラムをホストして、クライアントはMUNクライアント。サーバロジックを自由にMUN Serverに書く。
  2. モノビットエンジンクラウド。モノビット社が用意して建てている各地のMUN用のリレーサーバを使って、クライアントはMUN(クライアントの内、一台をサーバロジックが動くHOST、マスタークライアントとする)

の2種類があります。個人開発を行うなら2.が気になります。なぜなら1.は100CCU以上だと330万円/年と書いてあるので…(それにサーバの面倒を見たくないです…)

というわけで2.の使い方をする前提でこのエントリは話を進めます。

モノビットエンジンクラウドはPhotonCloudと比べてどこが良さそう?

ルーム毎の秒間メッセージ数制限が無い

これはかなり魅力的です。
このメッセージ数制限は特に4人以上などの多人数ルームを想定したゲームでは問題になりやすいです。
RPCを打つたびにルーム内の人数分のメッセージが走るので、思ったより制限は厳しいです。
メッセージ数制限について触れられている、とりすーぷさんのスライド参照ください。

https://niconare.nicovideo.jp/watch/kn3705

通信量が多いゲームも金で解決出来る

大体100CCUで月1CCUあたり3GB、つまり1000CCUプランだったら月3TBという無料通信量の制限はPhotonと同じですが、モノビットクラウドは明示的に超過通信量について従量課金で対応できます。

つまり、高音質ボイスチャットを垂れ流す、みたいなゲームでもお金を払うだけで使う事が出来ます。 やろうと思えば映像伝送もいけますね!!!

モノビットエンジンクラウドはPhotonCloudと比べてここは怖いかも

NAT越えはしない

基本的に全部の通信をモノビットクラウドのリレーサーバ経由で行います。モバイル端末のネットワーク不安定さをカバーする点では魅力的ですが、原理的にpingは増えやすいかもしれません。(でも確かPUNのリレーサーバもNAT越えしなかった気もします。そうなると差はありませんね)

モノビットエンジンクラウドの海外対応

どのリージョン(地域)をカバーしているか、分かると嬉しいですが東京や大阪にはあると思います。海外展開を想定している場合、展開先の近所にサーバがあると嬉しいです。Photonは欧州、北米、インドなど主要地域ごとにリレーサーバが建っています。
モノビットエンジンクラウドは、導入事例を見る限り国内例が多いので、リリース後間もないので日本リージョンのサーバだけが建っています。(世界展開予定)

具体的な料金比較

大体PhotonCloudとモノビットエンジンクラウド両方とも、同じような価格ですね。

f:id:izm_11:20190508203133p:plain f:id:izm_11:20190508203220p:plain

ちなみに先のエントリで僕が気になっていたNobleConnectはこちら。約半額で済んでいるのは、NAT越えを頑張ることで、リレーサーバを通さない通信を増やしてサーバを節約しているから、と説明されています。

Noble Connect - Asset Store

f:id:izm_11:20190508203455p:plain

感想

おおよそPhotonCloudとモノビットエンジンクラウド、どちらを選ぶかは好みで良い気はします。SDKの持ちうる機能は大体同じだと感じました。

ただ、ゲームが良い感じに進んで、セルフホストをする(つまり、自前でサーバを建てる)ようになったとき、Linux上でも動くモノビットサーバはエンジニアを見つけやすいかもしれません。 PhotonServerはWindowsServer限定なので…

一方でユーザ数が多いことによるインターネット上にある技術情報の数はPhotonの方が多いので、そこに魅力を感じるのであればPUNを選ぶのも良いと思います。

2019年における個人開発あるいは小規模開発のUnityリアルタイムネットワークの技術選定

概要

Unityネットワーク完全に理解した勉強会でしゃべったことのフォローアップエントリです。

基本的にはPUN2(あるいはPUN1)を推奨していますが、PUNがマッチしないときの技術選定についての話をします。

リアルタイムネットワークゲームをUnityで作る時に考える事

  • 何人同時に動かす必要があるか(つまり、対戦人数)
  • LAN外と通信するかどうか(つまり、NAT越えが必要か)
  • オフラインのLAN環境で動く必要があるか

みたいなことを最初に考える必要があります。
1個目は「PUBGが作りたい、50人が同時対戦するやつを作りたい」と言われるとちゃんとしたエンジニアを集めてください!!で終わっちゃうので、そこは勘弁してください。ラフに言うと10人以上を一緒に動かすのは、結構大変です。

2個目は「ルータの設定やPC設定、あるいはスマホのセキュリティ設定によってP2Pが成立しないことが多い」ので、NAT越えを頑張って、それでもダメならリレーサーバを使う必要があります。
ネットワークエンジンから自作する人は、この辺りも自作することになります。リレーサーバを書くのはめちゃくちゃ大変、と言うわけではないですが、なるべくNAT越えで解決しないとPing増えちゃうのでSTUN、TURN、ICE辺りをゴリゴリやっていく必要があります、この辺は書いてると結構つらいと思います。はい。

ここまで話してて「何言ってるか分かんないな…」みたいに感じた人は、たぶんPUNを使っておくのが一番良いと思います!(あるいはモノビットエンジンもあるのですが、残念ながら僕は触ったことが無いので…ごめんなさい…)

3個目がポイントで、諸事情でインターネットが無い環境でのLAN内動作をしなきゃいけない、みたいなことになるとPUNが使えなくなって死にます。 例えば博物館向け納品とか、おカタい会社向け納品とか、あとTGSなどで回線が死んだ時とか…ですね(遠い目)

この

  • 比較的小人数(x<10)
  • リレーサーバとNAT越えを備えて、つまりネットワーク越しに対戦出来て
  • 必要であればオフラインLAN対戦も成立する

を満たすUnityでの組み合わせは、実は結構少ないです。UNETを使うしかなかったくらいに少ないです…

ただ、UNetを使うと
「ネットワークライブラリ自身のバグを踏む(自分のゲームコードのバグと切り分けるので消耗する)」
「リレーサーバの代金がボッタクリみたいに高い」
「NAT越え出来る確率がめっちゃ低い(さてはSTUNさぼってますね)」
みたいなツラい点と向き合う必要があって、ちょっと大変です。

そこで2019年の僕なら何を選ぶかという話をこれから書きます。

Mirror + NobleConnectという技術選定

ネットワークライブラリをMirrorにして https://github.com/vis2k/Mirror

LLAPIをTelepathyじゃなくてLiteNetLib4Mirrorにして https://github.com/MichalPetryka/LiteNetLib4Mirror

リレーとNAT越えはNobleConnect https://assetstore.unity.com/packages/tools/network/noble-connect-140535

という構成を最近は試しています。

NobleConnectは聞きなれない感じですが、UNet及びMirror向けのNAT越え+リレーサーバソリューションです。積極的にP2Pを使うように気合いを入れたNAT越え実装が入っています。
さらにNobleConnectの会社はマッチメイキングも有料アセットで提供してるので、結構楽が出来ます。

気になるNobleConnectの価格ですがCCU100まではPUNと同額で、それ以上のプランはPUNの約半額といったところなので、ゲームが大ヒットしても安心ですね(?)

また、PUNにあった秒間の通信量制限(秒間500メッセージ制限)も無いので、考える事が減ります。

Mirror + NobleConnectを選ぶことの欠点

  1. ドキュメントがあまりない
  2. 日本リージョンのリレーサーバが無い
  3. 採用例が少ない

という辺りが欠点というかリスクになると思います。

  1. についてはMirror自体のドキュメントは少ないですが、以前よりサンプルも増えていて、またUNETソースからのマイグレーションツールも提供してくれています。 UNET入門 目次 - MOTOYAMA BLOG このUNET入門を読んでおけば、ほぼそのままMirrorでも同じように書けます。
  2. については結構ネックになるかもしれなくて、遅延をなるべく少なくしたいならモノビットさんとか日本リージョンにサーバが置いてあるところの方が良いかもしれません。
  3. については、これを読んだ人が採用例になってほしいです。よろしくおねがいします!

ほかに検討した選択肢

  • Dedicated ServerをMirrorで立ててNAT越えとかを考えなくて済むようにするプラン→Mirrorで書いたマスターゲームサーバが動くVPS代を払うと家計が死にかけたのでボツ
  • MLAPIをネットワークライブラリに採用してMLAPI.Relayを自宅サーバで走らせてリレーサーバにする→さらにドキュメントが少ないのと、MLAPI.RelayはNAT越えに熱心じゃなさそうだったので…でもMLAPIは設計がキレイなので気になっています。LLAPIがENETとUNET LLAPIの2択なのが若干つらいところですが…

最後に

モノビットさん、企業ベースの例は多いけどあまり個人開発者向けのドキュメントそろってなさそうな印象があり、ラーニングパスや、具体的な価格とかをどこかに書いてくれてるとうれしい…(僕が見つけられていないだけかもですが)(どこかにPUNを使わずにモノビットを使うに足る優位性があるはず)

VRChatに例のプールワールドを作ってPublic化した

概要

一年位前に例のプールでオフ会 ( 例のプールでオフ会をしてきたので知見を公開します - izm_11's blog ) をした時にロケハンも済ませていたので、 3D Artistのごきげんさんがコツコツモデリングしてくれました。

ごきげん👶🍼 (@hello_cg) | Twitter

良い感じにプールが出来上がったので、VRChatでみんなに見てもらえたら嬉しいね、という話になりました。 モデルを受け取ってVRCSDKを入れたり、パーティクル仕込んだり、小物を入れたりしてアップロード。

そしてpublic化申請を出したら2日くらいで許可されて公開になりました。

VRChat内の検索で「thatpool」と入れると出てきます。photorealisticって付いてる方が今回作ったワールドです。

f:id:izm_11:20190409124903p:plain

https://www.vrchat.net/home/world/wrld_ef2f300d-4e4a-4a9f-ba93-b63931f9249f

こんな感じで遊べます。

VR-HMD無くてもVRChatは遊べるので、試しに入ってみてくれると嬉しいです。

知見の様子

  • BGMというか環境音(適当な環境音ループを微音量で)
  • 入店チャイム(OnPlayerJoinでイベントフック)

などは、確かにあると嬉しいので、なるほどと言いながら実装しました。

作っている様子

3/27に一旦アップロードだけ通ることを確認して、空いた時間にギミックを仕込んでます。

感想

本職のCG屋さんはすごい(小学生並の感想)

VRoid Studioモデラーさんに依頼して自分のオリジナルアバターを手に入れよう

概要

VRoid Hubで見かけた素敵なモデルの作者にモデリングを依頼して自分のオリジナルアバターを手に入れました!!(挨拶)

世はまさに大パーソナルアバター時代。と言うわけでLive2Dやblenderを覚えて自分のモデルを作ったり、あるいはプロの人に依頼する事はこの1年で随分増えたように思います。

僕自身も、このムーブメントは大好きです。 最近だとpixivさんのVRMモデリングソフトであるVRoid Studioのリリースと、VRMファイルの立体ギャラリーサービスとしてVRoid hubがあります。

hub.vroid.com

VRoid HubにはVRoid Studio で作られた素敵な子がいっぱい居ます。

そんな素敵な子を見ているうちに、VRoid Studioモデラーさんにモデル作成をお願いしたら、面白そうだと思いました。
そして勢いあまって自分用のアバターを作って貰いました!!!先に作ってもらった子を見せます。こちら!
f:id:izm_11:20190721011508j:plain f:id:izm_11:20190721011624j:plain

めちゃくちゃ可愛いでしょう。こんな子を作ってもらえます。2019年は最高。 名札にizmって書いてあるので、この子は誰がなんと言おうと僕です!!!

作者の 「とりあえず/naro」さんは神。皆様もまずツイッターアカウントをフォローしましょう!!

twitter.com

依頼を受けてキャラデザからモデリングまで一貫して良い仕事をしてくれました。

この強烈に可愛いツバキさんを作った方です。 hub.vroid.com

「とりあえず/naro」さんは、時間の都合が合えば、こういったオリジナルアバター制作を仕事として請けてくれるそうです。
キャラデザから一貫してお任せできて、腕が良いしVRoid Studio知見が大量にある方なので、依頼を考えている人は 早い者勝ちだと思います

本エントリーでは、 絵を描ける人に向けて「みんなVRoid Studioで遊んでみて!」と宣伝をした後、VRoid Studio製モデルの制作依頼をするメリットデメリット、依頼時のお仕事の流れ、そして最後に依頼チェックリストを載せます。

絵を描ける人に向けてVRoid Studioで遊んでみませんか、の宣伝

絵が描ける人は、今の内にVRoid Studioで作品をつくってVRoid hubにアップしておくと、これからこういったモデリング依頼の機会が発生する可能性が高いのではないでしょうか。
僕の周りでは、素敵な3Dモデルを作るクリエイターさんにアバター制作を依頼したい人は多いように思います。

彼らの中には、カラーイラスト数千円、みたいな無茶を言う人達はあまり居ない気がします。今なら同業者(?)も少ないので、良い依頼を受けやすいかもしれません。

有償依頼の発注のやり取りの基本ポイントに加えて、僕が今回の依頼を通して感じたことなどをまとめた「これらの点を依頼者と合意しておくと安全だよ」という 巻末付録:モデルを発注する際の依頼確認シート を末尾に置いておきました。 お仕事の有償依頼は初めてという絵描きの方も、読んで頂き雰囲気が伝われば嬉しいです。

とにかく、まずはVRoid Studioをダウンロードして使ってみてはいかがでしょうか!!!

studio.vroid.com

VRoid Studioモデルを頼むメリット、デメリット

メリット

  • VRM形式なので対応アプリが多い
  • VRoid Studioユーザが多いので、pmx化やVRChat持ち込みに関する技術情報も多い(つまり、VRChatのアバターにも持って行ける)
  • VRoid Studio製となっているので、テクスチャによる服や目の素材販売がboothにあり、着替えが出来る
  • 表情やリグ周りは、(国内キャラモデラーとして有名で)スゴウデのしげぽんさん製の素体なので、クオリティが担保されている
  • 3Dモデルのフルスクラッチよりは素体やスキニングの工数が短縮されるので、その分予算は抑えられる

デメリット

  • VRoid Studio製っぽい雰囲気が出がち
  • 服の透明処理などで描画負荷はフルスクラッチより高くなりがち
  • (現時点では)服装の自由度は決まってる
  • 表情パターンが決まっている(>< こういう目とかは作れない →この目は作れます!間違えました…)

これらデメリットについては今後なんとかUnityエンジニア的に解決できないか調べてみようと思います。

モデルを発注するまでの話

モデラーさんを見つける

VRoid Hubの新着を眺めていると「なんと可愛い!!!」と思うモデルと出会えると思うので、作者に連絡を取りましょう。

あるいは、これは裏技ですが しげぽんさんのツイッターをフォローしてると VRoid Studioで作られた凄いモデル情報が流れてきます!
まじかる☆しげぽん@VRoid (@m_sigepon) | Twitter

Boothの VRoidタグという手もあります。
vroidに関する人気の同人グッズ1204点を通販できる! - BOOTH

モデラーさんと相談する

性癖を詰めた「こんな子を作ってください!」という発注資料を作ります。
これからモデラーさんの数十時間以上を掛ける発注なので、発注資料を数時間掛けて作る価値はあります。資料に何を書けば良いかも、本エントリ末尾の依頼確認シートを見てください。

モデラーさんとコンタクトを取れたら発注資料をベースに、納期や権利や免責事項、あるいは性癖の話をしましょう。TwitterのDMでも良いですが、僕のオススメはDiscordです。デスクトップ画面共有や通話があると、話が早いことが多いです。

発注する

お値段と作業範囲、納期などが合意できたら発注しましょう。絶対契約書を書こう!とまでは言いませんが、何かの文字ベースで同意しましょうね…

デザインチェック

VRoidは作りながら考える方がクリエイティビティが発揮しやすいので、ラフデザインはキャラのデザイン方向性の確認だけできればOKとイラストレーターさんにも伝えましょう!

ラフデザインが上がったら一度打ち合わせすると良いですね!「ここは大変かも」とかをモデラーさんからフィードバックもらえます。

f:id:izm_11:20190120004221p:plain

注意:VRoid Studioでのモデリングは性質上、作りながら手直しなどが発生します。なので、このデザイン段階で完璧な3面図だったり、厳密なクリンナップの絵を上げて貰っても、その通りにいかないことの方が多いです。大まかなテイストを確認するくらいに留めましょう。

※ここでしっかりクリンナップされたイラストでキャラクターデザインを確認したい場合は、別途キャラクターデザイン費をお支払いするのがオススメです。(この絵の とりあえず/naroさんは、めっちゃ丁寧にラフデザイン描いてくれてます)

モデリング

VRoid Studio上の作業に入ります。このモデリングの早い段階で体格など調整パラメータで弄れる項目についてはDiscordで画面見ながら「もっと背は高い方が良い」とか「胸は大きい方が良い」とかの相談をしておくと、効率が良いと思います。

f:id:izm_11:20190120004243p:plain

f:id:izm_11:20190120004406p:plain

納品

ありがとうございます!!! f:id:izm_11:20190123225814p:plain

モデルを依頼して納品してもらった感想

今回はVRoid Hubで素敵な作品を公開している作者さんを知り、直接コンタクトを取ることで、可愛いモデルを作って貰うことが出来ました。
こうして作って貰ったモデルをアバターとして、様々なサービスで使う事が出来るvrmファイル形式は素晴らしいです。

VRoid Studio は絵描きの人が創造性を発揮できる面白い3Dキャラクターモデリングツールだと思いました。

また、VRoidStudioのモデルを作っているモデラーさんで、こういったお仕事に興味がある方は、VRoid Hubに投稿するとき、キャラクター説明文のところに「お仕事受け付けます」みたいな一文が入っていると、頼むときに凄く嬉しいです。

巻末付録:モデルを発注する際の依頼確認シート

VRoid Studioを使うモデラーさんとの間で発注前に相談すると良いことをまとめておきました。このリンク先ファイルはCC-BY-SAライセンスなので、皆様の参考になれば嬉しいです。

https://gist.github.com/neon-izm/24a90245b6eebc42fb166b7c314d198b

クイックレビュー アンビソニックマイク兼バイノーラルマイクのZOOM H3-VR

H3VRというとSteamで大人気の銃を撃つゲームがヒットしちゃう…SEO最悪です(挨拶)

現在ASMR配信なども盛り上がりを見せるVTuber界隈ですが、録音機材としても面白そうなこのマイク、H3-VRです。
4chのアンビソニックマイクとして見るとTheta V用アクセサリーのマイクより少し高い程度、ゼンハイザーの20万のやつより圧倒的に安い(現在Amazonで35000円程度)で、アンビソニック形式の立体音響を記録できます。

H3-VR Handy Recorder | Zoom

ちょっとだけH3-VRを触る機会があったので、VTuber案件をちょこちょこ手伝うエンジニア目線でレビューというか感想を書きます。

普通のアンビソニックマイクとして

大体パノラマ動画撮影案件で、Insta360Proの下にマウントして一緒のタイミングで記録開始(カチンコ入れると良い)して、映像はInsta360Pro,音はH3VRという組み合わせは、相当コストパフォーマンスが高いです。
(今までは40万のカメラに20万のマイクだったので…そしてInsta360Pro内蔵マイクはアンビソニック対応しててもノイズが多い…)

Adobe Premiereとかで後編集してYoutubeにアップするとお手軽で良さそうです。本体設定を変えればmicroSDカードに記録する時にAmbiX(Ambisonics B)に出来るので、変換漏れやミスも減って大変都合が良いです。
他のアンビソニックマイクは結構Ambisonics Aで記録して後処理でのAmbiX変換を要求します…

たしかこれが本体マイク取って出しのAmbiXなはず(ハサミチョキチョキです)

https://www.dropbox.com/s/6xja8srhn2rvmfg/H3-VR%20sissor_test181118_001.WAV?dl=0

バイノーラル、ASMR向けマイクとして

「バイノーラルや5.1ch出力にも対応」と書いてあってAmbisonicマイクなのにバイノーラルって何かと思ったら、4chのマイク入力から計算で擬似的に再現した バイノーラル2ch のwavを書き出すようです。

厳密なバイノーラル録音をするためにはダミーヘッドや、物理的な耳の形を再現しないとダメなんですが、このH3-VRは計算で求めるようです。イメージ的には100均の発泡スチロールのマネキン頭に素人工作するよりバイノーラル感はあります。
(ちゃんと3Dio社のFree Spaceとか使ってる人は乗り換える価値無いです)

どの程度のバイノーラル感(?)かを確認するには
ここからZOOM Ambisonics Playerをダウンロードして実行して、上のハサミチョキチョキwavファイルを突っ込んで、ヘッドホンをした上でステレオとバイノーラルを切り替えながら聞いてみてください。

https://www.zoom.co.jp/ja/products/field-video-recording/field-recording/h3-vr-handy-recorder#downloads

f:id:izm_11:20181118184157p:plain

ステレオと比べて明らかにバイノーラルの方が立体的に聞こえると思います。すげえ。

試しにバイノーラル書き出ししてみました。

Dropbox - H3-VR sissor_test181118_001_Binaural.wav

ライブ配信でのバイノーラルマイクとしての使用

本体から設定変えたら、リアルタイムで LINE-OUTからそのままバイノーラル2ch データが出てきます。 なんも考えずに使えて凄くグッド!!!! f:id:izm_11:20181118184538p:plain

(USB-IFモードだと単純な4ch Inputとして見ることになるので、バイノーラル配信よりちょっと手間かも。まあアンビソニック配信はVTuberの人あまり使わないよね…)

まとめ

ASMR配信にも興味があるけど、いきなりマネキン頭とか買ったりするのはなあ…という人も気軽に手を出せる値段で、これだけ遊べるのはとても良いと思います。おすすめ。

Noitom Hi5をVTuber案件で投入したのでレビューしつつ便利スクリプトを書いた

概要

PerceptionNeuronの開発元でもあるNoitomが手袋デバイスとしてHi5を発売しています。国内ではアユートさんが国内代理店として取り扱っています。

www.aiuto-jp.co.jp

手の指だけで15万円!!と結構良いお値段がする製品なのですが、試すことが出来ないか考えていたところ、 株式会社アユートさんより特別にお借りすることができました。 また株式会社BitStar さんより現場運用を試してもらう機会を頂くことが出来ました。

僕以外にもVTuber案件で指をトラッキングする手段を検討している人、結構多い印象があります。

このエントリを読むことで

  • 技術担当者は内部の挙動を察することが出来る
  • 非技術担当者は技術担当者に「Hi5こういう感じらしいけど、買いですか?」ってジャッジを委ねられる

みたいなお役に立てたら嬉しいです。

ここから宣伝

アユートさんはHi5マニュアルの和訳も行っていて、代理店として誠実な仕事をされています。「この製品は取り扱わないのか」みたいな相談も出来るので、みんなもアユートさんから製品を買いましょう。

BitStar さんは僕のコードを実地検証、フィードバック、改善してくれました。既に大規模イベント含む幾つかの案件でHi5込みの全身トラッキングを使用中です。 VTuber案件の企画立ち上げから技術面の相談も出来るそうです。お困りの企業さんは是非問い合わせ窓口 ( https://corp.bitstar.tokyo/contact ) からどうぞ。(もしくはDM戴ければ担当者まで繋げます)

宣伝終わり

最初にまとめ

  • Hi5自体はVTuber用というよりインタラクションを行うViveコントローラ置き換え用、みたいな意図を感じる
  • なのでVTuber案件に投入するときはちょっと調整が必要(本エントリでスクリプト配布します)
  • 適用するキャラクターモデル手指のボーンは姿勢リセットしていてほしい(ユニティちゃんはダメだった…)
  • 親指の向きは Hi5が特殊(パーではなく手刀の形)なので、モデル側で合わせるかスクリプト側で吸収する
  • ジャイロセンサが入っているだけです。なので磁気ノイズ耐性はPerception Neuronと同等程度だが、SDKから取得できる指の角度が制限掛かっている為骨折していないように見える。
  • マウスやキーボードを長時間触るとノイズがつらい
  • キャリブレーションは平易なので上手くいくまでトライすること。(何もして無くても特定の指がピンと立ったり寝たりするのは、キャリブレーションミスです)
  • 減磁は30分に1度くらいやると良い

Hi5自体の精度はこのくらいまで詰められます。

運用など

演者さんにこれを見せてキッチリキャリブレーションしてもらいましょう。

www.youtube.com

サイズはほとんどの日本人男女はMで良いです。

レシーバは手袋と近づけて下さい(通信環境が悪いところだと値が飛びます)

動作確認用にVive無しで動くキャリブレーションバイナリ

F1キー押したらBとPのキャリブレーションが自動で実行されます。Vive刺してない普通のノートパソコンとかでも動くはず。

www.dropbox.com

Hi5のキャリブレーションデータは C:\Users\UserName\AppData\Roaming\HI5\CalibrationData 以下に保存されている (つまり、この動作確認用exeでキャリブレーションしたデータを、他のアプリからも参照する)

Hi5をUnityのVTuber案件で使うためのセットアップとスクリプト

CustomHI5_InertiaInstance.cs · GitHub

このスクリプトを LeftHandというEmptyObjectに一個 RightHandというEmptyObjectに一個 づつアタッチしてください f:id:izm_11:20181008010203p:plain

f:id:izm_11:20181008010322p:plain

後はお手持ちの指以外のトラッキングシステムと組み合わせてあげてください。

このカスタムスクリプトは通常のHi5スクリプトに対して追加でこういった機能を含んでいます。

  1. 親指特殊補正(thumbPreEuler , thumbAfterEulerを手動で書き換えて下さい)
  2. 指のパー補正 (Calibration Keyで行います。後述の手首向きの初期値も合せて指定します。P,Bポーズとは別の3段階目の補正です)
  3. 手首向き補正 (手首の向きをリセットします。2.と合せて行います。演者さんにTポーズをしてもらってF2キーを押します。演者さんが向く方向は補正後の手首向きを見て下さい)
  4. Humanoidのキャラクターを前提にした指ボーン自動割り当て (HandBoneのelement[0]にキャラのRootを割り当てて右クリックから「Automatic Set Handbone」を選んで下さい)

導入結果の評価

表情と同じくらい手の形は感情を表現するので(VRChatで手はOculusTouchを使うヘビーユーザーがいるのを参照)15万円のハードウェア代はペイすると思います。 なにより技適が取得されていて、大っぴらに使えますからね…

後はSDKから生のジャイロの値が取れるか、少なくともオイラー角じゃなくてクオータニオンの値が取れるとすっごくうれしいです!

補足

複数人同時運用…PC1台ごとにHi5は1個しかペアリング出来ないため、PCを複数台用意してPhotonとかで同期してHumanPose経由で手袋のデータを送ると楽です。

OculusGoをNOLO VR(CV1)使って6dofの頭と両手トラッキングをした

概要

今年はAndroid系のStandaloneなHMDが各社から発売されて面白いです。

今だとLenovo Mirage SoloとOculus GoがTLでは盛り上がっています。

一方で手の位置のトラッキングは両者とも備えていないため、両手も使えたら良いなあと思い、OculusGoとNOLO CV1を組み合わせて動作することを確認しました。

いわゆるVTuberごっこがPC無し+完全無線で出来るのは、結構おもしろいと思います。NOLO CV1はベースステーションがバッテリーでも動くのが萌えですね。


OculusGo with NOLO VR(CV1) VRIK VTuber Setup

NOLO CV1自体は昨日から日本代理店がAmazonで取り扱いを開始しています。

技術的なハマりポイントとかはここに書いています。

Oculus GoでNOLO CV1を使えないかのテスト - Qiita

以下ツイッター引用

ViveTrackerを使ったAmazonで買えるフルボディトラッキング取付機材

たぶん誰かがまとめていると思うんですが、あんまりお金掛けずに入手性が安定している(Amazonで買える)物を書きます。

まずはViveTrackerの入手性が安定してくれたらうれしいですねorz

【国内正規品】 HTC VIVE Tracker 2018

【国内正規品】 HTC VIVE Tracker 2018

肘や手首や足にはこれを使うと良い

マウンタ

坪倉さんの公開してる 坪倉輝明@メディアアーティスト (@kohack_v) | Twitter

このマウンターのv2(25mm溝)を適当な3Dプリンタでプリントします。

HTC Vive Tracker Band Adapter by TsubokuLab - Thingiverse

f:id:izm_11:20180516142544p:plain

ネジ

こういうネジがちょうどぴったり。外しやすいですし。

バンド

AAA verclo 固定バンド 固定ベルト 5本セット 各サイズあり : 台湾生産 (2.5cmx30cm 非収縮 (10本セット))

これが平均体型の男性なら肘や足にちょうどフィットします。 細めの人は25cmとか20cmの方が良いかもしれません。

腰にはこれを使うと良い

坪倉さんの公開してる 坪倉輝明@メディアアーティスト (@kohack_v) | Twitter

このマウンターのv1 large(40mm溝)を適当な3Dプリンタでプリントします。

HTC Vive Tracker Band Adapter by TsubokuLab - Thingiverse

ネジは上に挙げたのを使いまわします。

f:id:izm_11:20180516142625p:plain 100円均一で買えるフニャフニャのベルトが40mm溝にちょうどフィットするので100均に行きましょう。 家から出たくない場合は「ガチャベルト」と言う商品名で調べると、望みの品がヒットしやすいです。

みんなもレッツフルボディトラッキング

ユニティちゃんトゥーンシェーダー入門以前 あるいは現代トゥーンシェーダーへの橋渡し

概要

古来よりNPR(Non-Photorealistic Rendering)と言うのはあって、ほとんどの人間はDirectXもしくはOpenGLを使った簡易なトゥーンシェーダーを書いたことがあると思います。
しかし人間にとって3DCGのモデリングは難易度が高いので、せっかく作ったトゥーンシェーダーをティーポットやドーナツのレンダリングするくらいしか思春期で経験することが出来ません。

そうした経験を持つ人間は成人してUnity+UTS2.0(ユニティちゃんトゥーンシェーダー)環境を手に入れます。

そして可愛いキャラクターを可愛くレンダリングしようと思ってUTS2.0.4のシェーダーファイルを開くとゴツい分量のコードと対面してしまいます。
またUTS2.0.4はシェーダーコードの分量に比例してマテリアル上のインスペクタを開くとビビるくらいテクスチャを指定できる場所とfloatやcolorを指定できる場所があります。UTS2.0.4のマニュアルを開いても専門家向けっぽい用語と使用例のオンパレードで、よくわかりません。
一体、この10年くらいで、何が起きてしまったのでしょう?

本エントリでは同様の疑問を持った僕がUTSに至るまでのトゥーンシェーダーの表現技法の発達を追いかけつつ、説明を試みます。本エントリは Unite2018Tokyo2日目の夜に UTS使いこなし系CGクリエイターの @AkatsukiWorks さんとベラベラ喋ってたラジオを元にしています。

暁ゆ~き デザイン開発ミニオン (@AkatsukiWorks) | Twitter さんの協力無しでは本エントリは成立しなかったので、本当にありがとうございました。(僕自身はモダントゥーンシェーダーエアプです…)

注意事項

  • 本エントリの誤りがあったら全て僕が悪いです。嘘ついてたら教えてください。
  • サンプル画像も数式も出てきません
  • UTS使いたいならマニュアル読んで!

とりあえずUTS2.0.4を使いたい

  1. アセットストアで適当なキャラクターを入手する
  2. マテリアルを全部UTSに置き換える
  3. BaseMap,1st_ShadeMap,2nd_ShadeMapの3個に元のdeffuseっぽいテクスチャを張って、下記みたいな感じに影色設定と有効化をする f:id:izm_11:20180512024248p:plain

終わり!!!!後の細かいパラメータはマニュアル読んで下さい。 最初に1影と2影のマップを当てる、というのが以外と忘れる人多そうなので、今日はこれだけ覚えて帰って下さい。

では以下はガガッと歴史的な説明です。

続きを読む

例のプールでオフ会をしてきたので知見を公開します

No.136 Hanazono Room – ピースタジオ CM・ドラマ・映画・グラビア・ロケの撮影スタジオ

こちらの貸しスタジオです。
たまたま機会があり、3時間コースでプールを借りることが出来ました。
得られた知見を公開します。

f:id:izm_11:20180429175543j:plain

予約

電話問い合わせを行います。プールの3時間貸し切りが約5万円でした。(最短利用が3時間からです)
後述しますがプールのみ利用する場合とプールのある階を貸し切る場合で料金が2-3万円変わります。
目安としては4-5人まではプールのみで大丈夫ですが、大人数になるとプールが手狭なこともあり、階ごと貸し切る方が良いかと思います。今回は3人で借りたのでプールのみのレンタルです。

移動

最寄り駅は新宿御苑で徒歩5分程度です。新宿から歩く場合は10-15分程度掛かります。移動中に飲み物を買っておくと良いです。

現地に到着した後は駐車場側から入り、電話で問い合わせると中には入れます。スタッフさんが迎えてくれ、施設の使い方の説明もしてくれます。

現地での注意点

まず、日中の室温がめちゃくちゃ暑いです。4月末でしたが室温が33度を超えています。プール用のクーラーが無い+天井がガラス張りで日光を思い切り浴びるので、めちゃくちゃ暑いです。
タオルの用意と飲み物の用意を忘れるとつらい目に遭います。遭いました。

また、プール内での飲食物の持ち込みは禁止なので、写真撮影を行う際は小物のフェイク飲み物とかを持ってくるなどの配慮か、係の人に事前相談を行う必要があります(プール以外の小部屋や共有スペースは飲み物大丈夫っぽいです)

f:id:izm_11:20180429172324j:plain

現地の環境

プール手前の3m*3m程度の小部屋にコンセントが2口あります。

f:id:izm_11:20180429181925j:plain

しかしプール内にはコンセントがありません。プール内で電子機器を使う予定がある場合は10mの延長コードを持参しましょう。

wifiはフリーwifiがあります。LINEの友達追加でスタジオのQRコードを読み込むと、idとパスワードが書かれたLINEメッセージが届きます。

また、ルータの設定が変な時は係の人を呼ぶと対応してくれます。 参考までにUnityのダウンロード、githubへのpush,pullが通りフィルタリングは掛かっていませんでした。回線速度は休日昼間に50Mbps以上安定して出ていました。 これはプログラミングを行う上で大変便利です。

VTuber流行ってるので指トラッキング手袋を作ってみた

概要

VTuber流行ってますよね。最近の一押しはアズリムさんです!元気で全力なアズリムさんをみんな見て!!!

www.youtube.com

ええと、話を戻すとHTC Viveを使った全身トラッキングをするとき、演者さんの指の開閉をセンシングするには Valve Knucklesやnoitom Hi5などの未発売(*1)なデバイスが欲しくなってしまいます。発売するの待つより自分で作れないかなあって思って作ってみました。

  • ESP8266+モバイルバッテリーで無線運用
  • 曲げセンサで指の開閉を取得してUnityにデータを送る
  • Unity側でキャリブレーションを実装

あたりを行っています。

作った物

現在こんな感じです!

www.youtube.com

試作基板と手袋で動作確認が終わったところです。

作っている様子

3/8くらいに作ってみようと思ってメモを書き散らして f:id:izm_11:20180325195257p:plain

3/11 にブレッドボード上で動作を確認して基板をガッと設計してFusionPCBに発注(結構送料高いお急ぎプランにしたけど10日くらい掛かりますね…)

  • 3/22 にFusionPCBから基板が届く
    f:id:izm_11:20180322235217j:plain
  • 3/23 にはんだ付けして動作確認
    f:id:izm_11:20180324143516j:plain
  • 3/24 くらいに必死で手袋に針と糸をチクチクして実装します。
  • 3/25 に冒頭動画公開

という感じでサクっとやっています。指の開閉はグーで一回、パーで一回抵抗値を覚えておいて間を補完する感じです。

最近はソフトウェアばかり書いていたので、たまにハードウェア絡むと納期があったり、針と糸にCtrl+Zが無いことに苦しんだりして楽しいです♪

最後に

これ完成したら使ってみたいなーって言う方いらっしゃいましたらTwitterのDMでお気軽に相談ください~

(*1) noitom Hi5が基板発注中に発売しちゃいました…もしかしてこのプロジェクト、ポシャるかも…orz

現実と戦うUNET入門

概要

諸事情でUnityのUNETを使わざるを得なくなった人に対するラーニングパスの提案です。

最初に

それUNETじゃないとダメですか?Photonありますよ?Monobitありますよ?また、リアルタイム性が不要だったらNiftyクラウドあります。 あとソシャゲ的な作りの場合はUNETあんまり使わないですよ。LANじゃないインターネット経由のマッチメイキングはUNETも有料ですよ?

UNETのリリース時に謳われたアップデートが遅々として進まないのは、もしかしたらUNETはUnity的に見捨てられてて、ある日突然deprecatedになるかもしれませんよ。

https://forum.unity.com/threads/unity-hello-is-there-anybody-out-there-p.445978/

また、十分な開発期間が取れるならLLAPIやUDPを元にHLAPI相当を自作するとかも検討に入るかもしれませんよ。

…はい、やりましょう。これも人生です。

UNETがあんまり好きじゃない理由

  • ドキュメントの未整備
  • 様々なバグがドキュメントに記載ないまま 「仕様です」のまま放置されている 例: https://forum.unity.com/threads/onstartclient-called-before-scene-is-fully-loaded.427952/
  • ホストマイグレーション未対応
  • 実践的なサンプルの少なさ
  • 出来る人の多くがPhotonに移行してしまうので、初心者向け資料ばかりある(この記事も初心者向けです。なぜなら僕が初心者なので)
  • 標準のNetworkTransformと標準のNetworkAnimatorすら使い物にならないので自作することになる。
  • SyncListを多用するとランダムにパケットロスする

この辺の話を聞いても、まだやりますか… 一応こういうまとめも訳しています。

UNET Unofficial Documentation (Errors, Workarounds, Best Practices)
https://qiita.com/neon-izm/items/8b98d8fbf590b31c72ef

具体的なラーニングパス

最初に 凹みさんの詳説を全部読む。

tips.hecomi.com

1. ひよこのたまごさんのUNET解説記事を全部読んで順番に試す。 http://hiyotama.hatenablog.com/entry/2015/07/06/153000
ステップバイステップの記事として一番情報量が多い日本語記事です。

2. Tank! Networking Demo.を穴が空くほど突つく。 Tank! Networking Demoは、2018年現在において、 まともな 資料があるUNETを使ったネットワークゲームっぽい作りの無料サンプルとしてほぼ唯一です。絶対におすすめです。 アセットストア https://assetstore.unity.com/packages/essentials/tutorial-projects/tanks-networking-demo-46213

解説動画 https://unity3d.com/jp/learn/tutorials/s/tanks-tutorial

Unityフォーラムスレッド https://forum.unity.com/threads/multiplayer-networked-tanks-demo-q-a.356443/ あと、このサンプルはPhoton版もあるので逃げたくなった時の移植も参考に出来ます(ボソッ)

それ以降
もっと凝った物ということで Tank! Reference Project  も2.と同じような感じですがキャラクター選択などの現実的な追加実装が入っています。また戦車かよ!という気もしなくもないですが…

https://assetstore.unity.com/packages/essentials/tutorial-projects/tanks-reference-project-80165

その他メモ(数か月前の自分に向けたメッセージ)

使う技術の取捨選択はこんな感じ f:id:izm_11:20180305154916p:plain

  • NetworkManager,NetworkdDiscoveryはまともにゲーム作るなら99%の確率で継承した自前版を作ることになる。
  • NetworkManagerを使った純粋なサーバークライアントモデルの資料は少ないのでホストクライアントモデルで作った方がマシ
  • Rpcで呼ばないと各端末のオブジェクトが同期しない。(逆に言うと、同期しなくても良い物はRpcを避けた方がネットワークに優しい)
  • 極論すればNetworkTransformやNetworkAnimatorもRpcの糖衣でしかない
  • 随時ジョイン可能なゲームにすると考えることが一気に増えるのでロビー→締め切り→ゲーム開始 型にした方が良い
  • そもそもネットワークゲームを初めて作る時にUNETを選ぶのは悪手。自分のネットワークの理解が足りないのか、自分のUNETの理解が足りないのか、UNET固有のバグかを絞り込めなくて死ぬ。MonobitかPhotonで始めましょう。
  • UNETのAndroidとUnityエディタの通信は、ウィンドウズのファイアウォール切って試すと通信成功したので、横着するならこれで良い気はしました。

以下随時思いついたら追記

https://forum.unity.com/threads/my-compiled-list-of-unet-bugs-issues.403578/

www.raywenderlich.com

UNET使ったカードゲームサンプル assetstore.unity.com