綺麗なスカルププリムを作る@セカンドライフ 
水曜日, 2月 20, 2008, 11:58 PM - プログラム
Blenderでスカルプテクスチャが作れると言うことで
いろいろとやってみたけど何故かエッジがボケる。
調べた結果、Blenderでスカルプテクスチャを出力すると
頂点ではなく面から出力するから頂点の座標が綺麗にでないことがわかった。

これに対処するためにBlenderで一度X3D形式に出力したファイルから
頂点情報を抜き出し、スカルプテクスチャに変換するプログラムを作った。
プログラムの名前はそのままConvertToSculpt、略称はConv2Sculpt。
これでエッジの立った精密なスカルププリムを作ることが出来る。
もっともスカルプは環境や画質によって制限がかかることがあるから多様は禁物だ。

スカルプテクスチャのサイズは64x64がいいと海外のサイトで見かけたけど、
64x64だとWindlightでは大丈夫だけど、
それ以前のクライアントでは像がボケてしまうことがわかった。
128x128にすればどちらでも正しく表示された。

ついでにBlenderとConvertToSculptを使ってエンブレムを作る記事も書いた。
Blender初心者でもできるように注意して書いた。
とりあえずスカルプを触りたいけど触れないというフレ数人は助けれたかな?

  |  0 trackbacks   |  このエントリーのURL   |  related link   |   ( 2.1 / 234 )

SLWebTunnel 
土曜日, 10月 27, 2007, 03:51 PM - プログラム
SecondLifeとWebチャットを繋ぐトンネルができたら
面白いなと思い先週辺りから制作中。
ちまちまと設計書を書いてコーディングしてたら
設計書、プログラム会わせて数十ページになった。
シンプルに仕上げたかったんですけどねぇ。

とりあえず試作版の動作確認完了。

  |  0 trackbacks   |  このエントリーのURL   |  related link   |   ( 3 / 1091 )

バグ仕様 
金曜日, 9月 28, 2007, 12:47 AM - プログラム
「嘘も100回言えば本当になる」ヨーゼフ・ゲッベルス

「バグも放置すれば仕様になる」Micro$oft


助けてくれ・・・orz

  |  0 trackbacks   |  このエントリーのURL   |  related link   |   ( 2.9 / 115 )

BOM付きUTF-8でJavaにつまづきnkfのバグにぶちあたる 
水曜日, 2月 14, 2007, 07:56 PM - プログラム
Debian LinuxからUbuntuに乗り換えたときに
言語をeuc-jpからUTF-8に変更した。
そのときにファイル名とファイルのエンコーディングもeuc-jpからUTF-8に変換したのだが、
二重につまづいた。

まずファイル名の変換はconvmvコマンドで難なく成功した。
次に手持ちのJavaのソースコードを変換する。
Javaのソースコードを一個一個エディタで開いて変換していたら切りがないので
nkfとfindコマンドを使ってエイヤッと変換する。
nkfはファイルを直接変換しないのでqnkfというスクリプトを自分で作る。
qnkf
#!/bin/sh
cat $1 | nkf -w8 > oldfile.tmp
cp oldfile.tmp $1
rm oldfile.tmp

で、これを使って次のコマンドでエイヤッと変換する。
$find -name \*.java -exec qnkf {} \;


変換されたJavaのソースコードをコンパイルしようとしたらエラーが出た。
$ javac HelloWorld.java 
HelloWorld.java:1: \65279 は不正な文字です。
import java.util.ArrayList;
^
エラー 1 個

\65279って何だろう?
そう思ってググってみたらこんなのが見つかった。

UnicodeのUTF-16など16ビット幅のエンコーディング方式において、
エンディアンを指定するためにファイルの先頭に記入される16ビットの値。
IT用語辞典e-Wordより抜粋

つまりUTF-8のBOMのようでmUTF-8を使っているので別におかしなものではないようだ。
ではなんでエラーになるのかというとバグレポートで次のようなのがあった。
Bug ID: 4508058 UTF-8 encoding does not recognize initial BOM
結局javacがBOMを認識できないことが原因のようだ。

対処法はある。BOMを除去すればよい。
そもそもなんでBOMが付いたのかというと、上のqnkfのスクリプトの中で
nkfの-w8オプションを使用したからである。
nkfのオプションを-w8ではなく-w80にすれば良いわけだ。
           -w -w80
UTF8 コードを出力する。 (BOM 無し)

-w8 UTF8 コードを出力する。
nkf(2006-05-14)のmanページより抜粋

でもエラーがでた。
おかしいなと以下のようなコマンドを実行してみた。
$ echo -n "t" | nkf -w8 | od -t x1
0000000 ef bb bf 74
0000004

$ echo -n "t" | nkf -w80 | od -t x1
0000000 74
0000001

$ echo -n "t" | nkf -w8 | nkf -w80 | od -t x1
0000000 ef bb bf 74
0000004

一つ目はBOM付きで出力しているからef bbが付加している。
二つ目はBOM無しで出力しているからef bbが付いていない付加してい。
三つ目はBOM付きを再度BOM無しに変換しているのに付いている。
というわけで原因はnkfのバグだった。

使用していたnkfのバージョンはUbuntuのedgyの最新の2.0.7 (2006-06-13) だったけど、
本家の最新版の2.0.8 (2007-01-28) にしたらこの不具合は解消されていた。

  |  0 trackbacks   |  このエントリーのURL   |  related link   |   ( 3 / 1148 )

爆裂タンクのプレイ画面をYouTubeにアップロード 
火曜日, 2月 13, 2007, 11:25 PM - プログラム
爆裂タンクのプレイ画面を録画してYouTubeにアップしてみた。
レコーダーの問題か性能の問題か、録画の画質というかフレームレートが低い。
ちと改善方法がないものか試行錯誤しないといけないようだ。


とりあえず更新としてシングルゲームを追加。

  |  0 trackbacks   |  このエントリーのURL   |  related link   |   ( 3 / 1244 )


Back Next