タイトルロゴ改訂版

最終更新:2016/09/06

現在のロゴを拡大して改めて眺めていたら、当時は技術的に拙かったこともあってあちこち角がはみ出してたり、色彩がいまいちなのが気になってきた。そこで、Inkscape(0.48.1)を使ってSVG形式で作り直してみた。

Inkscapeはフリーライセンスのソフトウェアながら、座標の指定が厳密にできたり、マウスなどのポインティングデバイスでは指定しにくい細かいところはXMLエディタ編集機能で直接数値入力できるのが3DCG屋の私には性に合っている。CADのようなオブジェクトの整列機能も強化されて使いやすくなった。なお、現在安定版とされている0.48.4はGUIのライブラリに問題があるようで、メニューバーのフォントがおかしかったり、座標の指定に妙な挙動があってストレスがあるので、個人的には、0.48.1がおススメ。

以前のロゴは別のドローイング・ソフトウェアで作ったんだけど、古かったのもあって操作性が私には合わなかった(予備知識なしでいきなり作ったので、そもそも勉強不足だったっていう指摘は、まぁ、ごもっともなんだけど。細かいところを気にしていられるほどPCのパワーもなかった)。

VF_Logo_official_revised_compare

基本的なデザインは踏襲しているので、ほとんど自己満足の世界。

  • 前は縦の線と斜めの線の太さが同じになっていなかったので、三角関数を使って厳密に計算して太さを同じにしてみた。綺麗に揃ったようにも見えるし、太さに変化がなくて凡庸な感じになったような感じもする。サンセリフ(ゴシック体)風ってことで、これはこれでいいことにしよう。
  • 前はロゴの縁の処理が角張っていていかにも素人っぽかったので、角を少し丸めた。あまりやりすぎるとポップな感じになってしまうので、本当に「角を取った」くらい。「パス」ツール群にある「ダイナミックオフセット」機能はかなり使える。マウスでオフセット半径を大雑把に指定して、XMLエディタで丸め半径をキリのいい値に指定すれば綺麗に仕上がる。
  • 「VANGUARD FLIGHT」の語頭の「V」と「F」はもともと縦幅が大きかったけど、太さは他の字と同じで弱々しい感じがしたので太さを10%増しにした。あまり太くしすぎるとバランスが悪くなるので「測ってみたらわかるくらい」にしておいた。中学校の美術で習った、レタリングは「完全に太さや大きさを揃えてしまうと字によっては細く小さく見える」的なアレを思い出して参考にしてみた。
  • グラデーションがいまいちメタリックな感じになっていないので、もう一段深い色を追加した。全体が引き締まった。赤色の二つの「G」のグラデーションも見直して彩度を上げてみた。それから、下の行のグラデーションの位置がちゃんと中央になっていなかったので、中央にグラデーションの中心を揃えた。
  • 「R」のデザインがいまいちだったので見直してみたんだけど、やっぱりイマイチ。改善案が思いつかなかったので適当なところで妥協。「R」難しいよ、「R」。
  • 「Δ」はオマケ。ウェブサイトのトップページには採用しない予定。

エッジ・ラインの抽出

最終更新:2016/09/06

ウェブサイトの画像を作るのに必要になったので、オブジェクト(モデル)輪郭のエッジ・ラインを抽出してみた。LightWave Super Cel Shaderを使う方法と、自己発光を使う方法のふたつを紹介する。

レイアウトのレンダーオプションで「ワイヤーフレーム」を指定するだけでは、ポリゴンの表面が全部透明になってしまい、モデリング中のワイヤーフレームのような画像が出力されてしまう(ポイントは目立たないので大昔のワイヤーフレームのゲームのような感じ)。「ラインレンダー」を有効にしてもエッジ・ラインだけが出力されるわけではない。そこで、

『裏側が見えない、余計な線も見えないソリッドなワイヤーフレーム』

を目指してみた。

最初に、「リアリスティック」モードでいつものようにレンダリングした画像。ところどころ文字やマーキングなどのテクスチャが貼られているのがわかると思う。

Dragoon-Realistic_640

これを、次の画像のように出力させるのが目標。オブジェクト・モデルはまったく同じもの。

Dragoon-Wire_640

共通手順・サーフェースの統一

まず、モデラーにある「色・質感編集」の設定で、テクスチャ・マップなどを設定してあるサーフェースをすべて主要な色に統一する。今回の場合、テクスチャ・マップを指定してあるのは主に白色の部分と青色の部分なので、基本色の設定を見ながらその2色に振り分ける。

このとき、「ポリゴン選択モード(Ctrl+H)」で「ポリゴン状態(w)」ウィンドウから「Surf:」をクリックしてサーフェース単位で選択をすると楽にできる。

3DCGは、要は数学の世界なので出力はいつも同じ結果になる。ということは、出力に影響しない作業をいかに効率化するかで時間を稼ぐ。ひとつひとつポリゴンをマウスで選択してたり、なげなわ選択で大雑把に選択してからジリジリ選択ポリゴンを減らしているようではイカンのです。

そもそも、なんでサーフェースを振り分けるなんて面倒くさいことをするかというと、レイアウトにあるオブジェクトのアイテムプロパティの「輪郭」タブで指定するラインレンダーで「サーフェイス境界」を指定すると、テクスチャが設定してあるサーフェースと設定していないサーフェースの境界を、LightWaveは「色の境界」と判断してしまうから。このため、本来カラーリングの境界線も鋭角のエッジのないところに意図しないエッジがたくさん出力されてしまう。

私の場合はだいたい、テクスチャを割り当てるポリゴンの指定には色の境を意図していない。複数のテクスチャも画像編集ツールではなく、LightWaveサーフェース上のレイヤーでブレンドしたり位置を調整したりする。UVマップはサーフェースとは関連付けられるけど独立した概念なので、オブジェクト全体をくるむようなマッピングもメカの場合はあまりしない。

全部のポリゴンをひとつのサーフェースに統一してしまうのがもっとも簡単なんだけど、隣り合うふたつのポリゴンが、例えば平面のように続いていてエッジを共有している場合は、LightWaveのレンダーはそのエッジを省略してしまう。このため、カラーリングの境界に適切なエッジ・ラインが引かれず、ただ輪郭外形(シルエット)をなぞるだけの扁平な出力になってしまう。

主要な色に振り分け終わったら、必要なサーフェースをすべて同じ色に統一する。言うまでもないけど、サーフェースは非常にパラメータが多いので、サーフェース名を右クリックしてコピー & ペーストすると楽チン。今回は暗い青(RGB = 0,0,32)にした。

LightWave Super Cel Shaderを使う方法

Super Cel Shaderはほとんどの一般的なサーフェースの設定を無視するけど、念のため「反射光」や「光沢」、「鏡面反射率」、「透明度」の設定は「0%」にしておく。なお、「拡散レベル」を「100%」にしておかないとサーフェースが真っ黒になってしまうので注意。

Edge_Cel_000

主要な色のサーフェースの「シェーダ」タブにある「シェーダ追加」プルダウンメニューから「Super Cel Shader」を選択する。シェーダを右クリックすると出る「プロパティ」で4段階の明るさの階調の境界値を0~100%の範囲で指定するわけだけど、これをすべて「100%」に指定する。すると、まったくハイライトも影もない扁平な出力が得られる。

Edge_Cel_001

シェーダもプロパティごとコピー & ペーストできるので、ひとつのサーフェースを設定したら、あとはコピーして済ませておきたい。ただし、最低ひとつはシェーダを設定していないと右クリックできないので、シェーダを設定していない場合、「編集」ボタンをクリックして「貼付け」を選択して貼り付ける。このへんはちょっとインターフェースがいまいち。シェーダの設定とまとめてサーフェース全体をコピーしてしまうのも手だと思う。

最後に、別名で保存する。綺麗に色分けしたオブジェクトを壊しては何にもならないので、上書きに注意!

下記「共通手順・レイアウト」に進む。

自己発光を使う方法

自己発光を使うほうが実はLightWave Super Cel Shaderを使うより簡単なことに後で気付いた。

具体的には、モデラーの「色・質感編集」で、「自己発光度」を「100%」に設定し、「拡散レベル」を「0%」に設定する。Super Cel Shaderの場合とは逆に、「拡散レベル」が「100%」になっていると、自己発光していてもサーフェースに微妙な陰影が出てしまうのでソリッドなレンダリング結果を得られない。

Edge_Luminosity000

「高度な設定」タブを選択し、「グロウの明るさ」を「0%」に設定する。レイアウトの設定で無効にすることもできるけど、グロウエフェクトが効いてしまうとエッジ付近にぼんやりした輪郭が出力されてしまう。

Edge_Luminosity001

サーフェースの設定が終わったオブジェクトを別名で保存してレイアウトに配置するか、既存のシーンのオブジェクトを置き換える。元のオブジェクトを上書きしないように注意!

あとは、下記「共通手順・レイアウト」の手順で同じ設定をしていけば同様の結果を得られる。基本的な設定だけでシェーダをいちいち設定しなくて済むので、こちらのほうがオススメ。

共通手順・レイアウト

レイアウトのオブジェクト選択モードにしてから、「アイテムプロパティ」を選択する。「オブジェクトのアイテムプロパティ」ウィンドウが開いたら「輪郭」タブを選択。

「点/線の太さ」を2.0px(ミディアム)、「鋭角の折り目」、「共有しないエッジ」、「サーフェイス境界」をそれぞれ1.0px(スモール)に設定する。「シルエットエッジ」を2.0px(ミディアム)にしておくとオブジェクトの外縁がはっきりしてメリハリがつき、機械出力っぽさが少し減っていい感じになる。もっとカメラとの距離が近ければ「距離でエッジを縮小」オプションがうまく効くかもしれない。

Edge000

エッジの太さは用途と必要に応じて変更する。なお、「その他エッジ」は設定しない。

エッジ色はお好みで。今回はオーソドックスに白(RGB = 255,255,255)にした。

ちなみに、「その他エッジ」をオンにするとこうなる。極端な鈍角のある多角形を三角分割したポリゴンのエッジがそのまま出てしまう。これはちょっとカッコ悪い。

Dragoon-Wire_worth

「ウィンドウ」メニューから「背景オプション」を選択して「特殊効果ウィンドウ」を開く。背景色をオブジェクトの主要色と同じ(RGB = 0,0,32)にする。

Edge001

「プロセシング」タブにある「グロウ有効」はオフにしておく。

Edge002

レイトレースは今回の場合はむしろ問題になるので、ライトは平行光源などフォールオフしないものに変えておく。レンダリング時間も短くなる。

レンダリング時間を長くしてもいいことはないので、ラジオシティを指定していたら、「レンダーオプション」にある「大域照明」タブの「ラジオシティ有効」もオフにしておく。

Edge003

レイアウトのレンダーオプションでレンダーモードを「リアリスティック」に設定し、「ラインレンダー」のみを有効にしておく。

Edge004

他にオブジェクトを配置していなければ、レンダリングをかけると、背景部分にアルファ・チャンネルができる。有効に使いたいので、BMP形式よりはPNG形式や、使用できる環境であればPSD形式(Adobe Photoshop形式)にしておきたい。まだ加工するのであれば、少なくともJPG形式などの不可逆圧縮フォーマットは避けたい。

画像の加工

ここではレンダリング画像をいったんPNG形式で保存して他のソフトウェアに移す。今回は透過機能が使いやすいGIMP 2.6を使用した。主要な色に適当なしきい値(大きくすればするほどエッジ・ラインは細くなる)の色域で一括選択をかけてやるとエッジ・ラインの内側の部分もすべて選択できる。選択部分をDeleteキーで削除してやれば、エッジ・ライン以外はすべて透明になるので、透過GIF画像や透過PNG画像として使える。

色数が少ないので、PNGよりはGIFのほうがファイルサイズも小さくなって取り回しはいいかもしれないけど、用途に応じてお好みで。

ウェブページなどで使うときに背景色や背景画像から浮いて見えてしまうハロー現象を防ぐために二値化するのもいいけど、エッジが途切れてしまったり、アンチエイリアスがかからずジャギー(ピクセルドットの段差によるギザギザ)がくっきり出てしまったりするので「古臭いコンピュータっぽさ」を演出したい時でもない限り注意が必要。拡大縮小にも弱くなるので、画像サイズの調整は減色する前にやっておいたほうがいいと思う。

関連記事

LightWave Super Cel Shader 2.15

最終更新:2016/09/06

NightBlade002f

Super Cel Shaderの使い方をド忘れして無駄な時間を食ってしまったので、備忘録。

「色・質感編集」から「シェーダ」タブを選択。「シェーダ追加」プルダウンメニューから「Super Cel Shader」を選択。必要なサーフェースすべてに関して同様の手順。

シェーダの設定はモデラーでもできるけど、出力結果がOpenGLでは確認しにくいので、レイアウトのVPRで出力具合を確認しながら設定して、後でシーンをオブジェクトごと保存してしまったほうが手軽。Super Cel Shaderを一時的に使うだけの場合は、サーフェースの設定を保存しておくか、専用のオブジェクトを用意する。

オブジェクト選択モードにしてから、「アイテムプロパティ」を選択。「オブジェクトのアイテムプロパティ」ウィンドウが開いたら「輪郭」タブを選択。「点/線の太さ」を2.0px(ミディアム)、「シルエットエッジ」、「鋭角の折り目」、「サーフェイス境界」をそれぞれ1.0px(スモール)に設定する。「共有しないエッジ」は必要に応じて。「その他エッジ」は設定しない(ワイヤーフレーム風にしたければ設定する)。

「レンダー」タブを選択して、「レンダーオプション」をクリック。「レンダーオプション」ウィンドウが開いたらさらに「レンダー」タブを選択。「ラインレンダー」オプションを設定。通常のシェーダを使っている時にラインレンダーを選択してしまうとサーフェースが透明になってポリゴンのエッジだけ色がつく透過ワイヤーフレームが出力されてしまうけど、セルシェードをする場合にラインレンダーを指定しておかないとエッジのラインが出ないので注意。

機首はサーフェース境界なのでやむを得ないけど、カナード翼後ろの部分のエッジはモデリングの手間を減らす都合上生じてしまったもの。真面目に消そうと思えば消せる。主翼端にちょこっと出てる不規則エッジも原因はわかってるけど、今回は実験なのでひとまず放置。

ブリリアント・カット

最終更新:2016/09/06

成り行きで58面ブリリアント・カットを作ってみた。

三角ポリゴン以外では完全平面を作るのって結構難儀なんだけど、あえて完全平面を目指してみた(LightWaveで言うところの平面率0.0%)。精度が悪くてもよければ簡単に作れるんだけどねー。

石の幅を100%とすると、頂点の座標は0.000006%くらいの誤差があるけど、モデラーの精度の限界なのである程度は仕方ない。要はレイトレースの精度を確認するためなので平面がうまくできていればいいことにする。

brilliant000
brilliant001

本当にブリリアント・カットなのかちょっとわかりにくいので、直上からの構図で透過ワイヤーフレーム。各部の比率はBrilliant Cut Diamonds(英語)を参考にした。特に、『Eulitz Calculated Brilliant 1972』という比較的新しく算出されたものを用いている。

brilliant002

案の定、LightWaveのレンダーに屈折率2.417の再現は荷が重すぎた(聞くところによると、宝石商の屈折率計でも測れないらしい)。白のライトを虹色に分解してくれるとはさすがに思えなかったので、念のため赤・青・緑のライトを配置してみたけど、可視光の波長によって屈折率が微妙に変わる現象はさすがに演算してくれなかった。ダイヤモンド特有の虹色の輝きは再現できず、真っ黒くろすけになってしまいました。

直上からの構図も試してみたけど、ほとんど真っ黒でもはや宝石かどうかすらわからないという……。

たまには「デザインが決まりきっていてターゲットが明確なモデリング」もやってみると刺激になる。

昔にもブリリアントカットには挑戦したことあるんだけど、「58面体」を「58角形」と勘違いしていて、まったく別物になっていたのに長らく気がつかなかったのは若気の至り。

LightWave用MMDモデルPMD形式ファイル・インポーター

最終更新:2016/09/06

MikuMikuDnace用モデルデータのPMD形式ファイルをLightWaveで読み込む方法。

まず、『Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ』(Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package)が必要なので、マイクロソフトの次のページからダウンロードする。

パッケージの詳細についてはこちらを参照。

リストから「Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ」を選択するとダウンロードページに移動するので、システムによってダウンロードするファイルを選ぶ。Windows XPやVistaなどの32ビットシステムの場合はx86ベース(vcredist_x86.EXE)、Windows 7や8のような64ビットシステムの場合はx64ベース(vcredist_x64.EXE)を選択する。両方ともダウンロードしても特に問題なかった。EXEファイルを実行するとパッケージが自己解凍してインストールされる。

LightWaveのプラグインを多数作成しているfault0d氏のウェブサイト『Poly to Poly』からAS PMD Helperをダウンロードする。私はLightWave10を使っているのでバージョン0.121を選択。アーカイブファイルにはx64用のプラグインも同梱されている。

zipファイルを解凍して、AS_PMD_Helper.pファイルをLightWave用のプラグインが格納されているフォルダにコピーする。バージョンによってフォルダ構成は異なるのでLightWave 2015でも同じかどうかはわからないけど、LightWave 10では次のフォルダ。

C:\Program Files\NewTek\LightWave_10\support\plugins

モデラーを起動し、「ユーティリティ」タブを選択して「プラグイン追加」をクリック。

AS_PMD_Helper.pファイルを指定するとPMDインポーター/エクスポーターといくつかのPMDファイル作成補助プラグインが追加される。

AS_PMD_Helperに同梱されているドキュメントに従ってモデラー設定ファイル(lwm*.cfg ※「*」はLightWaveのバージョンごとに異なる)を更新しておくとPMD形式ファイルをLWOオブジェクトと同列に扱ってくれるようになる。設定ファイルはシステムドライブ(普通はCドライブ)の「ユーザー(Users)」フォルダの各ユーザーフォルダ以下「.NewTek」フォルダ内にあるので注意。

公開されているPMDファイルをダウンロードして試してみた。今回はシナモソさん作成のボーイング767-200をベースにdiagraph01さんが改造したE-767(diagraph01さんのページ)。テクスチャの再現性などなかなか優秀。個人的にはこれで充分満足。

ただ、細かいことを言えば、可動部分など分割されているパーツは一旦ひとつのレイヤーにまとめられてしまって名前がついてるだけで空っぽのレイヤーが大量にできる。また、スケルゴン(ボーン)もロードされるけどあくまでもMMD用に作られたデータなので、インポートした直後はLightWaveでのアニメーションの実用には堪えない(座標や必要なボーンの目安にはなる)。

MMDは日本発のソフトウェアなのでボーンやウェイトマップの名称にかな・漢字を使っていることが多く、改名しないと文字化けしてしまってスケルゴン・エディタなどの一部の機能で使いづらい。もっとも、LightWaveで2バイト文字や3バイト文字を使うのは昔から御法度なので、どっちかと言うとLightWave側の問題なんだけど。(そのへんAdobeの製品はローカライズが完璧なのでビックリする)

PMD形式ファイルを他のソフトウェアで変換することなくLightWaveで直接ロードできるだけでもありがたいと思ったほうが良さそう。

思っていたよりも調整するところがなかったので、単純にLWO形式で保存した後レイアウトに移してレンダリングしてみたのが次の画像。

E-767

関連記事

GIMP2.8のメニューバーのフォントの戻し方

最終更新:2016/09/30

以前に、Inkscape 0.48.2以降のメニューがWindowsの設定値に従ってくれず、明朝体風のフォントになってしまうので、Inkscapeのメニューバーのフォントの戻し方という記事を書いた。

GIMP2.8.10より古いバージョン

最近、GIMPもバージョンアップして2.8になっていたので、アップデートしてみたところ、Inkscapeとまったく同じ問題が発生した。どうも、中国語のフォントが選択されているらしいんだけど、クロスプラットフォーム用のフリーライセンス・ライブラリを使用して開発しているソフトウェアではほぼ共通の問題があるらしい。

しかも、設定の変更の仕方が異なるという不親切さ(笑)。

次のgtkrcファイルをテキストエディタなどで開く。

C:\Program Files\GIMP 2\share\gimp\2.0\themes\Default\gtkrc
style "gimp-default-style"
{
  stock["gtk-dialog-error"] =
    {
      { "images/stock-error-64.png", *, *, "gtk-dialog" }
    }
(略)
}

上記の部分に、次のように1行追加する。

style "gimp-default-style"
{
  font_name = "Meiryo 9"
  stock["gtk-dialog-error"] =
    {
      { "images/stock-error-64.png", *, *, "gtk-dialog" }
    }
(略)
}

とりあえず、「gtk-2.0」というモジュールと「gtkrc」という設定ファイルが深く関与していることは両者に共通していたので、次にこういうことがあったらまずそこを疑えばいいということだね。

GIMP2.8.16/18

実際に試すことができたのがGIMP2.8.16とGIMP2.8.18だけだったのでこれら2つのブランチについてはほぼ確実だと思うけど、他のウェブサイトを見る限りでは、GIMP2.8.10以降であればおそらく以下の方法でメニューバーのフォントを変更できる。

最近のGIMP2.8ブランチでは変更方法が変わった。PCのユーザーごとに設定ファイルが独立したため、カスタマイズしやすくなった。次のパスにファイルが存在していれば、gtkrcファイルを開く。存在していない場合は、新規作成する。普通のテキスト・ファイルでいい。

C:\Users\[USER NAME]\.gimp-2.8\gtkrc

次の一節をgtkrcファイルの末尾に追加するか、新規作成したファイルの先頭に記述する。

style "gimp-default-style"
{
  font_name = "Meiryo 9" 
}

GIMP2.8がこのファイルを参照しているとする根拠は、次のパスにあるthemercというテーマ設定ファイルで上のgtkrcファイルをインクルードしているから。

C:\Users\[USER NAME]\.gimp-2.8\themerc

themercファイルには次のように記述されている。

# GIMP themerc
#
# This file is written on GIMP startup and on every theme change.
# It is NOT supposed to be edited manually. Edit your personal
# gtkrc file instead (C:\Users\Taku Oshino\.gimp-2.8\gtkrc).

include "C:\\Program Files\\GIMP 2\\share\\gimp\\2.0\\themes\\Default\\gtkrc"
include "C:\\Users\\[USER NAME]\\.gimp-2.8\\gtkrc"

# end of themerc

もし、インクルードしているファイルが異なる場合は、themercに記述されているパスをよく見て新規gtkrcファイルを作成する。

参考記事

Inkscapeのメニューバーのフォントの戻し方

最終更新:2016/09/06

だいぶ前に、Inkscapeをバージョン0.48.2にアップデートしたらメニューバーのフォントが突然明朝体風になってしまって気持ち悪かったんだけど、戻し方がわからなくて困ってた。コンフィギュレーション系のファイルを開いてみてもどこをいじればいいのかサッパリ。

手に負えそうにないので、ネットで調べてみた。要約すると次のようにコードを少し編集する。

次のgtkrcファイルをテキストエディタなどで開く。

C:\Program Files (x86)\Inkscape\etc\gtk-2.0\gtkrc

gtkrcファイルの末尾に次の2行を追加する。

# UI font
gtk-font-name = "sans 10"

次のpango.aliasesファイルをテキストエディタなどで開く。

C:\Program Files (x86)\Inkscape\etc\pango\pango.aliases

pango.aliasesファイルの「sans」行の「arial,」の直後に「meiryo,」を追加する。

tahoma = "tahoma,browallia new,mingliu,simhei,gulimche,ms gothic,kartika,latha,mangal,raavi"
<span style="background-color: lemonchiffon; padding: 3px;">sans = "arial,browallia new,mingliu,simhei,gulimche,ms gothic,kartika,latha,mangal,raavi"</span>
serif = "times new roman,angsana new,mingliu,simsun,gulimche,ms gothic,kartika,latha,mangal,raavi"
mono = "courier new,courier monothai,mingliu,simsun,gulimche,ms gothic,kartika,latha,mangal,raavi"
monospace = "courier new,courier monothai,mingliu,simsun,gulimche,ms gothic,kartika,latha,mangal,raavi"

これはクロスプラットフォームのソフトウェア開発の素人にはわからないね。世の中にはすごい人がいるものだね。感謝感謝。

いつの間にかバージョン0.48.4が安定版になっていたけど、せっかくメニューバーが直ったことだし、アップデートはまた今度にしよう。(0.48.4はGUIに座標や各種数値を入力できない不具合があるので、バグフィックスされるまでは0.48.1以下が無難。)

gtkrcに次のコードを直接書いてやってもいけそうな気もするけど、今は0.48.1に落として使っているので試してみてはいない。

gtk-font-name = "Meiryo 10"

参考記事

WordPressを自分のパソコンで動作させる for Windows

最終更新:2017/01/13

無料のブログサービスを卒業してWordPress公式ウェブサイト)を試してみたいと思っている人は多いのではないでしょうか。
しかし、WordPressはPHPというプログラム言語(今風に言うとスクリプト系の言語)で開発されているので、普通はPHPをインタープリタ風にリアルタイムで解釈して実行してくれるサーバーを用意しなければなりません。また、データベース・ドリブンなので、データベース制御をしてくれるモジュールも必要です。
今までにも、Windowsでできなくはなかったのですが、Windows用のApache(又は IIS)、PHP、MySQLをインストールして適切に設定しなければならず、サーバー構築と同じくらい専門知識が必要でした。

サーバーをすでに用意してあって、サーバー提供サービスがあらかじめPHPやMySQLを使える環境を用意してくれていたとしても、テストのためにいちいちFTP転送してからブラウザで確認するのは少々面倒です。

そこで、専門知識がまったくなくても、FTP転送をしなくても、誰でも簡単にWordPressをローカルコンピュータで試せる方法を紹介します。
将来的にレンタルサーバーを借りようと思ってはいるけど、サーバーをうまく管理できなかったらどうしよう、WordPressが思ったより使いにくかったらどうしよう、と心配な人はどうぞお試しあれ。

  1. まず、マイクロソフト社の「Microsoft/web」サイトから「WebMatrix3」をダウンロードしてインストールします。今のところは無料です。
  2. 起動したら、「アプリギャラリー」を選択します。アプリケーション一覧が表示されたら、おそらく左上トップに表示されている「WordPress」を選択します。
  3. あとは画面の指示に従っていけば、WordPress本体をダウンロードしてインストールするとともに、自動的にPHPとMySQLをインストールしてデータベースを構築してくれます。
    データベース名、ユーザー名、初期パスワードなどをWebMatrixが決めてくれますが、記録しておかなくても使うことはないので気にしなくてよいです。気になる人は「コピーする」というリンクをクリックするとクリップボードに乗りますので、テキストエディタなどにペーストして保存してください。
  4. しばらくするとWebMatrixのホーム画面が起動して、自分がいつも使っている(標準に設定している)ブラウザへ自動的にWordPressがローカルホストのまま表示されます。
    基本設定入力画面になりますが、ローカルでテストしているだけなので、適当でいいです。後でも変更できます。最初は英語で面食らうかもしれませんが、難しくないので辞書を引いてでもなんとか入力してください。
    設定が終わるとログイン画面が出るので、自分で決めたユーザー名とパスワードでログインすると、WordPressの管理画面が表示されます。

wordpress_en

英語のままでいい人はこれで終わりですが、「WP Multibyte Patch」プラグインをアクティベートしておかないとマルチバイト文字(日本語の文字や記号はほとんどマルチバイト文字)の表示に支障が出ることがあります。

以下、日本語化手順です。

  1. いったん、WebMatrixの「ファイル」-「サイトを閉じる」で閉じてから、WordPress.org日本語版から日本語版をダウンロードして解凍します。この記事を書いている時点でのバージョンは3.5.1です。日本語用に若干チューニングされているようです。
  2. 先ほど作成したWordPressは、次のローカルフォルダに入っています。WebMatrixのホーム画面の「パス:」にも表示されていますので、参考にしてください。
    C:\User\(user name)\Documents\My Web Sites\WordPress

    このフォルダ以下にあるファイルを解凍した日本語版ファイルにすべて置き換えます。特に重要なのは「languages」フォルダです。ここに日本語化モジュールが入っています。

  3. 次に、WordPressフォルダ直下にあるwp-config.phpファイルをテキストエディタで開き、次の定義行を探します。“WPLANG”で検索すれば一発です。
    define ('WPLANG', '');

    これに、日本語(ja)を指定します。

    define ('WPLANG', 'ja');
  4. 再びWebMatrixから「ファイル」-「開く」-「サイトとしてのフォルダー」を選択し、「WordPress」を選択します。すると、定型文の部分は日本語化されています。

wordpress_ja

また、「ファイル」-「新規」-「アプリケーションギャラリーからサイト」でいくらでも追加できます。日本語版と英語版を別に作っておいて、ネットからダウンロードしたテンプレートの反映具合などを見ると便利かもしれません。

ちなみに、私は試しにウィキペディアなどで使われている「MediaWiki」をインストールしてみましたが、あっさり起動しました。こちらは多言語化テンプレートデータを最初から搭載しているので、個人設定(Preferences・プリファレンス)から「ja – 日本語」を選択して保存するだけで日本語になります(メインページは本文なので英語のままですが)。

mediawiki_ja

三角関数とブーリアン

最終更新:2020/04/22

さて、三角関数とブーリアンの話をしましょう。特にこの二者に直接の関係はないんですが、正確なモデリングをしようとすると、結構避けて通れないものなんです。

今回は完成したものを先に出しましょう。目標はこれです。これを見ただけでどうモデリングすればいいかひらめく人はこの記事を読む必要はないです。私の使っている方法が絶対正しいなんてことはないですから。

bool000

まず最初に例によって「ディスク」ツールで六角形の板を切り出してやります。厚さは50ミリメートルにしてあります。半径はこの後のモデリングに影響するので、簡単のために1メートルにしてあります。

bool001

六角形の板をコピー(Ctrl+C)でして別のレイヤーに移動して貼り付け(Ctrl+V)ます。Windowsユーザーにはおなじみの「コピー・アンド・ペースト」ですね。別レイヤーに移した六角形の板を正三角形に加工しなおします。方法はなんでもいいですんですが、多少面倒でも精度の良い方法を選択します。

bool002

六角形の右下にある頂点をふたつとも選択して、モデラーウィンドウの下にある「情報」ボタンを押すか、キーボードの「I」を押します。上に示したような新しいダイアログが出てきたら、「全編集」ボタンを押します。X軸とZ軸の値を0に変更してダイアログを閉じます。

すると、次の画像のような形に変形するはずです。

bool003

次の画像で黄色い色で選択されている3つのポリゴンは必要ないので「Delete」キーを押して消してください。

bool004

同様に、不要な頂点を消します。

bool005

次に、三角形の板に形成するために頂点の統合を行います。「詳細」タブ、「ポイント」グループの「統合」ツール(Ctrl+W)を使用します。よく使う機能なので、この際ショートカットを覚えてしまいましょう。図ではスペースの都合で上からの絵しか示していませんが、板状なので上面と底面のふたつずつ頂点があることに気をつけてください。

bool006

無事に加工が終わると、次の画像のような形になっているはずです。ここで重要なのは、正三角形の頂点のひとつが原点に位置しているということです。原点を頂点に持っているということは、先に作成した正六角形の中心を得たのと同じということです。

bool007

六角形の板を作ったレイヤーのボタンを「Shift」キーを押しながら選択すると、同時表示されて次のような感じで表示されます。三角形の板の上面と底面を「移動」ツールで500ミリメートルずつ上下に移動させてあります。ついでにわかりやすくするために赤く色をつけておきました。

bool008

さて、準備はここまでで、ここからが本番です。要するに、赤い三角柱で六角形の板に穴をあけたいわけですが、今のままでブーリアンをやっても、穴ではなく、三角の切り欠きのあるいびつな七角形の板ができるだけです。

そこで、穴になるべく用意した赤い三角柱を縮小します。縮小の中心位置をマウスで指定してもいいんですが、正確な位置に穴をあけることは困難でしょう。アクションの中心に「選択範囲」モードを指定しても単純に最大幅の半分になるだけで、正三角形のそれぞれの頂点からの距離が等しい中心点を得ることはできません。

ここで登場するのが皆さんの嫌いな三角関数です。中心位置を次の図のように求めます。

六角形の半径を最初に1メートルに指定しましたから、中心位置のX成分は500ミリメートルで自明です。

正三角形の頂点から底辺に向かって垂線を引いた場合、\angle Aは、正三角形の頂点の角度をちょうど二等分するので、30度です。\angle xyは90度なので、\angle Bは60度です。



X成分が自明なので、Y成分は次の式で求めます。

     \begin{align*} y=500\times\tan 30^{\circ}=288.67513459481288225457439025098\dots\textrm{ [mm]} \end{align*}

これを「拡大縮小」ツールの「中心」に入力します。

倍率はお好みで。とりあえず85%にしてあります。上の図ではついうっかり「y」にしてしまいましたが、入力先は「中心Z」ですのでお間違いのないよう。

bool009

こんな感じに縮小されたらバッチリです。

bool010

そうしたら、今度は「複製」ツールを使って、穴になる三角柱を一度に作成します。「複製数」を5に設定して、ヘディング「H」を60度に設定します。あとは変更しなくていいです。

bool011

「OK」ボタンを押して複製した結果が次の画像のようになっていれば成功です。

bool012

なんでわざわざ面倒くさい計算をしてまで中心位置を小数点以下数桁にわたって求めたか。ひとえにこの「原点を中心に回転させながら複製する」をやりたかったからなのです。一見面倒そうでも、このほうが結果的にミスが少なく、戻り作業が発生しにくく、正確かつ楽なのです。

6つある赤い三角柱のうち、左の4つを選択して、さらに「複製」します。今度は「複製数」を2にして、「オフセット X」を-1メートルに設定します。ヘディング「H」は0度に戻しておいてください。

最初の正六角形の半径を入力するだけで穴が正確に複製されていくなんて、なんて素晴らしいんでしょう!

bool013

次に、六角形の板のほうの左方3つの頂点を上面、底面ともに選択して、-2メートル「移動」させます。

bool014

次の画像のようになっていれば完璧です。

bool015

そして、いよいよブーリアンです。六角形の板のあるレイヤーをアクティブにして、赤い三角柱群のあるレイヤーの下半分をクリックします。イメージがわかない人は次の画像の右上を見てください。こんな感じです。

bool016

「構造」タブの「複合」グループにある「ブーリアン」を選択します。
「減算」ボタンをクリックして「OK」を押します。すると…

bool017

このようになります。成功です。OpenGLの表示崩れも起きていないようですね。もし、表示崩れが起きていたら「三角分割」を試してみましょう。

お気づきかと思いますが、穴を開けられた場所の面は、赤い三角柱の色になっています。これをうまく利用すれば、細かいポリゴン選択をせずとも複合的な配色が可能になります。

bool018

以上です。細かいことを言うとまだありますけど、とにかく実用上はこれで十分なはずです。
ブーリアンの真骨頂の一部と三角関数の重要さを垣間見てもらえたのなら幸いです。

bool019

六角柱の面取り

最終更新:2020/04/22

「そもそも〝面取り〟って何?」という人のために一応書いておくと、金属加工や木工などで装飾や安全性の確保のために角を削ることを言います。機械製図をやったことがある人や機械工学を勉強したことがある人なら一回ならずとも聞いたことがあるはずの言葉です。

架空のメカをデザインするにあたって面取りをする理由は、

面取りした角の部分が絶妙に反射してかっちょいいからです。

それ以上の理由はありません。面取りの厚さも結構適当です。

で、直方体や立方体の面取りが一番簡単なんですが、「べべル」ツール一発で終わりなので面白くないです。ここは、マウスでやるのはちょっと大変そうな六角柱の面取りに挑戦してみましょう。
なんで六角形なのかと言うと、

最近のメカの流行りだからです(ドヤ顔)。

面取りをすると、面の数が普通は倍になります。なので、「ディスク」ツールで次のように正12角柱を作ります。

hexprism000

細かい値はとにかく簡単なほうがいいです。深く悩む必要もまったくないです。大きさなんてあとでなんとでもなります。Y軸方向に作りましたけど、別にX軸でもZ軸でもいいです。

hexprism001

こんな形の正12角柱ができます。

ところで、正12角形の一辺あたりの中心角って何度でしょう?

     \begin{align*} 360 \div 12 = 30 \ \textrm{[deg]} \end{align*}

ですね。自動生成されたままだと頂点が軸方向に生成されてしまって加工しにくいので、「回転」ツールで30度の半分の15度回します。なんで15度かというと、 面取りしたい面を作業者から見て水平にしたいためなんですね。なんでも水平・垂直にしてしまったほうが作業が楽なのは言うまでもないですね。

hexprism002

次に、水平になってくれちゃった面を選択して「ストレッチ」を適用します。水平になっている面というのはひとつとは限りません。六角柱の場合はふたつありますので、一緒に選択してやります。同じ作業をわざわざ6回繰り返すなんて馬鹿馬鹿しいので、3回で済ませる方法を考えましょう。
面取りをする幅にもよりけりなんですが、ここでは15%にしてみました。今回の作例ではY軸方向で垂直倍率を50%以下くらいにしてやると綺麗に面取りできます。「せっかく面を水平にしたのになんで垂直ストレッチするの?」とは聞かないでください。そういうもんだと思ってください。私もいまひとつ理解できてません。

hexprism003

現状、こんな感じになってます。わかりやすいように加工した面を選択状態にしてありますが、これを解除して、再び15度ずつ回します。「適用」ボタンをクリックして何度か回し続けていると、再び水平になってくれる面が現れてくれます。そこで水平になってくれている面(この場合はふたつ)を選択して、再び同じ設定で「ストレッチ」です。

hexprism004

これをあともう一回繰り返すとあら不思議。大まかには六角柱風なのに、綺麗に面取りされててちょっとメカっぽくなってるんじゃなぁ~い?
次の画像は一連の作業が終わった面取り済み六角柱。ただの六角柱よりは「メカっぽく」見えると思うんだけど、どうでしょ?

hexprism005

で、最期にオマケに「ベベル」を2回かまして、フタらしきものをつけてみました。ミサイルのランチャー風な何かに使えそうなイメージで。

hexprism006

一見簡単そうに見える作業も、直方体や立方体でもない限り、マウスだけで目分量でモデリングするのはちょっと難しいかも、というのが少しでも伝わったのなら幸いです。
この方法は何角形の多角形柱にも応用できるのが最大の利点です(回転させる都合上360度の約数にあたる多角形がいいかも)。「立方体なんてつまんない」と最初は飛ばしてしまいましたが、立方体もこの方法を使ったほうが綺麗に面取りできることもあります。
この方法で造った多角形柱の各頂点の座標は当然のように浮動小数点数のやたらに細かい数になっています。あとで加工するにしても、マウスで浮動小数点数を扱いきるのはなかなか大変ですよ。

もちろん、「そんな単純な形のモデルなんか、大雑把でいいんだよ」という主張は否定しません。メカをどんな風に造るのかは個人の自由です。多少歪んでたってレンダリングした結果を見た大半の人は気付きません。架空のメカならなおさらです。誰もそれを「正しい/間違ってる」なんて言えませんから。それで誰もが認める「かっこいいメカ」を造れる自信があるというのなら誰にも止められはしないので。

関連記事