【日記】HKKB Lite2にCherryMX軸用ののキーキャップを付けるためにやったこと

先日、秋葉原にある遊舎工房に行きました。

 前から行きたい行きたいと思ってたんだけど、なかなか機会が無くて(最近はハードの工作とかもしてなかったからそもそも秋葉原に行ってなかった)タイミングが無かったんすよね。 良い感じにTwitterで遊舎工房に明日行くよって友達に絡んで着いていった。

 これを買いました。肉球のやつ。

 

最初からキーボードの自作ってちょっとハードル高いけど、今使ってるHHKBのキーをワンポイントつけかえるのって手出しやすいし オシャレじゃん!? って目論んだ

 

んで

なんかよくわからんけど、肉球キーボードはCherry軸っていうキースイッチの規格で、HHKBにセットするには専用のアダプタが要るみたい。

 

なので

中華サイトでアダプタを買った。

 多分これと同じやつ。さすがにひとつ分だけ海外から取り寄せるのは無理だったのでフルセット買った。めちゃくちゃ余ってるので欲しい人は言ってください。着払いか会った時にあげちゃいます。

 

なんだけど

どうやらこのアダプタ、HHKBのProfessionalとかに使えるだけで僕の使っているLite2って機種には使えないみたい。

 

アダプタ自体に手を加えながらやっていくことにした。

f:id:ten0313:20210522134115j:plainまず、アダプタの形がLite2のしかくい穴に通らないので

 

f:id:ten0313:20210522134247j:plainやすって通るようにした

f:id:ten0313:20210522134409j:plainアダプタ両脇にくっついているカサの部分とツメみたいな部分をカッターで切り落として円柱状にしたあと、ケシゴムを接着剤でくっつけて高さを上げた

 後はキーボードの本来キーキャップがあったところに、それの代わりにアダプタを通して肉球キャップをつけたら完成

 

結果

まあ上手くいった。でもやっぱり打鍵感は変わったし(悪くなったというよりも、ちょっと茶軸っぽくなったって感じかな)(にょきにょき押す感じ)、キャップを支えてるものが、四角からアダプタの円柱状になったことでちょっとグラつきがでてる。コレ、Lite2用にモデリングして3Dプリントして自作アダプタ作ってもいいな

UnrealEngine Niagaraを使ったパーティクルシステムについて

公式のチュートリアルをやってる

Niagara のクイック スタート ガイド | Unreal Engine ドキュメント

雲っぽいメッシュをblenderで作ったんだけど、明らかに大きすぎるのでパーティクルでの発生時に小さくしたい。

f:id:ten0313:20210316200550p:plain

ここでやった。小さくはなったけどやりかた合ってるんかな。

カスケード(?)のパーティクル作った時はXYZの座標で縮小比設定できたから、ひとつの値で一律で変更しちゃってるの正しいのかな...ってなってる。

大釜を混ぜる

釜を混ぜる以上、液体をゲーム内で表現しなくちゃいけない。とりあえずオリジナルで作ってみる。

 

とりあえずこういう方法を考えた。

f:id:ten0313:20210303083704j:plain

当たり判定のある球体と、それを包む大きめの当たり判定の無い球体を水粒子にみたててつくってみる。

 

これをすることで

f:id:ten0313:20210303083840j:plain

うまい具合にお互いが干渉しあって、プレイヤー視点からは当たり判定の無い外殻の部分が表示されて水っぽくみえるんじゃないかって算段。

 

やってみた


良い感じじゃない? 

もっとわかりやすく、外部分の球を半透明にしたやつ。

 

f:id:ten0313:20210303084848j:plain

ユニランかな?

 

さすがにちょっとボールボールしてるし、鍋からなんかはみでてる。でも良い感じだし球をもっと小さくしてもっと配置してみれば!!!!

物理エンジン的に、大量の球がぶつかりあい、なおかつかきまぜられる処理はキツかったみたい。 パソコンがブンブン言いだした。鍋の底を覗くと視界が固まる。魔法使いの鍋なんだしそれはそれでいいのか。でもゲームとしてはダメかな。

 

ちょっとやりかた考えないといけない

 

VRゲーム開発のイメージをつくる

なんにせよ何かを開発する時や作る時って「なにを作るか」を明確にしておくのが重要だなってこれまでに学んできてるから、それからしようと思う。要件定義ってほど厳密なのはまだやらなくて、とりあえずのイメージ

目的

VRでゲームをつくる
・ゲーム開発コンテスト、ぷちコンに提出する。
「没入型シミュレーション」と「創発的ゲームプレイ」のひみつ|ぱソんこ|note この、「科学演算」要素をいれたい
みっつめの科学演算ってのは、木を熱したら火が生じる~とか氷を放置してたら水になる~とかの組み合わせでなにか起こるかを予め決めといて、その上でゲームをつくっていくこと。それによってプレイヤーは「あー、これをこうしてこうなるんだったら、あれとコレを混ぜると...」みたいな学習というか実験っぽいおもしろさが生まれたりする...って解釈なんだけど合ってるかな

魔法使いになって大釜をグルグル回す体験がしたい。
f:id:ten0313:20210303065419j:plain
こういうイメージ。
f:id:ten0313:20210303072204j:plain

ラーメン屋シミュレーターとかみたいに一定時間内に薬を作って捌くゲーム
www.youtube.com

ステージはこんな感じ
f:id:ten0313:20210303072845j:plain

プレイヤーを一定の位置からあんまり動かしたくない。ビートセーバーみたいに棒立ちのまま腕だけブンブン振るだけで(実際にブンブン振る必要があるのかはわからないけど)遊べるのが理想かなって思ってる。小さいスペースで遊べるのと、動きまわるとすぐVR酔いしちゃう気がするから。もちろん、現実のプレイヤーを動かさないだけじゃなくてゲーム内のキャラも移動させたくない。酔うから

f:id:ten0313:20210303073302j:plain
プレイ中の視界はこんな感じ。

ゲームの流れ

  1. ゲームスタート、朝が始まって終了までのカウントダウンも始まる
  2. 窓から薬作成の依頼を持った動物がやってきて「腹痛止めの薬をつくって」とか「風邪薬をくれ」とか言ってくる>
    f:id:ten0313:20210303073743j:plain
    動物にもいくつかバリエーションあったら可愛い
  3. 手元の本でレシピを確認する
  4. 材料の棚からレシピ通りに材料を選んで大釜で混ぜる
  5. 材料棚から空き瓶を拾って薬をそそぐ
  6. その時点でどういう薬か判定されて、ちゃんと混ぜられてるか 材料はちゃんとしてるかとかで点数がつく
  7. 依頼をもってきた動物に薬を渡して点数が合計点に入る(これ代金とかでいいのかも)
  8. 日暮れになって(時間が終了して)ゲームオーバー、一日に稼いだ金額がスコアになる

って感じ

UE4でVRゲームをつくりたくて

VRのゲーム、作りたいのでちょっとUnrealEngine4久々に起動して触ってる。

 

チュートリアルというかドキュメント的なのあんましなくて難航してるかも。

仮想現実のベスト プラクティス | Unreal Engine ドキュメント
↑これ読んだ。開発の方法ってよりかはVRコンテンツの手法というか気にすべきテクニックって感じだった。

  • 爆発とかで衝撃を表現する時とか、画面を揺らさないで(VR酔いするから)
  • プレーヤーの目線は普段のUE4での開発より少し下げといた方がいい
  • 設置するモノはプレイヤーの目線や慎重を考えて実際のサイズと同じくらいにすると良い
  • 階段よりエレベーターの方がいい
  • 歩く時、画面を揺らさないで(酔うから)
  • 色は彩度落とした方がいい

とか。今後役立ったらいいな。

でも今は人を吐かせてもいいから形をつくっていきたい。

Flutter触ってみた

なぜ

今年ずっと業務委託として関わらせてもらってる開発のプロジェクトがあるんですけど、今それを僕はReactを使ってWebアプリとして触ってるんですね。 でも内容がWebアプリに合ってる内容かと言われるとウーン...って感じなんです。PWAに対応するとか色々方法はあると思うんですけど(そもそも僕はPWAが好きじゃないんですけど)明らかにネイティブアプリとしてリリースした方が良さそう。

それで将来的にネイティブアプリに対応させる時とか自分が個人的にアプリ作りたいなーって時のためにネイティブアプリつくtれるようになっとこうってのが理由です。

なにを書くか

そんなに迷いませんでした。Flutterをかくことにしま。周りの人でFlutter良い!!みたいなこと言ってる人が多いのが理由です。

環境作ります

note.com

これ見ながらやりました。特に詰まるところもなく完成しました。前にUnrealEngineでARゲーム作った時にAndroidの実行環境作ってたのでそれもあって詰まらなかったのかもしれないです。(でも手順も少なかったから関係無いかな)

Flutter doctorってコマンドがあるんですね。Flutterの実行環境に足りないこととかをチェックリスト形式で返してくれる。

さすが天下のGoogle様だな! って感想です。

✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

ってエラーだけ、なんかVSCodeの拡張とか入れなきゃいけないみたいです。

できた

マジで楽ちんだった。なんか作るか~~~

CivitechChallengeCup[U-22]に参加してたって話

コレに参加していました。

ccc2020.code4japan.org

8月最初くらいにツイッターで友達がおもしろそうなコンテストがあるっていうので一番のりしました。

 

なんかチームとか組んでないけどまあみんなコンテスト内のSlackで結成するみたいだし誰か空いてる人いるだろ~ってワークスペース入ったら知ってる人がほぼほぼ知り合い同士で組んでてぼっちで泣いてました。

「誰か~~班で空いてるとこないかな~ 飯野君はやくどこかのおともだちに声かけて班にいれてもらおうね~」って先生に言われて「あっあっ」ってなった小学生の自分を思いだしました。

 

ちなみに僕のチャンネル入っての一声はこちら

f:id:ten0313:20200930001222p:plain

なんか運営からここ(自己紹介用のチャンネルがあった)で自己紹介してね~~みたいなこといわれたのに誰も発言しないから先人きったろうってはしゃいだらこうなった。

 

とりあえずどっかのチームに入るか~~~っておもったけど、入りたいチームもなかったので自分でつくってチームメンバーを募集した。

 

 

んでいろいろあって作ったのがこれ

iinoten.github.io

 

ツイッターで拡散の勢いのあるツイートを取得して、信頼にたりる内容かどうかをチェックしてくれるbotを作った。初めてpython書いたので色々勉強になった。

チェックの方法としては、ツイートの文章内を分析したりして「人の目を引きやすい文章かどうか」とか「ソースとなるURLがあるかどうか」とか「URL先のことと合ってる内容の投稿かどうか」とかをみたりしてる。

 

良かったこと

チームリーダーやったのでチームでどうタスクを振ったらいいかとか俺はなにをすればいいのかとか色々知見が得られた。

あとpython、食わず嫌いだったけどわるくないなあって感想になった。数学的なことをするんだったらpythonってのもわかった気がする。便利なライブラリとか記事が多い。あとネットの記事が初学者向けなのがおおくて触りやすかった。

github.com

githubのページはこれ。がっつりコミットしてたので芝生がぼうぼうになってるのも満足感あっていいなあ