2008年08月23日
Blenderのノードエディターでテクスチャ作り修行中
● やっぱり最後はテクスチャ~ですよね~
フォトショップのテクスチャ教科書は山ほど出回ってますけど、
どうせなら、Blenderのノードエディターでテクスチャ作りしてみよう、とずいぶん前から悪戦苦闘してます。
とはいえ、いろいろ試しているうちにだんだんコツがつかめてきました。^^
● 基本の組み合わせ
2枚のマテリアルを、1枚のプロシージャルテクスチャ(Wood)で合成(Mix)したところ。
フォトショップの入門書でも必ず説明されている基本でしょうか。

最初の頃は、ワケワカメのノードエディタでしたけど、フォトショップのレイヤをバラバラにして
つなげたものだと感じる様になってからは、だんだん作りたいテクスチャが作れるように
なってきたみたいです。
レイヤが垂直思考なら、ノードエディタは水平思考、という感じです。
● 凹凸感を出す。
グレースケールのテクスチャをノーマル値(Normal:法線ベクトル)に利用すると、凹凸感がでます。
ノードエディタ上では、青いボタン同士をつないでます。
バンプマッピングの定番操作でしょうか。

● ノイズ効果の活用
ブレンダーが用意している、プロシージャルテクスチャにはイロイロなオプションがありますので
おもしろい効果が出せます。
プロシージャルテクスチャ「Wood」2枚のうち片方をノイズで散らして加算(Add)してみました。
ノーマル値が影響して、光るリキッドみたいなテクスチャになります。

● ノード同士の演算で岩石風テクスチャ。 影もつきます
フォトショップのレイヤと同じように、ノードエディタにも、加算・減算・乗算などの演算処理がたくさん
あります。(ここでは乗算Multiplyを使用)
プロシージャルテクスチャ「Musgrave」使用。
3Dウィンドウでライトを配置しておくと、影もつきます。
でも、インワールドでも影がつくので、扱いがむづかしいですね。

● 野菜、果物風テクスチャ
表面にかすかな傷や点々がついていると、リアル感がでますね。
黒いテクスチャの微かな模様を、減算(Subtract)で加えてみました。

● だめな見本。。。 ><
テクスチャ作りに力を入れすぎて、形作りの気力が無くなってしまいました。。。_| ̄|○
ものづくりは計画的に。。。

● ノードエディタで、UVマップの変更
「ColorRamp」ノードで、UVマップの色を変更できます。
赤いカヌーのテクスチャを青くしてみました。
この程度の塗り絵テクスチャならフォトショップで作業したほうが早いですけど、
色を変更してBAKEするだけで3Dウィンドウのメッシュに反映するので
とても便利です。


blender ver 2.47 Blender Foundation
フォトショップのテクスチャ教科書は山ほど出回ってますけど、
どうせなら、Blenderのノードエディターでテクスチャ作りしてみよう、とずいぶん前から悪戦苦闘してます。
とはいえ、いろいろ試しているうちにだんだんコツがつかめてきました。^^
● 基本の組み合わせ
2枚のマテリアルを、1枚のプロシージャルテクスチャ(Wood)で合成(Mix)したところ。
フォトショップの入門書でも必ず説明されている基本でしょうか。

最初の頃は、ワケワカメのノードエディタでしたけど、フォトショップのレイヤをバラバラにして
つなげたものだと感じる様になってからは、だんだん作りたいテクスチャが作れるように
なってきたみたいです。
レイヤが垂直思考なら、ノードエディタは水平思考、という感じです。
● 凹凸感を出す。
グレースケールのテクスチャをノーマル値(Normal:法線ベクトル)に利用すると、凹凸感がでます。
ノードエディタ上では、青いボタン同士をつないでます。
バンプマッピングの定番操作でしょうか。

● ノイズ効果の活用
ブレンダーが用意している、プロシージャルテクスチャにはイロイロなオプションがありますので
おもしろい効果が出せます。
プロシージャルテクスチャ「Wood」2枚のうち片方をノイズで散らして加算(Add)してみました。
ノーマル値が影響して、光るリキッドみたいなテクスチャになります。

● ノード同士の演算で岩石風テクスチャ。 影もつきます
フォトショップのレイヤと同じように、ノードエディタにも、加算・減算・乗算などの演算処理がたくさん
あります。(ここでは乗算Multiplyを使用)
プロシージャルテクスチャ「Musgrave」使用。
3Dウィンドウでライトを配置しておくと、影もつきます。
でも、インワールドでも影がつくので、扱いがむづかしいですね。

● 野菜、果物風テクスチャ
表面にかすかな傷や点々がついていると、リアル感がでますね。
黒いテクスチャの微かな模様を、減算(Subtract)で加えてみました。

● だめな見本。。。 ><
テクスチャ作りに力を入れすぎて、形作りの気力が無くなってしまいました。。。_| ̄|○
ものづくりは計画的に。。。

● ノードエディタで、UVマップの変更
「ColorRamp」ノードで、UVマップの色を変更できます。
赤いカヌーのテクスチャを青くしてみました。
この程度の塗り絵テクスチャならフォトショップで作業したほうが早いですけど、
色を変更してBAKEするだけで3Dウィンドウのメッシュに反映するので
とても便利です。


blender ver 2.47 Blender Foundation
2008年08月18日
ブレンダーでカヌー作り (まだ形だけ。。。><)
● 急にカヌーを作ってみたくなった
学生の頃、琵琶湖や関西本線笠置町のカヌー教室によく通ったなぁ。
9月~10月頃は、猛暑も終わって川の水も澄んでくるから、カヌーのベストシーズンなんですよね~。
暑さに参っているので、無性にカヌーツーリングとかしたい今日この頃です。
今頃、保津峡とか涼しいだろーな~。。。
● カヌーの断面作り。
Blenderの、NURBS Circle を配置、 円周をSubdivideして、カヌーの断面を描きます。
少し船底が尖がってますけど、後で平べったく変形させますし、水に浮かべると、少々浸水
するみたいなので、底上げの意味もあります。

● 断面図を並べる
断面図6枚から始めて試行錯誤したら、9枚くらい必要だとわかった。

● 断面図を拡縮、移動して、カヌーの輪郭に
上からの図、横からの図です。 断面図を縮小してカヌーの輪郭を作りました。
カヌーの三面図があれば、背景に表示して合わせればいいですね。
今回は、カヌーのカタログを見ながら、適当に変形してみました。

● ロフト作業1 (複数の曲線から、1枚の曲面を作る作業)
全ての断面図を選択して、一体化します。(見た目は変わりませんが1プリムになります。)

● ロフト作業2 (複数の曲線から、1枚の曲面を作る作業)
エディットモードで、一体化した曲線を選択して、曲面にします。

● NURBS Surface の完成

● 形を整える
「Curve Tools」の「Resol U/V」を調整して、曲面の、軸方向・円周周り方向の分割数を調整します。
このカヌーでは、34/48にしてみた。
NURBS Surface の頂点を移動して、カヌーの形を整えます。

● NURBS Surfaceを、メッシュに変換
NURBS Surface のままでは、スカルプテッドプリムの為のUV展開ができません。
Surfaceオブジェクトを、Meshオブジェクトに変換します。

● Meshになったカヌー形状を、UVエディタに展開、スカルプマップ作成
ここは、Blenderでスカルプを作るときの、おなじみの手順です。

● カヌーの形のできあがり~ ^^




NURBSからつくるスカルプは、けっこうキレイな仕上がりになるので、気に入ってます。
ぜひ、試してみてください。
● ご参考
過去にも、NURBSでつくったスカルプの紹介してます。
はじめてのスカルプ製アクセサリ作り
http://pastel.slmame.com/e175463.html
スカルプでキレイな曲線を作りたい
http://pastel.slmame.com/e288654.html
● お盆休みも終わったので、、、、
テクスチャと、スクリプトを仕込む時間が無くなってしまった。。。><
blender v2.46 Blender Foundation
学生の頃、琵琶湖や関西本線笠置町のカヌー教室によく通ったなぁ。
9月~10月頃は、猛暑も終わって川の水も澄んでくるから、カヌーのベストシーズンなんですよね~。
暑さに参っているので、無性にカヌーツーリングとかしたい今日この頃です。
今頃、保津峡とか涼しいだろーな~。。。
● カヌーの断面作り。
Blenderの、NURBS Circle を配置、 円周をSubdivideして、カヌーの断面を描きます。
少し船底が尖がってますけど、後で平べったく変形させますし、水に浮かべると、少々浸水
するみたいなので、底上げの意味もあります。
[SPACE] -> [Add] -> [Surface] ->[NURBS Circle] : NURBS Circle配置
[Subdivide] : 円周分割
[Subdivide] : 円周分割

● 断面図を並べる
断面図6枚から始めて試行錯誤したら、9枚くらい必要だとわかった。
[SHIFT][D] : 断面図複製
[G] : 断面図移動(CTRLキーを押してると、グリッドにスナップするので便利)
[G] : 断面図移動(CTRLキーを押してると、グリッドにスナップするので便利)

● 断面図を拡縮、移動して、カヌーの輪郭に
上からの図、横からの図です。 断面図を縮小してカヌーの輪郭を作りました。
カヌーの三面図があれば、背景に表示して合わせればいいですね。
今回は、カヌーのカタログを見ながら、適当に変形してみました。
[S] : 拡大・縮小
[G] : 断面図移動
[G] : 断面図移動

● ロフト作業1 (複数の曲線から、1枚の曲面を作る作業)
全ての断面図を選択して、一体化します。(見た目は変わりませんが1プリムになります。)
[CTRL][J] : 複数曲線の一体化

● ロフト作業2 (複数の曲線から、1枚の曲面を作る作業)
エディットモードで、一体化した曲線を選択して、曲面にします。
[TAB] : エディットモードにする
[A] : 一体化した曲線の全ての頂点を選択する
[F] : NURBS曲面の作成
[A] : 一体化した曲線の全ての頂点を選択する
[F] : NURBS曲面の作成

● NURBS Surface の完成

● 形を整える
「Curve Tools」の「Resol U/V」を調整して、曲面の、軸方向・円周周り方向の分割数を調整します。
このカヌーでは、34/48にしてみた。
NURBS Surface の頂点を移動して、カヌーの形を整えます。

● NURBS Surfaceを、メッシュに変換
NURBS Surface のままでは、スカルプテッドプリムの為のUV展開ができません。
Surfaceオブジェクトを、Meshオブジェクトに変換します。
[ALT][C] : Surfaceオブジェクトを、Meshオブジェクトに変換

● Meshになったカヌー形状を、UVエディタに展開、スカルプマップ作成
ここは、Blenderでスカルプを作るときの、おなじみの手順です。

● カヌーの形のできあがり~ ^^




NURBSからつくるスカルプは、けっこうキレイな仕上がりになるので、気に入ってます。
ぜひ、試してみてください。
● ご参考
過去にも、NURBSでつくったスカルプの紹介してます。
はじめてのスカルプ製アクセサリ作り
http://pastel.slmame.com/e175463.html
スカルプでキレイな曲線を作りたい
http://pastel.slmame.com/e288654.html
● お盆休みも終わったので、、、、
テクスチャと、スクリプトを仕込む時間が無くなってしまった。。。><
blender v2.46 Blender Foundation
2008年08月03日
OpenSimサーバ構築記録その7(暗号化しなくちゃ編)
● きっかけ
私のボス: ところで、OpenSimって経路暗号化してるの?
私: 普通のセカンドライフはSSLで暗号化してますけど、OpenSimは何もしてないです~。
私: 設定はあるみたいですけど、やり方がよくわかりません><;
私のボス: じゃあ、とりあえず、SSHでトンネル掘って、OpenSimに繋がるか試してみたら?
私: は~い。(´・ω・`)
というわけで、マイパソコンとOpenSimサーバをSSHのポートフォーワードで接続してみました。
今後OpenSimが普及する為には、やっぱり、暗号化とかセキュリティは必要ですよね~。
● SecondLifeはちゃんと、SSL(Secure HTTP)で暗号化してる(みたい)
パケットキャプチャソフトを起動して、ビューアでセカンドライフにログインしてみました。
マイパソコン(MyPC)と、ログインサーバ(login.agni.lindenlab.com)間のパケットのやり取りです。
キャプチャソフトのフィルタで、SSLのパケットだけ取り出してます。

09行目:MyPCです。こんにちは。SSLで話してます。
11行目:サーバです。こんにちは。TLSで話してます。
12行目:サーバです。TLSで会話しましょう。
14行目:MyPCです。鍵を交換しましょう。
15行目:サーバです。暗号化の方法をきめましょう。
、みたいなやり取りをしているのが、よくわかります。^^
● OpenSimは、暗号化していない?
実は、UserServer、MessagingServerを初めて起動するときに、SSLを使うかどうかたずねてくるのですが、、、
opensim1:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.UserServer.exe
・・・・・・
・・・・・・
USER SERVER: Use SSL? true/false [False]:
opensim1:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.MessagingServer.exe
・・・・・・
・・・・・・
MESSAGING SERVER: Use SSL? true/false [False]:
・・・・・・
・・・・・・
USER SERVER: Use SSL? true/false [False]:
opensim1:/usr/local/opensim/0.5.8/bin# mono OpenSim.Grid.MessagingServer.exe
・・・・・・
・・・・・・
MESSAGING SERVER: Use SSL? true/false [False]:
当然、これだけで暗号化できるわけありません。。 ><;
・ 暗号鍵はどうする?
・ サーバ証明書はどうする?
・ 認証局はどうする?
などなど、わからんことだらけです。。。
なので、OpenSimがSSLをサポートしていないなら、OpenSSHで経路を暗号化してみよう~、というワケです。
● OpenSSH (Secure SHell) の公開鍵方式で、経路の暗号化とポートフォーワードする
これは、普通のOpenSimへの接続図です。
グリッドモードなので、OpenSimサーバ側のポート番号は8002です。
暗号化されていないので、パケットの中身は丸見え状態です。 ><

OpenSSHを使うと、接続図はこうなります。
SSHで暗号化した経路を通って、OpenSimに接続します。
SLビューアの接続先は、OpenSimサーバではなく、MyPC(自分自身)、というところがミソです。
SSHがMyPCのポート18002に届いたパケットを、暗号化した経路を使って、OpenSimサーバに届けてくれます。
MyPCのWindows側は、PuTTYというSSHクライアントソフトを使ってます。

※ MyPC側のポート番号を18002にしているのは、キャプチャソフトで見分けやすくするためです。
● OpenSSHの設定 (OpenSimサーバ側)
ubuntuのapt-getコマンドで、OpenSSHをインストールします。
root@opensim1:~# apt-get install openssh-server
OpenSSHの設定ファイル(sshd_config)を修正します。 公開鍵認証のみを有効にします。
【/etc/ssh/sshd_config】
Protocol | 2 | #SSH2プロトコルを使用 |
PermitRootLogin | no | #Rootユーザのリモートログインを禁止 |
RSAAuthentication | no | #RSA認証(ssh1)を無効 |
PubkeyAuthentication | yes | #公開鍵認証を有効(ssh2) |
PermitEmptyPasswords | no | #空パスワードを許可しない |
PasswordAuthentication | no | #パスワード認証を無効 |
● SSHクライアント (MyPC Windows側)


● 秘密鍵と公開鍵を作る
puttygen.exeを起動して、キャンバス上でマウスをグリグリ動かすと、乱数が発生して
自動的に鍵を作ってくれます。
パスフレーズを設定しておくと、接続時に聞いてくるので、より安全です。

「Save public key」 id_dsa.pub という名前で公開鍵として保存します。 (OpenSim側に持って行く)
「Save private key」 id_dsa.PPK という名前で秘密鍵として保存します。 (MyPC側に保存)
● 公開鍵を変換して配置する (OpenSimサーバ側の作業)
puttygenコマンドで作成した公開鍵(id_dsa.pub)は、すこし形式が違うので、ssy-keygenコマンドで
OpenSSHが扱える形式に変換します。
配置する場所は、ホームディレクトリの「.ssh」ディレクトリ配下、鍵の名前は「authorized_keys2」、と決まってます。
opensim1:~$ ssh-keygen -i -f id_dsa.pub > /home/pastel/.ssh/authorized_keys2
● SSHクライアントPuttyの設定 (MyPC Windows側の作業)
【ポートフォーワードの設定】
ローカルポート18002への接続を、OpenSimポート8002へ転送します。

【秘密鍵の指定】
puttygen.exeコマンドで作った秘密鍵id_dsa.PPKを指定します。

【プロトコルの指定】
公開鍵方式だけを使うので、SSH2を指定します。

【接続開始】
接続先のホスト名と、接続先のポート番号(SSH:22)を指定して、接続開始。

【アカウント、パスフレーズの入力】
リモートターミナルが開くので、ログインアカウントと、公開鍵のパスフレーズを入力します。
ちゃんとリモートログインできたら、SSHでの接続は成功です。
このまま、OpenSimやLinuxの設定作業もできます。

● SLビューアのオプション変更
SLビューアの接続先とポート番号を、変更します。
【変更前】
SecondLife.exe -set SystemLanguage ja -loginuri http://opensim1:8002/
【変更後】
SecondLife.exe -set SystemLanguage ja -loginuri http://MyPC:18002/
● パケットの確認
ビューアでOpenSimにログインするときのパケットです。
全てのパケットが、SSHで暗号化(Encrypt)できました。

● おしまい
こんな風に高価なVPNルータなどなくても、個人で暗号化の実験が簡単にできてしまいます。
オープンソースはありがたいですね~。
いつかIBMとかが、仮想会議室や3Dショッピングモール、みたいなソリューションを出してくるでしょうから、
その頃はもっと簡単に暗号処理できるようになってると思います。