keyball39の自作キーキャップについて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/3fdda8ae-1a58-e561-b92c-ee8846815889.png)

# なんで自作キーキャップを作ろうと思ったのか
みなさん仕事でどんなキーボードを使っているだろうか？私はあるとき知り合いに、[ergodox ez](https://ergodox-ez.com/)というキーボードをおすすめされて以来、（普通の人よりは）キーボードについてこだわるようになってしまった（沼にはまってしまった）。左右分離キーボードがあるというのは知っていたが、それよりもあるキーの挙動を自由に変えられるという機能に強い魅力を感じたのだ。これにより、たとえばあるキーを押している間は、あるキーが十字キーの役割になり、ホームポジションを崩す必要がなくなる→タイピングが高速になるのである。現在は[keyball39](https://github.com/Yowkees/keyball/blob/main/keyball39/doc/rev1/buildguide_jp.md)というキーボードを使っており、このキーボードにはトラックボールがついているため、さらにマウスを使うときもホームポジションを崩さずに済むという優れモノである。

 keyball39のような半田付けなどを行って自分で作るタイプを自作キーボードというのだが、私はここに違和感を覚えた。「説明書通りに作っただけで、どこにも自分のオリジナリティ入って無くないか？これは自作なのか？？」しかし、基板から作るのはハードルが高そうである。そこで、色々調査するとキーキャップなら自分で作れることがわかった。幸い3Dプリンターを持っていた私は自分のキーボードを自作キーボードと言い張るために、キーキャップ作りという新しい沼に突入した。

# この記事について
keyball39のキーキャップ作成についての情報共有を行う。ざっくりとした作成の流れを書いているので、興味のある人はこんなことをするんだ、となんとなく感じてもらえると嬉しい。

# 用意するもの
- 3d プリンター（私が持っているのは[Banbulab P1S](https://jp.store.bambulab.com/products/p1s?gad_source=1&gclid=Cj0KCQjwvpy5BhDTARIsAHSilyl4-jZOQlZ8Uj8kfTG0trLtz-Aa6PLp3VYkvW_jXmM7OmxEz8IxQMQaAm3cEALw_wcB))
- OpenSCAD（[こちら](https://openscad.org/)からinstall可能）
- うまくいかなくてもあきらめない根性

# キーキャップのステムを作る
ステムとはキーキャップのこの部分である。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/bcc7177f-a797-ff7d-e73d-efbc8804682b.png)
一見はまればなんでもよいかと思ったが意外と微妙な調整が必要だった。私のkeyball39では下記の親指赤部分がロープロファイルでその他はCherryMXとなっており、両方作る必要がある。この部分をまずは設計して、蓋をするようにキーキャップを作っていく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/083acb79-8ef5-aba1-9eee-0475b970fc93.png)
（画像は[こちら](https://shop.yushakobo.jp/products/5357?srsltid=AfmBOorEn9BMg-ZM6UiR-9NSmu6A0H7hICOGiPbGiBiX9vakbGvYLMFG)の公式販売ページより）

 
### CherryMXのステムを作る
元々は私はモデリングにAutodesk Fusionを使っていたのだが、キーキャップ作成にあたって、[こちら](https://qiita.com/zk_phi/items/ab99315ebaef66e84aa0)のページを参考にOpenSCADへ鞍替えした。Fusionはとても使いやすいのだが、比較的単純な図形を作る場合は、OpenSCADの方が便利である。OpenSCADでは、プログラムのコーディングのようにして、モデルを作成していくため、今回のような微妙な角度や寸法を調整していくのがやりやすかった。完成したステムがこちらである。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/916ca8d4-1a94-cb42-32a0-0d72b8ac4630.png)

この微妙な軸足の大きさと隙間の幅を決めるのに何通りもの試行錯誤を行った。以下はその屍のほんの一部である。（キーキャップまでプリントすると無駄なので、ステム部分だけ作っている）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/f2148fbd-bd45-edb9-d751-a85ea10a97d7.png)

隙間が大きすぎるとすかすかになってしまい、小さすぎるとはまらない。さらに軸足が大きいとキーを押したときに微妙なひっかかりができてしまう。3Dプリンターのほぼ限界精度を攻めている。

### Kailh Chocロープロファイルのステムを作る
 こちらは比較的すぐでできた。cherryより簡単な作りのためであろうか。できたものはこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/eed123f2-eb64-e091-3512-d8fd1956254f.png)

# キーキャップを作る
いよいよ本番のキーキャップの「がわ」を作っていく。先ほどのステムとこれから作るものを合体して、キーキャップとなる。今回はkeyballl39のうち以下のものに種類を分けて作成した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/77481ec8-f9ce-c993-564e-9d11e72ab736.png)

### 1行目
1番上の行は、指の届きやすさを第一に作成した。実は今回keyball39のキーキャップをデザインするのは二回目なのだが、最初のものは一番奥に指が届きずらく、タイピングのしづらさを感じた。作成したものはこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/d6fad644-b1ef-49af-70d0-fd565740654e.png)

わかりやすく、2行目のものも一緒に写した。指が届くように他のものより高めに設定しており、かつ押しやすいようにかなり勾配をつけてある。さらに、キーのトップ面部分も移動することで、なんなく指が届くようにした。

 ### 2~4行目
 ここで急にはしょるが、別に書くのが面倒になったわけではない。これらはほぼ同じ形で、傾きが若干違うだけなのである。作成したものはこちらだ。（手前三つ）
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/854bfb0a-9dbc-20bf-63da-8c70470e6f58.png)

2行目のほうが、3,4行目より若干傾きが緩やかになっている。これは指をナチュラルに置いた時の角度を考慮したためである。~~色々頑張っていたが途中で調整が面倒くさくなった~~。
  二行目のうちホームポジションのバーが付いたものはこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/f5caf9f5-7f65-84ee-1f04-135cbb45ff83.png)

### 親指1
先ほども言ったように実はkeyball39のキーキャップを作成するのは二回目なのだが、一回目は親指は市販のキーキャップを使っていた。そして、どうしてもそれが押しづらく、あらためて作ろうと思ったのが、今回の作成の動機の一つである。市販のキーキャップのトップ面は比較的平らであり、親指をおくと腹の側面があたってまい、どうしてもフィットしないのである。そこで、ここのキーは思い切って、回転をつけてみた。作成したものはこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/3c5d5483-7a50-1fad-7b2c-c1335374b773.png)
このようにすることで、親指をナチュラルに置いた際のくぼみにフィットし、なんとも置き心地がよいのである。ここが今回一番頑張って点かもしれない。

### 親指2, 3
残りの親指も基本的にはくぼみの傾きをまっすぐと逆方向に回転を入れて作成した。とくに親指3は1と同様に回転を入れることで、押したときのフィットが市販品のものよりかなりしっくりくるようになった。（左が2, 右が3）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/c5f28074-9ea6-eab1-8a48-ffac7099efe2.png)

# 完成
全て完成して、はめたものがこちらである。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/237e4a7c-cd07-c207-7184-02f9b5fca3e5.png)

1行目の工夫により、奥に指が届きやすくなった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/526ce804-da9a-0d33-7afc-69c75a4a71f3.png)

親指も元のキーキャップよりかなり押しやすくなった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138090/c479cc22-06fd-81f6-611e-9f8656117153.png)

見てわかるように実はケース+アームレストも自作している。しかし、こちらはまだ納得できるものができておらず、こちらもでき次第内容を公開予定である。

# 参考
[キーキャップ設計による OpenSCAD 入門](https://qiita.com/zk_phi/items/ab99315ebaef66e84aa0)