アイキャッチペーパークラフト1280x670

Blenderで作るmicro:bitペーパークラフト

こんにちは、木村です。

さて今回は私もmicro:bitで遊んでみたくなったので、micro:bitを使って作っていきたいと思います。

micro:bitで作るものってだいたい配線が表に出まくっててプロトタイプ感が満載のものばかりなので、パッと見完成度高く見えるものを作りたいなと思って考えてみました。

3Dプリンターでケースを作るというのがまず考えつくのですが、前回までOculus Go必須でお金がかかるものだったので、お金がかからないようにということでペーパークラフトでmicro:bitの入れ物を作ることを考えてみました。

こんなmicro:bitロボットを考えてみました。機能はしゃべるだけです。でも、なかなかかわいくできたんじゃないかと思います😁
「microboy(仮)」と私は呼んでいたのですが、娘は「コピペテックちゃん」と呼んでいるので、それでいいかな(笑)

micro:bitはおまけ程度で、メインはBlenderでのペーパークラフト作りです。それでは、作っていきましょう。

1. 必要なものを揃える

今回はそんな高くないです。

・micro:bit (スイッチサイエンス 2160円)
・micro:bit用MI:電源ボード(スイッチサイエンス 734円)
・薄型スピーカー(スイッチサイエンス 117円)
・エレコム ペーパークラフト専用紙 EJK-KC2WN(Amazon 318円)
・のり、両面テープ、カッターマット、カッター(100円ショップでOK)
・カラープリンター

スイッチサイエンスのリンクしか貼っていませんが、同等品なら他で買っても問題ないです。スピーカーは圧電スピーカーは音が悪いので、8Ω スピーカーとか書いてあるやつにしてください。

ペーパークラフト用紙も各社から出ているのでお好きなもので。今回は上記の紙を使いましたが、特に問題ありませんでした。

カッターマットはなくてもいいですが、あった方がいいです。

カラープリンターはなければコンビニ等でプリントしてください。

2. Blenderでペーパークラフト展開図を作る

以下のような3DモデルをBlenderで作っていきます。この章の最後でBlenderのファイルも出力したPDFファイルもダウンロードできるようになっていますので、途中で行き詰まったらそちらをご利用ください。

2-1. Blenderのインストール

自分の環境に合ったBlenderのインストーラを以下のサイトからダウンロードして、インストールしてください。

なお、この記事はBlender v2.79bで執筆しています。

2-2. Blenderの初期設定

Blenderに詳しい方は飛ばしていただいて構いません。単位をメートル法、平行投影、Cyclesレンダーを使用していることをご認識の上で進んでください。

Blenderを日本語化

[File] > [User Preference]を開きます。

[システム]タブを開き、右下の[International Fonts]にチェックを入れ、[Language]を「日本語」を選択します(日本語を選択すると、下の画面のようにこの辺りのメニューラベルも日本語になります)。その下の[インターフェース][ツールチップ]にチェックを入れます。

以降このユーザ設定の各タブの設定を変更していきます。

インターフェース

[カーソル深度]のチェックを外し、[選択範囲を中心に回転]にチェックを入れます。

入力

マウスホイール(中ボタン)がない場合は、[3ボタンマウスを再現]にチェックを入れ、テンキーがない場合は、[テンキーを模倣]にチェックを入れます。中ボタンは「Alt + 左クリック」で再現できるようになります。

左下の[ユーザ設定の保存]をクリックして、ユーザ設定を保存します。

スタートアップファイルの保存

[ファイル] > [スタートアップファイルを保存]をクリックし、次回起動以降も今のユーザ設定が反映されるようにします。

平行投影に切り替える

左下の[ビュー] > [透視投影/平行投影]をクリックし、平行投影に切り替えます。

現在がどちらになっているかは3Dビュー左上に表示されています。

メートル法に切り替える

プロパティビューの左から三番目のアイコンをクリックし、[長さ]を[メートル法]に変更します。

Cyclesレンダーに変更

画面上部よりレンダーを「Cyclesレンダー」に変更します。

設定は以上になります。詳しい説明は書いていませんが、とりあえずおすすめ設定と思っていただければと思います。

2-3. Export Paper Modelの有効化

ペーパークラフト展開図の生成に、Blenderアドオンのaddam/Export-Paper-Model-from-Blenderを使うので、これを有効化します。

[ファイル] > [ユーザ設定]を開き、[アドオン]タブの[Import-Export: Export Paper Model]にチェックを入れ、[ユーザ設定の保存]をクリックします。

もしアドオン一覧にない場合は、以下の手順で追加してください。

上のgithubのio_export_paper_model.pyの[Raw]ボタンからファイルを保存。
アドオンタブ下部の[ファイルからアドオンをインストール]ボタンでダウンロードしたio_export_paper_model.pyを選択し、インストール。

2-4. 基本操作

ここからしばらく動画で説明していきます。その前に覚えておいてほしいBlenderの操作をいくつかご説明します。

Windows
・オブジェクトの選択:右クリック
・視点の回転:マウス中ボタンドラッグ
・視点の平行移動:Shift+マウス中ボタンドラッグ
・ズームイン/ズームアウト:マウススクロール
Macトラックパッド
・オブジェクトの選択:二本指タップ
・視点の回転:二本指ドラッグ
・視点の平行移動:Shift+二本指ドラッグ
・ズームイン/ズームアウト:二本指でピンチ
視点方向の切り替え(OS共通)
・1:正面から、Ctrl + 1:背面から
・3 : 右横から、Ctrl + 3:左横から
・7 : 上から、Ctrl + 7:下から

2-5. 頭を作る

最初に頭を作ります。最初に中央に表示されている立方体の寸法をX: 52mm、Y: 20mm、Z: 42mmにします。

2-6. 体を作る

体は頭をZ軸方向にコピーして、X:40mm、Y:20mm、Z:30mmにします。
上面を小さくします。Sキー(Sacle)とマウスで小さくできます。

2-7. ほっぺたを作る

半径4.2mmの円を配置します。
X軸対称にコピーするには、[Shift + S]で[カーソル→原点]を選び、[.](ピリオド)キーで原点にピボットを移動し、[Shift + D]でコピー、[Ctrl + M] > [X]でX軸対称にミラー反転します。

2-8. 手を作る

手は半径5mmの円と半径5mmの平面とちょっと小さめの円を組み合わせます。くっつけるには[重複頂点の除去]を使っています。

2-9. 足を作る

足も半径6mmの円と半径5mmの平面にちょっと小さめの円を組み合わせて作ります。

2-10. 色を塗る

色はマテリアルで面ごとに設定していきます。

2-11. 顔と体に画像を貼る

顔はUVマッピングの機能を使い、顔とお腹にだけ画像を貼ります。
以下の2つの画像を使用してください。

ちなみに動画ではやっていませんが、UV Editingモードで[画像] > [画像をパック]をするとblendファイルに画像が埋め込まれます。しない場合は、開いた画像ファイル自身を参照しているので、blendファイルだけを移動したりすると3Dモデル上で画像が貼られていない状態になります。誰かに渡すときなどはパックするとよいです。

2-12. 手足の差込口を作る

手足の差込口は辺の細分化とナイフツールで作ります。

2-13. ペーパークラフト展開図をエクスポートする

[Ctrl + J](オブジェクトの統合)で一つのオブジェクトにする必要があります。

[シームを付ける]で切り口をどこにするかを設定し、[Export Paper Model]で展開図を出力します。なお、シームはつけなくても自動的にいい感じに切ってはくれます。

[Export Paper Model]を押した後の設定は以下のようにしてください。動画では[Resolution]を設定し忘れましたが、300くらいにした方が印刷したとききれいです。

・フォーマット: SVGが印刷可能ならSVGがおすすめ
・Create Numbers: チェックを外す
・テクスチャ: From Materials
・Resolution (DPI): 300

フォーマットはPDFだと折り線を点線に設定しても実線になってしまうので、印刷できるツールがあればSVGがおすすめです。

ここまでのBlenderのファイルは以下に置いておきます。

ここで出力されたPDFファイルは以下になります。

SVGファイルでパーツを再配置した見た目のきれいなPDFも置いておきます。よければお使いください。

3. ペーパークラフトを組み立てる

出力された展開図を印刷して、ペーパークラフトを作っていきます。
私の経験からすると、ポイントとしては以下の3点くらいでしょうか。

・ハサミではなくカッターマットでカッターを使うといい。
・定規は使わない方が速い。
・凹になっている頂点からカッターを入れるといい。
・穴を開けるところは先に切った方がいい。
・手足の接続部は大きめに切っておく。入らないなら後で調整できる。

まず、出力されたPDF(またはSVG)を倍率100%で印刷します。

そしてカッターで切ります。写真はカッターマットがないですが、カッターマットは敷いてください。
後頭部ののりしろは大きめに切っておいた方がいいかもしれません。ここだけmicro:bitの出し入れのために両面テープでつけるのですが、けっこう外れやすかったです。

折り目をつけます。折り目をつけるのが意外と難しいので、がんばってください。

そしてのりでつけていきます。顔の上の部分ほっぺたは両面テープでつけます。頭はmicro:bitの出し入れでよく開閉するので、のりで貼らないでください。両面テープなしでも閉まるようならなしでも構いません。ほっぺたはmicro:bitのボタンに両面テープで貼ってください。

全身を組み立てるとこうなります。

4. micro:bitに電源ボックスとスピーカーをつける

電源ボックスを説明書通りにつなげます。

スピーカーはこんな風にビニール(被覆)を剥がしてください。

端子0と端子1にスピーカーを繋げます。端子0のネジは外してください。外さないと電源ボード内臓の圧電スピーカーから音が出てしまいます。

これをペーパークラフトの頭の中に入れ、スピーカーとmicro:bitの間に余った紙を適度なサイズに切って詰めてください。

5. micro:bitのプログラムを作る

傾けるとしゃべるプログラムを作っていきます。MicroPythonのspeechモジュールを使ってしゃべらせることができます。でも、あまり上手には話せませんw

以下がソースコードになります。音素を使って発生させることができます。例えば、日本語の「あ」に近いのは「AE」です。詳しくはドキュメントを見てみてください。

from microbit import *
import speech

smile = Image("00000:"
             "00000:"
             "00000:"
             "90009:"
             "09990")
unhappy = Image("00000:"
             "90009:"
             "00000:"
             "09990:"
             "90009")
sleepy = Image("00000:"
             "00000:"
             "00000:"
             "00000:"
             "09990")

messages = {
    "up": ["OH /HAE YOH OH", smile],
    "down": ["SAE KAE SAE DAE YOH", unhappy],
    "left": ["NAE NAE MEH DAE YOH", unhappy],
    "right": ["YOH KUH WAE KAE N NAE IY", unhappy],
    "face up": ["OH YAE SUH MIY", sleepy],
    "face down": ["SIY TAE MUH IY TEH MAE SUH NEH", sleepy]
}

display.show(smile)

gesture = ""

while True:
    prev_gesture = gesture
    tmp_gesture = accelerometer.current_gesture()
    
    if button_a.is_pressed():
        display.show(unhappy)
        speech.pronounce("YAE MEH TEH3 YOH3 OH4", pitch=50, speed=100, throat=150, mouth=190)
        
    if button_b.is_pressed():
        display.show(smile)
        speech.pronounce("UH4 REH4 SIY3 IY4", pitch=50, speed=100, throat=150, mouth=190)
    
    if prev_gesture != tmp_gesture:
        if tmp_gesture in messages:
            gesture = tmp_gesture
            display.show(messages[gesture][1])
            speech.pronounce(messages[gesture][0], pitch=50, speed=100, throat=150, mouth=190)

以下のようにしゃべるようにプログラムしています。

・立っている:「おはよう」
・逆立ち:「さかさだよ」
・左に傾いている:「ななめだよ」
・右に傾いている:「よくわかんない」
・寝ている:「おやすみ」
・うつ伏せ:「下向いてますよ」
・右ほっぺを押す:「やめてよー」
・左ほっぺを押す:「うれしい」

顔も台詞に合わせて3パターンに変化します。

では、プログラムをmicro:bitに転送しましょう。以下のリンクからmicro:bitのPython Editorを開きます。

先程のソースコードをコピーして、エディタに貼り付けます。そして、上部の[Download]ボタンを押して、hexファイルをダウンロードします。

USBケーブルでmicro:bitとPCを接続し、ダウンロードしたhexファイルをMICROBITディスクにドラッグ&ドロップし、micro:bitに転送します。

傾けるとそれに応じた台詞を話すと思うので試してみてください。問題なければ、USBケーブルを抜いて完成です。

6. 完成

これで完成です。電源ボードの電源をONにして、頭を閉めまてみましょう。

7. ダウンロードファイル一式

以下からファイル一式をダウンロードできます。

以下が内容物です。

・face.png: 顔用画像
・body.png: お腹用画像
・microboy.blend: 3Dモデル
・microboy.pdf: 自動生成した展開図
・microboy.svg: 自動生成した展開図(SVG形式)
・microboy_svg.pdf: microboy.svgを再配置したもの
・microboy_ai.pdf: おまけ

印刷してきれいなのは「microboy_svg.pdf」です。

おまけの「microboy_ai.pdf」はBlenderで作る前にIllustratorで作ったペーパークラフト展開図です。あまりにアナログ作業すぎたので、ボツになりました。こちらはのりなしでペーパークラフトが作れます。こちらの方が見た目がきれいですが、Blenderで生成した方もSVGで出力してIllustratorなどできれいに整形することはできます。

8. 終わりに

いかがでしたか?ぱっと見完成度が高そうなものを作るという目的が達せたでしょうか?
ほぼ丸と四角だけから作ってますが、なかなかかわいい造形になったのではないでしょうか?中は適当ですが、完全に隠せるものになっていますし、micro:bit入門本などに載っているものよりはかなりおもちゃっぽいものになったのではないかと思います。

ペーパークラフトはお金もかかりませんし、ぱっと見よいものを作るにはなかなかよい手法ではないかと思います。ペーパークラフト側もmicro:bit側も改造の余地はいろいろありますので、ぜひここから発展させていってみてください。

この記事が気に入ったらサポートをしてみませんか?