Blender3 専用キーボードをつくる

最終更新日

せっかくのGWなので、Blender を試してみる。

とてもよい動画があったので感謝して宣伝。

動画の通りに進めると、きれいな林檎ができて素晴らしい。
とはいえ、経験がないので空間認識がむつかしい。とくに、Viewの見え方を正面とか上からと変える視点操作が、しんどい。
HHKBには、テンキーがないので、便利なshortcutが使えない。

ということで、便利なテンキーライクなものをつくってみる。

使うのはいつものsu120。

layout

default (layout 0)

画面の視点移動のためのキーを3段目に配置。

  • Front View ... numpad1
  • Side VIew ... numpad3
  • Top Down View ... numpad7

少しずつ回転するための操作は、ローターリーエンコーダーで行う。
これが便利!

Front View

Leftward-facing view / Rightward-facing view

横回転

Upward-facing view / Downward-facing view

縦回転

objectの操作に必要なキーを一番上に。

  • g ... grab
  • r ... rotate
  • s ... scale
  • e ... extend
  • tab ... edit mode 変更

変更の方向を決めるのは、 xyz

あとは使いそうな 便利キー。

  • a + shift ... Append
  • h ... hide

修飾キーは、 shiftcommand

layout 1

普通のキーパッドっぽいテンキーモード。

key top デザイン

このために買っておいたPOSレジキーのような、自分で印刷した紙を仕込めるキーキャップを使う。

日本ならここで買える。

キーキャップにこんな感じで印刷した紙をカッターで裁断して挟む

pdf 版はこっち。

blender_keycap

source code

keycap.c

#include QMK_KEYBOARD_H

#include <print.h>

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

  /* Default Layer
   *  Master Side (USB Cable Connected Side)
   *  ,-------------------------------
   *  |  MOD    g    r    s    e XXXX 
   *  |  tab    x    y    z    j XXXX
   *  |    a    h pad1 pad3 pad7 XXXX 
   *  | XXXX LSHT XXXX pad0 LGUI XXXX
   *  | XXXX XXXX XXXX XXXX XXXX XXXX 
   *  `-------------------------------
   */

  [0] = LAYOUT( /* Base */ 

    DF(1),    KC_G,     KC_R,     KC_S,     KC_E,     XXXXXXX,  
    KC_TAB,   KC_X,     KC_Y,     KC_Z,     KC_J,     XXXXXXX,  
    KC_A,     KC_H,     KC_P1,    KC_P3,    KC_P7,    XXXXXXX,  
    XXXXXXX,  KC_LSHIFT, XXXXXXX, KC_P0,    KC_LGUI,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  

    // RIGHT HAND: ifdef MASTER_RIGHT
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX
  ),

  /* 1 Layer
   *  Master Side (USB Cable Connected Side)
   *  ,-------------------------------
   *  |  MOD    g    7    8    9 XXXX 
   *  |  tab    x    4    5    6 XXXX
   *  |    a    h    1    2    3 XXXX 
   *  | XXXX LSHT XXXX    0 LGUI XXXX
   *  | XXXX XXXX XXXX XXXX XXXX XXXX 
   *  `-------------------------------
   */

  [1] = LAYOUT(

    DF(0),    KC_G,     KC_7,     KC_8,     KC_9,    XXXXXXX,  
    KC_TAB,   KC_X,     KC_4,     KC_5,     KC_6,    XXXXXXX,  
    KC_A,     KC_H,     KC_1,     KC_2,     KC_3,    XXXXXXX,
    XXXXXXX,  KC_LSHIFT, XXXXXXX, KC_0,     KC_LGUI, XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX, XXXXXXX,  

    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  
    XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX   
  ),
};

void matrix_init_kb(void) {
  debug_enable = true;
  // debug_matrix = true;
  // debug_mouse  = true;
}

void encoder_update_user(uint8_t index, bool clockwise) {
    if (layer_state == 0 || layer_state == 1) {
        if (index == 0) {
            if (clockwise) {
                // Leftward-facing view
                tap_code16(KC_P4);
            } else {
                // Rightward-facing view
                tap_code16(KC_P6);
            }
        } else {
            if (clockwise) {
                // Downward-facing view
                tap_code16(KC_P2);
            } else {
                // Upward-facing view
                tap_code16(KC_P8);
            }
        }
    }
}

つぎは、3Dプリンタでエンクロージャーを作成。

Blender3 専用キーボードをつくる(ケース編)

Blender3 専用キーボードをつくる(ケース編)

2022.05.09

これでBlenderも上達するはず!

シェアする