等積射影スクリプト入門

著者: 梶山民人 <RD6T-KJYM at asahi-net dot or dot jp>

この文書では、Skencil (Sketch) 用の機能追加スクリプトである「等積射影スクリプト」の基本的な使い方を解説します。このスクリプトを使うと、立体を横斜め上から見た三次元的な図形を簡単に描くことができます。あなたは、Skencil と等積射影スクリプトのインストールを終えていて、Skencil の基本的な使い方を知っているものとします。

例として三つの面から成る単純な直方体を描くことにしましょう。等積射影スクリプトを使って直方体を描くには、大きく分けて次の三つのステップを踏みます。

  1. 直方体の三つの面に相当する矩形 (四角形) を描く
  2. 等積射影スクリプトを適用して三つの矩形を変形させる
  3. 変形後の図形を組み合わせて直方体を完成させる

以下、これら三つのステップを順を追って説明します。

1. 直方体の三つの面に相当する矩形を描く

1-1. 最初の矩形を描く

まず、次のような縦長の矩形を描きます。大きさはだいたいで構いません。

1-2. 二つ目の矩形を描く

次に、二つ目の矩形を描きます。ここでのポイントは、最初の矩形と高さが同じで、幅が違う矩形を描くことです。そのために、メニューの Arrange / Snap to Object を選択して「Snap to Object (オブジェクトへの吸着)」を有効にしておきます。二つ目の矩形を描くには次のようにします。

1-3. 三つ目の矩形を描く

続いて三つ目の矩形を描きます。ただし今度は、高さが最初の矩形の幅と同じで、幅が二つ目の矩形の幅と同じになるようにします。

2. 等積射影スクリプトを適用して三つの矩形を変形させる

等積射影スクリプトは Left, Right, Top の三つのコマンドから成っています。Left コマンドは左下の矩形に適用します。Right コマンドは右下の矩形に適用します。また、Top コマンドは右上の矩形に適用します。これらのコマンドと矩形の対応関係を下図に示します。三つのコマンドはどの順で適用しても構いませんが、適用する相手を間違えるとおかしな結果になります。

2-1. Left コマンドの適用

ここではまず Left コマンドを適用します。左下の矩形を選択してメニューから Script / Equal-Area Projection / Left を選択します。

2-2. Right コマンドの適用

次に Right コマンドを適用します。右下の矩形を選択してメニューから Script / Equal-Area Projection / Right を選択します。変形後の図形が他の図形と重なってしまいますが、あとで正しい位置に移動することにしてひとまずそのままにしておきます。

2-3. Top コマンドの適用

同様に Top コマンドを適用します。右上の矩形を選択してメニューから Script / Equal-Area Projection / Top を選択します。

3. 変形後の図形を組み合わせて直方体を完成させる

最後に三つの図形を組み合わせて直方体を完成させます。ここでも「Snap to Object」の効果を利用して図形を互いに接するように配置します。

図形同士がうまく吸着しないときは、吸着を利用して目的地に近い場所に一旦置き (下図左)、さらに移動させるとうまく吸着します (下図右)。

三つの図形がピッタリ合えば完成です。

応用例

直方体の各面に図柄を描いてから等積射影スクリプトを適用すれば、下図の洗剤パッケージのような図形を描くことができます。スクリプトを適用する前に各面の図柄をそれぞれグループ化しておくと、グループ内の図柄の位置関係は変形後も保たれます。また、文字は変形前にアウトライン化しておく必要があります。

スクリプトを適用する図形は矩形である必要はありません。下の建物の壁面のように非矩形の図形でも規則正しく変形することができます。ただし、この屋根のように三次元空間内で垂直でも水平でもない面については等積射影スクリプトを利用することができません。というのは、変換前の図形を描くのが難しいからです。このような傾いた面は他の垂直面や水平面を変形した後に「Snap to Object」を利用して描き加えるとよいでしょう。

たくさんの部品に対してそれぞれ等積射影スクリプトを適用して組み合わせると次の作例のような複雑かつ精密な図形も比較的簡単に描くことができます。


Tamito KAJIYAMA <RD6T-KJYM at asahi-net dot or dot jp>
Last modified: Sun Oct 29 20:51:48 2006