mieki256's diary



2024/02/15(木) [n年前の日記]

#1 [basic] FreeBASICでsplit()を使いたい。その2

_昨日、 FreeBASIC で split() を ―― 文字列を区切り文字で分割して配列にする関数の実装を試してみたけれど。ダブルクオーティション(")が入ってくる場合に望んだ形にならなかったので、そのあたりをどうにかできないかと試していた。

環境は Windows10 x64 22H2 + FreeBASIC 1.10.1 32bit。

ソース :

一応処理は書けたような気がする。もはや split() の動作ではなくなっているけれど…。

実処理は以下。

_splitdq.bi
' License: CC0 / Public Domain

#ifndef __SPLITDQ__
#define __SPLITDQ__

Sub Splitdq(byref text As String, byref delim As String, result() as String)
    If text = "" Then Return
        
    Dim As ubyte ptr cp = strptr(text)
    Dim As ubyte ptr dp = strptr(delim)
    Dim As Integer slen = Len(text)
    Dim As Integer pi = 0
    Dim As Integer i = 0
    Dim As Boolean dqfg = False
    Dim As String s = ""
    
    Do
        If dqfg Then
            ' check double quotation pair
            If (*cp = 34) Then dqfg = False
        ElseIf (*cp = 34) Then
            ' found double quotation
            dqfg = True
        ElseIf (*cp = *dp) Then
            ' found delimiter
            s = Mid(text, pi + 1, (i - pi))
            pi = i + 1
        End If

        cp += 1
        i += 1

        If i >= slen Then
            s = Mid(text, pi + 1, (i - pi))
            pi = i + 1
        End If
        
        If s <> "" Then
            ReDim preserve result(UBound(result) + 1)
            result(UBound(result)) = s
            s = ""
        End If
    Loop While (i < slen)
End Sub

#endif


テストサンプルは以下。

_test_splitdq.bas
#include "splitdq.bi"

Dim As String text
'text = "char id=32   x=250   y=22    width=5     height=5     xoffset=-2    yoffset=21    xadvance=7     page=0  chnl=15"
text = "info face=""DejaVu Sans"" size=24 bold=1 italic=0 charset=""ANSI"" unicode=0 stretchH=100 smooth=1 aa=4 padding=0,0,0,0 spacing=1,1 outline=2"

Dim words() As String
splitdq(text, " ", words())

Print text
For i As Integer = 0 To UBound(words)
    Print "[" & words(i) & "]"
Next i
Print "    ...success."

fbc test_splitdq.bas でコンパイル。実行結果は以下。

> test_splitdq.exe
info face="DejaVu Sans" size=24 bold=1 italic=0 charset="ANSI" unicode=0 stretchH=100 smooth=1 aa=4 padding=0,0,0,0 spacing=1,1 outline=2
[info]
[face="DejaVu Sans"]
[size=24]
[bold=1]
[italic=0]
[charset="ANSI"]
[unicode=0]
[stretchH=100]
[smooth=1]
[aa=4]
[padding=0,0,0,0]
[spacing=1,1]
[outline=2]
    ...success.

ダブルクオーティションで挟まれた部分については区切り文字を無視するようにできた。

ただ、バグがありそうな気がする…。こういう文字列を渡すとおかしくなる、という場面がありそうな…。

処理の仕方も無駄がありそう。少なくとも処理速度は期待できない予感。

でもまあ、今回やりたいことはできそうだから、これでもいいか…。

split()の実装が気になってきた :

一般的に split() ってどんな感じに実装されたりするのか気になってググってみた。

以下の事例を見て目ウロコ。元文字列の最後に区切り文字を追加してから処理を始めることで、ループがスッキリしてる…。その手があったか…。

_Split the string into substrings using delimiter - GeeksforGeeks


FreeBASIC版を書いてみた。ダブルクオーティションに対応させようとして、記述が長くなってしまったけれど…。

_splitstringa.bi
#ifndef __SPLITSTRINGA__
#define __SPLITSTRINGA__

Sub splitStringA(ByVal text As String, ByVal delim As String, result() as String, ByVal chk_dbqt As Boolean = False)
    If text = "" Then Return
    Dim As String src = text & delim
    Dim As String word = ""
    Dim As Boolean founded_dbqt = False

    For i As Integer = 0 To Len(src) - 1
        If founded_dbqt Then
            word &= Chr(src[i])
            If src[i] = 34 Then founded_dbqt = False  ' found double quote
        Else
            If src[i] <> delim[0] Then
                ' not delimiter
                word &= Chr(src[i])
                If chk_dbqt And src[i] = 34 Then founded_dbqt = True  ' found double quote
            Else
                ' found delimiter
                If word <> "" Then
                    ' word is not empty. save word to array
                    ReDim preserve result(UBound(result) + 1)
                    result(UBound(result)) = word
                    word = ""
                End If
            End If
        End If
    Next i
    If word <> "" Then
        ' word is not empty. save word to array
        ReDim preserve result(UBound(result) + 1)
        result(UBound(result)) = word
    End If
End Sub

#endif


使用サンプルは以下。fbc test_splitstringa.bas でコンパイル。

_test_splitstringa.bas
#include "splitstringa.bi"

Dim As String text
text = "char id=32   x=250   y=22    width=5     height=5     xoffset=-2    yoffset=21    xadvance=7     page=0  chnl=15"
'text = "info face=""DejaVu Sans"" size=24 bold=1 italic=0 charset=""ANSI"" unicode=0 stretchH=100 smooth=1 aa=4 padding=0,0,0,0 spacing=1,1 outline=2"

Dim words() As String
splitStringA(text, " ", words())
'splitStringA(text, " ", words(), True)  ' check double quote

Print "[" & text & "]"
For i As Integer = 0 To UBound(words)
    Print i & ": [" & words(i) & "]"
Next i
Print "end."


test_splitstringa.exe を実行。たしかに分割できている。

> test_splitstringa.exe
[char id=32   x=250   y=22    width=5     height=5     xoffset=-2    yoffset=21    xadvance=7     page=0  chnl=15]
0: [char]
1: [id=32]
2: [x=250]
3: [y=22]
4: [width=5]
5: [height=5]
6: [xoffset=-2]
7: [yoffset=21]
8: [xadvance=7]
9: [page=0]
10: [chnl=15]
end.


それとは別の実装事例。FreeBASICのWikiを眺めてたら、そもそも split() の実装サンプルが紹介されてた。まさかそんなページで紹介されていたとは…。

_Passing Arrays to Procedures - FreeBASIC Wiki Manual | FBWiki

内容的には、instr() で区切り文字を探して位置を求めて、頭からそこまでの文字列を配列に記録したら、その文字列分を元文字列から削除して処理を続けていた。サブルーチンに引数として元文字列を渡す際、値渡しで渡してるから、元文字列を破壊しても大丈夫ということなのだろう…。もしかすると strtok() を使った事例と考え方は似ているのかもしれない。

これも手元で動作確認してみた。

_splitstringb.bi
#ifndef __SPLITSTRINGB__
#define __SPLITSTRINGB__

Sub splitStringB(ByVal src As String, ByVal delim As String, result(Any) As String)
    Do
        Dim As Integer i = InStr(1, src, Chr(delim[0])) ' search delimiter
        ReDim Preserve result(UBound(result) + 1)
        If i = 0 Then
            ' not found delimiter. exit loop
            result(UBound(result)) = src
            Exit Do
        End If
        result(UBound(result)) = Left(src, i - 1)  ' save word to array
        src = Mid(src, i + 1)  ' delete word
    Loop
End Sub

#endif


使用サンプルは以下。fbc test_splitstringb.bas でコンパイル。

_test_splitstringb.bas
#include "splitstringb.bi"

Dim As String text
text = "char id=32   x=250   y=22    width=5     height=5     xoffset=-2    yoffset=21    xadvance=7     page=0  chnl=15"
'text = "info face=""DejaVu Sans"" size=24 bold=1 italic=0 charset=""ANSI"" unicode=0 stretchH=100 smooth=1 aa=4 padding=0,0,0,0 spacing=1,1 outline=2"

Dim words() As String
splitStringB(text, " ", words())

Print "[" & text & "]"
For i As Integer = 0 To UBound(words)
    Print i & ": [" & words(i) & "]"
Next i
Print "end."


ただ、この版は、区切り文字が連続して並んでる際、それぞれを配列変数に入れてしまう。

> test_splitstringb.exe
[char id=32   x=250   y=22    width=5     height=5     xoffset=-2    yoffset=21    xadvance=7     page=0  chnl=15]
0: [char]
1: [id=32]
2: []
3: []
4: [x=250]
5: []
6: []
...
34: [page=0]
35: []
36: [chnl=15]
end.

もしかすると文字列を切り出した後、文字列が空かどうかを調べて、空じゃなければ配列に格納するようにすればいいのだろうか…?

マルチバイト文字列対応は大変そう :

1文字=1byteの文字列なら処理が書けたので、せっかくだからマルチバイト文字列にも対応させられないものかと思い立ったのだけど。String を、マルチバイト文字列を格納する WString に書き換えれば済むかなと思ったらコンパイルすら通らず。

WString や ZString は、扱いが面倒らしい…。

_FreeBASICのワイド文字列が使いにくい件 - 飴屋ぷろじぇくと
_FreeBASIC Compiler - 飴屋ぷろじぇくと
_Problem passing and copying fixed length WSTRING array - freebasic.net

あらかじめ領域を固定で確保しておかないといけないとか、サブルーチンや関数に WString の配列変数を渡せないとか…。これはなかなか大変…。

区切り"文字列"にすると大変 :

区切り"文字"で分割する分にはまだこうして書けるけど、区切り"文字列"で分割できるように対応しようとするとちょっと大変そう。文字列検索/文字列探索アルゴリズムの話になって、KMP法とかBM法とかが出てくる…。

_文字列探索アルゴリズムとは?KMP法やBM法について解説
_文字列検索アルゴリズムについて #アルゴリズム - Qiita

#2 [basic] FreeBASICでBMFontを描画したい

先日、FreeBASICを使って、カスタムフォントや等幅ビットマップフォントを利用してみたけれど。

_FreeBASICでCustom fontを使ってみたい - mieki256's diary
_FreeBASICで等幅ビットマップフォントのみを使って描画 - mieki256's diary

この際せっかくだから BMFont も利用できるようにしてみたいと思い立ってしまって、そのあたりを試してた。

環境は、Windows10 x64 22H2 + FreeBASIC 1.10.1 32bit。

BMFontについて :

BMFont というのは、ビットマップフォントのフォーマットの一種というか…。ビットマップフォントがギッチリと敷き詰められた画像と、どこに何の文字があるのか記述したテキストファイル(.fnt)を利用して、文字を描画する仕組み。

_BMFont - AngelCode.com

以下の画像とテキストファイルを見てもらえばなんとなく分かるだろうか。

bmfont_dejavu_0.png

_bmfont_dejavu.fnt
info face="DejaVu Sans" size=24 bold=1 italic=0 charset="ANSI" unicode=0 stretchH=100 smooth=1 aa=4 padding=0,0,0,0 spacing=1,1 outline=2
common lineHeight=24 base=20 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
page id=0 file="bmfont_dejavu_0.png"
chars count=95
char id=32   x=250   y=22    width=5     height=5     xoffset=-2    yoffset=21    xadvance=7     page=0  chnl=15
char id=33   x=71    y=89    width=8     height=20    xoffset=0     yoffset=2     xadvance=9     page=0  chnl=15
...
char id=125  x=51    y=0     width=14    height=24    xoffset=0     yoffset=1     xadvance=14    page=0  chnl=15
char id=126  x=208   y=105   width=17    height=9     xoffset=0     yoffset=8     xadvance=17    page=0  chnl=15
kernings count=86
kerning first=45  second=84  amount=-3  
kerning first=45  second=86  amount=-1  
...
kerning first=89  second=46  amount=-3  
kerning first=118 second=44  amount=-1  

.fntファイルには、各文字について、x, y, w, h 等々が列挙されてる。各パラメータがどこに絡んでいるかは、以下のドキュメントが参考になりそう。

_How to render text - Bitmap Font Generator - Documentation
_File format - Bitmap Font Generator - Documentation
_Bitmap Font Generator - Documentation

スクリーンショット :

まずは実験結果のスクリーンショットを。

ss_bmfont_dejavu.png

ss_bmfont_roboto.png

ss_bmfont_vegur.png


等幅フォントと比べると、それらしい見た目になっている。

ただ、実装してみたものの、カーニングが妙な感じで悩んでしまって…。カーニングというのは、特定の文字と文字が並んだ時に間隔を調整して見た目の不自然さを減らす方法のこと。自分が仕様を正しく解釈できてない気配がしてきたので、今回はデフォルトでカーニング情報を利用しない状態にしておいた。一応、bmfont.drawstring() にフラグを指定すれば有効になるようにはしてある。

一部の文字が重なってしまっているのは、BMFont作成に使ったツール上で各パラメータの指定が適切ではなかったか、もしくは今回書いた処理にバグがあるのかもしれない。自分がBMFontの仕様を勘違いしている可能性は否定できない。

ちなみに、BMFont作成に使えるツールについては以前の日記にメモしてあった。

_mieki256's diary - ビットマップフォント画像を作れるツールについてメモ

ソース :

ソースは以下。

実処理部分。

_bmfont.bi


テストサンプルその1。

_simple_sample.bas
#include "bmfont.bi"

Dim As bmfont bmfnt
bmfnt.loadInfo("bmfont_dejavu.fnt")

ScreenRes 320, 240, 32
bmfnt.loadImage()

bmfnt.drawstring(10, 10, "Hello World !")

sleep
bmfnt.destroy()
  • #include "bmfont.bi" で bmfont というクラス相当(構造体 + 関数)が使えるようになる。
  • bmfont.loadInfo() で .fntファイルを読み込んで解析して記録。
  • bmfont.loadImage() で .fntファイルに書かれた画像ファイル(拡張子を .bmp に変更)をロード。
  • bmfont.drawstring() でスクリーンに文字を描画。
  • bmfont.destroy() でBMFont画像を破棄。


テストサンプルその2。コマンドラインオプションで .fntファイルを指定したり、.fntファイルの解析結果が上手くできているか確認するためのダンプ処理をつけてみた。

_test_bmfont.bas
Usage: test_bmfont.exe [INPUT.fnt] [--dump]


以下でコンパイル。
fbc simple_sample.bas
fbc test_bmfont.bas


今回利用したBMFontは以下。

_bmfont_dejavu.fnt
_bmfont_dejavu_0.bmp

_bmfont_roboto.fnt
_bmfont_roboto.bmp

_bmfont_vegur.fnt
_bmfont_vegur_0.bmp

各フォントの入手先と、フォントのライセンスについては、以下に書いておいた。

_readme.md


ファイル一式もzipにして置いておきます。自分が書いた部分は CC0 / Public Domain にしておくので使えそうなら自由に使ってください。

_fb_bmfont_20240215.zip

2023/02/15(水) [n年前の日記]

#1 [windows] まだEPSON Scanの問題について調べてる

EPSON Scanが起動できない件がどうも引っ掛かっていて、ちょこちょこググっているところ。

EPSON Scan / Scan2 に関して、Windows Update で特定のパッチがインストールされていたり、WindowsのIME が ATOK になっていると起動しないという不具合情報も見かけた。MS-IMEにすると改善される可能性があるらしい。

_[058307]ATOKを利用している環境で、エプソン社製スキャナードライバー(Epson Scan2)が正常に使用できない
_よくある質問(FAQ)|エプソン | Windowsセキュリティ更新プログラムを適用したら、Epson Scan2が起動しなくなりました(2022年6月21日13:59更新)
_更新プログラムのインストール後、ATOKが要因で、EpsonScan2 が起動できない: パソコンのツボ 〜 Office のTIP

ただ、問題を起こしてるWindows10機は、ATOKなんてインストールしてないのだよな…。もしかすると Google IME が入ってたりするのだろうか。それとも、Microsoft が提供してる新しいIMEではなくて、古いIMEを有効、もしくは無効にすれば状況が変わってきたりするのだろうか。

IMEがATOKだと起動しないという問題は、EPSON側もずっと放置している状態らしい…。いやまあ、本来 Microsoft/Windows側の不具合だから、EPSONが対処するのはおかしいということだろうけど。しかし Microsoft も修正しようという気配が見えないようで…。Microsoft は MS-IME を使えというスタンスだろうから腰が重いのも当然だろうか…。

パスを決め打ちで書いてる可能性 :

_EPSONの複合機でスキャナーが使えなかった件 (解決編) - おまえ、うまそうだな

環境変数の値を読まずに、パスを決め打ちでソースコードに書いちゃってるプログラムが、EPSONの提供してるプログラム内に混ざっている可能性があるらしい。なんだかな。

#2 [anime] 「映画大好きポンポさん」を視聴

Eテレで放送されていた版を録画してあったので視聴。漫画作品を原作とするアニメ映画。たしか以前BS11で放送された記憶が…。その際に視聴したので、今回2度目の視聴、だったはず。

やはり名作…。いやまあ、自分の場合、監督さんの経歴だのインタビュー記事だのを眺めて、作品が三重構造になっている可能性を想像しながら見ているので面白く感じてる部分もあるとは思うのだけど。

CMが入らず、映画と同様ノンストップで見れる上に、地上波全国放送。こういったところが、NHKで放送されるメリットだなと。

2022/02/15(火) [n年前の日記]

#1 [nitijyou] 某所に行ってきた

昨日、某所にて、Excel 2007 でファイル保存をすると警告メッセージが出ていた件が気になって、原因を調べさせてほしいと連絡してお邪魔してきた。

一応、ファイルを保存をする際に、「互換性をチェックする」のチェックボックスを外せば、次回からは警告メッセージが出てこないことは分かった。おそらく、.xls の内容に関係なく、Excel 2003 で作成された .xls を Excel 2007 で開いて保存しようとした時に、警告メッセージが表示されるのではないかと想像しているけれど…。念のため、警告メッセージが表示される .xls をUSBメモリにコピーさせてもらって、自分の環境でも動作確認してみます、と伝えてきた。

ヘッダー部分の変更方法について質問されたけど、挿入タブ → ヘッダーとフッター、でいいのだろうか…? その操作で、ヘッダー部分が表示されて変更できるようになったけど…。

#2 [nitijyou] 犬の水飲み用の容器を探している

数日前に親父さんが、犬の水飲み用の容器を車で踏んづけて破壊してしまったので、あちこちの100円ショップを回って代替品を探しているところ。

今日は、某所の帰りに、以下を回ってみた。


しかし、今まで使っていた容器と同型のモノが見つからない…。そもそもペット用品を扱ってなかったり、扱っていてもどら焼き程度(?)の小さいサイズばかり。特に、ペット用品を専門に扱っているアミーゴですら、小さいサイズの容器しか扱ってなかったので困惑した。今まで使っていた容器はフリスビーぐらいのサイズなのだけど、これはペット用品としては結構特殊なサイズだったのだろうか…。

おそらくだけど、Seria で購入したような気がするのだよな…。ただ、少し前に店頭で見かけた時は、ピンクやグリーンしかなかった記憶も。色は白じゃないと困る。と言うのも、容器の色が白なら、中に入れた水が汚れているかどうかが分かりやすいので…。

炊事等に使うボールの類でも良さそうなものだけど、それだと犬がひっくり返して、あたり一面を水浸しにしてしまう。だから、横から見て台形っぽい容器じゃないと…。

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

#1 [digital] HDDレコーダの調子が悪い

HDDレコーダ 東芝 RD-BZ710 の調子が悪い。見るナビボタンを押して録画ファイルの一覧を表示しようとしても十数秒待たされる。一昨日、震度6弱の地震が発生した時に、通電・録画中だったから、HDDが壊れかけてしまったのでは…。一応、各ファイルの再生はできるようだけど…。たしか「22/7検算中」を録画中に地震が来たはずなので、該当ファイルを削除してみたけれど変化は無く。

HDDレコーダって、HDDのエラーチェックを任意のタイミングで行うコマンド等が無いから、こういう時に不便だなと。

#2 [raspberrypi] Raspberry Pi Zero W をメンテナンス中その2

_昨日の作業 の続き。

Bluetoothリモコンとのペアリングを解除した。 :

_2020/08/25の日記 を参考にしつつ、bluetoothctl を起動して、以下を打ち込んでペアリングを解除した。
$ bluetoothctl
disconnect FF:FF:3F:FD:D8:F0
remove FF:FF:3F:FD:D8:F0
quit

以下は作業時の表示結果。
以下は作業時の表示結果。

$ bluetoothctl
Agent registered
[AB Shutter3       ]# power on
Changing power on succeeded
[AB Shutter3       ]# scan on
Discovery started
[CHG] Controller B8:27:EB:93:58:00 Discovering: yes
[AB Shutter3       ]# info
Device FF:FF:3F:FD:D8:F0 (public)
        Name: AB Shutter3
        Alias: AB Shutter3
        Paired: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
        UUID: Battery Service           (0000180f-0000-1000-8000-00805f9b34fb)
        UUID: Human Interface Device    (00001812-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v248Ap8266d0001
[AB Shutter3       ]# disconnect FF:FF:3F:FD:D8:F0
Attempting to disconnect from FF:FF:3F:FD:D8:F0
[CHG] Device FF:FF:3F:FD:D8:F0 ServicesResolved: no
Successful disconnected
[CHG] Device FF:FF:3F:FD:D8:F0 Connected: no
[CHG] Device FF:FF:3F:FD:D8:F0 RSSI: -64
[CHG] Device FF:FF:3F:FD:D8:F0 Appearance: 0x03c1
[CHG] Device FF:FF:3F:FD:D8:F0 Icon: input-keyboard
[CHG] Device FF:FF:3F:FD:D8:F0 Connected: yes
[CHG] Device FF:FF:3F:FD:D8:F0 Icon is nil
[CHG] Device FF:FF:3F:FD:D8:F0 Appearance is nil
[CHG] Device FF:FF:3F:FD:D8:F0 ServicesResolved: yes
[AB Shutter3       ]# remove FF:FF:3F:FD:D8:F0
[CHG] Device FF:FF:3F:FD:D8:F0 ServicesResolved: no
Device has been removed
[CHG] Device FF:FF:3F:FD:D8:F0 Connected: no
[DEL] Descriptor
        /org/bluez/hci0/dev_FF_FF_3F_FD_D8_F0/service0001/char0002/desc0004
        00002902-0000-1000-8000-00805f9b34fb
        Client Characteristic Configuration
[DEL] Characteristic
        /org/bluez/hci0/dev_FF_FF_3F_FD_D8_F0/service0001/char0002
        00002a05-0000-1000-8000-00805f9b34fb
        Service Changed
[DEL] Primary Service
        /org/bluez/hci0/dev_FF_FF_3F_FD_D8_F0/service0001
        00001801-0000-1000-8000-00805f9b34fb
        Generic Attribute Profile
[DEL] Characteristic
        /org/bluez/hci0/dev_FF_FF_3F_FD_D8_F0/service000c/char000d
        00002a50-0000-1000-8000-00805f9b34fb
        PnP ID
[DEL] Primary Service
        /org/bluez/hci0/dev_FF_FF_3F_FD_D8_F0/service000c
        0000180a-0000-1000-8000-00805f9b34fb
        Device Information
[DEL] Device FF:FF:3F:FD:D8:F0 AB Shutter3
[NEW] Device FF:FF:3F:FD:D8:F0 AB Shutter3
[CHG] Device FF:FF:3F:FD:D8:F0 RSSI: -52
[bluetooth]# quit

Bluetoothスピーカのペアリングを解除した。 :

_2020/09/22の日記 を参考にしつつ、Bluetoothスピーカとのペアリングを解除。
$ sudo bluetoothctl
disconnect 41:42:9E:54:68:72
remove 41:42:9E:54:68:72
quit

Windows10機にWinSCPをインストール。 :

メインPC(Windows10機)から Raspberry Pi Zero W にファイルを転送するために、WinSCP をインストール。WinSCP-5.17.10-Setup.exe をDLして実行。

接続は SFTP と SCP があるけれど、ひとまず SFTP にしてみた。SCP は軽いけど機能は少なく、SFTP は機能が多いけどSCPほど軽くない、という話を見かけた。

HDMI接続で音が出ない。 :

Bluetoothスピーカを使わなくなったので、HDMI接続された液晶ディスプレイ(MITSUBISHI MDT243WG-SB、スピーカ付き)から音を出そうとしたのだけど、これが鳴ってくれなくて。
  • /boot/config.txt を開いて、hdmi_drive=2 や dtparam=audio=on がコメントアウトされてないか確認したり。
  • aplay -l や aplay -L を打って hdmi云々が表示されるか確認したり。
  • aplay -D plughw:0,0 hoge.wav と打ってみたり。
そんな感じで、過去の日記を眺めて試してみたけど、鳴ってくれない。

_Raspberry Pi3でサウンドを再生
_Raspberry Pi3のオーディオノイズが気になるならUSBオーディオを追加すべきかも

USBスピーカを繋いだらどうなるだろうと試してみた。

_Raspberry Pi Zero WにUSBスピーカを繋いでみた

aplay -D plughw:1,0 hoge.wav と打ったらUSBスピーカからフツーに音が鳴った。HDMI接続は音が出ないけど、USBスピーカからは出る…。うーん。

液晶ディスプレイが壊れているのではと、Ubuntu Linux 18.04 LTS をインストールしてある別PCに、同じHDMIケーブルで繋いでみたら、そちらではちゃんと音が鳴る。となると、液晶ディスプレイは壊れてない…。

Raspberry Pi Zero W が壊れているのか、それとも設定がおかしいだけなのか。

そもそも、デスクトップのパネル上に音量アイコンが表示されてない点も気になる。右クリックしてパネルの設定を開いて、音量コントロールを追加したけど、そのアイコンを右クリックしてもデバイスの選択メニューが出てこない。以前は色々選択できたはずなのに…。

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

#1 [anime] 「劇場版天元突破グレンラガン」を視聴

たしか年末にBS11で放送されていたソレを録画していたので視聴。ヒット作のTVアニメを元にした劇場作品。「紅蓮篇」「螺巌篇」の二部構成。ロボットアニメ。

基本的にはTV版+多数の新規カットでまとめた総集編、なのだろうか…。TVアニメ版もそうだったけど、とにかく熱い。ひたすら熱い。どこまでも異様なテンション。よくまあここまで…。

後半はTV版と比べてかなり展開が変わってたそうで。なんとなくTV版とは違う印象を受けたような気がしたけど、気のせいではなかったのだな…。

2019/02/15(金) [n年前の日記]

#1 [nitijyou] HDDレコーダに溜まってる番組を消化

HDDレコーダに録画したまま見れてなかった番組を消化中。

2018/02/15(木) [n年前の日記]

#1 [dxruby] DXOpalのWindow.draw_scaleについて動作確認

_Module: DXOpal::Window - Documentation を眺めてたら、拡大縮小描画が可能になる、Window.draw_scale() があることに気づいて、喜びつつ動作確認。以前試した時は、拡大縮小描画はサポートされてなかった記憶があるわけで。

ということで、こんな感じに。

_DXOpal Window.draw_scale()の動作確認

ちゃんと拡大縮小描画ができてる。素晴らしい。

ということは、こういうこともできるかな…。

_DXOpal Sprite.scaleの動作確認

一応できたけど…ちょっとハマった。最初、なんだか妙な位置に描画されてしまって。

DXRuby には、 _Sprite#offset_sync があって、true にすると、拡大縮小回転の中心位置を原点として扱ってくれる。

_mieki256's diary - DXRubyのSpriteのアタリ範囲について

その感覚でソースを書いてしまったものだから、妙な位置に表示されてしまったという…。

DXOpal はそのあたり未実装っぽいので、自分で表示位置を補正してやらないといけない。と言っても、DXRuby もデフォルトでは offset_sync が false だし、DXRuby 1.4.1 から追加された機能なのでアレだけど。

#2 [anime] 「Re:ゼロから始める異世界生活」最終回を視聴

録画したまま見れてなかったけど、ようやく視聴。

面白かった…。これは話題になるわけだなあ。

ただ、原作既読組のつぶやきによると、アニメ版のラストの直後に、かなり衝撃的なたった一言の台詞が本来ならあったそうで。いや、ホントかどうかは分からんけど、たしかにその台詞が納得できる伏線も張ってあったし…。コレがもし、例えばコードギアスのスタッフさん達の手によるアニメだったら、その台詞は絶対入れてたよなー、間違いなく入れてたなー、などと想像したりもするのだけど。このアニメ版スタッフは、あえてその台詞を入れなかったのだなと…。一期の制作で疲労困憊して、「もう続きは作りたくねえ…」「続きを作れないならこの台詞は入れるべきじゃねえ。無責任だ」とでも判断したのか、それとも、あからさまに続きがあります的な見せ方は好みじゃない監督さんやPがたまたま揃ったのか…。それとも原作者の意向なのか…。何にせよ個人的には、その台詞を入れないところに、何か強い意志・ポリシーがありそうな気もしたわけで。

何にせよ、面白かったです。以前も書いたけど、ゲーム的な設定を取り込んで、更に昇華させてるあたりが素晴らしい。

2017/02/15(水) [n年前の日記]

#1 [cg_tools][natron] 動画合成ソフト Natron の使い方を少しメモ

_Natron は、オープンソースの動画合成ソフト。Windows、Mac、Linuxで使えるらしい。おそらく無料、というかフリーで使えるのだと思う。たぶん。

YouTubeの関連動画を見ながらちょこちょこ触ってるうちに、少し使い方が分かってきたのでメモ。

実験用画像の入手。 :

実験用の画像は、 _ぱくたそ さんや、 _Pixabay で探して使わせてもらったり。ありがたや。「グリーンバック」「クロマキー」「グリーンスクリーン」等のキーワードで検索すれば、クロマキー合成の実験に使えそうな画像が見つかる、はず。

_グリーンバック - ぱくたそ
_クロマキー - Pixabey
_グリーンスクリーン - Pixabey

画像や動画の読み込み。 :

画面下のほうにノードウインドウ(?)があるけど、そこで右クリックして、Image → Read を追加すると、静止画像、連番画像、動画等を読み込むことができる。
natron_ss_001.png

ファイル選択ダイアログで、右側の三角をクリックすると画像をプレビューできるし、下のほうで「Sequence」を選べば連番画像、「File」を選べば静止画像や動画が読み込める模様。
natron_ss_002.png

追加したReadと、Viewer を繋げれば、プレビューウインドウに結果が表示される。線の繋げ方は、それぞれをクリックすると周りにちょろっと線の端が出るので、ソレを左ボタンでドラッグして目的地まで持っていけば繋いでくれる。
natron_ss_003.png

線の削除は、線を何もないところまでドラッグ。

Read等、それぞれの削除は、選択して Backspaceキー。

プロジェクト設定の仕方。 :

Viewerをダブルクリックするか、選択してからEnterキーを叩けば、右側にプロパティが表示される(時もある)ので、そこでプロジェクトの設定ができる。もしかすると下のほうに隠れてるかもしれないので、その時はプロパティウインドウ内をスクロール。
natron_ss_004.png

と書いたけど、もしかするとメニューのDisplay → Show Project Settings、を選ぶべきだろうか。あるいはSキーで表示できるっぽい。

動画サイズや、全体のフレーム数、フレームレート等を設定できる模様。

基本的に、ノードウインドウ上でそれぞれをダブルクリック、もしくは選択してEnterキーで、右側にプロパティが出てくるようになっているらしい。

クロマキー合成の仕方。 :

グリーンバックやブルーバックで撮影した動画を使って合成することを、えてしてクロマキー合成というのだけど、Natronにも該当機能がある。ノードウインドウで右クリックして、Keyer → ChromaKeyer。
natron_ss_005.png

右側のプロパティ上で、切り抜き(?)に使いたいを色を指定することができる。例えばカラースポイトを使いたい時は、色アイコンの左の黒いところをクリックするとスポイトモードになる。
natron_ss_006.png

Ctrl + 左クリックで色を取得できる。取得し終わったら、先ほどプロパティ上でクリックしたところを再度クリックしてスポイトモードを抜ける。
natron_ss_007.png

ご覧の通り、指定した色の部分だけが抜けた。
natron_ss_008.png

動画出力・保存。 :

結果動画を出力・保存したい時は、Image → Write を追加する。
natron_ss_009.png

保存先を指定する。例えば、「####.png」とファイル名を指定すれば、0000.png 〜 9999.png の連番png画像で保存できたりする。ちなみに、いきなり拡張子まで打ち込めば、左下の「File type」が自動で拡張子と同じものになるので、わざわざ File type の一覧を表示してマウスで選ばなくてもよい。
natron_ss_010.png

mp4等、動画ファイル形式を指定して保存することもできる模様。
natron_ss_011.png

保存ファイル名を指定すると、ノードウインドウに「Write」が追加されるので…。
natron_ss_012.png

Write の Source を、Viewer の一段前に繋いでやる。
natron_ss_013.png

メニューの Render → Render All Writers を選べば、出力開始。
natron_ss_014.png

出力処理の進行状況が表示されて、成功すればステータスが「Finished」になる。
natron_ss_015.png

表示位置の変更等。 :

表示位置の変更等は、Transform → Transform で可能。
natron_ss_016.png

ちなみに、Resize を追加すればリサイズできるし、Position を選べば二次元的に表示位置のみを変更(というか移動)できる。移動・回転・拡大縮小等をする時は Transform。

キーフレームの設定。 :

キーフレームを設定することで、キーフレームからキーフレームまで、補間、というかアニメーションをつけることができる。キーフレームの設定は、例えば Transform のプロパティ上、入力欄の上で右クリックしてやるとメニューが出るので、Set Key 等を選んでやれば設定することができる。
natron_ss_017.png

一度設定してやれば、現在フレーム変更 → プロパティ変更をしても、自動でそのフレームにもキーフレームが設定される模様。

アニメーションの変化の仕方を変える。 :

アニメーション(移動・回転・拡大縮小等)の変化の仕方を変えたい時は、Curve Editor を使う。ノードウインドウの上のほうにあるタブを切り替えれば表示される。
natron_ss_018.png

Curve Editor 上で右クリックすると、メニューが表示される。
  • 例えばカーブ全体を表示したいなら View → Frame All Curves、もしくは Aキーを押す。
  • 選択してるカーブだけ真ん中に表示したいなら、View → Center on Curve、もしくはFキー。
natron_ss_019.png

制御点を左クリックして選択した状態で、右クリック → Interpolationで、直線的な変化にしたり等色々選べる。

参考ページ・参考動画。 :

_Natron for Beginners - Intro / Overview (Really Basic #00) - YouTube
_Natron for Beginners - Animation: Transform Node and Curve Editor (Really Basic #01) - YouTube

動画を見てると、謎のショートカットキーを使っているようで…。どのキーを押せば、そんな機能が…。

#2 [nitijou] 親父さんの見舞いに行ってきた

妹の運転する車に乗せてもらって、親父さんの病室まで、加湿器、靴、マスクを差し入れに。

喉が渇いて咳が出ると訴えるわりに、マスクをつけると眼鏡が曇るという理由で親父さんはマスクをつけたがらなかったのだけど。今回は、眼鏡が曇らないというのが謳い文句のマスクを持って行ったので満足してもらえた模様。その代わり、このマスク、7枚で税抜き298円なので値段がちと高い…。

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

#1 [windows] Windows10上のIISを設定していたり

昨日、Windows10上で 04WebServer や XAMPP (Apache) が動かせなくて、IISを無効に設定してどうにかしてたのだけど。

もしかすると、最初から Windows10上で有効になってる IIS を使って、普段のアレコレの動作確認をしたほうがいいのかなと思えてきて。

特に、XAMPP上で Perl CGI を動かそうとした場合、cgiファイルの一行目に書いてある _ が ―― 「#! /usr/bin/perl」の記述が問題になるわけで。ソレを解決するアレコレがちと面倒なわけですよ。

_Shebang 行について - ぱるも日記
_Windows 環境で /usr/bin/perl を手っ取り早く実現する方法 - Open MagicVox.net
_スクリプト実行パス(shebang)の設定 | NotePress
_Windows上で「#!usr/bin/perl -w」のままMovable Typeを利用する - 小さな世界ブログ
_スクリプト実行パス(shebang)の設定に関して - Perlの設定と利用 - XAMPPの使い方
_Unix の CGI ファイルを Windows 上で動かす

IIS + ActivePerl なら、そのあたり楽になったりしないかなと。 *1

てなわけで、Windows10上で IIS も使えるように、設定をし直しているところ。ちなみに Perl は ActivePerl を使用。

IISの有効化。 :

デスクトップの検索窓から、「Windowsの機能の有効化または無効化」と打ち込めばリストアップされるのでクリックして起動。以下のチェックを入れて、機能を有効化してみた。

windows10_iis_enable_ss.png

wwwroot のアクセス制御を変更。 :

デフォルトでは、C:\inetpub\wwwroot\ にファイルを置いておくと、IIS経由でそのファイルを閲覧できるようになるのだけど。ファイルを追加しようとしても怒られてしまったので、アクセス制御を変更。

エクスプローラで該当フォルダを右クリック → プロパティ → セキュリティ → 編集 → 追加 → everyone と打って名前の確認 → OK → Everyone にフルコントロールを与える。

Perl CGI を動かせるようにした。 :

まず、IISマネージャを起動。デスクトップの検索窓で「IIS」と打ち込めば、「インターネット インフォメーション サービス(IIS)マネージャー」がリストアップされる。クリックして起動。
  1. 左側ペインで、コンピュータ名を選択。
  2. 真ん中のペインで、IIS → ハンドラーマッピングをダブルクリック。
  3. 右側のペインで、スクリプトマップの追加、を選択。
ダイアログが開くので、以下の2種類を入力。それぞれOKボタンを押して追加。
要求パス(P): *.cgi
実行可能ファイル(E): "ActivePerlインストール場所\bin\perl.exe" "%s" %s
名前(N): CGI
要求パス(P): *.pl
実行可能ファイル(E): "ActivePerlインストール場所\bin\perl.exe" "%s" %s
名前(N): PL
もしかしたら .pl の指定は要らないのかもしれない…?

  1. 戻るボタンで戻って、IIS → MIMEの種類、を選択。
  2. 右側のペインで、追加、を選択。以下の2種類を入力。
ファイル名の拡張子(E): .cgi
MIMEの種類(M): application/x-httpd-cgi
ファイル名の拡張子(E): .pl
MIMEの種類(M): application/x-perl
.plの指定は間違ってるかもしれない…。

巷の解説ページでは、perl.exe じゃなくて PerlIS.dll や perlex30.dll を指定してる事例もあったのだけど。 _PerlIS.dllで動作しているかの確認方法 - Perl表技集 というページによると…。
PerlIS.dllにはHTTPヘッダを自動で出力してくれる小さな親切(余計なお世話)機能があって自分で出力しようとしたHTTPヘッダがHTTPヘッダではなく本文として扱われてしまって、CGIプログラムが上手く動かなくなるという問題があります。

PerlIS.dllで動作しているかの確認方法 - Perl表技集 より

ということらしいので、perl.exe を指定しておくことにした。

perl.exe の後に続く、「"%s" %s」の指定は、 _a.hanai 公開モノ置き場 | IISをinvestigate : CGI設定の「%s %s」とは? で解説されてた。CGIファイル名と、CGIに渡す引数が入るらしい。

動作確認は、例えば _PerlIS.dllで動作しているかの確認方法 - Perl表技集 で紹介されてる内容を、checkenv.cgi 的なファイル名で C:\inetpub\wwwroot\ 以下に保存して、http://localhost/checkenv.cgi をブラウザで開く、とかでいいんじゃないかなと…。

とりあえず、上記の設定をしたら、IIS上でも Perl CGI を動かせるようになった、ように見えた。

FTPサービスを有効化。 :

せっかくだから、FTPサービスも使えるように設定してみようかと。以下を参考に作業。

_IIS の FTP 7.5 のインストール | たんたか
_IIS の FTP 7.5 を構築 環境:2008R2SE|Takaのブログ

IISマネージャで、左側ペインの「サイト」を右クリック → FTPサイトの追加、を選択。ウイザードが開くので入力していく。
FTPサイト名: Default FTP Site
物理パス: C:\inetpub\ftproot
バインドはデフォルト
SSLは「無し」
認証: 匿名
アクセス許可: 匿名ユーザ
読み取り、書き込みにチェックを入れる

FTPでアクセスされるフォルダに、ACL とやらを設定しないと読み書きできないらしい。管理者権限でDOS窓を開いて以下を入力。
cacls "c:\inetpub\ftproot" /G IUSR:C /T /E
オプションの意味は以下の通り。
 /T 現在のディレクトリとすべてのサブディレクトリにある指定されたファイルの ACL を変更します。
 /E ACLを置き換えずに編集します。
 /G ユーザー名:アクセス権 C:変更 (書き込み)

更に、IISマネージャで、FTP認証、FTPの承認規則、FTPディレクトリの参照、のあたりを設定。
  • 基本認証を有効にしてみたり。
  • 匿名認証を無効にしてみたり。
  • 特定ユーザが承認されるようにしてみたり。
  • 仮想ディレクトリにチェックを入れたり。
等々、色々弄って試したり。

一応、一度は、上記の設定をして、DOS窓から ftp localhost でアクセスできるところまでやってみたのだけど。

考えてみたら、どうせローカルでしかファイルのやり取りをしないし。この後、他のPCからアクセスできるようにするためには、ファイアウォール設定もしなきゃいけなくて、それもなんだか面倒だし。

てなわけで、結局はFTPサイト設定ごとバッサリ削除してしまった。FTPサービスは使わないことにしようかなと。

*1: 後になって気づいたけど、IIS + ActivePerl のソレって、Apache の httpd.conf で ScriptInterpreterSource Registry-Strict を指定する方法と似たようなものなのでは…。

#2 [windows] Windows10のスタートボタンが使えなくなってしまった

WIndows10上で色々やってたら、スタートボタン・スタートメニューが動作しない状態になってしまった。スタートボタンをクリックしても、「重大なエラー」「スタートメニューが動作していません」と表示されてしまう。

「サインインをし直して、修復を試みてみるから、サインアウトしてくれ」とメッセージが出ているので、サインアウトボタンを押してサインアウト → サインインしてみるものの、改善してくれない。やっぱり動作しない。

おかしくなる前は、以下のアレコレをやってたような記憶があるけど。どれが原因だろう…。それとも、どれも関係ないのだろうか…。
幸い、タスクバー上のアイコンをクリックすればブラウザ等は起動するので、解決策をググって試したり。
しかし、sfc /scannow も、dism 〜 も、「どのコンポーネントも壊れてねえけど?」と結果メッセージが表示される。しかし、OS再起動しても、やっぱりスタートボタンは使えない。

仕方ないので、システムの復元を使って、04WebServerのインストール前まで戻した。さすがにコレなら、スタートボタンが動作してくれた。

その後、今までやってたはずの作業を一つ一つ試してみたけど、少なくとも IIS を使えるようにするところまで試してもスタートボタンは動作するようで。ただ、Cortana にアプリ名等を打ち込んでた際、「インデックスサービスが無効になってるので有効にしてくれ」とメッセージが表示されて。なんだか怪しい…。

なんとなくだけど、ロック画面に表示するアプリを、訳も分からず選択・設定したあたりが怪しい気がする。あのあたりは、もしかすると、Microsoftアカウントでサインインしてることが前提なのではないか。自分のPCは、Microsoftアカウントでサインインして使ってるPCでは無いし…。スタートボタンが表示されなかった時は、設定 → メールとアカウント、を選んでもずっと処理中のまま何も表示されなかったから、何かアカウントの管理絡みでおかしく…。

あるいは、Cortana の動作に問題があって、スタートボタンも道連れにして、とか。

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

#1 [cg_tools] ImageMagickで減色の実験

キャラクター仮画像のファイルサイズが大き過ぎるので、何かしら減色処理をして減らせないかなと試行錯誤中。

ひとまず、ImageMagick を使って実験。環境は、Windows7 x64 + ImageMagick 6.8.7-8 Q16 x86。

以下を参考にしながらテスト。

_Threshold Dithering Methods -- Quantization -- IM v6 Examples
_Ordered Dither using Uniform Color Levels -- Quantization -- IM v6 Examples
_Color Quantization and Transparency -- Quantization -- IM v6 Examples

以下の指定で、フルカラー画像をRGBA4444に ―― 4096色の範囲に収められないか実験。
mogrify -ordered-dither threshold,16 *.png

-ordered-dither ○○○ で、ディザのかけ方を変えられる。
アルファチャンネルの2値化も試してみたけど、輪郭が凸凹した状態になってしまって悩んだり。DOS窓上で、コマンドを以下のように直接打つと、期待通りの結果になるのだけど。
mogrify -channel A -threshold 50% *.png
コレをbatファイルに書いても動作してくれない。

原因が分かった。batファイルの中で「50%」と記述しただけでは「%」が無くなってしまう。batファイル中で「%」をコマンド等に渡したい場合は、「%%」と書かないといけない。コレ、前にもハマったような…。

とりあえず、以下のようなbatファイルを書いて、アルファチャンネルの2値化と4096色化をしてみたり。
@echo off
@rem アルファチャンネルを50%で2値化
@rem RGB444に変更

SET CVT=C:\Prog\ImageMagick-6.8.7-Q16\mogrify.exe

for /d %%a in (.\*) do (
echo convert %%a\*.png
cd %%a
%CVT% -channel A -threshold 50%% *.png
@rem %CVT% -channel A -ordered-dither checks *.png

@rem %CVT% -ordered-dither threshold,16 *.png
%CVT% -ordered-dither checks,16 *.png
cd ..
)
for /d %%a in (.\*) do ( 〜 ) で、カレントディレクトリ内のサブフォルダ群に対して処理をする。この場合、%%a にサブフォルダ名が入る。

_CPシステムII - Wikipedia によると、「最大同時発色数: 4096色」とあるので…。昔風の2Dゲームを作る場合は、4096色(RGB各チャンネルが4bit分)あれば間に合うんじゃないかなと。

ポスタライズの動作がよく分からず。 :

ポスタライズって、てっきり、RGBの上位何ビットだけを残すか、という処理かと思ってたけど、ImageMagick で試してみたらどうもそういう感じに見えなくて。

_Quantization -- IM v6 Examples を眺めてみたら、
  • 2 を指定すると 8色。
  • 3 を指定すると 27色。
  • 4 を指定すると 64色。
  • 5 を指定すると 125色。
  • 6 を指定すると 216色。
に変換すると書いてある、ような。規則性が見えない…。どうも Netscape がどうとか書いてあるように見えるので、ビット数云々で出力する色数を決めてるわけではないのかもしれないけどよく分からない。

手元で試してみたら、盛大に画像が壊れたというか、妙な場所に大きい四角形のグレー部分ができてしまった。このあたり、仕様なのかバグなのか、よく分からない。

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

#1 [nitijyou] またかなりの雪が積もった

夕方頃に、親父さん、お袋さんと一緒に雪かき。

前回の雪かきが結構きつかったので、直後に親父さんがスノーダンプを購入してきたのだけど。無駄にならなくて、ある意味よかった…のかなあ…どうなんだろ…。 しかし、スノーダンプの使い方が、今一つよく分からない…。

#2 [unity] unitypackageでエクスポートするとレイヤー設定が消えてしまう問題

その後も、解決策を探してたけど、どうにも見つからず。

ただ、.unitypackage をインポートした後で、元のプロジェクトフォルダ中の ProjectSettings\*.asset をコピーしてきたら、レイヤー設定が反映された。

つまり、.unitypackage を作ると同時に、ProjectSettings\ 以下も zip にして入手可能にしておけば、どうにかなりそうな気がする。

いや待て。だったら、そもそもプロジェクトフォルダをそのままzipにしたほうが、早い上に確実なのでは…?

大体にして、.unitypackage なるファイルのフォーマットも分からないし。後で中身を取り出そうとしても、その頃は Unity というソフト自体が消滅していて、苦労する場面もあるかもしれん。その点、zip なら、将来的にもおそらく解凍ぐらいはできるだろうし。

うむ…。なんだかプロジェクトフォルダをzipにしちゃうほうがヨサゲな気がしてきたり。

#3 [unity] テクスチャを修正中

Unity 2D を勉強するため、あちこちのblogの解説記事を眺めながら写経をしているところだけれど、それはさておき。画面サイズを拡大して動作確認していたら、テクスチャのあちこちにゴミっぽい何かがあることに気付いたり。各テクスチャは、DXT5 なる圧縮フォーマットで圧縮されているのだけど。このフォーマットは、4x4ドット単位で圧縮処理をするという話を見かけた。なるほど…たしかに4x4ドット程度のゴミが入ってるような気がする。

どうせ仮画像なので、ゴミが入る境界線のあたりを、4x4ドットでぶつ切りにすることにした。見た目も一風変わった状態になって、これはこれで。まあ、本番画像でこういうことはできないだろうけど。

プレイヤーキャラもゴミだらけなことに気付いたり。テクスチャのFormatを Truecolor にしたら、結構綺麗になった。ただ、これは一番容量を食うフォーマットのはずで。もしかすると、最初から16bitカラーで画像を作っておいた方がいいのだろうか。

考えてみたら、3DCGの見た目であれば、その手の圧縮をしても分かりづらいかもしれんけど。1ドット1ドットがとても重要なドット絵の類で、この手の圧縮をしたらあかんのでは、てな気もしてきたり。ちと容量は増えちゃうけど、2Dゲームなのだから、綺麗な見た目じゃないといかんよな…。

#4 [unity][cg_tools] RGBA4444に変換できるツール

Unity上で16bitカラーフォーマットと言うと、RGBAがそれぞれ4bitの画像を示すようで。テクスチャの「Format」で「16 bits」を選択すれば一応16bitカラーになるのだけど、下位4bitを問答無用で切り捨てているような感じで、グラデーション部分のマッハバンドが目立ってしまい、かなりとんでもない状態に。

ディザをかけながら減色した画像をあらかじめ用意することで。そのあたりの問題は緩和できるはずだけど。しかし、そんな変換をしてくれるツールは存在するのだろうか…?

有償ソフトを使う事例。 :

ググってみたところ、有償ソフトならそういう機能を持っているようで。

_Unityで、もっとキレイな16bitカラーテクスチャを使おう! | OPTPiX Labs Blog
_OPTPiX imesta for Mobile & Social | ウェブテクノロジ

OPTPiX imesta は、1ヶ月あたり、24,800円〜35,000円の使用料が必要らしい。

_TexturePacker features

複数の画像を一つの画像(スプライトシート)にまとめてくれる、TexturePacker にも、RGBA4444 をサポートした減色機能があるらしい。値段は…現時点では4,204円と表示されてた。

フリーソフトを使う事例。 :

フリーソフト・無料ソフトではできないのかな、と思ったけれど、一応 GIMP を使ってできるらしい。そういう変換処理をするスクリプトを公開してくれている方が。ありがたや。

_16-bit (was ARGB4444) Dither Script | GIMP Plugin Registry

導入・使用方法は以下の通り。
  1. dither16bit.scm と Grayscales.zip をDL。
  2. dither16bit.scm は、GIMPのユーザフォルダ\scripts\ 以下にコピー。
  3. Grayscales.zip は解凍して、中に入ってる .gpl を、GIMPのユーザフォルダ\palettes\ 以下にコピー。
  4. GIMPを起動。画像を開く。画像 → モード → Dither to ARGB 4444 という項目が増えているので、それを選べば変換してくれる。
スクリプトの中身は覗いてないけど、おそらく、やってることは、以下の動画と同じではないのかなと想像。

_How to create a texture optimized for conversion to RGBA-4444 - YouTube

動画中では、 RGBAチャンネルを分解して、それぞれを、ディザとカスタムパレットを使いつつ減色。RGBAとして再合成 ―― といった作業をしてるように見えた。

ただ、そもそもGIMPの減色機能は、品質的にちとよろしくない印象もあって…。それでも、フリーソフトで一応こういう変換作業ができるのは、ありがたいなと。

Unityを拡張する事例。 :

Unityを拡張して、ディザを使った減色をすることもできるらしい。

_keijiro/unity-dither4444 - GitHub

一応試してみたのだけど。どうも上手く行かず。ファイル名末尾に「Dither」とついてるテクスチャが対象になるはずだけど…。
  • 該当テクスチャのテクスチャタイプが、強制的に「GUI」になってしまって変更できない。
  • 関係ない、他のいくつかのテクスチャも、テクスチャタイプが強制的にGUIになってしまう。
Unityのバージョンが上がったことで関連部分の仕様が変わって、不具合が出るようになったのかしら…。あるいは、元々こういう動作をする拡張、なのかな…。そのへん分かりません。

ImageMagickでもRGBA4444に変換できそう。 :

_ImageMagick - View topic - bad alpha in -remap from RGBA8888 to RGBA4444 で、それらしいやり取りが。しかし英語なのでよく分からず…。

色々試してたら、たぶんできた、ような気がする。環境は Windows7 + ImageMagick 6.8.7-10 Q16 (x86 2013-12-08)。
convert uranus.png -channel RGBA -separate ( -dither FloydSteinberg -remap 16graycolor.gif ) -channel RGBA -combine uranus_im_rgba4444.png
  • uranus.png が入力画像ファイル名。uranus_im_rgba4444.png が出力画像ファイル名。
  • -channel RGBA -separate で、R,G,B,Aチャンネルに分解。
  • その後に続く「 ( 〜 ) 」で、分解された各チャンネルに対して個別にこの処理をせよ、と指定。
  • -dither FloydSteinberg で、フロイド-スタインバーグ方式のディザを指定。
  • -remap 16graycolor.gif で、16graycolor.gif の中で使われている色で置き換える(減色する)ように指定。
  • -channel RGBA -combine で、R,G,B,Aチャンネルを一つの画像に合成。
括弧については、Windows上のDOS窓内だから、そのまま「(」「)」を書いてるけれど。どうやら *NIX上ではシェルの問題で「\(」「\)」と書かないといけない模様。

remapに使ったgif画像(16色分=4bit分)も置いておきます。ただ、パレットデータは、「0xf0f0f0」といった形がいいのか、「0xffffff」といった形がいいのか、ちと分からなかったので両方用意してみたり。Unity上で下位4bitを単に切り捨てているのであれば、どちらでもいいのだろうけど。

16graycolor_f0.gif
_16graycolor_f0.gif (パレットの下位4bitは0。例: 0xf0f0f0)

16graycolor_ff.gif
_16graycolor_ff.gif (パレットの下位4bitは上位4bitと同じ。例: 0xffffff)

前述の掲示板で、サンプルとして上がってた画像に対して、自分も処理をしてみたり。

オリジナル画像。
uranus.png

ImageMagick の変換結果。
uranus_im_rgba4444.png

GIMP + dither16bit.scm の変換結果。
uranus_od_gimp.png


以下、参考にしたページ。

_Quantization -- IM v6 Examples
_Aggressive Engineer: ImageMagickのconvertコマンド > separateオプション, combineオプション
_ImageMagickを使おう
_フロイド-スタインバーグ・ディザリング - Wikipedia
_ディザ - Wikipedia

2013/02/15(金) [n年前の日記]

#1 [dtm] SoundCloudのアカウントを取ってみたり

せっかくジングル等を作ったのだから公開できんかなと思ったのだけど。どうせなら、自作曲を公開できるその手のサービスを一つ使ってみたいなと。

で、取ってみたのがコレ。

_mieki256’s stream on SoundCloud - Hear the world’s sounds

ド素人が作った、曲とも呼べそうにないゴミみたいなファイルばかりですけど、奇特にも使いたい人が居ましたら、どうぞ御自由にお使いください、みたいな感じで一つ。…ライセンス表示が CC-BY になってますが、指定可能なライセンスで一番緩いのがソレしかなかったのでそうしてるだけで、作者表記は不要です。CC0 か Public Domain のファイルとして扱ってくれるとありがたいです。…CC0等が指定できるサービスがあったらそっちに移行させたい。

選んだ際のアレコレをメモ。 :

その手のサービスに自分が求めた条件は以下の通り。
  • WAV か FLAC、最低でも OGG で公開できること。mp3は曲の前後に無音部分が挿入されてしまうので、ループBGM等の波形データを公開するには不向き。
  • 曲をダウンロードできること。これができないと、別途zip等にしてどこかにアップロードしておかないといけない。

ひとまず、自作曲を公開できるサービスとやらをググってみたのだけど。
  • TwitSound
  • SoundCloud
  • Mixcloud
こういったサービスしか見つけられず。

_TwitSound
_SoundCloud
_Mixcloud

TwitSound は、単発でアップロードする場合はヨサゲ。ただ、FLACやOGG等をアップロードできるのかよくわからず。

SoundCloud は、FLAC や OGG でアップロードもできるし、ダウンロードができるような設定も可能。しかし、ライセンスの指定が一番緩くても CC-BYライセンスで。個人的には Public Domain? CC0? でアップロードしたかったのだけど。また、無料プランでは全部で120分の長さまでしかアップロードできない制限がある。

Mixcloud は、比較的長い曲ファイルもアップロードできるっぽい。ただ、FLAC や OGG をアップロードできるのか、ダウンロード可能の設定ができるのか、分からなかった。

ということで、試しに SoundCloud を使ってみようかな、と。

2012/02/15(水) [n年前の日記]

#1 [papercraft] のり付け無しのペーパークラフト作例

_素の台紙 を相手にGIMPでお絵かき。こんな感じになった。
なんとかミク
あのキャラをどうにか。既にゴイスなペーパークラフトが巷でいくつか公開されているけど、こっちは極力簡単に作れることを目指して、みたいな。

_頭部(A4,png,300dpi相当)
_胴体(A4,png,300dpi相当)
_ツインテール(A4,png,300dpi相当)

細かいところが組み立てにくい気もするけど、いざとなったらセロハンテープでペタペタくっつけて終わりにするのもありのような気もしたり。どうせ「紙」だし。

手のあたりは解決策が思いつかなかった。何か丸い感じのものを腕の先にくっつけたかったけど、のり付け無しで固定する方法が思いつかず。テープで貼ってしまうしかナサゲ。

腕は、立体じゃなくてもいいような気もした。紙を一枚差し込んで終わりにして、その代わり、いろんな種類の腕を用意したほうが面白いかもしれない。ジタバタしてる腕とか、バンザイしてる腕とか、グリーンアスパラを持ってる腕とか。日替わりで交換。してどうする。

#2 [papercraft][neta] 自分の顔写真でペーパークラフト人形を作れないかな

と思って検索してみたら、 _怖い 感じの _ペーパークラフト_記事 がたくさん出てきた。

そういうんじゃなくて…。ただの箱に自分の顔写真がペタッと貼られてる二頭身キャラ、みたいなそういう…。机の片隅にちょこんと置いておけるぐらいのサイズで…。

プリクラみたいなソレでパシャッとやると切り抜き済みで組み立てるだけの紙がウイーンと出てくる、みたいな? なんだか既にありそうな気もするけど。…カットする機構が大変か。修理の人が大忙しな予感。

フィギュアにしてくれるサービスはあるみたいだけど。

#3 [papercraft] ここ数日ペーパークラフトに関して試行錯誤してたけど

一通り作れば何か見えてくるところがあるかなと思って作業をしてたけど。ちょっと見えたような気もするので、ひとまずメモ。

のり付け無しなら簡単に作れるのでは、と想像したものの、予想はちと外れた感じ。手元に接着剤の類が無くても、台紙とカッターさえあれば作り始めることができるのはメリットだけど…。 *1 また、設計(?)にもよるだろうけど、前述の作例はすぐに倒れるし。これがのり付けなら、土台も貼り付けられるから倒れにくい。フツーはのり付けしちゃうよなと。

形状について。円柱や円錐台ならテクスチャが描きやすいのではと予想していたけど、実際作ってみたらそうでもなかった。 これが箱だったら描くのも楽。 何にせよ、「描きやすい」ペーパークラフトを模索するにあたって曲面を極力排除する方針もアリだなと。もっとも、ポリゴンで曲面を模すところまで行ってしまうと、組み立ても、テクスチャ描きも、茨の道。

円錐のテクスチャは、矩形のテクスチャを変形して当てはめれば楽かなと軽く考えていたけれど。GIMP上で矩形テクスチャを描いて極座標変換してみたところ、かなり線がボヤけてしまい、更に上下で線の太さが変わることにも気付いた。考えてみれば当たり前。…ビットマップで描くのは無理があるのか。ベクターデータならどうにかなるだろうか。いや、アニメ調では無く、実写風のテクスチャなら気にならないか。パーツを回転させていくつも重ねていく作りなら楽になるだろうか。何にせよ、ちと考えが甘かった。

円柱・円錐に蓋をする方法は、結局思いつくことができなかった。見た目をそれなりに綺麗にしようと考えると、のり付けするしか手は無さそう。

別のアプローチで自動化・作成支援ツールが作れないかと夢想してたけど。形の自由度を考慮すれば、既存ソフトの、ポリゴンモデルを作って展開図を作るやり方が汎用性があって妥当だなと。ただ、せっかく紙を使うのだから、もう少し曲面を活かせないかとも思うのだけど。いや、そうなるとテクスチャが…。うーん。
*1: 実際、自分の部屋にはのりが無いわけで。両面テープはあるけど、ソレを使って細かい貼り付けは面倒だし。

#4 [windows7] Inkscapeが起動しなくなっていた

起動しようとしたら以下のトラブルが。

_「0xc0000005」エラー - パソコントラブルと自己解決

アンインストール → 再インストールしてもダメ。まさかメモリが壊れているのではと memtest86+ を動かしてメモリをテストしてみたけどエラーは出ない。Windows Update をしたら起動したとか、再起動したら起動したという話を見かけたので、Windows Update して再起動。…起動した。一体何が起きているのやら。

#5 [cg_tools] GIMP-painter-をインストール。

タブレットで描く際に補正が欲しいなと思ったのでインストール。おそらくG-Penを使えばいいのだろうけど、パラメータの指定の仕方がよく分からず。

2011/02/15(火) [n年前の日記]

#1 [cg_tools] Shade12へのバージョンアップを催促するDMが郵送で届いたのだけど

チラシを読んで呆れた。いや、腹が立ってきた。 あのね。10.xユーザ向けにチラシを渡すなら、10.xから12になるとどれだけ機能が増えますよ、という内容のチラシじゃないと意味が無いでしょう? 11から12なってどれだけ機能が増えました、だけでは情報として足りないんですよ。そういう抜けたことしておきながら、煽ってるんじゃないよと。

Shadeは悪くないソフトだと思うが、客に売り込みをかける人達の頭が悪い。プログラマーに御飯を食べてもらいたいとは思うけど、プログラマーの苦労を台無しにする馬鹿共にはビタ一文払いたくない。が、どうしたもんか。

本当に、ちょっとしたことだと思うんだけど、何故に気付けないのか。売る側の都合ばかり考えて、宣伝・売り込みをしてるのではないか。自分がこういう状況のユーザだったら、この商品に興味を持ったら、こういう情報が欲しくなるよな、とか少しは考えたことがないのかね。中に居ると、そのへん見えなくなるのかなあ…。

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

#1 [comic] 「EXIT」をまだ読んでたり

作りが上手い、ような気がする。特に対比が。

対比に関しては、2つのバンド ―― 上り調子の主人公バンドと下り調子のライバル?的バンドを交互に描いて対比を明確にしているあたりが一番分かりやすいだろうけど。それ以外にもちょこちょこ対比が織り交ぜられている感じもして。例えば、最初の頃の巻の中に、ファンから「○○さんですか?」と尋ねられても、バイトをしてる自分の姿が恥ずかしくて、正体を明かせなかったというエピソードがあるのだけど。かなり後のほうの巻で、ファンからの問いに対してフツーに正体を明かしている姿を描いて、状況がガラリと変わったことを明確に示していたり。

ライバル的バンドの姿は、主人公バンドの未来の姿を暗示してるのだろうとも思えるし。途中で、読者の不安を煽るようなネームを散りばめているあたり、おそらくラストはもう決まっているのだろうなと。

しかし、この作品、続きはどこで描かれているのだろう…。また雑誌から追い出されたのか、雑誌が潰れてしまったのか。なんとか最後まで描き上げてほしいものだけど。まあ、未完のまま終わったとしても、11巻の最後で、「限界」云々というネームが書かれているあたりからして、作家自身が限界だったんだなあ、的邪推も可能なので、そういう終わり方もアリかもしれない。てなことも妄想したり。

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

#1 [pc][linux] PenIII 800MHz機にUbuntu Linux 8.04をインストールしたのだけどHDDがとんでもなく遅い

積んであるHDDは以下。 M/B は ASUS P3V4X。VIA Apollo Pro133A チップ搭載品、らしい。

HDDのパフォーマンスその他を調べるコマンド、hdparm で情報を得てみる。
$ sudo hdparm /dev/sda

/dev/sda:
 IO_support    =  0 (default)
16-bit)
 HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device
 HDIO_GET_DMA failed: Inappropriate ioctl for device
 HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 3736/255/63, sectors = 60030432, start = 0

$ sudo hdparm /dev/sdb

/dev/sdb:
 IO_support    =  0 (default)
16-bit)
 HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device
 HDIO_GET_DMA failed: Inappropriate ioctl for device
 HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 10011/255/63, sectors = 160836480, start = 0

速度を調べてみる。
$ sudo hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:    8 MB in  3.35 seconds =   2.39 MB/sec

$ sudo hdparm -t /dev/sdb

/dev/sdb:
 Timing buffered disk reads:   84 MB in  3.04 seconds =  27.59 MB/sec
slave側はともかく、master側が遅い。さてはDMAが有効になっていないのか、と思ったのだけど。
$ sudo hdparm -d1 /dev/sda

/dev/sda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Inappropriate ioctl for device
 HDIO_GET_DMA failed: Inappropriate ioctl for device
DMAを有効にしようとすると、怒られてしまう。

色々検索したけれど、どうも最近のLinuxは libata なるものを使うことで、SATA接続、もしくはIDE接続されたHDDを、SCSI HDDとして扱うようになっているそうで。その関係で、hdparm はほとんど使えないコマンドになり果てているのだとか。巷の情報によると、libata が自動的にそのHDDにとって最適な設定をしてくれてる、ということになってるらしいが。どう見てもコレは最適な状態になってないように思える。Ultra DMA/66対応HDDがこの速度ってのはあり得ないだろうと。ちょっと前までは、Linuxをインストールするなら枯れたハードに、というのが苦労しないコツだったはずが。いつからSATA HDD等最新の環境を用意しなきゃいけない状況になったのやら。なんだか困るなあ。

などと思ったのだけど。どうも libata のせいではなかったらしい。knoppix 5.3.1 DVD版を起動して、/dev/hda (Ubuntuでは /dev/sda)を hdparm -t /dev/hda で測定してみたら、Ubuntu の時と似たような速度しか出なかった。ということは、この30GBのHDDは、速度的にこれで正解ということなんだろうか。しかしいくら古いとは言え、他のIDE HDDの1/10の速度しか出ないのもなんだかおかしな話。いや、昔のHDDってのは、そういうものなのかな。あるいは、HDD消去を試みていた際に、アクセスし過ぎで制御基板が熱で壊れたとか、あるいは設置がテキトーだったから軸でもおかしくしてしまったのだろうか。

何にしてもこれじゃ使えないので、仕方なく30GBのソレは外すことに。80GB をmasterに接続。 を引っ張り出してきて、slaveに接続した。

Vine Linux 4.2 と Ubuntu Linux 8.10 を再インストール。 :

Vine を入れた後から Ubuntu を入れたのだけど。Ubuntuインストール時に、MBRにgrubをインストールしてしまったことで、Vine が起動しなくなってしまった。うーん。

_MBM をMBRにインストールすることで、各OSをパーティションに閉じ込める(?)ことができるらしいと知り、MBMを使おうかと。インストールにはFDDが必要なのだけど、FDDが使えないM/B(FDD関係が壊れてるらしい)なので、 _Tips: MBM(ChaNさんの高機能・マルチブート用ブートローダ)をもっと便利に使う情報とツール - disklessfun’s Wiki* を参考に、Linux上からMBRにMBMをインストール。knoppix を起動。fdiskでパーティションを削除して、Ubuntu を再インストール。

2008/02/15(金) [n年前の日記]

#1 [windows][web] Jane Styleを導入

IE7導入に伴い、Live2chが正常動作しなくなって、アレコレやってたわけだけど。どうもIEコンポーネントを利用するブラウザの類は面倒だなと。IEのセキュリティホールを突かれたりする可能性もあるし。ということで、IEコンポーネントを利用しないタイプの2chブラウザを導入してみようかと。で、 _Jane Style を導入。

レンダリングは圧倒的に高速な印象。ただ、新着書き込みの色分け表示ができればいいのだけど、どうもそこまでのカスタマイズはできないらしく。

リンクとお気に入りという2つのブックマーク概念があって、リンクのほうは、特定ジャンルの板を一覧表示できたりするのが便利だなと。

#2 [cg_tools] 3DCGツール Shade のアップグレード条件がAdobeのソレと同じになるみたいなのだけど

「2つ前のバージョンの製品からならアップグレードできますが、それより前のバージョンはアップグレードできません。そういう連中は新品を買いやがれ」ってヤツ。

Adobeの場合は、Adobe製品で市場を独占してるような状態だから、そういう強気なこともできたんだろうけど。Shadeは…どうなんだろうな。

アップグレードするかどうか悩む。 :

最低ランクの Shade をたまに使ってきた自分だけど。年に数えるほどしか使ってないし。セットで購入した Vue なんか完全に使ってない状態だし。本当は blender のほうに慣れたいというのもあるし。これを機会に Shade と距離を置く、というのもありなのかもしれん。

つーか myShade2 から Shade 8 basic にアップグレードして使い勝手がめちゃくちゃ良くなったのかと言うと、実はなんだかあんまり変わった印象がなかったりもするわけで。たぶん細かいところは色々変わってるんだろうけど、最低限の機能しか使ってないので改良箇所の恩恵を受けてないような。>自分。この調子だと、Shade 10 にしたからと言って、特に嬉しいことがあったりするわけでもないのだろうな、てな感じがしていて。たとえばこれが「トゥーンレンダリングが(制限付きではあるものの)最低ランクの製品でもできるようになりました」とかだったら、そりゃアップグレードしないと、てな気分にもなるのかもしれんのだけど。しかしそれが出来るのは一つ上のランク。でも、そこまでアップグレードするコストを考えると…。どうにも微妙。その機能のためだけにこれだけの金額を出すのかと問われると、悩んでしまう。

ツールがあればあったで、ツールに慣れてれば慣れていたで、便利な場面もたしかにあるのだけど。しかし、本格的にやってるわけでもないしな。うーん。まあ、本格的にやってたら、Shadeじゃなくて違うツールに傾倒するもんじゃないの、とか、もっと高いツールに手を出してるんじゃないの、という感もあるんだけど。

#3 [anime][neta] プリキュア555の2話目を鑑賞

敵の中間管理職キャラクターであるブンビー?なるキャラが、前作に引き続き登場したあたりにちょっとグッと来てしまった。こういったキャラの使い方は好き。 各企画をまたがってキャラが活躍するのは好きなのです。…本当は、無印やSSのプリキュアが応援に、といった展開が見たいのだけど。ソレは無理なんだろうな。

途中で浄化してプリキュアの仲間にならないだろうか。>ブンビー。敵にすると別にどうだっていいが、味方にしてもやっぱり頼りにならない、そんなキャラ。プリキュア5ワールドにおけるねずみ男的存在。いや、単に、さえないおじさんがプリキュア娘達から「あ! ブンビーさ〜ん」と親しげに呼ばれたり、「まあ、ブンビーさんのやることだから」と呆れられてる、そんな光景が見たいだけなんですが。

妄想。 :

桃「ブンビーさん! どうして私達を裏切るようなことを…!」
ブンビー「ハッハッハ。すまないね君達。だってこっちのほうが雇用条件良さそうなんだもーん」

桃「ブンビーさん! 戻ってきてくれたのね! やっぱり貴方は私達の仲間だわ!」
ブンビー「あーいや、別にそういうわけじゃ…。聞いてた話と実際のソレが違ってたから戻ってきただけでね…」

桃「ブンビーさん! どうしてまた私達を裏切るようなことを…!」
赤「まさか…」
ブンビー「いやーだってこっちのほうが雇用条件(以下略」

桃「ブンビーさん! 戻ってきてくれたのね! やっぱり貴方は(以下略」
ブンビー「あーいや、今回もやっぱり聞いてた話と(以下略」

桃「ブンビーさん! どうしてまた」
赤「ストップ! ドリーム。(ブンビーの方に向き直って)どうせまた雇用条件がどうとかなんでしょ?」
ブンビー「そのとおり! …ってどうして判ったの?」
緑「さすがに3回目だから…(苦笑い)」

桃「ブンビーさん! 戻ってきてくれたのね! やっぱり貴方は」
赤「いやいやいや。雇用条件が悪かったんでしょ」
ブンビー「あーいやー、まぁ、実はそのとおりでして…」
青「まあ、何にしても戻ってきてくれて嬉しいわ。おかえりなさい。ブンビーさん」(一応は笑顔を見せる青)
ブンビー「! (←青の笑顔で何かのフラグが立ったらしい) くぅ〜っ。私にそんな優しい言葉をかけてくれるのは君達だけだ〜」
UMA「これで最後にしてほしいもんだココ」

さらに妄想。 :

日常生活のアレとかコレとかでなんだか悩んでしまってる赤だか青だかそのへんに、若い頃に世界中を放浪していた体験談を語ることで娘さんたちの開眼を促す、そんな大人のブンビーさんとか。

青「貴方のおかげで気持ちの整理がつきました。ありがとう。ブンビーさん」
ブンビー「いやー、私、そんなたいそうなことはしましたよ」
赤「少しは謙遜しろよ…」

#4 [anime][neta] ジャングル大帝っ娘というネタはどうだろう

特定条件を満たせば手塚治虫作品の二次創作が可能になる場所があるという話をどこかで見かけたわけだけど。であればこういうネタはダメかなあ、と。

こんな感じの妄想。 :

時は未来。宇宙に進出した人類は、様々な惑星に住む異星人達と遭遇して交流を果たしていた。しかし、その全てが双方にとって望ましい交流にはならなかった。

地球で探偵稼業を営むヒゲオヤジは、ひょんなことから、惑星サバンナの異星人を奴隷として扱っている人身売買組織の存在を知り、彼等と渡り合うことになるのだが。その過程で、奴隷として地球に密輸入されてしまった、惑星サバンナ人の幼女を救出・引き取って育てることになってしまう。惑星サバンナ人は、見た目はライオンに似ている異星人だが、ヒゲオヤジが引き取った幼女はその中でも珍しい姿形をしていた。彼女は、アルビノの、真っ白な髪をした美少女だったのだ…。

という感じで、一見すると奴隷問題とか人種差別問題とかそのへんを扱うように見せかけながら、その実態は、長身でダンディな独身貴族としてアレンジされたヒゲオヤジが、擬人化・萌えキャラ化されたレオの育児に悪戦苦闘するという作品に。嘘。つーかコレってパッと見は、BJとピノコのソレじゃないのか。

ていうか自分、ジャングル大帝読んだことないんです。スイマセン。

#5 [eclipse][windows] eclipse 3.3.1.1が起動しなくて困り果てる

起動すると、ウインドウは出てくるものの、固まってしまう。マズイ。今の時期にこんな状況はマズイ。

MS IntelliPoint6.2とeclipseの相性が悪いという話をどこかで見かけたので、試しに IntelliPoint6.2をアンインストール。…eclipseが起動した。うーん。しかし、検索してみても、eclipse 3.3.1.1 と IntelliPoint6.2 の相性が悪いという話は、そう頻繁に上がってるわけでもなく。

もしかすると、色んなプラグインを突っ込んでるのがいかんのかもと思えてきたので、Python用、Ruby用、Perl用のプラグインその他をごっそりアンインストール。eclipseが起動することを確認して、IntelliPoint6.2 を再インストール。…起動した。ということは、消していったプラグインの中に、IntelliPoint6.2と相性の悪いものが居たのかもしれない。

2007/02/15(木) [n年前の日記]

#1 [linux] _複数のファイルの名前をまとめて変更する

こんな方法があったのか…。

ubuntu で man rename してみたら、例として「rename 's/\.bak$//' *.bak」と書かれていた。なるほど、perl の感覚で置換を指定すればいいのか…。

#2 [ubuntu] vncserverとicewmをインストール

どうも vino ではクリップボードの情報が取得できないような気がしてきた。試しに、sudo aptitude install tightvncserver をインストール。

ていうか vnc は色々種類がありすぎてどれを入れればいいのかわからないのですがどうしたものでしょうか。それぞれに何か特徴があるのだろうけど…。全機能が入ったヤツとかないのでしょうか。それはそれで問題がありそうな気もしてきた。セキュリティホール云々が出やすくなるのかな。

apt-cache search すると見えないけれど、aptitude search vnc とすると、vnc-server なるパッケージ名が見える。v マークが付いてるから、メタなんとかパッケージかしら。

vnc で使うには、gnome は重い予感もしてきたので、軽いと言われる icewm をインストール。…どうも gnome 対応版?らしきパッケージ名も目に入る。
sudo apt-get -s install icewm
で表示された「提案パッケージ」も全部インストールすることにした。
sudo aptitude install icewm icewm-gnome-support icewm-themes icepref iceme grun xlockmore imlib-progs
という感じに。

ssh でログイン。
vncserver -geometry "800x600" -depth 24
で vnc 起動。最初はパスワードを尋ねてくる。
vncserver -kill :1
で vnc 終了。vino のときは、IP:0 で接続してたけど、IP:1 で接続するようになった。

~/.vnc/xstartup に起動するプログラムや window-manager が書かれてる。少し色々試してみたが、結局こんな感じに。
#!/bin/sh

XMODIFIERS="@im=SCIM"
GTK_IM_MODULE="scim"
export XMODIFIERS GTK_IM_MODULE
if type scim &> /dev/null ; then
scim -d &
fi

xrdb $HOME/.Xresources
xsetroot -solid grey
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &
# gnome-session &
# icewm &
icewm-gnome &
問題ないかどうかはよくわからない…。

gnome-control-center なるものを立ち上げると、gnome の設定ができるらしい。

_つかってみよう VNC :

最初のパスワードは vncserver 起動時に設定しますが、2度目以降は設定された パスワードを使います。変更は vncpasswd コマンドを使います。

つかってみよう VNC より

メモ。

結局クリップボードのやり取りはできなくて、色々試してるうちに更にハマる。 :

tightvncserver だからマズイのかと思ってアンインストール。sudo aptitude remove tightvncserver。

sudo aptitude install vncserver をしてみた。アレ? gnome が起動しちゃうな…。vncserver をアンインストール。

vnc4server と vnc4-common を入れてみた。…そもそも繋がらなくなった。

UltraVNC で接続してるのがマズイのだろうか。RealVNC 4.1.2 Windows版をDL・インストールして試してみた。…ダメだな。状態変わらず。

設定ファイルが関係してるのかもしれない。tightvncserver、vncserver、vnc4server を sudo aptitude install hoge とか sudo aptitude purge hoge とか。ssh でログアウトしてから作業とか。

vncserver が ~/.vnc/hoge:1.log にログを残してることを忘れてた。眺めてみる。
...
...
...
error opening security policy file /etc/X11/xserver/SecurityPolicy
Could not init font path element /usr/share/X11/fonts/TTF/, removing from list!
Could not init font path element /usr/share/X11/fonts/OTF, removing from list!
Could not init font path element /usr/share/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/share/X11/fonts/CID/, removing from list!
Could not init font path element /usr/share/X11/fonts/100dpi/, removing from list!
Could not init font path element /usr/share/X11/fonts/75dpi/, removing from list!

Fatal server error:
could not open default font 'fixed'
こんな感じのエラーが。xorg.conf と同じだな。存在しないディレクトリを探しに行ってる。

_Bug #3593 in vnc4 (Ubuntu): “vnc4server uses wrong font path”
debian 系のフォントの置き場所が、どこかの版の時点で変わってしまって、それ以来ドタバタしてるっぽい。たぶん。

/etc/vnc.conf というファイルがあったので、中で $fontPath 等を書き換えてみたのだけど。状態変わらず。つーか、/usr/bin/vncserver は /usr/bin/vnc4server を指してるだけで、かつ、vnc4server は perl スクリプトっぽい。中を覗いてみる。…どこで /etc/vnc.conf を読んでるんだ? そもそも読んでナサゲな。

面倒だから、/usr/bin/vnc4server を直接書き換えた。
# Add font path and color database stuff here, e.g.:
#
# $cmd .= " -fp /usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/";

$cmd .= " -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1/,/usr/share/fonts
/X11/100dpi/,/usr/share/fonts/X11/75dpi/";

起動したら、Windows の RealVNC viewer から接続できた。icewm も立ち上がってる。

vnc4server 側は、
 error opening security policy file /etc/X11/xserver/SecurityPolicy
のエラーを出してる状態。/etc/X11/ の中には、そもそも xserver なんてディレクトリは無いんだけどなぁ。locate SecurityPolicy と打って、SecurityPolicy なるファイルの在り処を探したら、/usr/share/doc/xserver-xorg-core/SecurityPolicy なるものがリストアップされた。中を覗いたが、ギッシリ書かれてて、なんだかよーわからん。ていうか、これまた vnc4server の中で指定してる部分が見当たらず。何かの環境変数を使ってるのかな。/etc/〜 にコピーしたほうがいいか? でも素人が下手なことしてまた動かなくなると嫌だし。つーか疲れた。

それはともかく、クリップボードのやり取りができてるっぽい。>vnc4。これで多少は快適に。なるのか? 考えてみれば、putty でアクセスしてる分には、クリップボードのやり取りもできてたしな…。あまり意味は無いのか…。

vnc4 だと gnome 関係の設定ツールが起動できないな。 :

xterm 上にエラーが表示されて、起動できない。vncserver (3.3.6-1)に戻すか…。

戻したら、クリップボードの共有ができなくなった。うーん。

検索してみたら、どうも vncconfig なるものを立ち上げておかないとダメらしい。しかし vnc 3.x.x 用の vncconfig はどこにあるのか…。それとも、vnc4 からの機能なんだろうか。

sudo update-alternative --config vncserver で、vncserver と vnc4server のどちらを割り当てるか設定できるみたいだから、両方入れておくか。

_Linux man page for vncconfig.1 :

Version 4 より前の版には使えないということか。> vncconfig。

_当方がターミナルにgnome-terminalを使っていたからのようです。ktermにしたらきちんとコピペできました。 :

! まさか…。

試しに、 vncserver 3.x.x で、GNOME端末ではなく xterm を起動して、文字列を選択=コピーしてみた。…Windows側のクリップボードも、同じ文字列になった。…GNOME端末を使ってたからクリップボードを共有できなかったのか! そんなオチかよ! なんてこった。トホホ。アホ過ぎる。>自分。いや、そんなのフツーわからんがな、って気もするが。

なるほど、特定のプログラムを使った場合に限っては、クリップボード共有ができると。そういうソフトであるということなのだな。>vnc。

この記事へのツッコミ

Re: vncserverとicewmをインストール by 名無しさん    2008/01/20 10:24
vncとgnome-terminalはクリップボードの内容の共有可能はです
gnome-terminailではマウスのドラッグのみではgnome-terminal内でのみコピーバッファが有効でC-S-cかマウス右ボタンかメニューでコピーを選択したときにはじめてgnome-terminal外のアプリケーションとコピーバッファが共有されます。
Re: vncserverとicewmをインストール by mieki256    2008/04/14 06:12
> gnome-terminalではマウスのドラッグのみでは
> gnome-terminal内でのみコピーバッファが有効
> C-S-cかマウス右ボタンかメニューでコピーを選択したとき
> コピーバッファが共有

なんと! そういう仕様だったのですか…>gnome端末。
てっきり、マウスドラッグだけでコピーできるものと思い込んでました。
勉強になりました。情報thxであります。
なるほど、そういうことだったか…。

#3 [ubuntu] gnome の背景画像はどこにあるのだろう

壁紙画像(背景画像)を追加して、それを全ユーザが選べるようにしておきたいのだけど。保存場所がわからん。

画像を設定して、gconf-editor で眺めてみた。/usr/share/pixmaps/backgrounds/gnome/ の中にあるっぽい。

該当ディレクトリ中に、画像ファイルを放り込んでみた。…gnome の背景画像のリストには出てこない。変化なし。何をどうすりゃいいのやら。

まあ、全ユーザ(というか特定グループ)がアクセスできる共有ディレクトリを作ってあるから、その中に放り込んでおけば、使えることは使えるんだけど。スッキリしない。

情報をどこに入れてるかは判った。 :

~/.gnome2/backgrounds.xml に、利用可能な背景画像の情報を記述してあるっぽい。特定のフォルダに画像ファイルを突っ込めばそれで済むというわけではなかったのだな。ということは、フォルダ名を渡すと中に入ってる画像ファイル名を xml に追加していくような perlスクリプトでも作ればいいわけか。ってそこまでやってらんねえdeath。

2006/02/15(水) [n年前の日記]

#1 [firefox] Firefox の最小フォントを設定

おそらくIEでしか表示確認してないサイトが多すぎて閉口。本文の文字サイズが小さすぎるねん。仕方ないので、ブラウザ側で強制的に豆粒文字を見ないように設定。

font-size:xx-small; は使わんでほしいなー。その指定、IEだけが変なサイズになっちゃうわけで…。font-size:80%; 等のパーセント指定か、 *1 あるいはhack技でIEだけ特別扱いで指定するとかしてくれないものか。見栄えを同じにする方法があるのにどうして使わんのよ。…IEだけで表示確認してるから、なんだろうなぁ。そもそも問題点に気づいてないんだろう。

困ってしまうのは、blogサービスのテンプレートcssですら、そういう指定をしてる場面が多々見られること。知識の無い利用者が気づかずに使ってしまうやん。困るなぁ。一体誰なんだ。そういうウンコcss作り続けてるのは。…趣味でWebサイト作ってる人ですら、極力色んなブラウザで表示確認して調整してたりするわけですけど。今時IEでしか表示確認してないってのはどういうことよ。ちゃんと関連tipsを公開してくれてる方がたくさん居るというのに、tipsの検索すらサボるってどういうことよ。プロ失格。不勉強にもほどがある。…素人の自分にこんなこと書かせんでほしいわ。
*1: いや、パーセント指定もブラウザごとに微妙な差異があるんだけど…。

#2 [java] DoJa 3.5、4.1 をアンインストールしたら eclipse が起動しなくなった

「まだ505あたりを使ってる人も多い」という話を見かけたので、であれば DoJa 3.0 を入れたほうがいいのかなと。ということで、DoJa 3.5、4.1 をアンインストール。…したら eclipse 3.1.1 *1 が起動しなくなった。ぎゃわーん。これは再インストールであらうか…。

plugin関係の兼ね合いで起動しなくなったときは、-clean をつけて起動すればいいらしい。…起動してくれた。助かった。

DoJa 3.0 を入れてみた。eclipse 2.x.x しか対応してない旨、各種説明文には書いてあったけど。一応、動いてくれてるようには見える。…いや、何か不具合があったりするのかもしれんけど。ちょっとそのへんは様子見。
*1: eclipse 3.1.2 をインストールしたと思ったんだけど、ヘルプ → eclipse SDK について、を選ぶと 3.1.1 と表示される。…日本語化パック(3.1.1用、らしい)を入れた関係でそういう表示になるのかしら?

#3 [zatta] _2ちゃんねるネット:嫁の誕生日

ええ話や。嫁さん欲しいなぁ。…無理か。

この記事へのツッコミ

夢の持てる結婚観の提示。 by がんした    2006/02/17 00:02
オイラも未婚者ですが、こんな↓話を聞くと憧れますよ。

嫁をいとおしく思う瞬間@既婚男性
http://s03.2log.net/home/hopeless/archives/blog337.html
Re: 夢の持てる結婚観の提示。 by mieki256    2006/02/19 01:49
> http://s03.2log.net/home/hopeless/archives/blog337.html

うう…「ソレを書いたら負けだ」「書いちゃダメだ」と思いつつも、
やっぱりどうしても「それなんてエロゲ?」と書きたくなってしまう…!
そのくらい、憧れてしまう話ばかりですな!

チクショー! 全世界の既婚者どもめ。絶対に幸せになりやがれ!
俺が不幸な分、お前らが幸せにならなかったら、俺的には許せん!
みたいな。
Re: 夢の持てる結婚観の提示。 by がんした    2006/02/19 02:20
>俺が不幸な分、お前らが幸せにならなかったら、俺的には許せん!みたいな。

既婚者の諸君!
オイラのノルマ分も少子化対策に貢献して頂きたい。
代わりと言ってはなんだが、君らの分まで無駄な散財して
消費税税収に貢献するから、よろしくたのむ。
                             ・・・みたいな。

#4 [web] 「電車男」や「妹がガンダム」ってのはテーブルトークRPGの一種なんだろうか

_妹がガンダムのDVDを貸してと言って来た。 その1
_妹がガンダムまとめ

「妹がガンダム」を眺めながらぼんやり思ったのだけど。ゲームマスターが基本となるストーリーを用意して、それをプレイヤーに提示しながらゲームを進めていくあたり、テーブルトークRPGみたいだなと。…既出ネタかしら。そんな気もする。どこかのblogで、既に誰かがそういう考察をしてた記憶も。

いや。プレイヤーに着目すると、プレイヤー自身がストーリーに組み込まれるわけではなく、アドバイスという形でしかゲームに参加できないから…。テーブルトークRPGというよりは、インタラクティブ性を持ったTVドラマ・トレンディドラマ、みたいなものになるのであらうか。プレイヤーのアドバイス次第では、画面の中のキムタクは幸せにも不幸にもなりますよ、みたいな。

プレイヤー側は、基本的には「どうせネタだろ」と思ってはいるのだろうけど。しかし、「ひょっとすると、本当のことかも…」と思ってしまう部分もどこかにあったりするわけで。それ故、フィクションを提示されてることが最初から明らかになってるテーブルトークRPGよりも、ちょっとは身を乗り出して参加してしまうことになると。

こういう手法は、新しい商売になり得るよな。「ひょっとすると…」という幻想・錯覚を、プレイヤーに抱かせることが可能である限りは、おそらく商売になりそうな予感。受け手以外の道は用意されてない、娯楽作品の鑑賞行為でもなく。積極的に働きかけないとストーリーが成立しない、テーブルトークRPGでもなく。ほどよい受動性と、ほどよいインタラクティブ(?)性。

完全にフィクションなストーリーの提示であってもこういう楽しみ方ができるなら、更に商売の幅は広がりそうだけどなぁ。 :

たとえば、「ショッカーなる組織に拉致されて腹にベルトを埋め込まれました。どうしましょう?」とか。ってそういうのはやっぱり難しいか。

そういえば、ライダー龍騎のTVSPって、そういう作りになってたっけ。視聴者からの電話・ネット投票で結末が変わる、みたいな。アレは、Mac関係の雑誌にコラムを持つほどパソコン関係に詳しく、また、東映のWeb関係の初代管理人も務めたらしい白倉Pだからこそ考え付いた手法、なのだろうか。Webの持つ双方向性という特質には当然気づいていただろうし、それを商売に利用できないかと試行していた可能性もありそうな。

ビデオゲームが出始めた頃、何が一番面白かったかといえば。自分が絶対に介入することができないはずの「TVの中」に、自分の意思を反映させられる、ということではなかっただろうかと。

それを考えると、自分が絶対に介入することができないはずの「ドラマの中」に、自分の意思を反映させられることができれば、それは新たな娯楽産業の誕生にも繋がる…ってソレはエロゲと何が違うのか。やはりそこで必要になってくるのは、「ひょっとすると、これって本当の話なのかも…」的な幻想、なのかもしれんなぁ。

2005/02/15(火) [n年前の日記]

#1 [nitijyou] 風邪をひいたのだろうか

午前中、自転車で買い物にでかけたのだけど。店内を歩いてる最中に吐き気が。腹の調子も急に怪しく。

今現在、親父さんが風邪をひいてるのだけど。ひょっとしてうつったのだろうか。ってうつるような風邪なのかわからないけど。

お昼頃、親父さんの友人から電話があったらしい :

インターネットに繋がらなくなったから、見てもらえないかとの話。午後、車で迎えに来るとの話だったけど。電話して、体調が悪いので今日は勘弁してほしいと連絡した。申し訳ない。今、車に乗ったら、吐きそうな予感。

電話で少し話を聞いたが、プロバイダと接続する際の、ユーザIDとパスワードを書き換えてしまったらしい。入力するときに、「半角/全角」キーを押して入力するのかと尋ねられたので、直接入力で打つことを心がけてほしいと伝えておいた。難しいときは、メモ帳に打ち込んで、半角文字であることを目で確認してから、コピー・貼り付けでもいいんじゃないか、とも。

電話を切った後、そもそもメモ帳を見つけることができるのだろうかと不安に。…メモ帳は、Windowsインストール直後、「すべてのプログラム」の直下に居るべきアプリだと思うのだけどなぁ。なんで「アクセサリ」の中に入れとくんだろう。>MS。…まあ、別にメモ帳を使わないと、ネットワーク設定ができないわけでもないから、いいか。

とりあえず、寝るです :

疲れたとき、体調の悪いときは、寝るです。HP回復を期待するです。

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

#1 [nitijyou] 寝たら治りました

クリアになったです。新聞も読めるしTVも見れる。しかし、昨晩のアレは一体何だったんだろ。…あ。わかった。夕食時に、妹から酒入りチョコレートを貰って食べたのでした(爆) なんだ、そういうことか。今頃気づくとはアホです>自分。しかしまあ、たった一粒であれほど頭がぼやけるとは。アルコールは恐ろしい。…人間の脳なんて随分と不安定な代物ですね。チョコ一つでこの体たらくでは普段もどれだけ正常に動いてるか怪しいものです。自分の精神活動について「俺は正常だ」なんて口が裂けても言えないな。「たぶん、おそらく、なんだか正常に動いてそうな気はするんだけど実際どうなんでしょうねぇ…」とオドオドしながら口にするぐらいが関の山。

#2 [nitijyou] 外は凄い風でしかも吹雪いてるし

窓からベランダに顔だけ出して煙草を吸ってる自分なのですが、一本吸ってる間に手が凍りついてしまってキーを打つのも大変でござる。

#3 [pc] プログラマの書く文章

オープンソース系の開発者さんのWeb日記は、総じて文章も読みやすいですね。
たしかに。…考えてみれば、コンピュータなどという物分りの悪すぎる輩ですら適切な作業が出来るぐらいに噛み砕いた指示書を書けてしまう人達だもの。人間にとって判りやすい文章を書くなんて、おちゃのこさいさい、なのかも>プログラマ。逆に言うとプログラマの書いた文章を理解できない人間の脳味噌はコンピュータにも劣る *1 脳味噌ということでせうか。ガビン (;´Д`)

利用してるコンピュータ言語によって思考も変わってくるんだろうか :

blogの世界では、利用ツールによって思考にも制約がつく、という話があるけど。プログラマの世界でも同じだろうか。アセンブラ使い、C使い、Ruby使い、それぞれの思考には異なる制約がついてたり。なんだかこのへん既に誰かが考察してそうな予感。

*1: この場合、「コンピュータより物分りが悪い」という意味。

この記事へのツッコミ

Re: プログラマの書く文章 by otsune    2004/02/16 18:01
http://www.rubyist.net/~matz/slides/oscon2003/mgp00011.html
RubyのMatzさんがスライドで「使っている言語で思考法が変わる」ということを書いています。
Re: プログラマの書く文章 by mieki256    2004/02/18 01:27
> RubyのMatzさんがスライドで「使っている言語で思考法が変わる」ということを書いています。

おお。Rubyの神様がそのような事を仰っていたとは。
さすがに言語を生み出す方ともなると、
そのあたりは自覚・認識した上で作業してるのですな。なるほど…

>スライド
飛んでみたら英語で書かれていて思考停止してしまいました。
どうやら、
「そもそも言語を知らないと、制約どころか思考そのものが停止する」
とも言えそうです(爆) <なんだか話がズレてるような。

#4 [seiji] 一人につき、一生に一回だけなら買春してもいい事にすれば問題解決かもしれない

現在の売春防止法は、国家の制定した法律をきっちり守る生真面目な市民性を持ちながら、しかし同時に異性から全くモテナイ種類の男性諸氏に対して、「お前等一生チェリーボーイ(以下CB)で居やがれ」と国家権力でもって強制的に、生物のオスとしての尊厳を著しく損ねる状態を維持させる結果に繋がってるという弱者イジメの恐ろしい法律なわけでありますが。 *1 もしかすると「一生に一回だけなら金銭によって異性から相手してもらってもOKですよ」という権利を与えれば全ての問題は解消するのかなと思ったり。

シミュレーションしてみる。例えばこんな世界。20歳を過ぎ、かつ、未だ体験の無い男性は、自治体窓口に、未だCBである事を明らかにする書類を提出するよう義務付ける。CB証明書類を受け取った自治体は、「そうですか。貴方の容姿や性格から判断するに、もしかすると貴方はこのまま一生CBである可能性が非常に高いですね。それは国家としても個人に対しあんまりにあんまりな処置なので一度だけなら買春を認めましょう」と「一回だけならOK券」(あるいは許可コード)を当人に渡す。券を貰った当人は、その手のサービスを行ってる店、もしくは個人を自分で探し、店(もしくは相手)の同意を得た上で、当人と相手の健康状態に問題が無い事を示す必要書類と共に「この店(もしくは相手)でCBを捨てたいです」と表明した書類を自治体の窓口に提出。自治体は、書類提出日から何日後までにCBを捨てること、及び、行為が終わったら速やかに券を返却する旨を当人に指示。滞りなく儀式が終わり当人が自治体窓口に券を返却したら、自治体は当人の住民記録に「平成x年x月x日、CB卒業」と記録してこの件は一件落着。もちろん、券を利用する前に婚姻届などが提出された場合、夫婦間ではそれら行為が行われるのが当然であろうから券は返却されなければならないし、券を所有してなかったり必要な書類を提出せず買春行為をしていた場合今までどおり逮捕、みたいな。…うむ。コレ結構イケるんじゃないかい。現行の売春防止法に特例として追加するだけで済むから国家が限度無く売春に許可を与える結果には繋がらず不用意にその範囲を拡大させる事にはならないし、しかも生真面目君達が合法的にそれら権利を行使しようと必死になって店や個人を調べ出し報告してくれるわけだから自治体・国家もどこで何が行われているか労せず把握する事ができて現在よりも厳しい取締りが可能な状況になる。更に、それら生真面目君達の内面で大変なコンプレックスになっていた問題が雲散霧消するわけだから、彼等の気持ちも晴々として仕事や学業に対して更なる集中がなされ、成果向上も期待できる。また、気分の高揚で消費活動も活発になるから内需拡大も期待できるわけで、それが日本全国で行われるのだから日本経済にとってはプラスになるのです。うむ。これこそ最適解ではないか。素晴らしい。まじめにふまじめひらめいた。

時々不安になるのだけど。まさかオイラがこの手の文章を100%本気で書いてるとは思われてないだろうなぁ。念の為に書いときますけど、冗談:本気=1:9ぐらいですよ。って俺めっちゃ本気やんけ! 間違えました。冗談:本気=9:1ぐらいな感じで。
*1: だって、金でも出さなきゃ相手にして貰えないようなダメ男達が、金で云々の選択肢を禁止されちゃったら、他にどんな手があるというのよ。

この記事へのツッコミ

Re: 一人につき、一生に一回だけなら買春してもいい事にすれば問題解決かもしれない by otsune    2004/02/16 18:06
ビートたけしがオールナイトニッポンで「男性器は買い取り制にして、ちゃんと働かないとセックスが出来ないようにすれば若者が活気付く」とネタを言っていました。
個人的に「どうして援助交際をしちゃいけないの?」という若い女子の疑問に「国が税金を取れないから」と答えようと考えているオレだったりしますが。
意外と法案を通す右側の人たちは「若者が簡単に買春できないように厳しい社会になればいいんだ」と本気で考えていそうです。
Re: 一人につき、一生に一回だけなら買春してもいい事にすれば問題解決かもしれない by mieki256    2004/02/18 01:38
> 男性器は買い取り制にして

アハハ。いや、それってかなり名案のような。
そうなったら、男は皆、必死で働くよなぁ。

もしも、ビートたけしみたいな人が王様になって、
某国の将軍様のような権力を持ってたら、
日本は、単純で、判りやすくて、どこよりも活気があって、
とても面白い国になってたかもしれませんな…

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

#1 モデムは明日届くらしい

親父さんがYahooBBに連絡したところ、明日モデムが届く、とのこと。発送が13日か14日ということだったのだろうか。さてはて。

SEED。ヒゲ付きハロ… _

#2 [anime] ヒゲハロ

SEED。ヒゲ付きハロに命令すると、ハロの大群が周囲から消える描写が。これは、∀信者・富野信者は自分達の目の届かないところで勝手に騒いでてくれウザイんだよ、というスタッフからのメッセージだろうか。しかし∀信者はガンダムらしさ云々に対し、むしろ大らかなところがあるから、作品の転がし方次第で熱烈なファン・応援者になってくれる可能性が非常に高い層だと思うのだが。どこかもったいない気もする。もっともあれだけ周りで騒いだら、たとえそれが好意によるものだとしてもたしかにうっとおしい。

2002/02/15(金) [n年前の日記]

#1 サーバをちょこちょこ

サーバをちょこちょこ弄ってました。
ソフトのアップデートとか。
これで少しは安定してくれるといいけど。
kernelをアップデートしないとアレかな…(泣

先日、ping云々って書いてたんですが…
考えてみたら、外部からアクセスした場合、サーバじゃなくて、ルータが返事するだけじゃないかと(爆)
バカですね>自分


「PCが突然再起動する。何とかならないか」
と尋ねられたんですが…なんかハードっぽいねぇ…
電源? M/B? ビデオカード? 自分如きには見当がつかない。
力になれなくて申し訳無いです。

…そういやパーツの型番聞くの忘れてた(爆)
知ってれば、多少は調べようもあったか…失敗した。

Athlonはトラブル話よく聞きますね。
枯れたパーツ(?)で組んだ方が結果的には良いのかな。

そういや、ウチの親父さんのPCも調子悪い。
HDDアクセスが妙に遅いときがある。
HDDの寿命なのかな…そんなに古かったかな?
今度、scandisk全部かけてみよう。

2001/02/15(木) [n年前の日記]

#1 霊能力者と24fps化の謎

「アンビリーバボー」の心霊写真特集を見ていて思ったんだけど。
霊能力者って女性多くない?
なぜでしょうねぇ…

ていうか「霊」って結局は人が作ってるような気がする。
いろんな意味で。

24fps化がどうも上手くいかない>vob→avi変換

ふと疑問が。
24fpsのaviと言っても正確には23.976fpsらしく…でもフィルムは24fps。
すると計算上、今の24fps化作業って、
125秒3000コマのフィルム映像→
125秒3747フレームのビデオ映像→
125秒2997フレームのavi映像、
…に変換してることになりません?

巷では、『24fps化処理は、5コマ→4コマの処理と同義』という説に基づき、各ツールが24fps化処理をしてるようですが。
そんな単純な話じゃないような。

上の計算が正しければ、理想的に処理が進んだとしても、2分5秒おきに3フレーム足りなくなるはず…
その3フレーム分は2分5秒中にまんべんなく、しかも『インターレス』映像として紛れてる…
コレを復元するの、かなりの難題なのでは。
しかも通常、理想的な24fps→29.97fps変換自体がホントに出来てるのか、そこからして怪しいし。

自分、どこかで勘違いしてる?

何にしても24fps化作業はメンドクサイ。
ツールの処理アルゴリズム情報が全く流れてないのが困る。
内部で何やってるかわからんから、各パラメータの意味も不明。
その処理部分だけでも、プラグイン等で独立して作成できれば、多少は新しいアルゴリズムが産まれる可能性もあるだろうけど。
現状そうなってないし。
すると結局、最後は手作業なのか。

何の為のコンピュータなんだ。
↑それ以前にPCで動画を扱うメリットはどこに…(爆)

関係無いけど、遥か昔、ゲームデモ用のパッド入力データを手作業で圧縮させられてた新人プログラマーさん(当時)を思い出したり。
副部長さん(当時。プログラマー上がり)、怒ってたっけ…そりゃ怒るよなぁ…
でも未だに、分野は違えど、この手のトホホ話はあちこちに転がってる気が。

何の為のコンピュータなんだ。

2000/02/15(火) [n年前の日記]

#1 (NoTitle)バイファム作るのヤメ...

バイファム作るのヤメ。資料無いし。
で、Shadeマニュアル再読。なんか見忘れてる情報がないかと思って。とりあえずShadeでポリゴンメッシュは手を出しちゃいかんかもとか思ったり。

その後、いよいよCCさくらにでも挑戦しようかとアニメ雑誌を漁り参考資料を発掘、スキャンしてPhotoshop上でテンプレート画像作成、とかやってたんですが…
正面顔と横顔の、目鼻の位置が全く違うんであります。どひぃ
まぁちょっぴりそういう気はしてたけど、ここまで違うとは…みたいな。今までCCさくらのフィギュアを見ても、「どうもイマイチ似てないな」と思ったりしてましたが、なんか理由がわかったような気が。おそらくですが、正面、横、どっちかに似せるともう片方が著しく異なったモノになってしまうのですね。なんてこったい。

会長さんからアニメビデオが届いたです。ワーイ \(^o^)/
でも結構量あるです… (´Д`;)
あ、明日あたりdung氏のところにその前の分を発送するです。待たせてスマンです〜 m(_ _;)m

なんかガンガン雪が降ってるにゅ。

1999/02/15(月) [n年前の日記]

#1 (NoTitle)最近Win98の起動時に1...


最近Win98の起動時に1/2の確立でエラーが出る。
一度エラーがでると、再起動しても必ずレジストリチェッカで引っかかり、
なんとか正常起動させるまで、30分はかかってしまう。
(どのファイルのどのあたりに、正常起動できなかったという情報が入るかがわかれば
そんなに苦労はしないんじゃないかと思うのだけど…誰か知りませんか?)

しかし、今回はさらに危機的状況。
HDから「ムボボボボ」と異音が!
マザーボードも「ピーポプー」とか愉快な音色を!
FIREBALL危うし!
とりあえず1時間ぐらい色々試してなんとか起動させ、
もう一つのHD(8GB)に FIREBALL の中のファイルを全部バックアップ。
しかし…さあ、これからどうしよう?
容量的には8GBのHD一つで、Win98もアプリもデータも余裕で全部入るけど、
入れ替え作業を考えると…。
…やっぱり、HDを新規購入かな…。

本を読んでたら、極端なタコアシ配線がマシンの動作を不安定にさせる場合も
あるとの記事を発見。
思わず視線を移すと、そこにはこんもりと、電源コードとアダプターの山が…。
てなわけで、少しでも不安要素は無くそうと、近くのコジマ電気へ。
配線を変更すべく、さまざまな電気関係アクセサリーをGETだぜイエイエイエイエイエイエ〜♪

ついでに本屋へも立ち寄る。コンピュータ関係のコーナーにいくと
そこには既に前号の WinGraphic と 二ヶ月前の AGOSTO(×3)が。
…なんてのんきな商売しているのやら…。

ついでに近くの古本屋へ。
中古ゲームを見ているうちに、ついフラフラと
PSのR4と、SSのヴァンパイアセイヴァーをGET。
帰ってきてから思う。
…こんなものにお金を使うぐらいなら、HD新規購入を悩む事なんてないよな。トホ。


以上、26 日分です。

過去ログ表示

Prev - 2024/04 - 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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project