最近のプロジェクトで 3D モデリングが不可欠なタスクになってきたことから設計ツールを必死になって探していた私は、AutoCAD、Blender、Maya、SketchUp それぞれの評価版を試してみました。その結果、SketchUp が群を抜いて習得しやすく、使用するのも一番楽しいということがわかりました。「こんなに簡単なはずはない」と自分に言い聞かせ続けていましたが、Google の自習式チュートリアルから YouTube の動画デモに移るまでの間に学習曲線が跳ね上がっただけでなく、存分に楽しみながらプロジェクトを完了できました。
それにも増して嬉しかったのは (私はグラフィック・アーティストではなく、プログラマーなので)、SketchUp ではコマンド・スクリプトを実行できることがわかったからです。つまり、図にラベルを追加する、面に対してマテリアル (素材) を指定する、放物線や楕円などの幾何学的図形を描画するなどのタスクを自動化することができます。SketchUp の API は Ruby プログラミング言語をベースとしているため、SketchUp と同様、習得するのも難しくはありませんでした。コーディング・プロセスを効率よく行うため、私は SketchUp Bridgeを介して SketchUp と通信するカスタム Eclipse プラグインを作成しました。
今回の記事では SketchUp について簡単に紹介した後、SketchUp Bridge がどのように機能するか、そして Eclipse を SketchUp に接続するプラグインのインストール手順を説明します。SketchUp API の詳細、そして作成可能なモデルのタイプについては、この連載「SketchUp と Eclipse による 3D モデリング」の次回の記事で説明します。
Google のサイト自体と同じく、Google SketchUp では単純なインターフェースの下に大量の機能が用意されています。SketchUp の狙いは「誰でも使える 3D」を提供することです。この目標は見事に達成されていて、基本的な 2D の形状を描画してそこから 3D の形状を作成する方法は 5 分で覚えられます。そしてあれこれ操作しているうちに、30 分もすればツールバーのすべてのツールを使いこなせるようになるはずです。図 1 に、SketchUp の UI を示します。モデリング・ツールのように見えますが、SketchUp はおもちゃのような感覚で操作できます。
図 1. SketchUp の UI
Blender とは違って、SketchUp はオープンソースではありません。このツールは Google の独自ライセンスにより、あらゆる (法的に分類された) 用途での使用が許可されます。また、プラグインで SketchUp を拡張することもできますが、ソース・コードは入手できません。SketchUp は Windows® または Apple Mac OS X が稼働するコンピューター上で動作し、2 つのバージョンが用意されています。1 つは無料バージョン、そしてもう 1 つは 495 米ドルで購入する SketchUp Pro という名前の有料バージョンです。SketchUp Pro にはプロ並みのレイアウトとスタイル、高度なファイル操作、そしてテクニカル・サポートが用意されています。その一方、無料バージョンにも豊富な機能が備わっているので、この記事を読み進める前に、SketchUp サイト (「参考文献」を参照) にアクセスして、SketchUp をダウンロードすることを是非ともお勧めします。
SketchUp を初めて起動すると、どのテンプレートを使用するかを指定するように求められます。テンプレートによって、測定単位と全体的な設計ウィドウの外観が定義されます。テンプレートは、以下の 12 種類の選択肢のなかから選択することができます。
- 単純なテンプレート (フィートとインチ) — x-y 面を緑色、正方向の z 領域を明るい青色で表示します。
- 単純なテンプレート (メートル) — x-y 面を緑色、正方向の z 領域を明るい青色で表示します。
- 建築設計 (フィートとインチ) — x-y 面を暗い灰色、正方向の z 領域を明るい灰色で表示します。
- 建築設計 (ミリメートル) — x-y 面を暗い灰色、正方向の z 領域を明るい灰色で表示します。
- Google Earth モデリング (フィートとインチ) — x-y 面を緑色、正方向の z 領域を明るい青色で表示します。
- Google Earth モデリング (メートル) — x-y 面を緑色、正方向の z 領域を明るい青色で表示します。
- エンジニアリング (フィート) — 設計領域全体を白で表示します。
- エンジニアリング (メートル) — 設計領域全体を白で表示します。
- 製品設計および木工細工 (インチ) — x-y 面を暗い灰色、正方向の z 領域を明るい灰色で表示します。
- 製品設計および木工細工 (ミリメートル) — x-y 面を暗い灰色、正方向の z 領域を明るい灰色で表示します。
- 平面図 (フィートおよびインチ) — 設計領域全体を白で表示します (2D ビューから開始)。
- 平面図 (ミリメートル) — 設計領域全体を白で表示します (2D ビューから開始)。
測定単位の異なる 2 つのテンプレート間では、測定単位の他には大きな差はありません。私が作成するモデルはエンジニアリング・タイプなので、「エンジニアリング (メートル)」テンプレートを使用しています。
テンプレートを選択すると SketchUp 設計ウィンドウが現れます。このウィンドウに表示されているのは、原点と呼ばれる一点から始まる一連の線です。これらの線は座標系 (x,y,z) を定義します (図 1 を参照)。赤い実線は x 軸の正方向を、赤い点線は x 軸の負方向を表しています。緑の実線は y 軸の正方向を、緑の点線は y 軸の負方向を表し、青の実線は z 軸の正方向を、青の点線は z 軸の負方向を表しています。
この記事で焦点とするのは SketchUp の自動化ですが、それよりも先に、まずは手動での操作方法を把握しておくべきです。そこで、2 つの単純な形状を作成してみます。Adobe® Photoshop® と Microsoft® Paint と同じく、SketchUp の描画プロセスに必要となるのもツールバーからツールを選択し、設計ウィンドウ内をクリックするという操作です。図 2 に、SketchUp の基本ツールバーを示します。
図 2. SketchUp の基本ツールバー
まず始めに、「長方形ツール (Rectangle Tool)」をクリックしてください。これは、長方形の平面を立体的に描画する際に使用するツールです。長方形を作成するには、設計ウィンドウで 2 点をクリックします。作成されるモデルの最初の形状は常に x-y 面に配置されるので、図 3 の (a) のような結果が表示されます。
図 3. SketchUp の単純な形状
続いて平面を 3 次元の図形にする「プッシュ/プル・ツール (Push/Pull Tool)」を使用して、長方形をボックスにします。「プッシュ/プル・ツール (Push/Pull Tool)」をクリックしてから長方形をクリックし、マウスを上方向に動かすと、SketchUp ウィンドウにボックスが現れます。マウスを上方向に動かすと、マウスの位置によってボックスの高さが変わります。マウスをもう一度クリックすると、図 3 の (b) のようなボックスが出来上がります。2D の形状から 3 D の形状を作成することを、SketchUp の用語では押し出し (extrusion) と呼びます。
次に、ボックスの上に円柱を描画します。「円ツール (Circle Tool)」をクリックし、次にボックス上面の中央をクリックします。マウスを中央から外側に向かって動かし、もう一度クリックして図 3 の (c) のような円の形にします。最後に、ここでも「プッシュ/プル・ツール (Push/Pull Tool)」をクリックし、マウスを上方向に動かして図 3 の (d) のような円柱を作成します。マウスを下方向に動かした場合には、ボックスに円柱形の穴を作成することができます。
以上は非常に簡単な基本的なレッスンですが、SketchUp で可能な操作はこれ以外にも山ほどあります。すべてを網羅したレッスンを受けるには、SketchUp トレーニング・サイト (「参考文献」を参照) にアクセスして、自習式チュートリアルを順に進めていってください。すべてのチュートリアルを完了したら、今度は中級から上級のトピックを取り上げたビデオを観てください。これで、SketchUp が持つ広範な機能を十分に理解できるようになるはずです。
SketchUp で描画するのは面白いものの、私はコードでモデルを作成するほうを選びます。コードでモデルを作成する方法がどのようなものかを見るには、SketchUp で「ウィンドウ」 > 「Ruby コンソール」の順にクリックしてください。この操作によって表示されるウィンドウには、下部にコマンドライン・インターフェース (CLI)、上部に出力ウィンドウがあります。CLI にコードを入力することで、設計ウィンドウ内で形状を作成および変更することができます。作業を始める前に、「選択ツール (Selection Tool)」をクリックし、それからCtrl+a に続いて Delete キーを押して、既存のすべての形状を消去してください。その上で、Ruby コンソールのコマンドラインに以下の 2 つのコマンドを入力します。
face = Sketchup.active_model.entities.add_face [0,0,0], [9,0,0], [9,9,0], [0,9,0] |
上記のコマンドは、SketchUp が認識する唯一のプログラミング言語、Ruby で作成されています。Ruby はオブジェクト指向なので、最初のコマンドで face という長方形を表すオブジェクトを現行の設計ウィンドウに作成します。2 番目の行では、Face クラスの pushpull() メソッドを呼び出すことによってボックスを作成します。図 4 は、両方のコマンドを実行した後にコンソールに表示される出力です。
図 4. SketchUp の Ruby コンソール・ウィンドウ
ここで、SketchUp 設計ウィンドウを見てみると、原点に頂点を持つ正方形のボックス (9x9x9) が作成されているはずです。このボックスにズームインしたビューを表示するには、「全体表示ツール (Zoom Extents Tool)」をクリックします。また通常の形状と同じように、SketchUp ツールを使用してボックスを移動、拡大縮小、回転することもできます。
CLI でもまったく問題ありませんが、きまじめなプログラマーである私たちとしては、コマンドを一から再入力しなくても済むようにファイルに配置します。ファイルにアクセスするには、load コマンドを使用します。このコマンドが Ruby スクリプト (*.rb) を読み取って、SketchUp の Ruby インタープリターにスクリプトの各コマンドを実行するように指示します。私はサンプル・スクリプトとして、lathe.rb というスクリプトを用意しておきました (「ダウンロード」セクションを参照)。このスクリプトは、上記で説明したプッシュ/プル・メカニズムとは別の押し出しメソッドを使って回転体を作成します。ダウンロードしたスクリプトを実行するには、以下のようなコマンドを使用します (このコマンドでは、スクリプトが C:\test フォルダーに置かれているという前提となっています)。
load "C:/test/lathe.rb" |
SketchUp が lathe.rb 内のコマンドを実行すると、図 5 の回転体が表示されます。
図 5. 回転体のサンプル
SketchUp はコマンド・スクリプトをロードすることはできても、スクリプト・エディターの類は一切提供していません。そのため、ほとんどのスクリプト開発者は別のアプリケーションでスクリプトをコーディングしてから、Ruby コンソール・ウィンドウにスクリプトをロードしています。しかし、それよりも賢い方法があります。それは、SketchUp Bridge によって SketchUp 外部で Ruby スクリプトを実行できるようにすることです。そうすれば、コンソール・ウィンドウにコマンドを入力する必要は一切ありません。Eclipse から SketchUp Bridge にアクセスする方法については後で説明するとして、とりあえず何よりも先に行わなければならない作業は、SketchUp Bridge ファイルをインストールして、このファイルがどのように機能するかを確認することです。
SketchUp Bridge を入手してインストールする方法
SketchUp Bridge は、plugins.ro のミステリアスな人々によってリリースされました。称賛に値する彼らのモットーは、「人を幸せにするツール」です。このソフトウェアは、非営利目的での使用は無料で許諾されます。営利目的で使用する場合には、TBD としてしか名前が公表されていない作成者から許可を受ける必要があります。このソフトウェアを入手するには、plugins.ro のサイト (「参考文献」を参照) にアクセスして、bridge.zip のリンクをクリックしてください。アーカイブをダウンロードして解凍すると、そこには以下の 3 つの重要なファイルが含まれているはずです。
- bridge_load.rb — SketchUp のプラグインとして機能する Ruby スクリプト
- Bridge.so — bridge_load プラグインがアクセスするルーチンを集めたライブラリー
- SUB.exe — SketchUp スクリプトを SketchUp 外部で実行する Windows アプリケーション
SketchUp Bridge をインストールするには、上記のうちの最初の 2 ファイルを、最上位の SketchUp インストール・フォルダー内にある Plugins フォルダーに配置します。私のシステムでは、このフォルダーは C:\Program Files\Google\Google SketchUp 7\Plugins です。bridge_load.rb は Plugins フォルダー内に置かれるため、SketchUp の起動時に自動的にロードされます。このフォルダー配置によって、通常のスクリプトと SketchUp プラグインが区別されます。
SketchUp Bridge と Eclipse を相互作用させる前に、以下の手順に従って、すべてが正しく機能することを確認する必要があります。
- lathe.rb スクリプト (「ダウンロード」を参照) をダウンロードし、SketchUp Bridge に付属の SUB.exe アプリケーションと同じフォルダーに配置します。このフォルダーは、SketchUp の Plugins フォルダー内でなくても、コンピューター上のどこかに存在していればそれで構いません。
- SketchUp を起動します。すでに実行中の場合は再起動してください。
- Windows コマンド・プロンプトを開き、SUB.exe と lathe.rb スクリプトが含まれるフォルダーに移動します。
- コマンド
SUB lathe.rbを入力します。
SUB アプリケーションが SketchUp に lathe.rb 内のコマンドを読み取るように指示します。すると SketchUp の Ruby インタープリターがこれらのコマンドを実行し、その結果が設計ウィンドウに表示されます (図 5 を参照)。この仕組みは、モニターが 2 台ある場合には特に重宝します。その場合、一方のモニターでスクリプトを編集しながら、もう一方のモニターで SketchUp モデルを表示することができます。
筋金入りの Eclipse ファンである私は、新しい言語でコードを作成する必要が出てくると、真っ先に Eclipse のフィーチャーを調べます。私の作業をとてつもなく生産的にするファイル・サポートと編集機能を提供する Eclipse フィーチャーがないかどうかを調べるわけです。以前は RDT (Ruby Development Toolset) を使用できましたが、このツールセットは Aptana の RadRails ツールに組み込まれ、今では Aptana Studio のアドオン・フィーチャーとなっています。Aptana Studio と RadRails をダウンロードすることはできますが、インストール・プロセスは複雑で時間がかかります。その上、Ruby エディターしか必要ないというのに、途方もなく大きな Aptana Studio の 30 日間評価版をダウンロードするだけの価値はありません。
既存の Ruby ツールに満足できなかった私は、独自の単純な Eclipse プラグインを作成しました。無謀にも、この自作のプラグインに付けた名前は SketchUp SDK (SketchUp Software Development Kit) です。このプラグインは「ダウンロード」セクションからダウンロードすることができます。SketchUp SDK プラグインが提供する主要な機能は、Ruby エディター、そして SketchUp Bridge アプリケーションを起動するツールバー・アイテムの 2 つです。このセクションでは SketchUp SDK プラグインのインストール方法と、スクリプトがどのように編集され、実行されるかを説明します。
注: このセクションの内容は混乱しやすいので、使用する用語を明確にしておきます。公式 Eclipse ドキュメントでアドオンを表す用語は、プラグイン (plug-in) です。一方、公式 SketchUp ドキュメントでは、プラグイン (ハイフンなしの plugin) という言葉を使用しています。SketchUp API は、Ruby クラス、モジュール、および SketchUp モデルにコードでアクセスするためのメソッドを集めたセットです。SketchUp SDK は Eclipse プラグインであり、SketchUp プラグインが含まれる SketchUp Bridge を介して SketchUp とやりとりします。SketchUp SDK と SketchUp Bridge はまったく別のものですが、SketchUp SDK は SketchUp Bridge を利用して、Eclipse から SketchUp の操作を行います。
公開ドメインである SketchUp SDK は、SketchUp Bridge が Windows 専用であることから、Windows でのみ動作します。SketchUp SDK をダウンロードした後に実行しなければならないタスクには、以下の 4 つがあります。
- SketchUp Bridge アーカイブをダウンロードし、Bridge.so と bridge_load.rb を SketchUp の Plugins フォルダーに配置します。
- sketchup_sdk.zip を解凍し、SUB.exe (SketchUp Bridge ファイルのうちの 1 つ) を、最上位の org.dworks.susdk_1.0.0 フォルダーの下にある exe フォルダーに配置します。
- org.dworks.susdk_1.0.0 フォルダーを、最上位の Eclipse インストール・フォルダー内にある plugins フォルダーに移します。
- SketchUp および Eclipse を起動または再起動します。
ファイルとフォルダーが混同する可能性があるので、私のコンピューター上でのフォルダー構造を説明させてください。私が Eclipse をインストールしたのは C:\eclipse で、最上位の SketchUp フォルダーは C:\Program Files\Google\Google SketchUp 7 です。したがって、SketchUp Bridge ファイル (Bridge.so、bridge_load.rb、および SUB.exe) は、以下の場所にあります。
- C:\Program Files\Google\Google SketchUp 7\Plugins\Bridge.so
- C:\Program Files\Google\Google SketchUp 7\Plugins\bridge_load.rb
- C:\eclipse\plugins\org.dworks.susdk_1.0.0\exe\SUB.exe
SketchUp SDK でスクリプトを作成して実行する方法
SketchUp SDK プラグインと SketchUp Bridge ファイルを正しい場所に配置する作業が完了したら、早速コードの作成に取り掛かれます。Eclipse で SketchUp スクリプトを開発するプロセスには、以下の 3 段階があります。
- Eclipse で Ruby スクリプトを作成する
- スクリプトに SketchUp コマンドを追加する
- ツールバー上の SUB をクリックして、SketchUp 内部でスクリプトを実行する
図 6 に、編集環境を示します。
図 6. SketchUp SDK
Eclipse を使い慣れている方には、この後の作業手順についての説明は不要だと思いますが、念のため、以下のプロセスでこの手順を明確にしておきます。
- Eclipse で「ファイル」 > 「新規」 > 「プロジェクト」の順に選択します。
- 「一般」フォルダーを開き、「プロジェクト」を選択して「次へ」をクリックします。
- プロジェクトの名前として
my_projectと入力し、「終了」をクリックします。 - Eclipse の「パッケージ・エクスプローラー」で my_project を右クリックし、「新規」 > 「ファイル」の順に選択します。
- SketchUp スクリプトの名前として
my_script.rbと入力し、「終了」をクリックします。 - lathe.rb のテキストを Eclipse エディターに貼り付け、スクリプトの内容を保存します。
- Eclipse ツールバーの SUB をクリックして SketchUp Bridge にアクセスし、現行のエディター内にあるスクリプトを SketchUp に送信します。または、ショートカット・キーの Ctrl+Shift+Space を使うという方法もあります。
- SketchUp を開いてズームインすると、図 5 と同じ回転体が表示されているはずです。
ここまでのところで、読者の皆さんは SketchUp-Eclipse 環境をセットアップし、SketchUp での描画に関する基本知識を学びました。次回の記事では、Ruby 言語、そして SketchUp スクリプト内のコードをさらに詳しく探っていきます。
Google の SketchUp アプリケーションは操作するにも理解するにも単純かもしれませんが、だからといって機能に欠けるというわけではありません。SketchUp は、モデルをモジュール化し、その外観や形状のあらゆる側面を制御するための豊富な機能を提供します。SketchUp でとりわけ重要な機能の 1 つは、スクリプト・インタープリターです。このインタープリターが Ruby スクリプトを実行して、SketchUp モデルを作成したり、モデルの特徴を変更および削除したりします。しかし、SketchUp にはスクリプト・インタープリターが用意されているものの、エディターはありません。そこで活躍するのが Eclipse です。
Eclipse を使用して SketchUp の操作を行うためには、まず、SketchUp Bridge をダウンロードしなければなりません。このアプリケーションを構成する 3 つのファイルを正しく配置すれば、SketchUpのコンソール・ウィンドウ外部で SketchUp スクリプトを実行できるようになります。次に必要となるのは、SketchUp SDK プラグインをダウンロードして Eclipse 内部にインストールすることです。この単純な SDK が、スクリプトを編集し、ボタンをクリックするだけでスクリプトを SketchUp で実行することを可能にします。
| 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|---|---|---|
| Eclipse plug-in that interfaces with SketchUp | os-eclipse-sketchup1_sdk.zip | 29KB | HTTP |
| Ruby script to create a lathed shape | os-eclipse-sketchup1_lathe.zip | 1KB | HTTP |
学ぶために
- チュートリアルとデモ・ビデオについては、Google のトレーニング・サイトにアクセスしてください。この驚くほど素晴らしいツールの機能について詳しく学べます。
- Ruby プログラミング言語に関する詳細は、Ruby 資料を調べてください。
- 「Eclipse の推奨読み物リスト」を読んでください。
- developerWorks ですべての Eclipse 関連記事を調べてください。
- developerWorks を Twitter でフォローしてください。
- Eclipse の初心者は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源とアーキテクチャー、そしてプラグインで Eclipse を拡張する方法を学べます。
- IBM developerWorks の Eclipse project resources を調べて、Eclipse のスキルを磨いてください。
- ソフトウェア開発者を対象とした興味深いインタービューや討論については、developerWorks podcasts をチェックしてください。
- developerWorks の Technical events and webcasts で最新情報を入手してください。
- 無料の developerWorks On demand demos で、IBM およびオープンソースの技術と製品機能を調べて試してみてください。
- 世界中で近日中に予定されている IBM オープンソース開発者を対象とした会議、見本市、ウェブキャストやその他のイベントをチェックしてください。
- オープンソース技術を使用して開発し、IBM の製品と併用するときに役立つ広範囲のハウツー情報、ツール、およびプロジェクト・アップデートについては、developerWorks Open source ゾーンを参照してください。
製品や技術を入手するために
- SketchUp Bridge アーカイブをダウンロードしてください。
- IBM alphaWorks で Eclipse 技術の最新ダウンロードを調べてください。
- Eclipse Foundation から Eclipse Platform およびその他のプロジェクトをダウンロードしてください。
- IBM 製品の評価版をダウンロードしてください。または、IBM SOA Sandbox のオンライン試用版で、DB2®、Lotus®、Rational®、Tivoli®、および WebSphere® のアプリケーション開発ツールとミドルウェア製品を体験することもできます。
- IBM ソフトウェアの試用版を使用して、次のオープンソース開発プロジェクトを革新してください。ダウンロード、あるいは DVD で入手できます。
議論するために
- Eclipse に関する質問を投じる最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルト Usenet ニュース・リーダー・アプリケーションが起動され、eclipse.platform が開きます)。
- Eclipse newsgroups には Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
- developerWorks blogs から developerWorks コミュニティーに加わってください。