オンラインタイピングソフトの進捗。少し細かい実装をして最低限ゲームとして動くようになった。CPUをいくつか配置してタイピングでライフを奪っていく感じ。

実装としては、まだカスタマイズはできないけど、Advanced People Pack 2でカスタマイズしたキャラクターを使えるようになったり、Blenderで作ったキーボードと腕のモーションをUnityに取り入れてアニメーションさせてみたり、FL Studioで作った効果音を入れてみたり。いろいろベース部分を作ったので作り方には慣れてきた感じ。今は何故かCubaseで作った曲を流せるようにしている途中。

対戦は試してないけど一応動くようには作っているはず。ここからどうしようかな。

今更だけどDenasu Webサイトのスマホ対応をやってみた。Denasuサイトは1998年から運営していることになっているので、モダンな作りにするにはいろいろとめんどくさいなあと思ってたけど、いい加減やらないと、って感じ。
やってみると各HTMLにviewport

<meta name="viewport" content="width=device-width,initial-scale=1" />

を付けて、CSSで

@media screen and (max-width: 600px)

の中に小さい画面用のデザインを定義して、細かいところでは画像のmax-widthを100%にしたり、そのくらいでそれっぽくなった。

今更だけどDenasuトップページにコンセプトを追記した。

作者の好きなことをソフトウェアにしているので、作者自身がユーザです。また、趣味の開発であり、広告も利益も目指していません。ユーザとして欲しい機能、使いやすさを目指しています。

フリーソフトだからできることがある、というだけで、商用ソフトウェアを否定するわけではない。

結局KPI、何を目標にするかによって結果が全然違うわけで。

例えばWWW。昔はユーザの相互情報共有を目指して有用なコンテンツがたくさんあった。その後商業利用が大多数になってKPIが利益になったので、ユーザが見づらくても広告を入れまくったり、SEO対策でどうでもいいページばかり増やす結果になった。

例えばテレビの報道。KPIは視聴率=スポンサー獲得なので、視聴者の利益とか日本を良くしたい悪くしたいという思想は特になくて、単に何でも批判して煽っていれば視聴率が取れるのでああいう風になっているだけ。

ソフトウェア。商用のソフトウェアの場合、どうしても利益を優先するので、誰かがほしがっているものを(自分は欲しくないのに)作ってあげることになる。なのでなかなかユーザ目線になるのは難しい。昔ながらのフリーソフトはKPIが自分が使いたいものを作る、なのでユーザの利益と直結しやすい。

ということで(今のところ)自分は他のことで十分収入を得ているので、Denasuは広告もなし、営利非営利関わらずフリーソフトとして使ってもらう、とうやり方にしている。

この話を書くなら今かな、ということで新タイピングソフトの構想を。

経緯

Realforce Typing Championshipから、タイピングが競技として話題になることも少し増えてきた。RTCは頂点を決めるものなので今のところWeather Typingを使って頂いているが、やっぱりもう少し派手な演出とか複雑なゲーム性とか、今時なタイピングソフトが欲しいところ。THE TYPING OF THE DEADは対戦向けではないし、そもそも公式リンクが何にもなくAmazonにリンクするくらい入手困難だし。

その辺りタイピングサミットくらいから考えていて、5年くらい前にウェザタイに戦略性を入れようと考えたりもしたけど、ウェザタイはガチなタイピング勝負がコンセプトなので運まかせとかアイテムとかとは相性が悪いし、ワードや入力方式などウェザタイの狭い枠組みでやっても地味なので検討を中断。

で、これとは別に3年前からウェザタイオフラインを考えていた。オフラインで集まってキーボードとモニターを肩から提げてみんなで赤外線で打ち合うというリアルTOD。赤外線通信部分は作ってもらったのでもうあるんだけど、ウェザタイの大改造が必要なのとキーボードを吊り下げる板とかモニタコストのハードルが高くて中断中。

で、1年くらい前にN高 ネット運動会で最近のオンラインゲーム(フォートナイトとか)を見て、みんなが欲しい、観たいタイピングソフトはこういうのなんだろうな、というので去年から試しに作り始めた。ウェザタイオフラインのオンライン版(?)の意味もあって、ソフトウェアはソフトウェアで別に作った方がデバッグが楽かな、というものある。

仕様

世界観はまだ定まってないけど、タイピングしないと生きていけない的なものなのかなあ。大規模サーバは作れないので、ウェザタイと同様のP2Pで10人くらいのバトルロイヤル。

地形やキャラクターをランダムに作ったりワードはAI自動生成にしたり、ランダム性を積極的に取り入れて飽きないように。ワードはウェザタイのAI自動生成をベースに。音楽も自動生成したいところではあるけど、さすがにフリー音源を使うかな。SEはウェザタイ以上のものを作れなかったので流用かな。

Advanced People Pack 2はキャラクターメイキングもできてすごく便利。

あとはウェザタイの枠組みを離れるならどんな工夫ができるか。例えば、ある文字アイテムを取ったらその文字を打ったときの攻撃力が高くなるとか、今から5分間、特定の文字の出現頻度が上がるとか、英語しか出ないとか。あとは普通にコンボボーナスとか。1対複数で囲むなんてのもやれば、ある程度強い人とも戦えるかな。

進捗

進捗。オンラインゲームの作りはウェザタイの仕組みが割とそのまま使えて、ローカルではリアルタイムに処理してリモート側もそれなりに補間して動きつつ完全同期させるのはできてきた。タイピングソフトとして必要な部品とか対戦サーバは当然あるし。

ここから独自処理を入れていくわけだけど、例によって一人で作っているので、いつ完成するかは・・・。数年レベルかも。こういうソフトが欲しいっていうことなので、ウェザタイとTODのいいとこ取りのいいソフトができるのなら誰かが先に作ってくれてもいい。Twitterを見てると、割とみんなこういうソフトが欲しい、作りたいと思っている人は多そうな感じ?

3Dオンラインゲーム版のタイピングソフトの進捗。2台のPCで起動して、互いにキャラを動かしてタイピングしあうところまではできた。まだカクカクするのはおいておいて、プレイしても特に面白くはない。このあとゲーム性を考えていく必要があるわけだが、むずい。アイデアはいくつかあるけど面白くなるのかはやってみないと分からない。

ゲームエンジンとしてはUnityを使ってるけど、オンラインゲームの開発むずくないですかね。ウェザタイは1台のPCで2つソフト起動してたけど、Unityだと2台PC起動して、ソースコード編集する度にGit経由でコード共有してるのですごくめんどい。

ウェザタイも今年で20年ということでリーフレットを作ってみた。

せっかくなので、印刷も。今は個人向けに小数でも印刷してくれるので便利。

オフ会や大会なんかがあれば配れるんだけど、今はそういうものできないのでとりあえず手元においておくしか。

なんかそろそろお金が増えそうな気がしたのでiPad Airを買ってみた。今まで第2世代iPadを使って週刊ASCIIを読んだりしていたのだが、ものすごく動作が重いので。

Apple Pencilも買ってみたが、iPadにくっつければ充電されるのか。Surfaceは単6電池だからそこは便利。

今あるのはメインSurface Book 2、持ち歩きSurface Pro 7、Mac開発用Mac Book Pro 2019、スマホXperia 1 II、テスト機第7世代iPod Touch、タブレット第4世代iPad Air、くらいか。あとKindle PaperwhiteとかSony Digital PaperとかOculus GOとか。開発者ってこのくらいは機器持ってるもの、ですよね。。。

プロeスポーツチーム「DetonatioN Gaming」による対戦動画 「Q・W・E・Rしか打てない人たち(DFM)でタイピング対決をしてみるとこうなる」が公開されている。少し前にメールで動画利用について問い合わせがあったもの。eスポーツとして認知度が上がるならどんどん使って欲しいところですね。

速度的には平均すると500くらいなので今の私でも勝てるくらい。ということは、これからeスポーツタイピングが流行るとして、今から頑張れば誰でも活躍できるということですね。動画を見る感じ、プレイだけでなくトーク力も重要に見えるけど。

てな感じで、やはり見た目が地味ですね。今作っている3Dのタイピングソフトの完成が臨まれる。

進捗メモ。CPU戦が動くようになった。ウェザタイの通信プロトコルをほぼそのまま流用しているので、対戦モードにすればそのまま対戦もできると思う。けど、課題が山積み。

まず文字が読めない。自分のキャラクターは非表示にして、自分のワードは画面上のどこか別の場所に表示しないと。あとワードは頭の上がいいかも?

移動モードとタイピングモードの切り替えをTabでやってるんだけど、やっぱりめんどくさい。やっぱりマウスで視点移動の方がいいかな。

まだ演出が何も入ってない状態ではあるけど、面白くするにはいろいろ必要。ウェザタイの名前にはしないつもりなので、ガチタイピングではなく、例えば、弱い人でもあらかじめたくさん打ち溜めてシールドをはっておけば強い人に勝てるとか、複数人で一人を囲むとか、後ろから打つとか、どこかを打つとアイテムが出るとか、考えられるのはそんなところ?

システム的には、ウェザタイはサーバはあるけど単なる中継なので基本はP2Pの形。これだとプレイヤーの途中参加が困難。そうなると何人か揃ったら開始、誰かが生き残ったら終了みたいな形になる。人がいなくてもある程度遊べるようにするには、サーバクライアント型にして、サーバにゲーム状態を保存して、CPUをたくさん配置する、とかになるけど、それだとサーバの負荷が高いかなあ。

Unityの練習に作っているやつ。

地形はZENRIN City Asset SeriesのJapanese Otaku City、モデルデータはAdvanced People Pack 2を使ってみた。

データを持ってきて配置して少しコードを入れるだけでここまでできてしまうのか。

最近Amazonを騙るメールがよく来るのだが、SPAMの品質として、これはまあまあ及第点かな。特に、時間を空けて何度か送ってきて、「支払い案内」「支払期限がきた」「アカウント停止するよ」「アカウント停止しました」みたいになっているのが工夫されていて素晴らしい。送信元もAmazonの代理で送信みたいになっててグッド。まあ、このメールアドレスでAmazon契約してないんだけど。。。

正直、他のSPAMメールは日本語おかしかったり送信元すらいじってなかったり、いきなり「RE:」で来たり、もう少し工夫しろよ、ってのばっかりだったのでようやく被害者目線で考えるようになってきたか、って感じ。もう一歩。

ウェザタイオフラインのオンライン版のためにUnityを勉強中。思ったのは、これってWorld Testerでやりたかったことじゃん、という。

World Testerは物理シミュレーションソフトだけど、定義ファイルでフィールドや物体を自由に作って配置することができる。あとは定義ファイルじゃなく3D空間で自由に配置できるといいんだけどな、と思いつつ放置していた。これができて、スクリプトを追加できればUnityになる(ならない)。

とりあえず地形を生成して、歩き回るところまではできた。

Weather Typing Android版4.2.1を公開。Android対応で、ロビー等にプラットフォームを表示させるようにしたので他よりバージョンを上げている。Windows版もテストしたらバージョンアップ予定。

Xamarin Android。Windows版に比べてユーザも多いからそこまでひどいバグはない。けど、一つ、画面下のナビゲーションバーの戻るボタンでアプリを終わる(Sleep)と、そのまま次回起動したときにNavigationPageのナビゲーションで落ちる。まあ前のバージョンからそうなんだけど。

Xamarinのソースまで追ってみたけど、Xamarin側のページスタックとネイティブ側のページスタックがずれてしまうことまでしか分からず。仕方がないので戻るボタンで終わった場合、Sleepでなく強制終了するようにした。

あとは、前、x86版をビルドすると何故かx64版も一緒に同梱されていてしまったが、今回はx86版だけが同梱されるようになった。2つを統合できる気もしないでもないが、直ったのかどうなのか調べるのも面倒なのでまだ2つのパッケージのまま。

2年前に購入したWiMaxを解約した。関西でウィークリーマンションに住んでいた1年半、ネット回線がなかったときにすごく助かってサービスに関しては全く不満はないのだが、関東に戻って半年、ほとんど使う機会がなかったので。2年しばりなので今月を逃すと2年後になる。

解約については2時間くらい電話チャレンジする必要があったが、つながってしまえば「解約します」「はい」で終わった。別に解約をさせたくなくてつながりにくくしてるわけではなくて単純に人が足りないだけっぽいけど、なんで解約はネットじゃできないんですかね。

Netflixとかは、解約というか停止も再開も簡単にできるので今月だけやろう、とかできるけど、契約は2年しばりで解約は2時間の電話チャレンジだとなかなか契約しづらい。自分の場合、しばらく出張とか普通にあるからもっと気軽に契約・解約できるなら年数回使うとかしたいんだけど。

ちなみにDenasu System開設当初に使っていたhi-ho(元Panasonic系のISP)は回線契約なくなっても最低限の月額\500でメールとWebサイトを使うことができて、ずっと使っている。こんな感じだといいのに。

【視聴者参加型】タイピング対決第4回~負けたら罰ゲーム~【鈴木勝/にじさんじ】をリアルタイム視聴。していたのだが、最後の対戦、凄く重くなっていた。

基本的には、対戦相手の内の誰かが重いとワードを打ち終わったときに待ちが発生するので全員が重くなるというのはあるが、それともちょっと違う感じ。以前から、長く対戦をしていると段々重くなるという報告があり、それなのかな? ということでちゃんと調査してみた。

とりあえず原因と思われる箇所は2箇所発見したので直して開発版にアップロードしてみた。他のテストを全くしていないのでどこかバグってるかもしれないが、重さが気になっていた方は試してみて欲しい。

  • デバッグ用に、入力オートマトンをmapに登録しているのだが、本体側のドメインでは削除していたがプラグイン側のドメイン上で削除されてなかった。段々mapの検索に時間がかかるようになって遅くなる
  • 結果表示画面を毎回作ってずっと残っていた。これは他の画面同様、画面を使い回すことでメモリ消費量を抑えるようにした。

まだ対戦を繰り返していくと微妙にメモリが増えていくのだが、とりあえずここまでで100回プレイしても500kpmくらいなら平気だったので公開。1000kpmとかだとまだ少し重くなる感じ。

あと、Windowsストア版も気になっていた効果音再生を改善。普通のMediaPlayerクラスを使っていたのだが、ゲーム用のXAudio2を使うようにしたらだいぶパフォーマンスが上がった。全体的なパフォーマンスはWindowsデスクトップ版よりもいいと感じる。こちらもテスト終わったら正式公開予定。

サーバ移行後、だいぶいろいろなコンポーネントが古くなっていたので一気にアップデート。mysql、PHP、Javaあたり。特にJavaはOracleの無償JDKが終わってしまったので、AdoptOpenJDKに変更。合わせてランキングのコンポーネント類をアップデート。そしたらEclipseが単体のjarを見つけてくれなくなったのでpomに統一したりいくつかはまりポイントがあったけど、なんとか新しくなった。

これで一回vulsでもかけてみるかな。

メインメモリが足りなくなってきたので、3年ぶりにXperia SO-01JからXperia 1 IIへの乗り換え。アプリの移行は簡単だけど、不要なアプリの削除とか、POBoxがなくなって困ったりとかで2時間くらい。とりあえず快適かな。my daizのページは非表示にできないのかなあ。

しかし設定周りは毎回UI変えてくるから毎回覚えたのをリセットされて使いづらい。。。

ウェザタイ4.1で文章自動生成を作ったので、英語も対応してそろそろ英語圏進出したい、というのがある。

ただ、以前からちょっと躊躇してるのが各国規制。まあ日本で公開していても気にしないといけないんだけど、英語圏で公開するなら必須。

以前COPPAについて軽く調べたが、もう少し調べてみる。専門家ではないので信じないように、・・・というのは一応書いておかないといけないらしい。

COPPA

COPPAの定義では、13才未満を主な対象としているサービスで個人情報を集めたり、一般が対象のサービスでactual knowledgeを有する場合に適用される。最終的には客観的な判断だが、ウェザタイは13才未満が主な対象ではない。actual knowledgeは、要するに年齢を登録させるようなサイトだと、13才と知ってるじゃん、てことらしい? ウェザタイはユーザの年齢なんて知りようがないのでこれもあてはまらない。また、もしあてはまったとして、個人情報があるか? だが、ウェザタイに関連するところではハンドルだけで、COPPA上「オンラインコンタクト情報と同様に機能する場合に限る」となっていて、まあ当てはまらないでしょう。適当なハンドル登録できるし。今後、ハンドルじゃなくてメールアドレスでログインできるようにしたり、年齢を登録させたり、写真を投稿できるようなシステムを作ったりしなければ問題はないか。

GDPR

あとはGDPR。最近いろいろなところでクッキーの承認が出てきてうるさいのだが、これもやっておかないといけないのかな。ってことで、掲示板、クッキーを使わないようにした。ハンドルは毎回入れるようにして下さい。

Weather Typing 4.1 Windowsデスクトップ版を公開。主に、ディープラーニングを使った完全文章自動生成と、シミュレーションをベースにしたCPU対戦の追加。

ディープラーニングは、最終的に日本語WordNetを20000単語で学習した結果、割とまともになったのでとりあえずこれで。といっても文章としてはまだまだ改善の余地があるし、本体のサイズがかなり大きくなっているのと、ワード読み込み時に数秒かかるといった課題が残っている。

あと、配信を観たり掲示板で来ていた報告からいくつか改善。インストーラにデスクトップショートカットを付けたり。デスクトップショートカットは嫌いなんだけど、こう言う理由で付いてるのか。

これでWT2時代から残っていたレガシーな部分が全部なくなった。各プラットフォーム対応が終わったら、ウェザタイポータルか、ウェザタイ3Dか、ウェザタイオフラインか、新しいことをするかな。

WT4.1の進捗。一通り開発項目は完了。あとはテストツールを直してテストすれば終わり。主に文章の自動生成とシミュレーションベースのCPU。

で、マイナーバージョンアップなのでXamarinを4.5から4.6にアップデートしたが、今回のバグはLabelが使い物にならなくなったこと。マージンを指定すると文字が切れるし改行できないし描画が更新されない。今日は試行錯誤でいろいろ変えてみてたまたまうまくいったら全てのラベルに適用という不毛な作業をやっていた。

しばらく研究していたウェザタイの新CPUがなんとなくできた。ニューラルネットワークを使う方法をずっと研究してたんだけど、結局普通にモデル化した。ニューラルネットワークも、Seq2Seqでひらがな-ローマ字変換するところまでは作ったんだけど、そこからコストを反映させて学習させるのが難しいというか、普通にモデル化するのとあまり変わらない感じがして。

モデル化としては、1打鍵ごとに指の配置を決めてコストを計算して最適な指の動きをするようにしてみた。以下の動画のように、勝手にNNの代わりにXNを使うようになったり「ー」を間違えやすかったりでちょっと人間っぽくなってる気がする。もう少し高速化とチューニングすれば、もっと人と対戦してるような感じになるかも。ちなみにコスト計算は「タイピング Professional」の記事をだいぶ参考にさせてもらってます。

てことで、ウェザタイ3~ウェザタイ4で未だレガシーな実装が残っていた部分、文章自動生成とCPU戦をモダンにする目処が立った。これと配信等で分かったUIの問題点を直してバージョンアップって感じかな。

最後の結果表示、結構人間と似たグラフになっているのが面白い。

職場の人に紹介されて、Amazon Prime Video「アップロード」を視聴。まだシーズン1しかなさそうだけど、先が気になる。以降導入部分のネタバレあり。


ストーリーは、人の意識をバーチャル空間にアップロードして、バーチャルな世界で暮らすという内容。アップロードするには脳を破壊しつつスキャンする必要があるので、本人は死んでしまうというか、死にそうになったらアップロードしてするという設定。

で、一応不死の世界ができるってなってるけど、結局アップロードした人の意識は消滅してしまうから本人にとっては不死じゃないですよね。バーチャル世界の方の人は瞬間移動してきたように感じるだろうけど、それは新しく発生した意識であって、死んだ人の意識とは連続していない。

不死になる方法があるとしたら、昔のASCIIで読んだ記事にあった、脳細胞を1つ1つシリコンに置き換える方法なんですかね。それなら自分の意識のままロボットになれそう。


それはそれとして、テーマ的には資本主義。バーチャルの世界なんだからお腹も空かないし争いもない、みたいなのを想像するけど、実際は現実とほぼ同じ。フリーの朝食はあるけどそれ以外は課金制。しかもお金を払うのは現世の人なので、バーチャル世界に暮らしている人は現世の人に食べさせてもらう。なんでそうなっているかというと、世界を運営している会社が儲からないといけないため。資本主義を象徴している。

で、主人公はフリーのバーチャル世界を作る理想を掲げるフリーソフト開発者。資本主義に頼らずにどうやって解決するのか。続きは観て下さい。


Amazon Prime Video、日本語字幕をオフにできないのはどうにかならないのかな。英語字幕+英語音声が一番いいんだけど。英語の勉強には使えない。

モゴモゴバスター。4年半かけてようやく1周終わった。モゴモゴバスターは松尾光治さんの英語リスニング教材。Webページを見るとものすごく怪しいページに見えるけどむしろ格安。この教材をやるまでは英語ネイティブがネイティブ向けに話す内容が全然聞き取れなかったが、だいぶ聞き取れるようになった。気がする。


プログラマといえば英語だよね、ってことで大学時代に英語を本格的にやり始めた。15年くらいたって、英語教材とかTOEICの英語は簡単に聞き取れるようにはなったけど、アメリカ行って日常会話を聞いてもさっぱりという状態だった。DVDもフレンズはまあまあ聞き取れても他のドラマは難しい。で、どうも普通に手に入る英語教材と日常会話は違うな、ということに気付いて、何かいいものはないかと探していて見つけたのがこれ。

TOEICとか、ネイティブが日本人に話す英語は結局よそ行きの英語で、これはいろんな教材で勉強ができる。でもネイティブがネイティブ向けに話す内容はそもそも別の発音で喋っているので、慣れてないと英語にすら聞こえない。例えば「May I Help You?」は明らかに「メルプユー」って言っている。つまり文脈と使用頻度から明らかなケースでは、とことん省略してしまう。なので、「May I Help You?」じゃなくて「メルプユー」という単語?を新たに聞き取れるようにする必要がある。

でも、それに慣れようとしてもそんな教材はない(今はYoutube+自動字幕でできるかも)。のでこの教材はすごく貴重。

とはいえ1レッスンするとものすごく疲れるので、なかなか進まなくて4年半かかったんだけど。でも結構Youtubeとか、音自体は分かるようになってきた。その早さの英語に理解が追いついてないのでもっとインプットしないと内容が入ってこなかったりするけど。

てなわけで、TOEICは簡単だけど日常語は聞き取れない、もう一段上に上がりたい人にはお勧め。

3/26の東京都知事会見後からずっとリモートワークしてるのでそろそろ1ヶ月。普段と全く変わらない。OAに近い机と椅子もあるし、土日も別に用事がなければでかけないし、ずっと開発してるし。

ところでリモート飲み会が話題だけど、Denasuは2009年にリモート飲み会してますね。時代に先駆けすぎ。

Weather Typing、ワード完全自動生成版をテスト公開。まだ精度が低かったのでしばらく公開するつもりはなかったんだけど、いろいろ工夫したらだいぶよくなって公開したくなってしまった。

この前動画を上げたときからの変更点:

日本語WordNetをコーパスにしたこと。この前はWikipediaをコーパスとして使ってたんだけど、だいぶ単語が特殊なのと文章が長くなってしまってあまり良くなかった。Wordnetは、例文が簡単で短文が多いので試してみたらずいぶんウェザタイっぽくなった。あとはライセンス的にWikimediaはCC-BY-SAでちょっと使いづらい。日本の著作権法上はディープラーニングの学習に使うならよさそうだけど。

あとは、ウェザタイっぽくなるように文章をできるだけ短く生成するようにしてみた。やり方はまだ秘密。「ゼロから作るDeep Learning 2」そのままではあるが、C#に移植して内部をちゃんと理解したのでこういう細かいところをいじったりできる。


前からウェザタイのワードを増やそうと思って、記号ワードとか数字ワードとか考えてたんだけど、なんか違うな、と思っていた。で、自動生成はそれっぽい。極端な話、5chコーパス使って5chぽいワードとか使ったら面白そう。

学習するアプリも公開すれば、例えば各自好きな小説を学習して、そのワードで対戦しあうこともできるわけで、それも面白そう。

英語もこの方式なら大量に文章が生成できるので、ついに海外に向けて公開してもよいかも。

研究中のディープラーニングを使ったワード完全自動生成、日本語版がなんとなくできた。7単語で切っているので中途半端な文になってるけど、割といい感じ。これでもかなり面白いけど、もうちょっと精度上げればよさそう。括弧の対応とかがうまくいってるのがすごい。

前回の英語版は「ゼロから作るDeep Learning 2」ほぼそのものなのだが、日本語版はフリガナとかちょっと一工夫している。

コーパスはWikipediaの一部、形態素分析はNMecabを使っている。実装はC#、行列の内積計算だけCで書いているので、Xamarin使ってどのOSでも動かせる。

タイピングソフトと文章自動生成は相性が良いと思ってたけど、そのうち当たり前になるかな。ある分野の文章で、毎回違う文章を打てるのがいい。例えば夏目漱石の小説を学習したら、夏目漱石っぽい文章を打つタイピングソフトになったり、いろいろ可能性がありそう。

昨日のブログ、TwitterにURLを載せたら直後に公式で触れられてしまい、アクセス数が爆発。アクセス負荷でdenasu.comが開けなくなるなんて初めてだ。あ、いや、「逆襲のもげぇたん」のときはもう一桁多かったか。

ロビーも大会中エラーでまくってたのだが、最後ブログにとどめをさされて落ちていた。後で見たらランキングもそこから落ちていた。

ウェブサイト負荷が大会中とかに起きたりすると大会運営できなくなってしまうわけで、かといってそのためにウェブサイトと対戦サーバを分けるのもサーバ代の無駄になりそうだし。スケールアップの手順でも確かめるか。

で、Windowsストアのアクセス数が更新されたので、ダウンロード数を集計。昨日の配信前後のウェザタイのダウンロード数がWindowsだけで約4000。最初にVectorのニュースに載ったときより多いかも。ちなみに昨日のブログのアクセス数が約2200。ウェザタイのページに至っては10000を超えていた。これがインフルエンサーの力。。

にじさんじ打鍵王を観戦。Weather Typingとしての経緯は以前の日記を参照。

その後、REALFORCE TYPING CHAMPIONSHIP(RTC)でお世話になっている東プレさんが協賛することになり、準優勝にはREALFORCEキーボードとREALFORCEマウスが付くことに。REALFORCE MOUSEは最近出たばかりなので、宣伝になるとよいですね。同時視聴3.8万くらいまでいって打鍵王がTwitterトレンドにも入ってたみたいだし。RTCの注目度も上がるといいな。

大会の内容について

前回の日記にも書いたとおり、参加者が分からないと面白さが半減する、と思って何人かのライバーの方が配信していたWeather Typing練習を見たりした。さすがに誰を応援する、とまではいかなかったけどそれでも面白さが増した気がする。

タイピング的には、200-600kpmくらいで差が大きかったけど、同じような速度でブロック組合せを作ってたのでそれほど一方的にならず、最終戦に向かってだんだん盛り上がっていてよかった。RTCはガチ対戦で魅せる感じだけど打鍵王はキャラクターで魅せる感じ。どちらもよい。

サーバ運営的に

抽選会が1万人以上の同時視聴になっていたのである程度予想してたけど、大会中にかなりの人がサーバに接続して対戦をしていた。だいたい常時40人以上がつないで、30人くらいが対戦していたのだが、大会の方はラグもなく、まずまず快適だった。CPUも4%くらいでメモリも全然余裕。このくらいは余裕で堪えられるってことか。ただ、ゾンビプレイヤーが結構発生していて、ずっとエラーが出続けていて怖かった。今もエラー出てるので、どこかのタイミングで再起動しないと。

あとは50分くらいのところで、サーバにつながらないトラブルがあり、後でログを確認したらサーバが落ちていた。1分で自動再起動されるのと運営さんが落ち着いて対処して頂けたので大きなトラブルにはならなかったけど。

Weather Typing的に

2年ほど前に、今回主催者の鈴木勝さんがタイピング対決~負けたら台詞読み~を配信していた。そのとき、これからはもっと配信向けに改善しないと、と思って以下改善した。

  • 対戦できる最大人数の設定
  • 観戦、ホスト観戦
  • ラグ対策

概ねうまく働いていた気がする。ラグについてはさすがにVTuberの人はいい回戦を使っているからかも知れないけど、LAN対戦と遜色ないレベルで観戦できたように思う。

まだちょいちょい画面が変になるので直さないといけないかな。名前と☆が重なってたり。

あと今日のために急いでMacOS版を作って公開したけど、特定の環境で動かないとかがありそうかな。情報が欲しいところ。

ずいぶん前から研究していたワードの完全自動生成がだいぶ進んだ。

これで毎回全く別の文章が生成されるようになっている。今は7単語で切っているので文章が途中で切れている感じになってるし、いまいち面白いかは分からないけど。この後形態素分析入れて日本語の実験をするつもりだが、日本語だと面白くなるかなあ。

基本的には「ゼロから作るDeep Learning 2」のRNNLMなのだが、Xamarinで動かすためにC#で組み直した。パープレクシティ135なのでまだそこまで精度が高いわけではないが、これでも割とそれなりに見える。

4/4土曜日、Youtubeで「にじさんじ打鍵王」が開催される。にじさんじさん所属のVTuberがトーナメント形式で対戦するというもので、その抽選会が配信されたので見てみた。主催の鈴木勝さんは以前も何度かWeather Typingで配信をしていた方。

タイピング界隈でもにじさんじ内で大会してほしいという話題があったり(パソ活ラボ【にじさんじ杯】タイピング王決定戦をやったら面白いんじゃないかという話)。その辺りが関係しているのかは分からないけど、ちょっと前ににじさんじさんから配信に使わせて欲しいという依頼があったので是非、と。

で、タイピングの大会と言えばタイピング日本一を決めるREALFORCE TYPING CHAMPIONSHIPが有名。こちらは3年開催してようやく選手が知られてきて、タイパー界以外の人も見て楽しめるようになってきたかな、というところ。なんだけど、こういう形だと最初から視聴者が参加者を知っているのでその辺は有利だな、と思った。逆に言うと、私もにじさんじさんの動画を見ていかないと本当の意味で楽しめないってことか。1週間で。

日テレ「ヒルナンデス」で「REALFORCE TYPING CHAMPIONSHIP」3連続優勝者のmiriさんが出演されていた。アナウンサーの方とWeather Typing対決をされていたが、意外にも結構早かった。いっそこのままアナウンサー界でタイピングが流行らないかな。

最近いろいろウェザタイ関連のイベントがあるので、過去のイベントをまとめた。私宛に連絡が来ているものの中で、学校、団体、個人を省いた上で、載せても大丈夫そうなもののみ。こうしてみるといろいろありましたね。ちなみに雑誌系もリンクしようとしたらことごとくなくなってるのでやめた。