Autodesk Tinkercadは、WEBブラウザ上でCADモデリングを行うことができる、無料のオンライン3Dモデリングアプリです。Tinkercadには、コードブロック(Codeblocks)という機能があり、ビジュアルプログラミングを用いて、3Dモデリングを行うことが可能です。 ここでは、様々なデザインを作成する為に、変数やループのブロックを使用して行う3Dデザインの作成方法を解説します。

クリエイター最終更新日: 20210722

Autodesk Tinkercad コードブロック(Codeblocks) 応用編

  • このエントリーをはてなブックマークに追加

Autodesk Tinkercadは、WEBブラウザ上でCADモデリングを行うことができる、無料のオンライン3Dモデリングアプリです。Tinkercadには、コードブロック(Codeblocks)という機能があり、ビジュアルプログラミングを用いて、3Dモデリングを行うことが可能です。
ここでは、様々なデザインを作成する為に、変数やループのブロックを使用して行う3Dデザインの作成方法を解説します。

シェイプを繰り返し並べる

シェイプを繰り返し横に並べる

はじめに、立方体シェイプを横並びに10個配置してみましょう。

「コントロール」メニューから「カウント」をブロックエディターにドラッグ&ドロップします。

その中に、「ボックス」と「移動」をアタッチします。

「変数を作成」を一番上に作成します。
変数名を「scale」に変更し、スロットには「10」と入力します。

「ボックス」の「W L H」それぞれに「データ」メニューから「scale」をドラッグ&ドロップします。
ボックス「W:scale  L:scale  H:scale」

「移動」を「X:scale * i」にします。
移動「X:scale * i  Y:0  Z:0」

「カウント」を変更後、「実行」します。
カウント「i  開始:0  終了:9  増分単位:1」
※「開始:1  終了:10  増分単位:1」でも可
※再生速度を最大にしておきます。

シェイプを繰り返し整列して壁を作成

先ほどのコードブロックを使用し、壁を作成していきます。

「変数を作成」を作成し、変数名を「count」にして、スロットには「9」と入力します。

「カウント」をアタッチして囲みます。

以下のように、それぞれの「カウント」の「終了」に「count」を入れます。
カウント(内側)「i  開始:0  終了:count  増分単位:1」
カウント(外側)「j  開始:0  終了:count  増分単位:1」

「移動」に「Z:scale * j」を加えて「実行」します。
移動「X:scale * i  Y:0  Z:scale * j」

シェイプを繰り返し整列してキューブを作成

以下のようなキューブを作成しましょう。

「変数を作成 (count):4」に変更しておきましょう。
※コードブロックでは、プリミティブの作成が200までとなっており、それ以上になるとエラーとなります。

新たな「カウント」をアタッチして囲みます。
カウント「k  開始:0  終了:count  増分単位:1」

「移動」に「Y:scale * k」を加えて「実行」します。
移動「X:scale * i  Y:scale * k  Z:scale * j」

シェイプを縮小しながら積み上げる

次に、立方体シェイプを縮小しながら、以下のようなピラミッド状に積み上げていきます。

「カウント」を2つ削除し、「ボックス」のフィールドを変更していきます。
ボックス「W:scale * i  L:scale * i  H:scale」

「移動」に変更を加えます。
移動「X : 0  Y : 0  Z : scale * i」

「変数を作成 (count):9」に変更しておきましょう。
このまま「実行」をすると、逆三角形の形状で作れていく為に、「回転」を加えて「実行」します。
回転「回転の中心:軸x  増分単位:180  ピボットから X : 0 Y : 0 Z : 0」

シェイプをピラミッド状に積み上げる

次に、立方体シェイプをサイズの変更をせずに積み上げ、ピラミッドを作成します。

新たな「カウント」をアタッチして囲み、以下のようにします。
カウント(外側)「j  開始:0  終了:count  増分単位:1」

内側の「カウント」のフィールドを変更します。
カウント(外側)「i  開始:j * -1  終了:j  増分単位:1」

「ボックス」を変更します。
ボックス「W:scale  L:scale  H:scale」

「移動」を変更します。
移動「X:scale * i  Y:0  Z:scale * j」

再びシェイプ数が増えるので、「変数を作成 (count):2」に変更します。

「実行」すると、3段のピラミッドが作成されます。

カウント「j」は、0から2まで1つずつ増加し、「0,1,2」とカウントしているために3段となります。(0も1カウントに含まれます)

カウント「i」では、 i * -1 から i まで 1つずつ増加するので、
j = 0の時には「開始:0  終了:0」で1カウントとなり、
移動「X:0  Y:0  Z:0」で原点に1つの立方体が作成されます。

j = 1の時には「開始: -1  終了:1」で「-1,0,1」と3カウントとなり、
-1では移動「X:-20  Y:0  Z:-20」に1つ、
0では「X:0  Y:0  Z:0」で原点に1つ、
1では移動「X:20  Y:0  Z:20」に1つのシェイプが作成され、合計で3つの立方体が作成されます。

j = 2の時には「開始:-2  終了:2」で「-2,-1,0,1.2」と5カウントとなり、
-2では移動「X:-20  Y:0  Z:-20」に1シェイプ、、、、
と、同様に合計で5つの立方体が作成され、このようなピラミッドの形状が作られています。

積み上げたピラミッド状のシェイプに奥行きを付ける

作成したピラミッドに奥行きをつけていきましょう。

新たな「カウント」をアタッチして囲み、以下のようにします。
カウント(外側)「k  開始:0  終了:count  増分単位:1」
カウント(中)「j 開始:k * -1  終了:k  増分単位:1」
カウント(内側)「i 開始:k * -1  終了:k  増分単位:1」

「移動」を変更して「実行」します。
移動「X:scale * i  Y:scale * j  Z:scale * k」

カウント「j」では、奥行き(Y軸)に立方体が作成されていきます。

シェイプを円状に配置する

シェイプの円状配置

シェイプを円状に配置していきます。
新たにコードブロックを作成していきましょう。

「カウント」をブロックエディターに加えます。
カウント「i  開始:1  終了:12  増分単位:1」

その中に、「球」をアタッチして「半径:1」にします。

その下に「移動」をアタッチします。
移動「X:20 * sin 30 * i  Y:20 * Cos 30 * i  Z:0」

-「移動」フィールドへの入力順-
1: 「X」のスロットに「演算」を加えます。

2: 「演算」に「20」と入力、「*(乗算)」に変更し、右のスロットには「Math function(関数)」を加えます。

3: 「Math function(関数)」は「Sin」のままで、スロットに新たに「演算」を加えましょう。

4: 新たに加えた「演算」に「30」を入力、「*(乗算)」に変更し、右のスロットには「i」をドラッグ&ドロップします。

5: 「Y」のスロットには、同様の流れで「Cos」に変更して加えていきます。

「実行」を行うと、「カウント」により「1,2,3,,,,,14,15」と繰り返され、「球」が12個作成されます。
「移動」の「X」「Y」の一番左の「20」と入力したスロットは、円状の半径になります。

「Math function(関数)」の「Sin」と「Cos」は、以下の三角関数の表を元に解説します。

「i = 1」の時は、「30 * 1」で「Sin30」と「Cos30」になります。
「Sin30 = 1/2」ですので「20 * 1/2 = 10」となります。
「Cos30 = √3/2」ですので「20 * √3/2 = 10√3」となります。
このように「12 * i」に「1,2,3,,,,,12」と代入をしていくと、以下のようになります。

コードブロック上で行われていることを、実行後のシェイプに書き足していくと、以下のようになっていることがわかります。

円状に配置したシェイプの向きを変更する

「球」を削除します。
「星」と入れ替え、「実行」します。
星「側面:5  半径:2  内側半径(%):0.5  H:2」

このようにシェイプの種類によっては、向きや面に影響がでます。

まずは、星を立たせていきましょう。
「回転」を「星」の下にアタッチし、フィールドを変更後に「実行」します。
回転「回転の中心:軸x  増分単位:90  ピボットから X : 0 Y : 0 Z : 0」

次に、すぐ下に「回転」を追加して傾きを修正後に「実行」します。
回転「回転の中心:軸y  増分単位:-17  ピボットから X : 0 Y : 0 Z : 0」

全ての星が同方向を向いているので、左右から見ると星が横方向を向いてしまっています。
どの面から見ても星が正面を向くように修正していきます。

「移動」の下に「回転」をアタッチして、「実行」します。
回転「回転の中心:軸z  増分単位:-30 * i 」
※「ピボットから 」のスロットは空いたままにしてください。

シェイプを螺旋状に配置する

「球」を螺旋状に配置します。

「星」を削除し、「球」と入れ替え「半径:1」にします。
「回転」を削除します。

変数を作成し、変数名を「radius」にして「25」と入力します。

「移動」を変更します。
移動「X:radius * Sin 30 * i  Y:radius * Cos 30 * i  Z:radius」

「変更(radius)」を「カウント」内の1番下にアタッチし、「増分単位:-2」にします。

「カウント」を変更して「実行」しましょう。
カウント「i  開始:1  終了:72  増分単位:1」

シェイプを波型に配置する

シェイプを波型に配置してみましょう。

「移動」を変更します。
移動「X:2 * i  Y:radius * Cos 10 * i  Z:0」

「変数を作成(radius):60」にして、「変更」を削除します。

波形が座標の左端から作成されるようにしましょう。
「移動」を「球」の下にアタッチします。
移動「X:-100z  Y:0  Z:0」

「カウント」を変更後、「実行」します。
カウント「i  開始:1  終了:108  増分単位:1」

お城の土台の作成

お城の土台の作成

これまでの方法を応用し、お城の製作に挑戦しましょう。
まずは、「円柱」を縮小しながら積み上げて、メインとなるお城の土台を作ります。
「シェイプ」メニューから「円柱」をブロックエディターにドラッグ&ドロップします。

「カウント」をアタッチします。
カウント「i  開始:1  終了:3  増分単位:1」

「変数を作成」を一番上に作成します。
変数名を「cylinder」に変更し、スロットには「40」と入力します。

「円柱」の色とフィールドを変更します。
円柱「半径:cylinder – 10 * i  H:cylinder + 10 * i  側面:100  エッジ:0  エッジセグメント:2」

「移動」をアタッチして、「Z:25 * i -10」にして、「実行」すると円柱が縮小しながら3段積み上がります。

「円錐」を「カウント」の下にアタッチします。
円錐「上面半径:0  底面半径:20  H:cylinder  側面:24」

「移動」を「Z:25 * i + 20」でアタッチし、「実行」すると3段積みの円柱に屋根がつきます。

お城の装飾

新たに「カウント」を「移動」の下にアタッチしましょう。
カウント「j  開始:1  終了:10  増分単位:1」

「円柱」を追加します。
円柱「半径:2  H:20  側面:100  エッジ:0  エッジセグメント:2」

「移動」をアタッチします。
移動「X:25 * Sin36 * j  Y:25 * Cos36 * j  Z:cylinder」

その下に「円柱」を加えてください。
円柱「上面半径:0  底面半径:3  H:8  側面:24」

「移動」も加え、「実行」します。
移動「X:25 * Sin36 * j  Y:25 * Cos36 * j  Z:cylinder + 14」

複製・縮小して両側に配置してお城を完成させていきます。
「グループ」を「カウント」の下にアタッチします。
その下に、「コピー」を配置します。
「移動」と「スケール」を加えてください。
移動「X:50  Y:0  Z:-22」
スケール「X:0.7  Y:0.7  Z:0.7」

次に、「コピー」と「移動」を配置します。
移動「X:-100  Y:0  Z:0」

最後に「グループ」と「移動」を加えて、お城の位置を調整します。
移動「X:0  Y:0  Z:10」

螺旋する星の作成

お城の周りに星を散りばめてみます。
「コントロール」メニューから「星」をブロックエディターにドラッグ&ドロップします。
星「側面:5  半径:5  内側半径: 0.5  H:2」

「回転」を2つアタッチして、星を立たせていきましょう。
1つ目の「回転」:
回転「回転の中心:軸x  増分単位:90  ピボットから X : 0 Y : 0 Z : 0」
2つ目の「回転」:
回転「回転の中心:軸y  増分単位:-15  ピボットから X : 0 Y : 0 Z : 0」

「カウント」で囲みます。
カウント「k  開始:1  終了:72  増分単位:1」

一番上に「変数を作成 (radius):120」を作成します。

「回転」の下に、「移動」「回転」「変更」の順でアタッチし、星を螺旋状に配置していきます。
移動「X:radius * sin 30 * i  Y:radius * Cos 30 * i  Z:i * 2.1」
回転「回転の中心:軸z  増分単位:-30 * i」
「変更(radius)  増分単位:-1.3」

今回は、応用的なTinkercadのコードブロック(Codeblocks)の使い方について解説をしました。
多様なブロックの組み合わせに加えて、変数や計算を行うことで、様々な3Dモデリングを行うことが可能です。

ライタープロフィール Taiki YUZAWA

情報科学芸術大学院大学(IAMAS) メディア表現研究科 修了。
IAMAS プロジェクト研究補助員 / 愛知淑徳大学 講師 / 名古屋学芸大学 非常勤講師・技手 / 名古屋造形大学 非常勤講師 / 日本総合ビジネス専門学校 非常勤講師 / 名古屋芸術大学 特別講師
Web: https://taikiyuzawa.com/

記事を
シェア