mieki256's diary



2024/02/07(水) [n年前の日記]

#1 [basic] FreeBASICで反転描画。その3

Windows10 x64 22H2 + FreeBASIC 1.10.1 32bit で、標準機能のグラフィック描画で反転描画する方法について調べてる。

_昨日_imgput() を改造して、透明色を有効にする版にしてみたけれど、もう少し高速化できないものかと思えてきた。

試しに、おそらくは横一列を描画するループの中で、ポインタに += n をしていたあたりを += 1 になるように修正してみたのだけど…。Put() に比べて5倍遅かったのが、4倍ちょっとぐらいにはなった。

ただ、元画像を参照するポインタも += 1, -= 1 にしてみたところ、90度、270度回転の結果がグチャグチャになってしまった。そこは変更できないようだな…。書き込む側は横方向/右側に進んでいくけれど、参照する側は左右だけではなく縦方向に進んでいく場合もあるのだろう…。

回転処理は諦めて、水平垂直反転のみサポートということにすれば、もう少し高速化できたりするのだろうか。いや、焼け石に水かな…。

ソース :

現状のソースは以下。

_imgputt_new.bi
_putex.bi
_imgputt_test.bas
_imgputt_test2.bas


使用画像は以下。

_sprite_8bit.bmp
_sprite_16bit.bmp
_sprite_24bit.bmp


以下でコンパイルできる。
fbc imgputt_test.bas
fbc imgputt_test2.bas

実行は以下。コマンドラインオプションで、8, 16, 32 のどれかを指定すれば、ウインドウを 8bit, 16bit, 32bitモードで作るようにしてみた。
imgputt_test.exe 32
imgputt_test2.exe 32

imgputt_test.exe 8
imgputt_test2.exe 8

imgputt_test.exe 16
imgputt_test2.exe 16


imgputt_test.exe, imgputt_test2.exe の実行結果は以下。

imgputt_test_ss2.png

imgputt_test2_ss4.png

gccを使ったら速くなった :

ふと、gcc の最適化を指定したらどうなるかなと思いついた。通常、FreeBASIC 32bit版は、gas (as.exe, GNUアセンブラ)を利用してコンパイルしてるらしいけど…。

MinGW (gcc 6.3.0) を使える状態にして、FreeBASIC のソースのコンパイルに gcc を使いつつ、かつ、最適化をかけるように指定して exe を生成してみた。
fbc imgputt_test2.bas -gen gcc -O 3
  • -gen gcc ... gcc を使って exe を生成
  • -O 3 ... 最適化レベル 3 を指定。

_コンパイラ・オプション: -gen - CompilerOptgen
_コンパイラ・オプション: -O - CompilerOptoptimization

何と言うことでしょう。ソースは前と変わってないのに、gcc でコンパイルさせただけで、4倍ちょっとの遅さが、1.8倍程度の遅さになった。いやはや、gcc の最適化処理は優秀なんだなあ…。

しかしこうなると、高速化できないかとチマチマ修正してコンパイルして動作確認するのも馬鹿馬鹿しいというか…。まずは gcc でコンパイルしようぜ、話はそれからだ。みたいな。もっとも、高速化したいならまずはアルゴリズムをどうにかできないか考えるのが先だろうけど。

その後も試していたら、-O 3 をつけると 1.8倍だったのが、-O 2 にすると 1.5倍になった。必ずしも -O 3 のほうが良いというわけではないらしい。

8bitモードや16bitモードは遅い :

今までウインドウの色深度について32bitモードで動作確認していたけれど、8bitモードや16bitモードにして動作確認したら、同じような処理をしているのに処理時間が10倍以上に増えてしまった。扱うデータのバイト数は1/4、1/2になっているはずなのに、どうしてそんなことになるのだろう…。

もしかして、バイト単位で処理をする時は、4バイト読み込んで、そのうち1バイトを取り出して、みたいな処理になってしまうのだろうか…? 4バイト単位で処理したほうがシンプルになって、処理時間は速くなる?

MMX機能の有無で使うルーチンが違うのかもしれない :

FreeBASIC の Put() 関連ソースを眺めてたら、CPUがMMX機能を持ってる場合、アセンブラで書いたルーチンを利用してるように見えた。

_fbc/src/gfxlib2/x86/gfx_put_trans_mmx.s at master - freebasic/fbc

だから Put() は速いのかな…。だとしたら、アセンブラで書かないと Put() の速度に近づけないのかもしれない…。

2023/02/07(火) [n年前の日記]

#1 [pc] サブPC群をメンテナンス

FUJITSU LIFEBOOK AH33/J や Athlon 5350機で memtest86+ 6.0 を動かしてメモリチェックをして問題無いことを確認したり、Core i5-2500機やA8-3850機で Ubuntu Linux のパッケージを更新したり。

i5-2500機は Ubuntu 18.04 LTS がインストールしてあるのだな…。サポート期間が 2023/04までなので、そのうち 20.04 LTS か 22.04 LTS にアップグレードしておかないと…。

2022/02/07(月) [n年前の日記]

#1 [cg_tools] Google SketchUpからベクターデータをエクスポートしたい

LED電球を囲むランプシェード相当を作りたくて、Windows10 x64 21H2 上で Google SketchUp 8 + Flattery Papercraft Tools プラグインを使ってランプシェードの形や展開図について試行錯誤してたのだけど。ベクターデータとしてエクスポートして Inkscape 1.1.1 か AR_CAD 1.7.0 に読み込みたいなと思ったところで悩んでしまった。どうすればベクターデータとしてエクスポートできるんだろう…。

dxfでエクスポート。 :

とりあえず、Convert Sketchup SKP files to DXF or STL というプラグインを使えば dxf として出力できるらしい。

_Convert Sketchup SKP files to DXF or STL | guitar-list

skp_to_dxf.rb か skp_to_dxf.rbz を入手して、プラグイン(機能拡張?)としてインストール。Google SketchUp の場合は、インストールフォルダ\Plugins\ 以下に skp_to_dxf.rb をコピーすればプラグインとして使えるようになる。

ファイル → Export to DXF or STL を選べば出力できる。

今回は、Export unit を Millimeters に、Export to DXF options を lines にしてエクスポートしてみた。

出力された dxfファイルを AR_CAD 1.7.0 でインポートしてみたところ、それらしくインポートできた。ただ、円は複数の直線で構成されているようだなと…。

svgでエクスポート。 :

Sketchup SVG outline plugin というプラグインを使えば svg でエクスポートすることもできる模様。下記は、オリジナル版を fork して SketchUp 2015 に対応させた版らしい。

_GitHub - JoakimSoderberg/sketchup-svg-outline-plugin: Fork of FlightOfIdeas Sketchup SVG outline plugin (works in Sketchup 2015)

sketchup-svg-outline-plugin-v1.2.rbz を入手してインストールした。ウインドウ → 環境設定 → 機能拡張 → 拡張機能をインストール、をクリック。.rbz ファイルを選べば、解凍してPluginsフォルダにコピーしてインストールしてくれる。

インストールすると、SVGと書かれたツールバーアイコンが増える。メインウインドウ内で何かしら選択しておいてから件のボタンをクリックすれば SVG でエクスポートできる模様。

ただ、選択したソレを一旦分解しておかないと妙な形でエクスポートされてしまうかもしれない。分解の仕方は、編集 → x個のエンティティ → 分解、だろうか。

それと、Windows10 x64 21H2 + Google SketchUp 8 の環境では、SVGアイコンをクリックした直後にスクリプトエラーダイアログが表示されてしまう。一応、SVGでエクスポートはできるみたいだけど…。もしかすると IEのウインドウを呼び出そうとしてエラーが出てるのだろうか。分からんけど。

出力された svg は Inkscape 1.1.1 x64 でインポートすることができた。

2021/02/07() [n年前の日記]

#1 [hsp] HSPでスクリーンセーバのラッパーを作ってみた

Windows10 x64 20H2 + HSP 3.6 beta4 で、Windows用のスクリーンセーバのラッパーを作ってみた。スクリーンセーバが起動する際、iniファイルに記述されたフルスクリーン表示をするプログラムを呼び出して、自身は終了するスクリーンセーバ。

一応、github にアップロードしておいた。

_mieki256/scrsavwr: Screensaver wrapper on Windows

Windows用のスクリーンセーバを作成する際は、コマンドライン引数、/p, /s, /c 等に応じて動作を変えないといけないので、作成が面倒だけど。こういったラッパーを利用すれば、フルスクリーン表示(かつ、キー入力その他で終了)するプログラムさえ作ってしまえばスクリーンセーバとして利用できるようになるので、スクリーンセーバの作成が楽になる…のではないかなあ、と。 *1

HSPに同梱されていたスクリーンセーバのサンプル(「あるがーまんスクリーンセーバー for HSP3」)をfork・改造して作ってあるので、ライセンスはちょっとよく分からない。HSP自体はBSDライセンス系らしいのだけど、サンプル群はどんなライセンスになっているのか…。

_HSP3 概要

まあ、もし、サンプル群もBSDライセンスなのであれば、自分が今回書いたソレもそれに従います、ってことで。
*1: でもまあ、今からスクリーンセーバを作る人が居るのだろうか、という疑問はあるけど…。

#2 [hsp][ubuntu] HSPをUbuntu Linux上にインストール

VMware Player + Ubuntu Linux 20.04 LTS、及び、足元のサブPC Ubuntu Linux 20.04 LTS 実機上で、HSP3.6beta をインストールしてみた。デスクトップ環境は Xubuntu (Xfce)。

_HSP3 for Linux/Raspberry Pi
_onitama/OpenHSP: Hot Soup Processor

github上の説明に従って作業したらすんなり動いてくれた。

今回は、~/bin/ 以下にインストールしてみた。
mkdir ~/bin
cd ~/bin
git clone https://github.com/onitama/OpenHSP.git
cd OpenHSP
./setup.sh

./setup.sh を動かすと、Ubuntu系で必要になるライブラリを sudo apt でインストールしてくれた後、make も実行してビルドしてくれる。

~/.bashrc の最後に以下を追加して、環境変数 PATH に HSPのインストール場所を追加してみた。
export PATH="$PATH:/home/mieki256/bin/OpenHSP"
これで、どの場所でも HSP (hsed等)を呼び出せるようになる。

また、hsed.desktop というファイルが、HSP Script Editor (hsed) のデスクトップショートカット(?)になっている模様。中身はおそらく Raspberry Pi 用の指定になっているので、Ubuntu用に変更。
Exec=/home/pi/OpenHSP/hsed
↓
Exec=/home/(アカウント名)/bin/OpenHSP/hsed
~/.local/share/applications/ 以下にコピーすれば、スタートメニューの開発カテゴリ内に表示されるようになる。
cp hsed.desktop ~/.local/share/applications/

また、/usr/share/pixmaps/ 以下に hsed.png があることを期待してるようにも見えたので、一応コピーしておいた。
sudo cp hsed.png /usr/share/pixmaps/

OpenHSP/sample/ ディレクトリ以下にHSPのサンプルファイルがたくさん入っているので、hsed を起動後、各サンプルを開いてみて、F5キーを押して動作確認できる。

2020/02/07(金) [n年前の日記]

#1 [ubuntu][debian][linux][cg_tools] Debian上のxpaintはバグが発動しない不思議

Windows10 x64 1909 + VMware Player 上に Debian Linux 10.2.0 をインストールしてアレコレの動作確認をしていたのだけど。

先日、Ubuntu Linux 18.04 LTS 上で xpaint を動かしたら、選択範囲をドラッグしただけで落ちたので、Debian ではどうなのだろうと気になって。Debian 10.2.0 + MATEデスクトップ環境で xpaint 2.9.1.4-3.2+b1 をインストールして実行してみたところ、選択範囲をドラッグしても落ちないことに気づいた。

ということは…。Debian版の xpaint はバグ修正されてるけれど、Ubuntu版の xpaint はバグが放置されっぱなし、ということだろうか?

ところが、Debian上で sudo apt source xpaint をして、xpaint のソースを取得して確認したところ、ソースレベルでは例のバグは未修整で。

ソースは明らかにバグったままなのに、バイナリを実行するとバグが発動しない…。なんでや。不思議。

もしかして、今回はMATE環境で動かしてるからだろうか? デスクトップ環境が違うと結果が違ってくるのかな?

試しに、Debian上で Xfce をインストールして、そちらで xpaint を動かしてみた。Xfce上でも、選択範囲ドラッグで落ちなかった。

分からん…。どうなってるんだ…。

Ubuntu の xpaint と Debian のxpaint を比べると、Debian のほうはバージョン番号に +b1 がついている。気になる。もしや、ソースレベルでは修正されてないけど、バイナリはパッチを当てて修正した版を配布してる、ということだったりするのかな。でも、そんな配布の仕方ってできるのかな。オープンソース的には無さそうな気も…。入手できるソースと、インストールされるバイナリが異なる、というのはアリなの…?

それとも、メモリの使用状況によって、バグが発動したりしなかったりするのだろうか。コレって、どこらへんにワークを確保してどこを壊すか、てなバグだろうし…。壊しても問題ない状態になっちゃう場面もあるのかな。

あるいは、利用してるCコンパイラや、ビルド時のオプションによって、boolean の扱いが変わる ―― boolean が int と同等に扱われる場合もあったりする、とか。そういう状態なら、バグは発動しないだろうけど。

まあ、自分は xpaint を使ってないので、なんというかアレな話なんだけど。どうしてこうなるのか、仕組みというか状況に関してはちょっと気になるところだなと…。Debian は一体どんな魔法を使っているのか…。それともたまたま偶然の動作なのか…。

2019/02/07(木) [n年前の日記]

#1 [cg_tools][pyxel] ドットエディタGrafX2が更新されてた

256色画像を編集できる、無料で使えるドットエディタ、 _GrafX2 の新しい版が公開されていたようなので、2.4.2035 から 2.6.2538 にアップデートしてみたり。環境は Windows10 x64 version 1803。

_Downloads - GrafX2

Windows版の場合、3つのセットアップファイルがあるけれど。 それぞれ、GDI使用、SDL2使用、SDL使用で実装されているらしい。今回はGDI版の grafx2-win32-2.6.2538.win32.exe をダウンロードした。

実行すると、インストーラが起動する。任意のフォルダにインストール。

GrafX2 に、Luaスクリプトで色々な機能を追加してくれる、DB's TOOLBOX も、1.3 から 1.4 に更新されていたので、それもダウンロード。

_Pixel Joint Forum: DB's TOOLBOX V1.4 (GrafX2)

GrafX2 へのインストールの仕方は、 _2017/10/11のメモ を参考に。一応、ショートカットキー割り当ての手順が分かる画像も貼っておこう…。

grafx2_ss01.png

以前のベータ版は、画像のセーブができないという致命的な不具合があったけれど。今回の版を少し触ってみた感じでは、ちゃんと画像は保存できた。もっとも、他に何か不具合がありそうな予感も。

PICO-8/Pyxerl用のパレットデータも用意されていた。 :

DB's TOOLBOX V1.4 を追加すると、パレットのプリセットを選べるようになるのだけれど。その中に、PICO-8用のパレットも含まれていた。

grafx2_ss06.png

呼び出し方は…。
  • DB's TOOLBOX のメニューを開く。
  • >PALETTE
  • >PRESETS
  • Custom Palettes (p)
  • 2. PICO-8、の右側にチェックを入れて、OKボタンをクリック。
参考画像も貼っておこう…。

grafx2_ss02.png

grafx2_ss03.png

grafx2_ss04.png

grafx2_ss05.png

Pyxel も PICO-8 と同じパレット値なので…。「GrafX2 は、Pyxel用の画像も作れますよ」と言えそうな気がする。

ただ、GrafX2 2.4.2035 上で、このパレットを選ぶと、グリッド表示ができなくなるなと…。パレットの255番目に白っぽい色を設定すると表示されるようだけど。グリッド表示が255番目の色を必ず使うように実装されているのかもしれない。ちなみに、GrafX2 2.6.2538 では、そういう状態にはならなかった。

不具合発見。 :

触ってるうちに不具合を見つけた。Brush Effects が使えない…。「FX」が点線で囲まれたアイコンをクリックすると、本来なら Brush effects のダイアログが開くのだけど、表示されないか、もしくは一瞬表示されて消えてしまう。

GrafX2 2.6.2538 SDL2版も試してみたけれど、こちらも症状は同じ。Brush effects ダイアログが正常に表示されない。

一つ前のバージョンの、GrafX2 2.6.2475 GDI版を試してみたら、こちらは Brush effects ダイアログが表示された。しかし、今度は DB's TOOLBOX に Alt + 1 を割り当てることができない。Alt + 0 と表示されてしまう上に、Alt + 2 でも Alt + 3 でもメニューが表示されてしまう。また、アイコンにカーソルを乗せてもステータスバーに説明メッセージが表示されない。

やはり何かしら不具合が残っているなと…。GrafX2 2.4.2035 を使っておこうかな…。

2018/02/07(水) [n年前の日記]

#1 [nitijyou] 自宅サーバ止まってました

AM02:00〜03:00頃からAM08:30頃まで自宅サーバ止まってました。申し訳ないです。

親父さんから「サーバ止まってないか?」と言われて確認してみたら無反応になっていて。電源ボタン押しのシャットダウンも走らず。たぶん寒すぎて電源あたりが正常動作しない状態になったのかなと…。

#2 [gimp][python] GIMPのPython-fu + pycairoで描いた画像をGIMPのレイヤー用に変換する処理について

GIMPのPython-fuスクリプトの中では、cairo (pycairo) を使った描画もできるっぽいのだけど。cairo が利用する ImageSurface は、1ドットが ARGB で並んでいるけど、GIMPのレイヤー側は、1ドットが RGBA で並んでいるので、ARGB から RGBA に変換する処理が必要で。ソレをしないと、cairo の ImageSurface を GIMPレイヤーに正常な色で転送できない。

一応、以前そういう処理を書いたのだけど。

_mieki256's diary - Ubuntu Linux 16.04LTS上でGIMPのPython-fuに関して試行錯誤中

どうも処理が遅いと言うか…。64x64ドットぐらいの処理なら気にならないけど、1024x1024 = 1048576回ループさせると数秒待たされる感じで。

もうちょっと高速化できないかと色々試して、結局、以下のようになったけれど…。

import struct

def get_rgba_str(src):
    """Convert cairo surface data to RGBA."""
    unpack = struct.Struct('=L').unpack_from
    pack = struct.Struct('>L').pack
    lmax = len(src) / 4
    rgba_buf = [None] * lmax
    for i in xrange(lmax):
        argb = unpack(src, i * 4)[0]
        rgba_buf[i] = pack(((argb & 0x00ffffff) << 8) | ((argb >> 24) & 0x0ff))
        if i & 0x3fff == 0:
            gimp.progress_update(0.5 + 0.5 * float(i + 1) / lmax)

    return ''.join(rgba_buf)

これでもまだ遅い。どうにかならんかな…。コレ以上は無理かな…。

ちなみに、cairo の ImageSurface の1ドットがバイト単位で ARGB の順に必ず並んでるかどうかは分からない。おそらく、CPUがビッグエンディアンかリトルエンディアンで並びが違ってくる可能性がある。GIMPレイヤー側はビッグエンディアンのRGBAで並んでるっぽいけど…。

関連する話をメモ。 :

Python の structモジュールを使うと、Cの構造体っぽいソレでまとめられたバイナリデータを扱うことができる。バイナリを読むときは struct.unpack() を使って、バイナリにする時は struct.pack() を使う。

で、ループ処理内で、以下のように書けなくもないのだけど。
argb = struct.unpack_from('=L', src, i * 4)[0]
何度も同じフォーマット文字列を使う場合は、struct.Struct(フォーマット文字列) を使って、ループ外でフォーマット文字列を与えたソレを事前に用意して使ったほうが速くなる、という話を見かけたので一応試してみたり。

Python は文字列結合が遅いので、リスト(配列)に追加していくほうが速い、という話も見かけた。ただ、Python 2.4以降は a += b のような文字列結合は最適化されてるので、現状ではそれほど効果は無いらしい…。

_Python文字列バッファいろいろ - 一番速い奴連れてこいシリーズ - HDEラボ
_Pythonの処理速度を上げる方法 その2 - とある誰かの覚え書き

リストの長さを事前に確保しておく際は、[ None ] * n が速い、という話があるらしいのでコレも試した。

_あなたのPythonを爆速にする7つの方法

以前は、一旦、a, r, g, b に分けてから、struct.pack('4B', r, g, b, a) でバイナリにしていたけど。考えてみたら、ARGB を RGBA にするのだから、A だけをずらせば済むのだなと。4行あった処理を1行で済ませることができた。

これは Python-fu特有の話だけど、どうも体感では、プログレスバーの表示を更新する gimp.progress_update( 0.0 〜 1.0 の値 ) を頻繁に呼ぶと、それだけで遅くなるようで。考えてみれば、更新されるたびに画面内の該当部分を描画し直すのだから、そこで処理がかかるのも当たり前か…。更新回数を減らしてみたら、それだけでも効果があった…ような気がする。

2017/02/07(火) [n年前の日記]

#1 [ruby][gosu] Ruby + Gosu + opengl の動作確認

Windows10 x64上で、 _Ruby 2.2.6p396 mingw32 + _gosu 0.11.1 + _opengl 0.9.2 を使って、OpenGLの描画ができそうか実験。

ちなみに、Ruby というのはプログラミング言語の一つで…。そのRubyを使って2Dゲームを作れるライブラリとして、gosu というのがあって。という説明でいいのだろうか。

Ruby を使ってゲームを作れるライブラリとしては、他にも DXRuby があるけれど。 こんな説明で合ってるのかしらん。

OpenGLが動くかどうかだけを確認。 :

まずは gosu と関係なく、opengl というライブラリが動くかどうかを確認。以下のページを参考に、というかそのままコピペさせてもらって試してみたり。ありがたや。

_RubyでOpenGL - verus diary
_ruby-openglでお手軽3Dプログラミング | Gemの紹介 | DoRuby
_MF / Ruby で OpenGL

opengl、glu、glut なるライブラリをインストールする。Rubyがインストールされてる環境なら、以下でインストールできる。
gem install opengl
gem install glu
gem install glut

ところで、GLU とか GLUTって何だろう?

_OpenGL Utility Toolkit - Wikipedia によると…。
  • OpenGL Utility Library の略で「GLU」。
  • OpenGL Utility Toolkit の略で「GLUT」。
OpenGLだけでは機能が少なくてちょっと不便なところがあるので、もうちょっと便利に簡単に使えるように機能を追加してくれるものらしい。

さておき。動作確認したソースはこんな感じに。

_opengl_glut_only_test.rb
# gosu + opengl のテスト
# とりあえず、opengl + glut のテストだけをしてみる。

require "opengl"
require "glut"
require "glu"

# 表示処理
display = proc {
  GL.Clear(GL::COLOR_BUFFER_BIT)  # カラーバッファをクリア
  GL.Color3f(0.0 , 1.0 , 0.0)  # 色を指定
  GLUT.WireTeapot(0.5)  # ティーポットを表示
  GLUT.SwapBuffers()  # 画面を入れ替え(ダブルバッファ)
}

# ウインドウが変形したり最初に生成された際に呼ばれる処理
reshape = proc { |w, h|
  GL.Viewport(0, 0, w, h)  # ビューポートを設定

  GL.MatrixMode(GL::GL_PROJECTION)  # 演算ターゲットを射影行列に
  GL.LoadIdentity()  # 変換行列を単位行列に
  GLU.Perspective(30.0, w.to_f/h, 1.0, 100.0)  # 透視投影を指定

  GL.MatrixMode(GL::GL_MODELVIEW)  # 演算ターゲットをモデルビュー行列に
  GL.LoadIdentity()  # 変換行列を単位行列に

  GLU.LookAt(3.0, 2.0, 1.0, # カメラ位置
             0.0, 0.0, 0.0, # 注視点の位置
             0.0, 1.0, 0.0 # どっちが上かを指定
             );
}

# 一定時間ごとに呼ばれる処理
timer = proc {
  GL.Rotate(2.0, 0.0, 1.0, 0.0)  # Y軸を回転 (ang, x, y, z)
  GLUT.PostRedisplay()  # 再描画を要求
  GLUT.TimerFunc(16, timer, 0)  # 16ms毎に呼び直す
}

GLUT.Init()  # GLUTの初期化
GLUT.InitWindowSize(512, 512)  # ウインドウサイズを指定
GLUT.CreateWindow("OpenGL:Teapot") # ウインドウを生成

GLUT.DisplayFunc(display) # ディスプレイコールバックの登録
GLUT.ReshapeFunc(reshape)  # リシェイプコールバックの登録
GLUT.TimerFunc(10, timer, 0)  # 一定時間ごとに呼ばれる処理を登録

GL.ClearColor(0.2,0.2,0.2,0.0)  # 画面クリア時の色を指定

GLUT.MainLoop()  # メインループ

こういう結果になった。ティーボットが表示された。



ソースの中にコメントを書きまくったので、ソースを見れば何をやってるか大体分かるかなと。

gosu + opengl で3D描画の動作確認。 :

gosu と opengl を組み合わせて、3D描画ができるのか確認してみる。gosu + opengl ができると何が嬉しいかと言うと…。例えば、「背景は3D描画でカッコよく」「だけど手前は2D描画・2Dゲームで」みたいなことができる、かもしれない。要は、2Dゲーム内でも演出として3D描画を使えるかもしれないよね、みたいな。

gosu には、 _gosu-examples という、サンプルファイルがいくつか入ったライブラリ(?)が用意されている。その中の _gosu-examples/opengl_integration.rb が、gosu + opengl のサンプルになっていて。

件のサンプルの中から、gosu の描画関係を省いて、opengl の描画部分だけを残して色々弄って動作確認してみたり。

ちなみに、gosu のインストールは以下でできる。
gem install gosu

動作確認に使ったソースは以下。

_gosu_opengl_test1.rb
# gosu + opengl の動作確認
# gosu-examplesの opengl_integration.rb を弄って、
# OpenGL 絡みの部分だけを列挙
# 横スクロールで地形の上を進むイメージで描画

require 'gosu'
require 'gl'

WIDTH, HEIGHT = 640, 480

# OpenGLを使って背景描画するためのクラス
class GLBackground
  # Height map size
  POINTS_X = 16
  POINTS_Y = 16

  # Scrolling speed
  SCROLLS_PER_STEP = 20

  # 初期化
  def initialize
    @image = Gosu::Image.new("uv.png", :tileable => true)  # テクスチャ読み込み
    @scrolls = 0
    @height_map = Array.new(POINTS_Y) { Array.new(POINTS_X) { rand } }
  end

  # 更新処理
  def update
    @scrolls += 1
    if @scrolls == SCROLLS_PER_STEP
      @scrolls = 0
      @height_map.shift
      @height_map.push Array.new(POINTS_X) { rand }
    end
  end

  # 描画処理
  def draw(z)
    # Gosu.gl(z値)でOpenGLの描画を行う
    # 描画後、Gosuの描画ができるようにしてくれるらしい
    Gosu.gl(z) { exec_gl }
  end

  private

  include Gl

  # OpenGL関係の処理
  def exec_gl
    glClearColor(0.2, 0.2, 0.2, 1.0)  # 画面クリア色を指定 (r,g,b,a)
    glClearDepth(1.0)  # デプスバッファをクリア
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)  # 画面クリア

    # テクスチャ情報が取得できないなら何もせずに戻る
    info = @image.gl_tex_info
    return unless info

    # 奥行き比較関数の種類を指定。デフォルトではGL_LESSが指定されてるらしい
    # glDepthFunc(GL_GEQUAL)
    glDepthFunc(GL_LESS)

    glEnable(GL_DEPTH_TEST)  # デプスバッファを使う
    # glEnable(GL_BLEND)  # アルファブレンドを有効化

    glMatrixMode(GL_PROJECTION)  # 透視投影の設定
    glLoadIdentity
    # glFrustum(-0.10, 0.10, -0.075, 0.075, 1, 100)
    glFrustum(-0.04, 0.04, -0.075, 0.075, 0.1, 100)

    glMatrixMode(GL_MODELVIEW)  # モデルビュー変換の指定
    glLoadIdentity
    glRotate(35.0, 1.0, 0.0, 0.0) # 回転させる (ang, x, y, z)
    glTranslate(0, -0.35, -0.8)  # 位置をずらす

    glEnable(GL_TEXTURE_2D)  # テクスチャマッピングを有効化
    glBindTexture(GL_TEXTURE_2D, info.tex_name)

    # スクロールオフセット値を得る
    offs_y = 1.0 * @scrolls / SCROLLS_PER_STEP

    dy = 0.2
    dz = 1.5

    0.upto(POINTS_Y - 2) do |y|
      0.upto(POINTS_X - 2) do |x|
        glBegin(GL_TRIANGLE_STRIP)  # 三角ポリゴンを連続で描画

        px0 = -0.5 + (x - 0.0) / (POINTS_X - 1)
        px1 = -0.5 + (x + 1.0) / (POINTS_X - 1)
        py0 = -0.5 + (y - 0.0 - offs_y) / (POINTS_Y - 2)
        py1 = -0.5 + (y + 1.0 - offs_y) / (POINTS_Y - 2)

        z = @height_map[y][x]
        # glColor4d(1, 1, 1, z)  # 透過度を指定してフォグに近い効果を出してる
        glTexCoord2d(info.left, info.top)  # テクスチャ座標を指定
        # 頂点を指定
        glVertex3d(py0, z * dy, px0 * dz)

        z = @height_map[y + 1][x]
        # glColor4d(1, 1, 1, z)
        glTexCoord2d(info.left, info.bottom)
        glVertex3d(py1, z * dy, px0 * dz)

        z = @height_map[y][x + 1]
        # glColor4d(1, 1, 1, z)
        glTexCoord2d(info.right, info.top)
        glVertex3d(py0, z * dy, px1 * dz)

        z = @height_map[y+1][x + 1]
        # glColor4d(1, 1, 1, z)
        glTexCoord2d(info.right, info.bottom)
        glVertex3d(py1, z * dy, px1 * dz)

        glEnd
      end
    end
  end
end

class MyWindow < Gosu::Window

  # 初期化
  def initialize
    super WIDTH, HEIGHT
    self.caption = "Ruby + Gosu + OpenGL Test"  # ウインドウタイトルを指定
    @gl_background = GLBackground.new
  end

  # 更新処理
  def update
    @gl_background.update
  end

  # 描画処理
  def draw
    @gl_background.draw(0)
  end
end

MyWindow.new.show
テストで使った画像は以下。スクリプトと同じフォルダに置いておく。
uv.png
_uv.png

こういう結果に。それっぽく描画されている、ような気がする。



gosu で opengl を使う手管は…。基本的には、gosu と gl を require して。
require 'gosu'
require 'gl'

OpenGLで描画したい箇所で、
Gosu.gl(z値) { OpenGL描画処理をする関数 }
を呼べば、OpenGL で描画してくれる模様。この、Gosu.gl() は、OpenGLの描画が終わったら、その後gosuで描画できるように色々リセットしてくれるらしい。

_Method: Gosu.gl - Documentation for gosu/gosu (master)

上記のドキュメントによると、注意事項として…。
  • 「gosu自体は、OpenGL APIを提供してないから、OpenGLを使えるようにする何かと一緒に使ってね。例えば ruby-opengl と組み合わせて使うとか」
  • 「Gosu.gl() の中で gosuの描画機能は使えないよ」
  • 「Gosu.gl() は Gosu::Window の draw() の中で呼んでね」
と書いてある、のかな。たぶん。ちなみに ruby-opengl は開発停止状態なので、opengl を使うべき、だろうけど。

また、 _GitHub - tjbladez/gosu-opengl-tutorials: Fun with opengl, gosu and ruby によると、もうちょっと違う書き方もできるのかもしれない。

_gosu-opengl-tutorials/lesson01.rb を眺めた感じでは、Gosu::Window を継承したクラスのdraw内で、
gl do
  ...
  ...
  ...
end
と書いて、そこで OpenGL 関係の処理を書いてある。手元で試してないので本当にその書き方で動くのかどうかは分からんけど、そういう書き方もあるっぽい、ってことで。

gosu + opengl で3D描画の動作確認その2。 :

前述のソースを流用して、もうちょっと違う処理を書いてみた。

_gosu_opengl_test2.rb
# gosu + opengl の動作確認
# gosu-examplesの opengl_integration.rb を弄って、
# OpenGL 絡みの部分だけを列挙
# 円柱の中を進むイメージで描画

require 'gosu'
require 'gl'

WIDTH, HEIGHT = 640, 480

# OpenGLを使って背景描画するためのクラス
class GLBackground

  # 初期化
  def initialize
    # テクスチャ読み込み
    @image = Gosu::Image.new("mecha.png", :tileable => true)
    @scrolls = 0
    @rot_v = 0
    @rot_v2 = 0
  end

  # 更新処理
  def update
    @scrolls += 1
    @rot_v = (@rot_v + 0.3) % 360.0
    @rot_v2 = (@rot_v2 + 0.5) % 360.0
    if @scrolls == SCROLLS_PER_STEP
      @scrolls = 0
    end
  end

  # 描画処理
  def draw(z)
    # Gosu.gl(z値)でOpenGLの描画を行う
    # 描画後、Gosuの描画ができるようにしてくれるらしい
    Gosu.gl(z) { exec_gl }
  end

  private

  include Gl

  # Scrolling speed
  SCROLLS_PER_STEP = 15

  # OpenGL関係の処理
  def exec_gl
    glClearColor(0.0, 0.0, 0.0, 1.0)  # 画面クリア色を指定 (r,g,b,a)
    glClearDepth(1.0)  # デプスバッファをクリア
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)  # 画面クリア

    # テクスチャ情報が取得できないなら何もせずに戻る
    info = @image.gl_tex_info
    return unless info

    # 奥行き比較関数の種類を指定。デフォルトではGL_LESSが指定されてるらしい
    # glDepthFunc(GL_GEQUAL)
    glDepthFunc(GL_LESS)

    glEnable(GL_DEPTH_TEST)  # デプスバッファを使う
    glEnable(GL_BLEND)  # アルファブレンドを有効化

    glMatrixMode(GL_PROJECTION)  # 透視投影の設定
    glLoadIdentity
    glFrustum(-0.10, 0.10, -0.075, 0.075, 0.1, 100)

    glMatrixMode(GL_MODELVIEW)  # モデルビュー変換の指定
    glLoadIdentity
    glTranslate(0, 0.0, -0.8)  # 位置をずらす

    ry = 25.0 * Math.sin(@rot_v * Math::PI / 180.0)
    glRotate(ry, 0.0, 1.0, 0.0) # 回転
    rz = 20.0 * Math.sin(@rot_v2 * Math::PI / 180.0)
    glRotate(rz, 0.0, 0.0, 1.0) # 回転

    # スクロールオフセット値を得る
    offs_y = 1.0 * @scrolls / SCROLLS_PER_STEP

    glEnable(GL_TEXTURE_2D)  # テクスチャマッピングを有効化
    glBindTexture(GL_TEXTURE_2D, info.tex_name) # テクスチャを割り当て

    # テクスチャの補間を指定
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)

    mx = 15.0
    my = 1.2
    mz = 1.2
    ra = @rot_v * 4.0
    lx = 28
    0.upto(lx) do |bx|
      px0 = (-0.5 + (bx - 0.0 - offs_y) / lx) * mx
      px1 = (-0.5 + (bx + 0.6 - offs_y) / lx) * mx

      aa = 15
      0.step(360, aa) do |ang|
        rad0 = (ang + ra) * Math::PI / 180.0
        pz0 = Math.cos(rad0) * mz
        py0 = Math.sin(rad0) * my

        rad1 = (ang + ra + aa) * Math::PI / 180.0
        pz1 = Math.cos(rad1) * mz
        py1 = Math.sin(rad1) * my

        glBegin(GL_TRIANGLE_STRIP)

        glTexCoord2d(info.left, info.top)
        glVertex3d(px0, py0, pz0)

        glTexCoord2d(info.left, info.bottom)
        glVertex3d(px0, py1, pz1)

        glTexCoord2d(info.right, info.top)
        glVertex3d(px1, py0, pz0)

        glTexCoord2d(info.right, info.bottom)
        glVertex3d(px1, py1, pz1)

        glEnd
      end
    end
  end
end

class MyWindow < Gosu::Window

  # 初期化
  def initialize
    super WIDTH, HEIGHT
    self.caption = "Ruby + Gosu + OpenGL Test"  # ウインドウタイトルを指定
    @gl_background = GLBackground.new
    @bg_img = Gosu::Image.new("bg.png", :tileable => true)
  end

  # 更新処理
  def update
    @gl_background.update
  end

  # 描画処理
  def draw
    @gl_background.draw(2)
    @bg_img.draw(0, 0, 0)
  end
end

MyWindow.new.show

使った画像は以下。
mecha.png
_mecha.png

こんな結果に。



手前のほうで、gosu を使ってSTGの自機だの敵だのを2D描画するだけでも、それっぽくなりそうな予感。

OpenGL描画の後ろに何かを描画。 :

OpenGLで描画したソレの後ろに星空を表示したくてアレコレ試してたのだけど、どうやら OpenGLで描画した部分の後ろ・奥・背景に、gosuで何かを描画、てなことはできないっぽい。

どうやら、OpenGLで描画したソレは、全面が不透明になるようで。gosuの描画をz値指定で奥にしようとしてもOpenGL描画部分で上書きされてしまう、ような気がする。

つまり、OpenGLで描いた何かを、gosu描画の手前に持ってくることはできない ―― 背景は全部OpenGLで、手前はgosu描画で、という形にしかできない可能性が高いなと。もしかすると回避策・解決策があるのかもしれないけど、ちょっと見つけられなかった。

#2 [ruby] Ruby の OpenGL関係ライブラリは競合するのかも

Ruby上で OpenGL を使えるようにするライブラリはいくつかあるようだけど。

_opengl_opengl-bindings をインストールしてみたら、どうやら競合するようで。というか opengl をインストールすると opengl-bindings 用のスクリプトが動作しない状態になる、というべきかしら。opengl-bindings だけを入れた状態なら、opengl-bindings 用のサンプルスクリプトがちゃんと動いた。

一応メモしておくけど、Ruby で OpenGL を使えるようにするライブラリの中で、メジャーなのは以下のような感じっぽい。たぶん。
_opengl-bindings | RubyGems.org | your community gem host
_GitHub - vaiorabbit/ruby-opengl: Yet another OpenGL wrapper for Ruby (and wrapper code generator).

_opengl | RubyGems.org | your community gem host
_GitHub - larskanis/opengl: The official repository of the ruby-opengl wrapper

_ruby-opengl | RubyGems.org | your community gem host

_RubyGems.org | your community gem host で、「opengl」で検索すると他にも色々と。

#3 [nitijyou] 日記をアップロードした

気が付いたら01/07を最後に日記をアップロードしてなかった…のでアップロード。

2016/02/07() [n年前の日記]

#1 [windows] もしかしてスリープから正常復帰しないのはスクリーンセーバが問題だったりしないだろうか

Windows10がスリープから正常復帰できなかった時の画面をデジカメで撮影しようと傍らにデジカメ置いて待ち構えていたのだけど、これがなかなか異常動作してくれなくて。何故に正常復帰してしまうのか…。いや、正常復帰してくれるほうがありがたいけど。

ふと、スクリーンセーバが「なし」になってることに気づいたり。普段は Fliqloという、時間表示をしてくれるスクリーンセーバを指定してたはずだけど、テーマを弄った時に指定が外れちゃったんだな。…待てよ? もしかして、ソレ?

Fliqloの動作確認をしてみたけど、プレビューをするとらしい表示になるものの、マウスを動かしてデスクトップに戻ってくると、立ち上げたままにしておいたFirefoxが「応答なし」になってしまうことに気づいたり。もしかすると、今のWindows10上で Fliqlo を使うと、他のソフトの動作をブロックしてしまう不具合があったりするのかもしれない。元々Flashで作られたスクリーンセーバらしいから、Flash Plugin が何かおかしい、のかもしれないけど確証も無く。ちょっと前まで、Windows10 + IE or Edge でFlash Plugin が異常動作してたという話も見かけたし。

とりあえず、別のスクリーンセーバを指定して、スリープから復帰できるか様子を見てみよう…。例の青い画面が出てこなくなれば、このあたりがアレなのかも。

#2 [nitijyou] 風邪をひいたっぽい

昨日、犬の散歩をした後から喉がちょっと痛かったけど、夜にはヒリヒリする感じの痛みに。これはマズいと比較的たっぷり寝てみたけど、今日もヒリヒリして。これは風邪だろうなと…。

2015/02/07() [n年前の日記]

#1 [cg_tools] DAZ Studio 4.7をインストール

雑魚敵の下絵を3DCGで用意できないかと思ったので、DAZ Studio 4.7 を試しにインストール。

DAZ Studio は、人体のポーズ付け・レンダリングに比較的特化した3DCGソフト、という説明でいいのかしら。今現在、無料で使うことができる。おそらく何か機能制限があるのだろうと思うけど…。それともモデルデータをガンガン買ってもらうことが前提の商売の仕方なのかな。

以前の版をインストール済みだったことをすっかり忘れてて、インストールとアンインストールを繰り返してしまったり。そのせいか、フォルダ設定がなんだか巷の解説ページと違う状態に。でも、一応動いてるからいいか…。

とりあえずチュートリアルに従っておばさんをレンダリング後、お兄さんにテキトーなポーズを取らせてレンダリング。

#2 [dxruby][cg_tools] MakeHuman や 3Dカスタム少女でレンダリング

プレイヤーキャラや雑魚敵の下絵を一応3DCGで用意しておこうと思ったので、MakeHuman 1.0.2 + Blender 2.72b で筋肉ムキムキのモデルをレンダリングしたり、着せ替えさせた女の子をレンダリングしたり。

2014/02/07(金) [n年前の日記]

#1 [tv] スコラ、日本の伝統音楽編1回目を視聴

電子音楽編は終わって、今回から日本の伝統音楽編、らしい。

石笛その他について紹介してたけど。竹等の植物を使った楽器は、えてして腐ってしまって発掘できないので、実際にどんな楽器があったのか・使われていたのかは不明で、ほとんど想像になってしまうそうで。おそらく、頓珍漢な解釈をしちゃってる発掘品がたくさんありそうだなと。

男女が歌を使って求愛をするという風習が、アジアの一部に今も残っているという話を聞いて、「この風習を盛り込んで、マクロスの新作を作れないかな…」と妄想してしまったり。…考えてみたら、ラブソングが流れる中でミサイル乱舞する劇場版って、そういうノリにちょっと近い気もしてきたり。

#2 [movie] 「NEXT」を視聴

実写映画。2分先の未来を予知できる男が、云々という設定。録画したままだったけど、ようやく消化。

面白かった。なんとなくだけど、「うる星やつらビューティフルドリーマー」のアップグレード版、みたいな印象。

たった2分先の未来しか予知できないあたり、一見すると、なんだか地味な特殊能力設定だなと思いつつ見始めたのだけど。ここまで話が広げられる・盛り上げられるのかと感心したり。

気になってググってみたら、フィリップ・K・ディックの短編小説「ゴールデン・マン」が原作、だったそうで。ただ、原作とは全然違うとか、能力設定ぐらいしか共通点はないという話もあり。

そういえば、昨日、実時間映像と体感時間映像の切り替えスイッチが云々、みたいな思考メモを書いたけど。この映画は、そのスイッチを極力入れないことを意識した作りだったなと。スイッチが無いことで、観客が一瞬混乱するけど、直後に「ああ、こういうことか」と理解できるので、各シーンで「?」→「!」が頻繁に体験できる、みたいな。「ビューティフルドリーマー」もそうだし、「めぞん一刻」の五代君の妄想シーンも若干そういうところがあるけれど、いつも使ってるお約束を逆に利用する、こんな作りも面白いなと感心を。

ラストに不満を持った人がチラホラ、てな話も見かけたけど。最初から「観客をこういう方向で混乱させよう」という意図が明確だったので、個人的には納得できるラストだったり。あのラストに持っていくために、そのしばらく前から、「スイッチ」の使い方を細かく調整してたあたりも好印象。映画という形で、ある種のマジックを見せてもらえた感覚。…ああ、だから主人公はマジシャン設定なのか。今頃気付きました。主人公の設定が、映画全体を比喩していたのかもしれない…。

#3 [cg_tools][unity][dxruby] レンダリング画像からドット絵モドキを作るbatファイルを作り込んだり

_2014/02/02にアップロードした大崎一番太郎のスプライトシート を、Unity上で表示してみたところ、なんだかゴミが表示されてしまって。

Unityに限らず、HTML5+JavaScriptでゲームを作る時もそうだけど。ドット絵の各パターンの上下左右に、1ドット程度の余白を入れておかないと、隣のパターン内のドットまで拾ってきて描画されてしまうことをすっかり忘れていたわけで。

仕方ないので、EDGE2で怪しいところを修正したけれど。今後もこういう実験をする機会がありそうだなと。

なので、 _2013/09/07に書いたbatファイル を ―― 3DCGソフトのレンダリング画像を縮小・黒縁をつけて、ドット絵っぽくするbatファイルを修正して、上下左右に1ドット幅の余白をつけるようにしてみたり。例えば、64x64ドットの出力結果を要求すると、62x62ドットで一旦作って、その画像の周囲に枠をつける、みたいな。

ついでに、/? や /h をつけると、ヘルプを表示するようにしてみたり。

_png2dotimg.bat
@echo off

rem ImageMagickのフォルダパス
set IMPATH=C:\Prog\ImageMagick-6.8.7-Q16

rem 縮小画像ファイルの頭につける文字列
set SMALL_STR=__tmp_small

if "%1"=="" goto USAGE
if "%1"=="/?" goto USAGE
if "%1"=="/h" goto USAGE
if "%1"=="-h" goto USAGE
if "%1"=="--help" goto USAGE
goto JOB

:USAGE
echo ImageMagickを使って、ドット絵モドキを作ります。以下の処理をします。
echo 縮小 → 黒縁追加 → 画像の周りに1ドットの余白を追加 → 一つの画像にまとめる
echo.
echo usage:
echo.
echo png2dotimg.bat 元画像名 出力画像名 縮小横ドット数 縮小縦ドット数 横に並べる個数
echo png2dotimg.bat 元画像名 出力画像名 縮小横ドット数 縮小縦ドット数 横に並べる個数 noborder
echo png2dotimg.bat /?
echo.
echo example:
echo.
echo png2dotimg.bat src_*.png out.png 64 64 8
echo png2dotimg.bat src_*.png out.png 64 64 8 noborder
echo png2dotimg.bat /?
echo.
echo * 元画像名は、hoge_*.png の形で指定
echo * noborderをつけると、1ドット余白を追加する処理をしない
echo * /? , /h , -h , --help を渡すと、このヘルプを表示
echo.
goto END

:JOB
set SRC=%1
set OUTIMG=%2
set IW=%3
set IH=%4
set TW=%5

if "%6"=="" goto BORDER
if "%6"=="noborder" goto NOBORDER

:BORDER
rem 1ドットの余白をつける場合の処理

set /a SW=IW-2
set /a SH=IH-2
set SIMGSIZE=%SW%x%SH%
set IMGSIZE=%IW%x%IH%
set INUM=0

for %%A in (%SRC%) do (
rem 縮小、かつ、アルファチャンネルを2値化
%IMPATH%\convert %%A -resize %SIMGSIZE% -channel A -threshold 70%% __tmp0.png

rem 黒縁をつける
%IMPATH%\convert __tmp0.png ^( +clone -channel A -morphology EdgeOut Diamond +channel +level-colors black ^) -compose DstOver -composite __tmp1.png

rem 上下左右に1ドットの余白をつける
%IMPATH%\convert __tmp1.png -matte -bordercolor none -border 1 %SMALL_STR%_%%~nA.png

rem 一時ファイルを削除
del __tmp0.png
del __tmp1.png

set /a INUM=INUM+1
)
goto TILES

:NOBORDER
rem 1ドットの余白をつけない場合の処理

set SIMGSIZE=%IW%x%IH%
set IMGSIZE=%IW%x%IH%
set INUM=0
for %%A in (%SRC%) do (
%IMPATH%\convert %%A -resize %SIMGSIZE% -channel A -threshold 70%% __tmp0.png
%IMPATH%\convert __tmp0.png ^( +clone -channel A -morphology EdgeOut Diamond +channel +level-colors black ^) -compose DstOver -composite %SMALL_STR%_%%~nA.png
del __tmp0.png
set /a INUM=INUM+1
)

:TILES
rem 一枚の画像に結合
set /a TH=((INUM-1)/TW)+1
echo image count = %INUM%
echo tile = %TW% x %TH%
%IMPATH%\montage -tile %TW%x%TH% -geometry %IMGSIZE% -background none %SMALL_STR%*.png %OUTIMG%

echo %OUTIMG% を作成しました
goto END

:END

使い方はこんな感じ。
> png2dotimg.bat /?
ImageMagickを使って、ドット絵モドキを作ります。以下の処理をします。
縮小 → 黒縁追加 → 画像の周りに1ドットの余白を追加 → 一つの画像にまとめる

usage:

png2dotimg.bat 元画像名 出力画像名 縮小横ドット数 縮小縦ドット数 横に並べる個数
png2dotimg.bat 元画像名 出力画像名 縮小横ドット数 縮小縦ドット数 横に並べる個数 noborder
png2dotimg.bat /?

example:

png2dotimg.bat src_*.png out.png 64 64 8
png2dotimg.bat src_*.png out.png 64 64 8 noborder
png2dotimg.bat /?

* 元画像名は、hoge_*.png の形で指定
* noborderをつけると、1ドット余白を追加する処理をしない
* /? , /h , -h , --help を渡すと、このヘルプを表示
> png2dotimg.bat src\osaki_*.png out.png 64 64 8
image count = 74
tile = 8 x 10
out.png を作成しました

ImageMagickに与えるオプションについてメモ。 :

画像の周りに余白をつけたい場合、以下の指定でもできるらしい。
convert src.png -matte -bordercolor none -border 1 dst.png
  • -matte は、アルファチャンネル情報に関係してるらしいけど、ちょっとよく分からず。+matte 、-alpha off 、-alpha on 等、色々あるようで。
  • -bordercolor none で、枠の色を指定してる。フツーは、gray とか black とかを指定するけど、noneを指定してるので…たぶん透明色を指定してるのかなと。
  • -border 1 で、1ドット幅の枠を指定してる。-border 10x0 なら、左右に10ドット枠をつけるけど上下にはつけない。-border 0x10 なら、上下に10ドット枠をつけるけど左右にはつけない、という指定になる。
以下のページが参考になりました。ありがたや。

_Cutting and Bordering -- IM v6 Examples : Adding/Removing Image Edges
_Masks -- IM v6 Examples : Controlling Image Transparency

2013/02/07(木) [n年前の日記]

#1 [dtm] FL Studio勉強中

ポチポチ触って勉強中。

SoundFont関係。 :

SoundFontは、sfzというプラグインを入れて鳴らしてたのだけど。そもそも FL Studio には Fruity SoundFont Player という、SoundFontを鳴らすためのソレがあるなと思い出したので、試しに鳴らしてみたり。

むう。全然音が違うじゃないか。迫力を感じる。もしかして、ノーマライズがかかってるのかな。それともエフェクトがかかってるのだろうか。

こんなに音が違うのに、どうして自分は、今までこっちを使わなかったのだろう?

もう一度関連情報をググってみたら、Fruity SoundFont Player は、SoundFontデータを全部読み込んだ状態で鳴らすようで。その点 sfz は、鳴らす音だけ読み込むモードも利用可能で。なるほど、過去の自分は、メモリを圧迫しちゃうから、あえてsfzを使ってたのだな…。でも、こんなに音が違うなら…。

Sample Tank FREE をインストールしてみたり。 :

波形データを鳴らすタイプの音源、のフリー版。音源データは500MB以上あるそうで。ちと気になったので試しにインストール。

ちなみに、入手するためには、 _IK Multimedia のユーザアカウントを取って、サイトにログインした状態でリンクを辿っていかないといけない。また、プログラムとサウンドデータを別々に入手する必要があるように見えた。そのあたりは窓の杜の記事を参考に作業。

_窓の杜 - 【REVIEW】人気サンプラー音源ソフト“SampleTank”シリーズのフリー版「SampleTank FREE」

インストールしたものの、起動すると「管理者権限で動かさないとアレコレ保存できないよ」と毎回ダイアログが開いてしまう。スタンドアローンで起動する分には、管理者権限で実行もできるけど。FL Studio から呼ぶ場合はどうすれば…。もしかして、FL Studio 自体を管理者権限で実行しないといかんのだろうか。これ一つのためにそこまでするのは、なんだかアレだなと。

サウンドデータがリストに出てこなくて困ったけれど。右のほうにある「PREFS」というボタン?を押すと、サウンドデータの入ってるフォルダを指定するためのダイアログが開くので、そこで設定したらリストが出てきてくれた。

色々音色を選んでみたけど。女性の声みたいなヤツ ―― Soprano Ahh? がなんだかイイ感じ。前の音に重なる形で鳴らすと、音程が滑らかに変化してくれるので、実際人が歌ってるかのように聞こえる。最近のダライアスのフレーズ、 _「あーあーーあ ああああ あああー」 みたいな音が鳴ってくれて面白い。いや、ダライアスのソレは、たぶんボーカロイドあたりを使ってるのかなと勝手に思ってるのだけど。

2016/09/04追記。 :

Dropbox上でhtmlが公開できなくなるらしいので自宅サーバ上にも _「あーあーーあ ああああ あああー」 を置いてみたり。

2017/03/19追記。 :

Dropboxのpublicフォルダが死んだのでファイルの置き場所を変更。

#2 [web] Googleドライブで音楽ファイルは公開できないっぽい

上の記事を書いてる最中に気付いたけど。Googleドライブに、htmlと一緒に音楽ファイルをアップロードしても、html中から再生できなかった。

Apache側の設定がされてないのだろうか? それとも、音楽ファイルや動画ファイルが公開できてしまうと不正アップロードの温床になりそうだから禁止しているのだろうか? 状況がよくわからないけど、なんだかちょっと不便というか、今一つ使えない印象を受けたり。それとも、HTML5 Audio で鳴らそうとしたから問題が起きるのかな。Flashで読み込めば違うのだろうか。面倒臭いからそこまで検証しないけど。

仕方ないので Dropbox にアップロード。

考えてみれば、Dropbox はさほど大容量ではないサービスの上に速度も遅いから、自然とその手の不正アップロード・ダウンロードには使えない状態が実現されている、のかな。わからんけど。

2012/02/07(火) [n年前の日記]

#1 [prog] Aptana Studio 3 をインストールしてみた

JavaScriptをちょっと勉強してみたい。ので、IDEを探してみたところ、やはり Aptana がメジャーな印象を受けたので、試用してみることに。

以前、eclipseにプラグインの形で導入したら、大変酷い目に合った記憶がある。 ので、ここはスタンドアロン版を導入する。Aptana_Studio_3_Setup_3.0.8.exe をDLして実行。 セットアップ画面が出てくるまでずいぶん待たされた。また、インストール先フォルダがなんだか奇妙な場所になっている。ユーザフォルダの直下にインストール先フォルダを作るなんて一体何を考えているのやら。とりあえず、後で色んなファイルをコピーしないといけないはずなので、問題が起きにくいであろうルートフォルダに ―― C:\Aptana Studio 3 というフォルダを作成してインストールすることにした。

日本語化も行う。 _Pleiades - Eclipse プラグイン日本語化プラグイン から、pleiades_1.3.3.zip をDLして解凍。Aptana のインストール先フォルダにコピー。

_Aptana3インストール・各種設定 | hot white snow を参考にさせてもらって、jQueryとやらも入れておく。バンドルビューを表示させておいて、コマンド → Bundle Development → Install Bundle。jQueryを選択してOK。

_memo+ > Aptana3の日本語化と設定など も参考にさせてもらって設定。

#2 [nitijyou] 自転車で床屋と買い物に

雨が降りそうな感じの曇り空だったので、親父さんの電動自転車ではなくて、フツーの自転車で。

最近貧乏なので試しに千円カットの床屋さんに入ってみたけれど予想通りコレジャナイ感の仕上がりに。その手の店でスポーツ刈りは難易度が高い注文なのだろうか。ただ、バリカンが全然痛くなかったのと、切った後に掃除機のような何かでドギューンと吸い込むことに感心。いつも行っていたところはバリカンが髪を食い込むわ、頭にサクッと先端が刺さるわで。業務用もしくは旧式のバリカンなんだろうか。それとも単に刃の交換をサボってるだけなんだろうか。その代り、カッチリした仕上がりにはなるのだけど。

ダイソーで釣り用のテグスその他を、ザ・ビッグで食材その他を購入。

電動自転車はやっぱり楽だなと痛感。須賀川市は坂道が比較的多いので、フツーの自転車では結構ツライ。

2011/02/07(月) [n年前の日記]

#1 [nitijyou] 煙草を買いにコンビニまで

徒歩で。わざわざメモするぐらい外出していないわけですが。

明日は大雪になるというニュースを見かけたので、今のうちにと。

2010/02/07() [n年前の日記]

#1 [nitijyou] TVが見れなくなった

06:00頃にTVをつけたら、画面が砂嵐状態で。マクロスFは録画出来ていたから、03:13頃までは問題なく映っていたものと思われる。03:13〜06:00の間に何かが起きたらしい。自分の部屋のTV画面だけではなく、茶の間のTVも、妹の部屋のTVもダメなので、どうも分配器〜アンテナの間で何かが起きているような。

ほぼ砂嵐状態の、夢色パティシエール、シンケンジャー、ライダーW、プリキュアがHDDレコーダに録画されていて、なんだかガックリ。もしかして、今日のシンケンジャーは最終回で、プリキュアは新シリーズの第1話だったのだろうか。よりにもよって。

が。09:00頃にTVをつけたら、何故か画面が復活している。どういうことだ…。と思ったら、その後ちょくちょく不定期に映像が乱れるように。こういった、通常は問題なく動いてるけど時々何故か不調になる、という状態が、原因を調べるにあたって一番面倒なんだよなあ…。

というか、こないだ電気屋さんにアンテナや分配器の配線を直してもらったばかりのはずなのに。分配器だって交換済みなのに。日記を見直したら、2010/01/19に工事をしてもらっていたらしい。20日も持たなかったのか…。なんだかな。

#2 [linux] D945GSEJT機にCentOS 5.4をインストールしてみたり

DVD-RWに焼いたCentOS 5.4 のインストールDVDと、USB接続外付けDVDドライブを使って、インストール作業を。

HDDのパーティションをどう分けるかで悩んだけど。とりあえず、CentOS が提示してきたパーティション構成そのままで作業してみたり。

インストール自体は特に問題なく終了。が、問題はこれから。

Atom搭載M/B上のオンボードLANを使えるようにするところで一苦労。 :

一見フツーに動いているように思えるけれど。このままではオンボードLANを使う際に不具合が発生するはずで。

Atom搭載M/Bによっては、オンボードLANとして RTL8111/8168B が載ってる場合がちょくちょくあるらしいのだけど。本来であれば r8168.ko を必要とするのに、誤認識されてしまって r8169.ko を使われて不具合が発生する場合がある、のだとか。これが Ubuntu のような、比較的新しいバージョンのkernelをどんどん投入しているディストリビューションであれば、そのあたりは既に対処済みらしいけど。CentOS の kernnel は、あえて少し古いモノが使われているので、このへん対処されてないのだとか。<対処済みと言う情報と対処してないという情報の両方を見かけた。また、M/Bによって症状が異なることもあるそうで。全く認識できない場合は不具合が分かりやすいけど、少しのデータなら通信できるが大量のデータをやり取りすると実はボロボロとdrop?する、という実に分かりづらい不具合が出ている時もあるらしく。

ということで、解説記事を眺めつつ、RealtekのサイトからドライバをDLして、解凍して、makeして、とやっていったのだけど。make の段階で「そのようなファイルやディレクトリはありません」等々のエラーメッセージが表示されてしまう。まだ微妙にオンボードLANが使えるのをイイことに、yum install gcc、yum install kernel-devel、等々を行ってから make をしてみたけど変化無し。と思ったけど reboot したら make というかコンパイルが出来て、r8168.ko が作成できた。

現在 Realtek で公開されているドライバ?なら、解凍後に ./autorun.sh を実行すれば、rmmod r8169 や make all 等を全部行ってくれるように見えた。が、実際何を行うのかちと不明だったので、解説記事に従って一つ一つ手作業で指定していった。

r8168.ko で一応使えてるように見える。さて、sshでログインできるようにしていかないと。

2009/02/07() [n年前の日記]

#1 [pc] knoppixのタイトルウインドウ問題

XPERT 128搭載機上で、 knoppix noswap xmodule=r128 で起動したら、KDE上でもタイトルウインドウが出た。r128 というのは Rage 128 用のドライバらしい。起動時のメッセージでは、xmodule=ati でも xmodule=r128 でも、どちらも Rage 128GS/xx と表示されてるあたり、ビデオチップの自動認識具合は変わらないように見えるのだけど、しかし結果は異なってくるのだなと。

#2 [windows] Excelの非表示行の存在でハマる

あちらから送られてきた .xls ファイルを開いて、セルを選択→コピー→別のシートに貼り付けたところ、元々表示されてない項目まで貼り付けられて悩んでしまう。どうやら、見た目とは別に、内部的には持っているけれど表示されないデータを持つことが可能らしい。>Excelファイル。そんな機能があったとは知らなかった。

検索してみたところ、そのものズバリで、行や列に対して「非表示にする」という機能があるらしい。が、こういうことをされたExcelファイルの内容を、コピー&貼り付けで流用したり、csvファイルで出力しようとすると、必要ないデータまで出力されてしまうので、実に都合が悪い。

非表示の行や列を削除する方法はないものかと検索したが、どうやらマクロでどうにかするというのが一般的な回答になるらしく。Excelが、最初からそういう機能を持ってない状況にちょっとビックリ。何を考えて非表示機能をつけたのか。

もう少し検索したところ、「可視セルの選択」で選択して、コピー&貼り付けをすれば、見えているセルだけをコピペできると知る。が、該当機能を呼びだす方法が判らない。巷にある情報は、えてして昔のExcel用らしく。自分が使ってる Excel 2007 ではどうすれば…。仕方なく、タイトルバーのあたり(クイックアクセスバー?)に、「可視セルの選択」を追加してみたり。MS-Office 2007 の売りのはずの「リボン」とやらは、こういう時に困る、ということなのか。より便利に使えるUIを模索していこうとするその姿勢だけは肯定するのだけど…。

2008/02/07(木) [n年前の日記]

#1 [iappli] BG画像の容量削減を模索中

一番容量を食ってるのがBG画像なわけで。上下左右反転を使えばもっと減らせるのではないかということで、元画像に対して左右反転を各所で行ったり、スクリプトでセルのサイズを変えて分割したり。

100KByteほど減らせた。よっしゃ。(ガッツポーズ) …しかし、反転描画、なおかつ、128個以上のセル画像を使うことになるから、ImageMap では機能が足りない。 *1 自前でBG描画ルーチンを書かないといけないわけで。実機上で256x256ドットのImageを作成できるなら多少は楽なのだけど、たしかDシリーズは画面と同サイズの Image しか作れないという制約があったような記憶も…。DoJa3.5以降は改良されていれば助かるのだけど、そのへんどうなんだろう。ちと調べてみないと。
*1: DoJa3.5のImageMapは、テーブルをbyte配列で持つ関係上、128個までのセルしか扱えない。DoJa4.0以降なら、int配列になったので、その制約はなくなった。

#2 [anime][comic][neta] 「明治時代の作家が書いた未来小説が存在する」という架空の設定で遊べないものか

明治時代の作品でありながら、まるで現代の人間が書いたような未来小説で。巨大人型兵器は登場するわ、宇宙人は出てくるわ、時間旅行はするわ、ヒーローに変身するわ、萌えキャラは出てくるわ、BL系要素てんこもりだわ、てな内容。そんな未来小説がかつて明治時代の日本には存在していたのだ、と仮定して遊ぶ。みたいな。

明治時代の作品だから既に著作権は切れている。であるから、漫画・ゲーム・映像・音楽等の別メディア化だろうと、二次創作だろうと、各人好きなだけ何でもやりたい放題。…と言っても現実に「原作小説」に相当する部分を書いているのは現代の人間なので、実のところ著作権は全然まったく切れていないのだけど。そこは、クリエイティブ・コモンズ (Creative Commons)の「表示」のみ要求するライセンスを適用することで、「原案:○○○○」「原作:○○○○」とどこかに書いてさえおけば、売ろうが何しようがOKということにして著作権切れの作品っぽい扱いができるようにしておく。ちなみに「原案:○○○○」の「○○○○」に入る作家名ってのは、要するに、「八手三郎」「東堂いづみ」「アラン・スミシー」「矢立肇」あたりを連想すればなんとなく雰囲気が伝わりそうな。

昔、伊集院光が架空のアイドルをでっちあげて、それをネタに皆で盛り上がったりしたらしいけど。ソレの、漫画・アニメ・ゲーム版とでもいうか。

_仮面ライダーダルダ あたりの遊びと変わらないか。もっともアレは、「仮面ライダー」という呼称が入っちゃってるあたり権利関係がどうなんだろうという疑問もあったりするんだけど。

法的にはどうなんだろう。 :

例えば写楽の浮世絵なんてのは、どうやら複数の人間が描いていたという話があったりもするわけだけど。 *1 現代において、誰かが、現代人の描いた絵を「これは写楽の絵だ」と言い張ったら、扱いとしてはどうなるのかなと。それが社会的に江戸時代の人間の作であるとして扱われるのであれば、当然著作権は切れているだろうから、Tシャツだの何だのにしても文句は言われないだろうし、誰かが意匠登録しようとしても「それは写楽の描いた絵だから登録できんやろ」ということになるのだろうか。また、写楽という人物が複数居たという説が本当であれば、写楽という人物名は架空の人物名だったということになるだろうから、そこにもう一人加わっただけの状態、という扱いにもなったりするのだろうか。

架空の人物が作った・書いたとされる作品の扱いは、法的にはどうなるのだろう。例えば、2chでは、「名無しさん」が日々テキストを書き込むわけだけど。その「名無しさん」に架空の人物名・組織名等を当てはめたらどうなるのか。…ある「名無しさん」が「俺のこのカキコは、民明書房刊『拳法興亡史』からの引用なんだけどね」と嘯いた場合、その書き込み内容の権利はどこの誰が持つことになるのだろう。 *2 仮に、その「民明書房」が、明治時代に出版していたが大正時代に倒産してしまった、てな設定だった場合、「名無しさん」の書いたテキスト内容は、誰でも利用できるテキストとして扱われるのだろうか。

東映の「八手三郎」は現代に生きている人物、ということになってるのかなと思うのだけど。これがもし、「八手三郎は明治時代の作家です」てな話が出てきたら、「八手三郎」名義の原作・原案はどういう扱いになるのかなと。その場合、円谷プロが東映作品をリメイクして映像化しても、これといって問題にはならないのだろうか。

もし、架空の、大昔に生きていた人物名をつけることで、その作品が大昔に作られたものと同等の扱いを受けるのであれば。「誰にでも使ってもらいたい」が「誰かに独占されたくはない」作品に対して、「コレは○○○○が作った作品ですよ」と嘯けば、その作品の「フリー=自由性」を権利的に守ることができたりするのだろうか。…いや、たぶん、そのように上手くはいかない気もするのだけど。そんなことをするだけで作品の「自由性」を守れるのであれば、やる人がたくさん出てきてるはずだよな。

*1: 実際は、「いやいややっぱりこの人でしょ」という説が有力らしいけど。ここでは複数居る方が比喩として使いやすいのでそちらの説で。
*2: 民明書房は、とある漫画に出てきた架空の出版社名。

2007/02/07(水) [n年前の日記]

#1 [linux][ubuntu] UbuntuをVMware上でインストールしてみた

デスクトップ用ディストリビューションとして最近評価の高い Ubuntu Linux を試用してみようかなと。いきなり本当のHDDに入れるのは怖いので、まずは VMware上でHDDにインストール。

Ubuntu は、VMware 用のバイナリも公開・配布されているのだけれど。HDDインストールの手順確認もしたかったので、起動CDの iso をDLして、それを使ってHDDイメージにインストールしてみたり。

起動時のメニューからして、日本語で項目が表示されていて驚いた。knoppix より、よほど日本語化されてそうな予感。さらに、起動後のデスクトップにHDDインストール用のアイコンがあるあたりにも感心。Linux と言えば、昔は「HDDインストールが面倒」という印象だったけど。今時のディストリは、かなり進歩してるのだな…。素晴らしい…。

HDDインストールはスンナリできた。こんなに簡単でいいのだろうか…。

root のパスワードを設定するシーンがなくて首を捻ったり。検索してみたら、どうやら、root でログインはさせない・sudo を使って作業させる、という方向でまとめられているらしい。

CD1枚なので、さすがに knoppix DVD版に比べると、アプリの数が少ない。が、ネットに接続できる環境なら、パッケージ管理ツールでさっくりとアプリを追加インストールできる。とりあえず、xfce 関連のパッケージを入れてみたり、blender や Inkscape を入れてみたり。特に問題なく動いた。

knoppix に比べると、微妙に、アプリの日本語化がされてない…ような気もする。Debain から少し外れ始めてることが影響してるのだろうか。それとも、knoppix AIST版は、独自に日本語化してるところがそこそこあったりするのだろうか。知らんけど。

何にせよ、全体的に好印象。なるほどこれなら、デスクトップ用として使えそう、かもしれん。

2006/02/07(火) [n年前の日記]

#1 [zatta] _自転車用冬タイヤ

_バイク用の冬用タイヤがある という話を見かけて、「自転車用もあったりするのだろうか。まさかなぁ」と思って検索したら。…あるのか! ビックリした。ていうか欲しいかも。

とはいえ、自分の愛用自転車はママチャリなので、タイヤ交換が非常に難しそうな予感。自動車なみにタイヤ交換が容易な自転車ってないものだろうか。でも、軽量化することを考えると両面から挟む構造になるだろうから、自動車なみにってわけにはいかんのだろうなぁ…。

自転車にもチェーンタイヤがあったりしないだろうか。自動車のタイヤにチェーンを巻く際には、タイヤを外さなくてもいいし。であれば自転車のタイヤも外さなくて済むかも。と思って検索したが、動力を伝えるチェーンしか引っかからない。そりゃそうか…。大体にしてあの細いタイヤに、チェーンが巻けるわけもないわな。

この記事へのツッコミ

Re: 自転車用冬タイヤ by けいと    2006/02/08 19:06
小学生のころ自転車のタイヤにチェーンを巻きましたが、なにか?(笑)

自転車の泥除けにぶつからない程度の細いチェーンを巻きましたが、
効果がある状況がかなり狭いです。

アイスバーンで効かないのは当然のことですが、
雪道も自重でめり込む程度のやや緩めの雪道じゃないと効果を発揮しません。
新雪だと空回りします。

予断ですが、これをやって小学生ながらに
金属の種類で耐久力がかなり違うっていうことが分かりました。

アルミのようなやわらかい金属だと走行中にチェーンが切れてしまいます。
が、ステンレスのような硬い金属だと子どもの力では加工に難があります。
そもそも家庭用のニッパーやペンチでは切れにくい…
もっとも、その分タイヤに緩みなくきっちり巻いてあげれば
雪道ではそれなりに効果がありました。
とはいえ、
効果の高さ=チェーンの太さであり、
これは自転車の乗り心地と反比例しますから、
どこに妥協点を見出すか、というところがポイントでしょう。

私が小学生のころこんなことを考えていました。

モトクロスバイクのようなサスペンションつきのフレームを使えば
それだけでショックを吸収できますし、
タイヤもバイク用のものが使えますから
バイク用スパイクタイヤも装着できる。
あとは駆動系だけ自転車用に改造できれば…

今思えば、バイクを人間の足でこぐと重いんだろうなぁ・・・
エンジニアだ… by mieki256    2006/02/09 08:11
> 小学生のころ自転車のタイヤにチェーンを巻きましたが、なにか?(笑)

ええっ! スゴイ…。エンジニアだ。エンジニア魂だ!
あの細いタイヤに、よく巻けましたね…。
自分の想像力では、横にスライドした途端に外れそうなイメージしか。

> 自重でめり込む程度のやや緩めの雪道じゃないと効果を発揮しません。

あ! そうか、なるほど。アレって重量が関係してくるのですな。
車の場合は車体が重いから、道に対してガッチリ食い込んで効果があるけど、
自転車は車体が軽いから、車ほど判りやすい効果は出ないのか…。
盲点でした。そこは全然想像してなかった。なるほどなぁ…。

> 効果の高さ=チェーンの太さ
> 自転車の乗り心地と反比例

なるほど。自転車ってゴムタイヤとサドル周辺ぐらいしか
衝撃を吸収する部分がないもんなぁ。
ガッツンガッツン、な感じの走行になりそうな予感。

上手に商品化したら小ヒットするのかな、
とか意味もなく妄想してましたが、いやはや現実は厳しい…。
それにしても、小学生でチェーン巻いてみたってのは、
スゴイ…素晴らしい…
Re: エンジニアだ… by けいと    2006/02/09 20:29
> 横にスライドした途端に外れそうなイメージ

さすがに車のチェーンのようなラダー構造にはできません。
ちょうどタイヤとリムに巻きつける感じで取り付けます。

チェーンそのものも車用のようなごつい奴ではなくて
インテリア用の細いチェーンですね。

> ガッツンガッツン、な感じの走行になりそうな予感

なります(笑)
いっそのことチェーンメール(鎖帷子のほう。不幸の手紙ではない)みたいな
タイヤにしたいと思ってましたが、
小学生のお小遣いでは8つぐらいのチェーンが限界でした。

> 上手に商品化したら小ヒットするのかな

今商品化しろと私がいわれたら、
車用のゴムチェーンみたいな感じで商品化します(笑)

普通のチェーンだと
取り付けがめんどくさいのと、
乗り心地が悪いのと
チェーンが切れたときとても危険だという
少なくとも3つの問題点があります。

一応当時はチェーンの飛散防止のため
(正しくは飛散防止ではなく紛失防止。だってなくすとショックだから)
チェーンをスポークに通す形で取り付けてました。

#2 [zatta] コメント欄でのロボット関係の書き込み内容が興味深い話なのでメモ

小型化すればするほど脊椎動物のような内骨格系は難しくて昆虫のような外骨格系のほうが作りやすいとか。

mieki256's diary - Web Board より

動力としてサーボモーターを使ってる限り、外骨格なのは仕方ないでしょうな。ヒトと同じ人工筋肉を用いた逆テコの動作が可能になれば、内骨格も可能だろうけど。人工筋肉ぽい動力として、エアシリンダーとかあるけど、伸びるor縮む の両極端で、位置制御まで出来ないし。当分、先っぽい。

mieki256's diary - Web Board より

あー。エアシリンダーってそういうデメリットが…。何個か繋いで段階をつけるとかできないものだろうか。といっても限界があるか。…電気を流すことでほんの少しだけ伸縮する物質があれば、それを複数繋いで多段階で伸縮させることができるかも。と思ったけど、そういう物質は接合ができなかったりするのかもしれんなぁ、と根拠もなく想像。

どこまで人間の真似をするかによりますけど、人間の構造は「逆テコ」(距離の長さでパワーを補うのではなくパワーで距離を稼ぐ)らしいので、そのパワーを如何に効率よく引き出せるかでしょうね。

スターウォーズのC3POを人間らしく作るときに当時はそこが難点で、ひじやひざがうまく動かせなかったとか。

mieki256's diary - Web Board より

ここでC3POが出てくるとは。着ぐるみですらそういうことがあるなら、本当のロボットなら尚のこと難しいこと、ですかな。


1/1より1/8とか小さい方が原寸サイズより、二足足歩行時にバランスが取りづらいそう。理由は、「重心が高い物体」と「重心が低い物体」を比べた場合、倒れるまでに掛かる時間ってのが、後者のほうが短いそうで、より素早い制御が必要。だから、大きなロボットみたく関節を一つ一つ制御してたら、間に合わないのでソニーの SDR-3X は多関節を同時に制御する「全身協調動的制御システム」を導入したそな。

mieki256's diary - Web Board より

_ソニー、身長50cmの二足歩行ロボット「SDR-3X」を発表

近い将来、「生活防水アシモ」とか「10気圧防水アシモ」とか出てきて、日本近海を海岸から歩いて海底調査したり、ビート板を使用すれば泳ぐ事が可能になるかもしれない。ああ〜、妄想が膨らむ。

mieki256's diary - Web Board より

_ASIMO(アシモ)がバージョンアップ!ソニーQRIOは?

うわ。「日本近海を海底調査するASIMO」のイメージに燃え。動力関係が解決すれば、延々と海底を歩いて調査するロボットになるんだろうなぁ…。でも、よくよく考えてみると、別に海底を2足歩行する必要はないのか。ギャフン。いや、ビジュアルイメージとしては非常に魅力的。捨てがたい。混濁した水の中からゆらりと現れるASIMO。シビレル。

#3 [nitijyou] チラシ作成終了

画像の容量がかなり大きくなってしまった。減色してgifにしても効果なし。レイアウト自体を変更しないと容量削減は難しいけど、変更できるようなレイアウトでもなく。なかなか難しい。でもまあとりあえず出来たので、メールでその旨知らせた。

借りてた資料を返しに行ってこないといかんなぁ。

#4 [prog] eclipse インストール

3.1.2 をインストール。日本語化パックも解凍・コピー。起動オプションに -data "x:\hoge\" をつけてワークフォルダを指定。

DoJa4.1も入れてみたけど :

ついてきたサンプル(CARレース)をビルドしようとしたらエラーが。

jdk\bin に PATH を通してなかった。"x:\hoge\jdk1.5.0_06\bin" を環境変数 path に追加。

それでもエラーが出る。設定 → sun.tools.java.Main にチェックを入れたら、警告一つで済んで、ビルドできた。

_JavaでHello World アプリケーション編 :

参考にしつつ、環境変数 JAVA_HOME その他を設定。せっかくだから引用させてもらおう。
変数
JAVA_HOMEC:\j2sdk1.4.1_02
PATH%JAVA_HOME%\bin
CLASSPATH.;%JAVA_HOME%\lib\tools.jar
なるほど…。環境変数を上手に使えば、環境が変わっても最低限の修正で済む場面が多そうだなと。

#5 [hns] hnsを記事単位で表示するようにしてみようとしたのだけど上手くいかず

1度目の表示は、必ず「該当記事なし」と表示されてしまう。同じURLで、ブラウザ側で完全更新をすると表示されるのだけど。もしかするとURLを、〜/200602071.html といった具合に、まとめてしまってるせいかしら。他のサイトは 〜/2006/02/07/1.html といった具合に、フォルダが異なるようなURLになってるし。…いや。関係ないかも。

あちこち弄ってたけど改善せず。面倒くさくなってきた。とりあえず、今までの形でも読める状態ではあるのだし。それほど実用性は損なわれてない状態なのだから、別に変えなくてもいいかな。みたいな。<モノグサ。今後の課題ということで。

いつかリベンジするために、参考ページをメモ :

この記事へのツッコミ

Re: hnsを記事単位で表示するようにしてみようとしたのだけど上手くいかず by otsune    2006/02/10 06:10
基本的には
http://blawat2015.no-ip.com/~mieki256/diary/?20060207S5
というか、もっと正確に書くと
http://blawat2015.no-ip.com/~mieki256/diary/index.cgi?20060207S5
にアクセスするようにmod_rewriteを書くことに成ります。

RewriteRule ([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9]+)\.html$ /diary/index.cgi?$1$2$3S$4 [NE,T=application/x-httpd-cgi,L]

と書けば行ける筈。
Re: hnsを記事単位で表示するようにしてみようとしたのだけど上手くいかず by otsune    2006/02/10 06:13
あと
http://www.otsune.com/diary/2005/04/24/1.html#200504241
の改造もあるといいかも。

hnsのcurrentには取り込まれています。
mod_rewriteの記述 by mieki256    2006/02/12 01:00
> と書けば行ける筈。

おお! アドバイス、ありがとうございます!
おかげさまで記事単位で表示できるようになりました! 感謝感激であります。

#6 [web] _ARTIFACT@ハテナ系 - はてな学級会「銀河通信には儀礼的無関心を行使すべきか」

もしかすると某氏がやりたいのは「銀河通信」なのだろうか。と思いついて関連ページを検索してたら、件の記事に遭遇して笑ってしまった。やり取りの内容が面白い。

モヒ子 「そもそもブログはリンクされやすくするためのツールなので、ブログを使うのがおかしいと思いまーす。リンクされたくないのなら、mixiを使うとか、固定リンクをなくしたりとか、コメント欄をなくすとか、もっと自分の努力をするべきだと思いまーす。

ARTIFACT@ハテナ系 - はてな学級会「銀河通信には儀礼的無関心を行使すべきか」 より

だよなぁ。 *1

_あっけらかんとした亜米利加人が屈託のない笑顔を浮かべて、ヤアなどと手を振りながら日本家屋の中に土足で上がり込んできたかのような居心地の悪さ :

すでに話題が旬を過ぎた今になってこんなことを言うのもどうかと思うのだが、どうもウェブログというやつには馴染めない。何やら、あっけらかんとした亜米利加人が屈託のない笑顔を浮かべて、ヤアなどと手を振りながら日本家屋の中に土足で上がり込んできたかのような居心地の悪さを覚えるのだ。

読冊日記 2003年 5月下旬 より

ウェブログはコミュニケーションを重視する。盛んに他人の記事を引用するし、たいがいコメントエリアがついている。明快で活発なコミュニケーション。実にわかりやすい。

読冊日記 2003年 5月下旬 より

しかし、日本型のウェブ日記の世界には、かつてからもっと別種のコミュニケーションがあったのではないか。

読冊日記 2003年 5月下旬 より

日々誰に向けているのでもないテキストを淡々と書き、そしてどこかにそれを読んでくれる読み手がいる、ということに心を癒され、直接感想メールが来たりすると、かすかな苛立ちを感じずにはいられないような、そんな「コミュニケーション」。
それは、アメリカ人からすればコミュニケーションの名にすら値しないようなものなのかもしれないのだけど、「それはどこか宇宙の果ての知らない星からの長距離電話」(谷山浩子「銀河通信」)であり、「誰でもない他者」からの「あなたがここにいること」への承認のメッセージなのだ。

読冊日記 2003年 5月下旬 より

キットカットはトカットか。シャム双生児はム双生児か。ウェブ日記はブ日記か。ああ決めた。今日から私はブ日記だ。ブログに対抗して、昔ながらのウェブ日記のことをブ日記と呼んでやる。この野暮ったさが実にウェブ日記らしくていいではないか。

読冊日記 2003年 5月下旬 より

ということで、blogに対して「そんなあっけらかんとしたのはヤダ!」と反旗を翻す人達のWeb日記を「ブ日記」もしくは「銀河通信」と呼称する。らしい。 *2

_無断リンクや批判的コメントを忌避する人たちの持つ誤解 - 日々是自己主張 :

まあ、自分は似非モヒカン族なので :

淡々と黙々とリンクを張っていきたいなと。リンクすることで、双方何か損するわけでもないし。

と言いつつ某所に「一言」を残してみたり。ちと実験(?)。 *3

*1: それに近いことを自分も思ったので、てっとりばやい選択肢として某氏にmixiを薦めたが「閉鎖性」を理由に拒否されてしまった。うーん。当人が何を求めてるのかよくわからない。mixiという閉鎖性を蔑んでおきながら、リンクするために「一言」を要求するの図 ―― 「一言」もある種の閉鎖性に思えるのだけど。それはオープンとは言えない。矛盾してるように思えるのだが。…いや、やはり「銀河通信」なのか。そう仮定するとしっくりくるところもある。
*2: ていうかこの記事、自分の日記でも以前クリップしてたような。てなことを思い出して、検索して、自分の書いた該当記事を読んだら頭を抱えてしまった。当時の自分は認識が甘い。頓珍漢なこともたくさん書いてる。ツールの開発者に対して失礼極まりないことも書きまくり。いや。今も頓珍漢で失礼極まりないんだろうけど。そういうおかしな自信はある。…でもまあ、元々フリーリンクであるべきというスタンスでWebサイトを作り始めたところもあるので、気持ち的には銀河通信な感じで書いてても、そういう状況を本当に実現しようなどとはまったく思ってなかったりもするわけで。「Webってのはリンクする/されるのが当たり前じゃん」と思ってるし。「ブ日記」のつもりで書くとスイスイ記録が残せるからそういう気持ちで書いてるという、ただそれだけの話で。結果が「ブ日記」じゃなくても自分の中では何の問題もない。というわけで似非銀河通信族というか銀河通信のスピリッツのみを宿したいと願う種族なのかもしれんと。…自分でも何を書いてるのかわからんけど。
*3: 袋の中に犬が入ってるのか猫が入ってるのか確認したいときは叩いてみるに限る。「キャン」と鳴けば犬だし、「フギャ」と鳴けば猫。なんのこっちゃ。

#7 [jiji] 天皇さんの次男坊の奥さんが妊娠したのか

_秋篠宮妃紀子さまご懐妊 第3子、秋に出産予定
秋篠宮妃紀子さま(39)が懐妊されたことが七日分かった。宮内庁関係者によると、今年九月か十月に出産予定で、経過は順調とみられる。秋篠宮さま(40)と紀子さまにとっては長女眞子(まこ)さま(14)、二女佳子(かこ)さま(11)に続く第三子。天皇、皇后両陛下にとっては、皇太子家の長女愛子さま(4)に続く四人目の孫となる。

男子が誕生すると、皇室では一九六五年の秋篠宮さま以来四十一年ぶり。皇位継承順位は皇太子さま、秋篠宮さまに続く第三位。今国会にも法案が提出される予定の皇室典範改正の論議にも影響しそうだ。

中国新聞 スポットニュース より

ややこしいことになってきたなぁ。

本当に妊娠したのかな…。ここでこういうニュースを流せば、女系天皇云々の議論は停滞する、ということを狙っての捏造だったりして。嘘。そこまでやるわけないか。でも、次男坊が欲情してこういうことになるように、周りで色々動いたという可能性もあったりして。嘘。どうやって欲情させるねん。皇室 or 宮内庁に伝わる秘伝の媚薬でもあるならともかく。<それなんてエロゲ? …そういうのがあったなら長男に対して使うわな。

長男と次男の、確執とか争いとか、そういう感じになってきた予感。王族の争いってのはジメジメしてますな。なんとなく、ナウシカに登場するクシャナを思い浮かべてしまったり。毒殺されないだけ現代の現実世界はまだマシなのか。

この記事へのツッコミ

Re: 天皇さんの次男坊の奥さんが妊娠したのか by けいと    2006/02/08 19:16
> 次男坊が欲情

私は無きにしも非ずだと思っています。

なんせ紀子様と雅子様の年齢を考えるとどちらもそろそろ限界。
9回の裏表を残すのみ、いまだ無得点、っていう感じ。

そうなれば首脳陣としては使えるコマはすべて使えとばかりに
皇太子様夫妻の代打として一発サヨナラを紀子様に託したとも
取れるわけですし。

まぁ、テレビなどでも言われていますが、
男子待望論とは別に
ここで本当に男子が生まれてしまうと
雅子様は(-_-)ウツダシノウになってしまうんじゃないかと…
逆に、また女子が生まれてしまうとどうなるんだろうな… by mieki256    2006/02/09 08:23
> 一発サヨナラ

上手い。(と思ってしまったのは自分がオヤジ化してる証拠だろうか…)

> ここで本当に男子が生まれてしまうと

個人的には、また女の子が生まれてほしいところ。
そっちのほうが更に事態が混乱しそうで、
面白くなりそうな。<面白がってどうする。

まあ、一夫一婦制を守らせる限り、
こういうことは今後も起きるんでしょうな。
どうせ日本の「王様」なんだから、一夫多妻制でもいいと思うんだけどなぁ。
Re: 逆に、また女子が生まれてしまうとどうなるんだろうな… by けいと    2006/02/09 20:33
> 日本の「王様」なんだから、一夫多妻制でも

「日本の象徴」が一夫多妻(笑)

少子化を救うためには率先して…
日本の象徴 by mieki256    2006/02/12 00:58
> 「日本の象徴」が一夫多妻(笑)

あっ。そうか。「象徴」が一夫多妻では、マズイですかなぁ…
「象徴」ってのは面倒くさいなぁ。

元になった英文では、「象徴」ってのは何の単語だったんだろう。
と思って検索したら、
http://www.geocities.co.jp/HeartLand-Gaien/2207/shuchou119.html
なるほど…。「symbol」だったみたいですね。

「日本のsymbolが、一夫多妻」
「日本の象徴が、一夫多妻」

結構印象が違うような、いや、あんまり違わないような。うーん。さてはて。

2005/02/07(月) [n年前の日記]

#1 [zatta] _裸の原人

裸で自転車を乗り回す話。なんかいいなぁ。

#2 [game] _藤本美貴と魂斗羅

藤本美貴って…誰? _(via GAME KOMMANDER)

#3 [zatta] _火事の危険性

ゴミ箱の蓋で火事になりかけたという話。写真つきで解説。…恐ろしい。ウチは大丈夫だろうか。不安になってきた。

#4 [zatta] _蝕まれる心、企業生き残りの代償 第1回〜あるケータイ用ソフト技術者の場合(1)

_(via 2005年のはぶにっき)

#5 [zatta] _チームで開発するならパソコンの前にいる時間を減らすしかない

_2005年のはぶにっき - 昔はそうだったんだけどなー

#6 [anime] _鍛えてますから

敵に馬乗りになって、泣くまで殴るのをやめない連打が必ず一話に一度あるヒーローというのも日曜の朝8時にしては凄惨なものがありますが。
ワラタ。鬼のようだ。

そもそも鬼だったか… (;´Д`)

#7 [anime][neta] 音を使って敵を倒すライダー

という設定がなんとなく面白そうなので自分も考えてみたり。 ダメ過ぎる。

#8 [anime] _デカレンジャーのロボットですら「トランスフォーム」とかいいながら変形してる。

デカレンジャー好きの自分としてはちょっと悲しい話。

巨大ロボットは、喋らないと子供にウケないのか…。

#9 [zatta] _ナンノこれしき!

カールスモーキー石井が南野陽子の顔面をボコボコに殴ってドラマ撮影に支障が出るぐらい痣だらけになったのにカールスモーキー石井は社会的に抹殺されなかったのはなんでだろう。という話。なのかな。…そういう事件があったこと自体知りませんでした。つーかコメント欄の、
石井さんという方はあまりご存知無いのですが、たしかコサキンのラジオで幼少の頃、ひよこを数珠つなぎに繋げてネックレスにしてた。羽がぱたぱたして気持ち良かった。最後にはぐったりしていた、というアーチスティックなエピソードを紹介されていました。
という話にビックリ。ひよこを数珠つなぎって…そんなにお小遣いを貰ってたのか! 金持ちだ! <いや、そこじゃないだろ…。数珠つなぎにするために、わざわざ買ったのかしら。うーむ。

女性に暴力をふるうような男性がモテるのは何故なんだろう :

暴力的=いざというとき守ってくれそうだから、とか。体力面に関する遺伝子が優秀そうな感じもするしなぁ。ヤンキー効果もありそうだ。真面目で優しく、しかし体力がない男性は、生きにくい世の中であることよ。もっとも戦国時代とかに生まれてないだけマシなのか。そういう時代なら、あっという間に命を落としてたのかもしれんし。

#10 [cygwin] _エクスプローラでフォルダの右クリックからbashを呼ぶ

たしか再掲。ありがたや。

#11 [colinux] vncserverをインストール

しようと思ったけど、たしかVNCって色々あるはずだよなと思い直して検索してみたら _tightvncserver なるものが。

と思ったけど、
vncserver の新しいバージョン (> 3.3.3r2) では、tightvnc エンコーディングと同じぐらい優れている新たな自動エンコーディングに対応しています。
とある。なら、vncserver でもいいのか。てことで、apt-get でインストール。

#12 [colinux][debian] _testing/unstable から stable にダウングレードしたい

/etc/apt/preferences と /etc/apt/sources.list を書き換えて、unstable から testing にダウングレードしてみた。が、途中で libdns11 だけ404。ミラーサーバを変更しても404。というか、このパッケージの情報を検索しても見当たらないような。…試しに消してみよう。apt-get remove libdns11 で削除。後で問題が出たら、そのとき考えよう。

#13 [anime] BJ、アニメータの回

金田伊功、宮崎駿、だろうか。ってサングラスかけてるから金田伊功って短絡的過ぎる…。>自分。

ピノコが溺れて助けられたときに心臓マッサージ→人工呼吸の順番だったけど :

それで正しかったんだっけか。教習所で習ったのだけど、忘れてる… >自分。

_東京消防庁 - 生活安心情報 - 救急アドバイス/倒れている人をみたら :

このページだと、まずは気道確保→呼吸確認→呼吸してなかったら人工呼吸→循環サイン確認→心臓マッサージ、みたい。でも、溺れたときは別の対処なのかな。

もう一つ、小児の場合は片手で心臓マッサージをする、とある。うーむ。肋骨が折れたりするのかな。と思ったが、 _こちらのページ では _両手で包みこむように、 とある。どれが適切なんだろう。何にせよ、BJでやってたやり方だと、ピノコの肋骨は折れそう…って、ひょっとして彼女は肋骨が無かったのだっけか? <うわあ。そのへんの設定、覚えてないですわ。

_応急手当「溺れた時」 :

まず呼吸確認、とあるなぁ。無理に水を吐かせなくてもいいらしい。…が、どういう順番が正しいのか、どうもハッキリしない。

順番云々はさておき、せっかく医者が主人公の番組なんだから、このへんきっちり説明・解説しながら描写しても良かったんじゃなかろうか。と思ったけれど。展開上そういう場面が必要だっただけで、そこをきっちり描いてみたところで作品全体の質が上がるわけでなし。つい、もったいない感じがしてこうして書いてみたけれど、その手の描写にこだわる必要はないよな。

BJアニメ版をネタにスペシャル番組が作れそう :

各所の描写について、本物のお医者さんに、「本当なら、ここはこうなるのです」と解説させたり。ショッキングな効果音・イラストを交えつつ解説すれば、視聴者を飽きさせないで済みそうだし。アニメ映像に医者がツッコミを入れると、アニメのキャラが「なんだって!?」「なるほど、そうだったのか…」と驚いたり納得したり、とか。…それはちとわざとらしいか。

最後のNGコーナーで笑ってしまった :

写楽の絆創膏の下を目撃してしまった、ピノコの表情がいいなぁ。何を見たんだ。

2004/02/07() [n年前の日記]

#1 [pc] HDDから異音がしない

壊れるのか壊れないのか、どっちやねん。中途半端だとRMA交換とやらも試せないやん。

#2 [anime] 福島でも攻殻機動隊TV版が流れてたみたい

夜中、TVつけたら流れてた。そうと知ってれば。チッ。戦車が脱走する話でしたよ。何話目なんだ。

#3 [anime] 悪魔ほど良い仕事をする

プラネテス。クリリンのことかーっ。間違えた。監督の事かな。監督に限らず指揮を取る人は、かも。しかしまさか月の忍者をあんな風に使うとは。 *1 やられた。シリーズ構成って凄い。これを狙ってわざとバカ騒ぎさせてたのか。 *2 それはそうと、ラストシーンのあたりが非常に気になりますよ。タナベの後姿と、走り続けるハチマキ。何かの比喩なんだろうけど。
*1: たぶん助からないのでは、と思ってるんだけど。それとも忍術で助かるのか。無理だろう。
*2: そうなのか?

#4 [tv] 寅さんの方がよっぽど面白い

とは、ロードオブザリングを眺めてた親父さんの言。怪物がでてきたりしてわけがわからん、だそうで。そのあたりに、親父さんのファンタジー性許容に関する境界があるらしい。

#5 [anime] アレ?

オンドゥル語変換サイト情報のツッコミ情報が消えてる? 文字化けしてたから消しちゃった、とか?>H氏。

この記事へのツッコミ

Re: アレ? by 名無しさん    2004/02/08 23:15
そです。なんかURLと謎の言葉っだったもので…。
Re: アレ? by mieki256    2004/02/11 01:39
なんで文字化けしたのか実は気になってたり。
掲示板のcgiの、文字コード判別が失敗してたのかなぁ…

http://flexfrank.net/cgi/ondl/
出力結果が半角カタカナなんですな。
もしかして、出力結果をコピペしたら文字化けするのだろうか。
かもしれん。
Re: アレ? by mieki256    2004/02/11 01:40
七爵柴酌自勺勺邪執酌識実爵偲酌耳漆叱。ェ
Re: アレ? by mieki256    2004/02/11 01:42
正解。
「オンドゥルルラギッタンディスカ!」を
半角カタカナのままコピペしたら文字化けしました。

「オンドゥルルラギッタンディスカ!」
↑これも半角カタカナだけど、どうなるのだろう…
Re: アレ? by mieki256    2004/02/11 01:45
全角文字も含めつつ、半角カタカナを入力すると、
全角カタカナに変換してくれるみたいですね。
たぶん、半角カタカナonlyだと文字化けするのでしょう>この掲示板。
原因が判って一安心 <って原因判ったなら直せよ <いや、面倒臭いし <オイオイ

2003/02/07(金) [n年前の日記]

#1 リンク切れ調査結果表示cgi作成

相変らずリンク切れ多発です。なもんで、自宅サーバにアクセスしようとすると、アクセスが細切れになる可能性が高いです、というか必ずなります。申し訳ない。5分〜10分連続で繋がってる時もあれば、一分も持たず切れ切れになってる時もあるのでなんともはや。

ネットとの接続状況を確認する為に、モデムのLEDを覗きに階下に行ったり、ログを記録させてるサーバ機にログインするのは面倒。なので、Webページ閲覧の形で状況をチェックできるようにcgiやページを作成。 _コレです 。一目見てもらえれば、現在のウチの回線状況の酷さが伝わるかと。もっとも自宅サーバ内に置いてるので、丁度リンク切れしていた場合、外部から参照できないのですが。

2002/02/07(木) [n年前の日記]

#1 エンジンが古い?

数日前の話なんですが。

お袋さんの乗ってた日産マーチ、以前からエンジンにガタがきてて。廃車になったのです。
ひとまず中古シビック(フェリオ)に乗って急場をしのいでたんですが。そっちもオイル漏れが激しく。

で、新車購入。
シビックfitとか言うヤツを買ったのです。
これでウチはシビック2台。

新車が来たので、中古シビックのオイル漏れを直そうと修理屋さんに持ってったら、意外な事実が判明。
なんでも…
本来積んでるはずのエンジンではなく、
より古い型のエンジンと、以前に交換されてたらしい。
…事故車?
それとも、古いほうが性能が良い→走り屋さんは交換するのが通、とか? <んなことあるの?
中古車は怖いなぁ。

あらかじめ、「コレコレこういう事情があるんで安いんです」とか言って売ってくれればいいのに。
顧客が納得済み・合意の上で購入すれば問題は起きないはずなのに…
情報隠蔽して売るから変な話に。

PCパーツ関連や周辺機器もそう。
coregaのルータはftpもちゃんと使える、とかどこぞのBBSで言ってるヤツは社員なんじゃないのか。
「こういう事に使うと問題有り。でも、この範囲で使うならオケーオケー」とか宣伝すりゃいいのに。


キャプチャボードを久々に動かしてました。 _(以下略)
_絵と音がずれる問題って、もしかしてコレ?

#2 [capture] 久々のキャプチャ

キャプチャボードを久々に動かしてました。

いやはや、フレーム落ちが多くてウンザリですよ。
最後のあたりでフレーム落ち→最初からキャプし直し→大泣き(爆)
何回キャプチャしたことやら…

ですが、色々試してたら、
640x480キャプチャでフレーム落ちバンバン起きるけど、
320x240でキャプすればグーンとフレーム落ちが無くなることがわかりました。

しかし、320x240だと、情報半分(いや、3/4か…)捨ててるから…
ただでさえ汚い絵が、ますます汚いです。

個人的に、
640x480→320x240にしたものと、
最初から320x240でキャプチャしたものは、
画質に雲泥の差があると思います。縦480ドットの意味は大きい…
もちろん、前者のほうが、最終保存形式への変換時間も長いんでアレですが。

フレーム落ちについてなんとかならんか、とネットを漁ってたら。
同じ環境でも、
IO-DATAのPCIキャプボードはフレーム落ちするけど、
カノープスの古いキャプボード(しかもISA)はフレーム落ちなど見た事無い、
との情報が。
やっぱりカノープス製品は良いのか…なにかしらマージンを広く取ってるのかな。
MTV2000登場で、ますますそのへんに差がつくのでしょうね。

って高級VIDEOデッキ導入して、安定したソースの信号を供給できればいいだけの話ですが(爆)
つか、どうせ今回、ソースはVHS3倍だったし。画質云々を気にするのも無意味か…

安定した信号云々といえば…
最近、電器屋で見かけた「デジタルビデオ編集器」の類も気になるんですよね。
TBC信号を安定させるという触れこみじゃないですか。
てことは、安定したキャプチャ、画質向上に有効なのではと…
もっともS端子で入出力するヤツしか見かけないのが…うーん。
ウチのデッキ、古い&安いから、S端子ついてない(爆)


MPEG4Vxのベリノイズを無くすために、m4cってツールがあるんですが。
設定の仕方がよくわからない。
ビットレートを低めにしても、反映されないのです…

ビットレート低めにする→ブロックノイズが多くなる
→ベリノイズと間違えてキーフレームを多めにしちゃう
→容量食う
…らしいのですが。
このへん、もう少し調べてみないと…


音声のMP3化も問題が。
48KHzで取ってたんですが、それだと、MP3化する際、あまりビットレートを落とせない。容量食っちゃう。
どっかにサンプリング周波数を変換してくれるツールはないものか…

今気付いた。
SCMPXで変換すれば良かったのか >サンプリング周波数変換
ていうか…昔の自分、そうしてやってたじゃん。
脳味噌腐ってるな…


MP3化できるツール、午後、SCMPX、CDexしか持ってないんですが。
CDex(LAME)での変換時に謎な現象が。
ビットレートを128Kbpsより低くすると、出来たデータが倍速で再生される。なぜ〜

もっとも、LAME自体は、低いビットレートは苦手らしいとも聞くし。
無理矢理使う事もないか。


などと試行錯誤してたわけですが…
どうせ数年後には、ビデオ機器関係もデジタルにほぼ移行して、
PC側は何の苦労もなく、それら機器からデジタル化された情報を、
只受け取るだけになっちまうんじゃないかとも。
そうなったら楽チンだろうなぁ…
あの頃苦労してたのはなんだったの?って話になりそう。

もっとも、それらのビデオ機器を発売する各家電メーカが、
PCとの接続についてどの程度積極的に考えてくれるのか…
そのへん怪しいですかね。

2001/02/07(水) [n年前の日記]

#1 不器用な男

高倉健カッコイイ。
たまたま主演の映画を見たんですが。
不器用な男のイメージ。ええなぁ。
もっとも、今の社会風潮の中ではヒドイ目に会いそう。

BBSのindexページのデザインを変更したんですが。
やはり画像使えばなんとでもなりそうな気配が見えてきた。
でもそれでいいのだろうか。
なんか納得いかない気もする。

以前、NN4.xでCSS使うと画像が変な位置に表示されて困ったけど。
たぶん行間指定が原因。
それ使わなきゃレイアウト崩れないみたいだし。

bodyタグでmargin指定できたんですね。知らなかった。
NNが、marginwidth,marginheight。
IEが、topmargin,bottommargin,left,argin,rightmargin、
でいいのかな?

突然日記だけ無くなったと思われるのも気になる…
でことで、TOPページにヒント追加。

自分自身が知り合った人が日記読む分には問題起きないと思うんですが。
中途半端に知る人が読んで、オイラ自身と違う人格を構築されたら一体どうなるのか、それが不安。

直接会ってた人も、ネットで知り合った人も…
オイラが典型的なヲタクだというのは周知の事実だろうと。
自分自身も、できる範囲で「オイラはヲタク」と公表してきたつもりだし。
仕事場でセーラームーンの人形飾ったり、友人達と怪しい話をしたり、とか。

でも両親経由で知り合った方や親戚関係はオイラの属性を知らないわけで。
というか、そもそもその手の属性自体を理解できるかどうか不明で。

そういう方々に、絵はともかく、日記を読まれた時の予想がつかないんです。
M崎くん事件の時みたいに、
「理解できない」→「恐怖する」→「叩かれる」
ってパターンはコリゴリだし。
また更に今現在、「無職」「ヒッキー」だし(爆)
そう何度も、知らない人に「犯罪者予備軍」扱いされちゃたまらん、みたいな。
今までも何もしてないし、これからも何もしないんだけどなー (;´ー`)y-~~

ていうか。
爆弾を抱えた人間には2つの種類があって。
「爆弾を人に向かって投げつける」タイプと「自爆する」タイプ。
オイラはたぶん後者。
だから怖がらなくていいです <でもソレ別の意味で怖い…シャレにならん

「肉食」「草食」って言い方も聞いた記憶があるような。

ふと思ったけど。
メインコンテンツからBBSへのリンク、切っといたほうがいいのかな。
いや。それはいいか。
普通、初見でBBS読んでく人も少ないだろう。

2000/02/07(月) [n年前の日記]

#1 (NoTitle)Anex98をDLしてきまし...

_Anex98 をDLしてきました。dung氏の情報のおかげです。サンクス!
HDDイメージから新規作成していったところ、ちゃんと動作しました。万歳! \(^o^)/
早速、数ヶ月ぶりに98を起動、HDDの中身をメインマシンにコピーし、色々と動作確認してみました。
まず98専用の同人ソフトは大抵動くようです。問題かつ肝心なのは市販ソフト。ハードをそれなりに酷使しているであろうViperシリーズを中心に動作実験して見たのですが、動くモノと動かないモノ、ありますね。デフォ設定から色々変えてV16とV10はなんとか動いたのですが、それ以外はタイトル表示で固まってしまう状態。どうも音源を86音源にすると確実に固まったりしてたので、そのへん(音源関係)だと思うです。ネット上の情報でも、音源ドライバがネックになって動かない市販ソフト、結構あるそうですし。
それとやっぱり重い、というか、画面がガクガクしますね。PC9821As3(486マシン)の体感速度と比較してですが。さすがにソフトで音を鳴らしたりしてる分、あるいは余計な割り込みが入るであろうWin上では厳しいのかも。でも単純にCPUパワーがあればもっとサクサク動くのかな。セレロン300では荷が重いのかもですね。
うーん、速度はともかく、もう少し動くソフトが多ければ… それでもここまで動けば単純に「スゴイ!」なんですが。でもできれば98を捨ててしまいたいぐらいになってくれると…現状ではとても捨てられる状態ではないです <ムチャ言ってるなぁ (´Д`;)

ハンツ氏のプリンタ印刷本が届きました。サンクスです〜 (⌒▽⌒)/
オイラ、プリンタで印刷した同人誌というのを今まで見た事がありませんでしたので、色々勉強になりました。
まず紙の触感がなんとも不思議。ツルツルでもなくガサガサでもなく、かさかさ、でしょうか。また想像以上に紙上での表現力が向上することも確認しました。綺麗なカラー印刷も可能だし、ページ構成も自由。白黒印刷でも通常の印刷本に比べグラデーション等の表現が一段上の次元。これは原稿を作成する段階から、今までより更にレベルの高い最終出力結果のイメージを持ちつつ原稿作りをしたほうがいいかもしれませんね。それと印刷所を通さず完全に自室内で本の形までもっていけるというのもイイ。頂いた本、印刷所ではベタが塗られてしまいそうな部分が多々あるのですが、誰にも咎められることなく… (-_☆)キラーン
しかし問題点もありそうです。印刷速度と印刷コスト。発行する側の自由度・表現力が向上する代りに、現状では明らかにこの2点の制限がついて回りそうですね。
とにかくかなり勉強になりましたです。ありがとうです〜 (^_^) >ハンツ氏

以上、25 日分です。

過去ログ表示

Prev - 2024/12 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project