2017/06/24

#LogicalGaming

最終回!というわけでもないのですが・・・
予告していた4月がとっくに過ぎているので一区切りということで.

現状としては,たまたま空いた土日にちょろっとプレイする程度のカジュアルゲーマーになりました.
金銭的な余裕はあるので,Steamで面白そうなゲームを買っていますがそのまま積むという流れ.
プレイヤーとしては昨年度HOT Gamingで半年程プレイして,自分の中で区切りがついてしまったのかなと.(チームメンバーの皆様,本当にありがとうございました.足引っ張ってごめんなさい.)
身体的な理由もあって,今後競技的にゲームをプレイする予定はありません.
2億円くらい降ってくれば復帰できるのですが・・・理系として「期待値」という概念を学んでしまったために宝くじの購入に中々踏み切れません.

今後このブログをどうするかはノープランということで.
ポロッと理論系の記事を書くかもしれませんし,何か作ったりするかもしれません.
何にせよ更新頻度は大きく落ちると思うのでご了承ください.
「上げる」と言って放置してる記事が沢山ありますね.申し訳有りません・・・・


ゲーマーが何かを区切る時はやはりゲーミングポエムだと思っているので,慣例にならってカマしたいと思います.

ゲームって思っていた以上に奥が深いし,難しい

元々私はコンピューターグラフィックス(の製作ではなく技術動向の把握)を趣味としていた人間で,#LogicalGamingは数ヶ月程度で終わらせる予定でした.
しかし,始めたての頃にrafa様に言及していただいたり,デバイス勢の方々と関わっていくにつれて,楽しくなってここまで続いたのだと思います.RT/Fav,コメントなどなどありがとうございました.書いた記事のRTの通知がピコピコ鳴っている時の快楽性はかなりのものです.


「#LogicalGaming」ってなんだ?

せっかくなので名前の由来の話でも.
#を付けた理由は簡単で,弊ブログをタイトル付きでツイートした時にTwitterでタグ化されるためです.タグ化されると検索しやすいですし,弊ブログがTwitterをもう一つのチャンネルとして使っていることを示せると思って付けました.

LogicalGamingは簡単で「ゲーミングを論理的に」というだけです.ID野球じゃないですけど,ゲームシーンの色々な事象がもっとデータ化して最適化できると思うんですよね.
例えば「解像度をいくつにするか?」という議論においても「プロが使ってるから」っていうのはあまり理由にならないと思っています.そもそもプロもなんとなくとかジンクスで決めてることが多いんじゃないでしょうか.
本当は,「理論的にはこうで,統計的にはこうで,こういうメリットとデメリットがある」みたいな話が数字に基づいて議論されないと決まらないはずなんです.もちろん,理論を考えて,データを集めて,最適な値を決めるというのはとても難しいはずです.しかし,私は「PCゲームが誕生してから随分立つのに,もうちょっとそういう観点で考えようという風潮があっても良いんじゃないの?」と思っていた訳です.

結果的にデバイス方面に偏った内容ではありましたけど,論理的であることや定性・定量的であることを意識した内容だったと思います(その到達度に関しては議論の余地がありそうでしたが).


systemaというHNはsystematic(組織的・体系的)から取っています.これは「ゲーミングってもっと体系化できないのかな?」という過去の経験から生まれたものです.10年ほど前,サドンアタックというゲームをはじめた頃の私のKDは38%でした.KDRで言うと0.61くらいで,平均レベルまでスキルをつけるのに非常に苦労したことを覚えています.

例えば,プレイヤースキルをとっても「AIM」と「立ち回り」という用語で語られることが多いですが,初心者が「AIM」と「立ち回り」を鍛えようとしても用語の指す内容が高度かる抽象的すぎてなにをしていいか分からないですよね.
例えば「立ち回り」でしたら,「ポジショニング」や「シフト判断」,「エリア理論」などの色々な要素があります.しかし,それぞれの要素も粒度が色々あって,「ポジショニング」という粒度の低い要素の中には,「マップ知識」や「右壁左壁の概念」などの要素もはいっていますし,それぞれの要素が複雑に絡み合って「立ち回り」ひいてはプレイヤースキルを形作っているわけです.

そうしたプレイヤースキルに含まれる様々な粒度の要素のそれぞれを定義付けて,関係性を明らかにし,鍛え方(考え方)をまとめられたら,自分に足りないスキルとかを効率よく習得できるんじゃないかな?と考えていた訳です.

ゲーミングデバイスの選び方やデバイスとPCの設定なんかも体系化されていなくて,なんとなくやっている場合が多いと思いますので,同じ事ですね.

つまり,LogicalGaming, systemaというのは「ゲーミングの各要素を論理的に定式・定量化して,それらを体系化しよう」という目標があったプロジェクトでした.

まあ,進捗的に言うとLogicalGaming, systemaくらいなので,ゲーミングってとても奥が深いし,私が
「数ヶ月で終わる」と思っていたのは凄まじい勘違いだったわけです.


途中からちょくちょく「優秀なゲーミングデバイス若人」という単語を使いはじめたのは,この大目標を自分でやることを諦めたからです.私はrafaさんのブログからゲーミングデバイスを工学的に見るということを学んで,こうしたことを始めて終わりそうになっているわけですが,「今後出てきた人のちょっとした参考になれば良いな」と思っています.

2017/01/12

ゲーミングデバイスが1680万色に光る理由

ゲーミングデバイスって1680(書き方によっては1677万色)に光りますが,なぜ1680万色なのでしょうか?
これはゲーミングデバイス内のMCU(マイコン)の都合だったりします.

ゲーミングデバイスのLED制御

一般的に,ゲーミングデバイスではLEDの明るさをパルス幅変調(PWM)を用いて変えています.
PWMは,ONとOFFを切り替えることで時間あたりの平均的な電力を変える方法です.

つまり,フィラメント電球を使った理科の実験のように電圧を上下させてLEDの明るさを変えるのではなく,人間の目では知覚できない速さでON/OFFを切り替えることで明るさを変えるわけですね.人間の目では明るかったり暗かったり色々な色に見えているわけですが,マイコン的にはとても素早くLEDを点滅させているだけなのです.ここで,明るさの度合いは,ONとOFFの比率(デューティー比)を変えることで調整しています.


G302のLEDの点滅の様子をハイスピード撮影で見てみましょう.動画の撮影は1200fpsで行い,30fpsで再生しています.
まずは暗いときの場合です.


次に明るい時の場合です.

このように,LEDは目に見えない速度で点滅しています.また,点灯する時間を変えることで,見かけ上の明るさを調整していることがわかります.

PWMと色の関係

さて,PWMで明るさを変えるにはデューティー比を変えれば良いことが分かりましたが,デューティー比はマイコンでどのように設定しているのでしょうか.

よくあるのは8bitの変数を使ってデューティー比を表現する場合です.16bitやそれ以上のbit数もマイコンによっては可能だったりしますが,bit数を増やすとマイコンのリソースを使います.所詮は装飾ですし,人の目はそんなに細かく色を見分けられないので,デューティー比は8bitが多いでしょう.
8bitの変数は,(正負の区別をしない場合)0から255の値をとることができます.つまり,0から255のデューティー比で明るさを表現できます※1

そしてRGBな製品の場合,光の三原色である赤(Red,R),緑(Green,G),青(Blue,B)の3色のLEDを搭載しています.そこで,LED1色ごとに256パターンで明るさを表現して,3色合わせると256の3乗になります.つまり,256の3乗で16777216パターン,約1680万色ということになります.


※1
「1色あたり0~100とかのほうが分かりやすいのでは?」と思う方も多いと思いますが,マイコンは基本的に2進数で物を考えており,特に8bit単位(例: 8,16,32bit)でマイコン内部の機能を制御したがります.無理やり0~100などの10進法的にキリの良い数字で制御することもできますが,内部の機能は8bit単位の値しか受け付けないので,それに直すために余計な計算が必要になりますし,プログラマ的には特に意味がないので,8bitで制御することが多いようです.

2017/01/04

2017年

あけましておめでとうございます.今年も#LogicalGaming#LogicalGamingGlobal@systema_ をよろしくお願いします.

ブログを立ち上げてから3年が経ちましたが,徐々にページビューやTwitterのフォロワーが増えてきて,望外の喜びです.いつもRT/Favなどなどありがとうございます.


2016年のまとめ

毎年恒例ですが,昨年1年間を簡単に振り返ります.

マウスのスクロールホイールを3Dプリントする

http://logical-gaming.blogspot.jp/2016/02/3d.html
マウスの部品を3Dプリントして使ってみたという記事です.やってることはモデルデータを作って外注しているだけなので技術的にはまったく難しくありませんが,「可能であるということを実証した」ということに意義を見出しています.言うだけなら簡単ですが,実際に可能かどうかというのは別問題なので.
この記事では単一の部品を出力したわけですが,マウス全体の出力に適用するには,課題が存在しているかもしれません.


マウスパッド表面評価のためのセンサー可視化デバイス

http://logical-gaming.blogspot.jp/2016/04/adns-3090adns-9800framecapture.html
このブログを立ち上げた直後から取り組んでいる「ゲーミングマウス向けセンサの制御」の集大成的な記事です.ADNS-3090とADNS-9800というゲーミンググレードのセンサを制御できるようになりました.
また,ゲーミンググレードのセンサの視界を見える化することができたのは大きな進捗でしょう.これを使えばマウスパッドの良し悪しや,色々なことが分かるようになります.


DPIと振り向きとセンシティビティ

http://logical-gaming.blogspot.jp/2016/05/dpi.html
一般のゲーマー向けに書いた記事です.400DPI+センシティビティ2.0より,800DPI+センシティビティ1.0の方が理論上は優れているという話です.この記事には続きがあるので,いつか続きを上げたいですね.


描画遅延とデバイスの出力周期の関係に関する一考察

http://logical-gaming.blogspot.jp/2016/12/blog-post.html
ポーリングレートやフレームレートが変わると遅延の期待値が変化する,というのを理論的?に説明した記事です.この記事では,ポーリングレートなりフレームレートは高ければ高いほど良いということを示しました.
よく「モニタのリフレッシュレート以上にフレームレートが出てれば十分」,「マウスのポーリングレートは何でも良い」などと言いますが,実際には高ければ高いほど有利になるということが分かりました.皆さんもGTX1080で最低設定+640x480でプレイしましょう().


ゲーミングマウス向けのUSB HIDディスクリプタ

http://logical-gaming.blogspot.jp/2016/12/usb-hid.html
ゲーミングマウスのHIDディスクリプタのテンプレートとして作成しました.マイコンにHIDマウスの機能を持たせる記事は多いですが,マウスホイールと16bitのデータパスを持つ日本語の記事は無かったので,少しは貢献できたと考えています.


ゲーミングマウスのセンサとして電磁誘導方式を考える

http://logical-gaming.blogspot.jp/2016/12/blog-post_99.html
小ネタ記事です.今のゲーミングマウスは光学式一択の現状ですが,別な方式も考えてみませんか?という提案をしました.
光学式マウスの暗黙のメリットとして「マウスパッド無しでどこでも使える」というのがありますが,「ゲーミングマウスはマウスパッドの上だけでしか使われない」という点に着目しました.「滑走面が限定されても良い」という条件なら光学式にこだわる必要はなく,絶対値で座標が取得できる方式の方が正確にトラッキングできるのでは?という提案です.


遅延測定用のファームウェア公開

日本語の記事にはしていませんが,描画遅延ネタで使っているマイコンのファームウェアを公開しました.(英語記事)
ソースコード : https://github.com/systema-tic/input-lag-test-firmware
1500円で売ってるマイコンボードとハイスピード撮影ができるカメラがあれば,簡単に描画遅延を測定できます.詳しくはreadmeに書いてあります.


近況

デバイス

今はLogicool G300r + Razer Goliathus Control Editionです.Goliathus Controlはいいマウスパッドだと思います.G300はセンサー的に厳しいですが,乗り換え先が見つからないです.

2016年も色々見ましたが,ベストなマウスパッドはCOUGAR Control(2じゃなくて無印の方)だと考えています.マウスに関しては個人の手の大きさや持ち方に大きく依存するのでなんとも言えません.個人的にはG300系でセンサー改良版が出て欲しいです.


ゲーム

5月から秋まで,PC版OverwatchのチームであるHOT-Gamingのメインタンクとしてプレイしました.本当に楽しかったです.一緒にプレイしてくれたチームメイトに感謝したいです.
Overwatchは,どこかマンネリ化していたFPSのゲーム性に一石を投じましたが,これからどのような影響を及ぼすか要注目でしょう.

最近はMirror's Edge CatalystをOriginで買いました.セールで約1500円だったのでとても安かったです.シナリオと戦闘は評価が低いようですが,逆に言えばそれ以外は素晴らしいです.既に30時間ほどプレイしましたが,シングルプレイヤーのFPSを30時間プレイするのは最初で最後かもしれません.前作が好きな方におすすめです.


今年の抱負

そろそろこのブログもまとめの時期に入る必要がありますが,現状では「俺たちの戦いはこれからだ!」的な感じなので,どうオチをつけるかまだ決まっていません.ボチボチ頑張りたいと思います.

ソースコードが欲しいなどの要望や,ゲーミングデバイスに関する疑問点などがあればAboutに書いてある連絡先に連絡お願いします.