mieki256's diary



2024/03/16() [n年前の日記]

#1 [prog] C言語とOpenGLで疑似3D道路の描画実験中。その3

Windows10 x64 22H2上で、C言語 + OpenGL 1.1 + glfw を使って実験中。疑似3D道路を描画してみたい。

道路の脇に立っている、反射板がついた棒っぽいものを描画したい。が、アレの名前が分からない。試しに Microsoft のAI、Copilot に尋ねてみたところ、「それは『デリネーター』『視線誘導標』と呼びます」と答えてきた。ググってみたら、たしかにソレであってるっぽい。

_視線誘導標(デリネーター) | 交通安全対策製品 | 積水樹脂株式会社
_視線誘導標(デリネーター)とは/視線誘導標設置基準 カシムラ
_デリネーターについて | 反射材 製造・販売|DM-JAPAN

英単語としては Delineator と書くらしい。

ひとまず表示してみたものの、どうもしっくりこない。全体的に画面をスッキリさせたいと思っていたのだけど、デリネーターを表示してしまうと、なんだかかえってごちゃごちゃしてしまう気がする。その手の視覚情報はバッサリ削ったほうがいいのだろうか…。

2023/03/16(木) [n年前の日記]

#1 [zatta] Seriaで色々買い物してきた

Seriaで、コンセント関係、L型金具等々を購入。後でまた欲しくなるものがあるかもしれないので一応メモしておく。
クランプフックは、PCデスクにつけたかったのだけど…。PCデスクの板+パイプは45mmの高さがあったので、試してみたものの、厚みが30mmまでのこの製品はつけられなかった。残念。とりあえずパイプにつけて、ヘッドフォンのぶら下げ用にしよう…。

L型金具とクッションスポンジは、外付けHDDの固定/転倒防止に使う予定。机の上に貼り付けてある、すのこにネジ止めして、外付けHDDケースを挟み込んで、地震が来ても横方向に倒れないようにしたい。ただ、他に固定方法は無いものかと…。各HDDは横幅が違うから、ある程度調整ができたほうが嬉しいのだけど…。数cmぐらいのミニミニ突っ張り棒、みたいなものがあったりしないかな…。あるわけないか…。

2022/03/16(水) [n年前の日記]

#1 [nitijyou] 夜中に地震

夜、11:30頃、福島県沖で地震。震度6強。

PCで作業中、緊急地震速報を受信できるソフト、Kiwi Monitor が反応して、予測で震度4が表示されてこれはヤバイと部屋の入り口で揺れが収まるのを待ったけど…。かなり長い時間、強い揺れ。どうも2回揺れて、2回目のほうが大きかった気がする。さすがに今回はいよいよ家が倒壊するのではないかと思えたほどの揺れで気が気じゃなかった。

部屋の中のPCデスク、AVラックは位置が大きくずれて、かなり重いはずのスチール製デスクすら位置がずれてしまった。PCデスクやAVラックはキャスター付きだから元の位置に戻せそうだけど、スチール製デスクは自力で動かせる気がしない…。

部屋の隅に積み重ねてあった段ボール箱は、以前大きな地震が来た時に落下していたので、対策として滑り止めシートを敷いてから重ねていたけど、そのせいか今回は崩れずに済んだ。が、全体的に壁側に倒れてしまった…。重さで下のほうの箱が歪んでしまっているからだろう…。

外付けHDDは、100円ショップで買ったすのこに上に置いて、紐で固定して、すのこをスチール製デスクに養生テープで貼り付けてあったのだけど、今回の地震で紐が外れてしまって、上部にハメ込んであった空冷ファンアダプターも外れてしまった。中のHDDは…生きてるだろうか…。

玄関に置いてあった鉢植えが2つ落下して、玄関が一面土だらけ。また、ガラス製の花瓶も落下してガラスの破片だらけに。朝になったら更に被害状況が分かってくるかもしれない…。

昨日、サイエンスZEROの地震予測特集回を見て、「そのうちまた絶対地震が来るだろう」などと感想を書いた次の日にこんな大きい地震が来るとは…。

2021/03/16(火) [n年前の日記]

#1 [zatta] 人間を動物と結びつける発言はとにかく注意

思考メモ。

ちょっと気になるニュースを見かけた。

_「アイヌの人々傷つける不適切な表現」日本テレビに厳重抗議 | NHKニュース

「不適切な表現」と言うけれど、具体的にはどういうことをやらかしたのだろう。そこが分からないと判断のしようがないなと。

そんな疑問が湧いてググってみたけど、大半のニュース記事は「不適切な表現」としか書いてなくて。何をしたのかがそもそも分からなければ、また同じことを誰かが何度もやらかすのでは…? これはこれでマズいんじゃないか?

しつこくググってたら、発言内容が分かった。

_日テレは「スッキリ」でのアイヌ差別発言を検証し、説明責任を果たせ - 田中駿介|論座 - 朝日新聞社の言論サイト

正直、一瞬、「え。只の駄洒落じゃん」と思ってしまったのだけど、以下の解説記事を読んで、「ああ…そういう歴史があったのか…。それはいかん。ピンポイントで最悪なことをやっちゃったんだな」という認識に。

_和人はアイヌをどう差別した?大和朝廷の頃から振り返る1,000年以上の歴史 - BUSHOO!JAPAN(武将ジャパン)

誰でも思いつく安易な駄洒落だからこそ、当時は広まって使われてしまったという経緯があるのだろう…。簡単で、シンプルで、くだらないネタだからこそ、それこそ子供ですら使えてしまって、被害を拡大させるのだな…。たぶん。

個人的には、漫画「ゴールデンカムイ」の中で、わざわざ説明していた差別表現だったということに、結構ショックを受けてしまった。そのあたり、自分も一応漫画原作を読んでいたはずなのに、全く記憶に無い…。アニメ版はそのあたりを映像化していただろうか。それも記憶が無い…。コレはマズイ…。

これはつまり、やられた側はずっと覚えてるけど、やった側は全く覚えてない・気にも留めてないという ―― よくあることではあるけれど、結構最悪な状態ではないのかと…。

自分達の先祖が今まで一体どんなことをやっちゃってきたのか、そのあたり、経験としては持ってなくても、せめて知識としてはそこそこ持ってないと…。そのあたりを知らないというのは、それはもはや、日本人を名乗る資格が無いとすら言える。他国の人なら知らなくても仕方ないけど、自分達は一応(?)日本人なのだから、御先祖様がしてきたことを知ってて当たり前だよなと。無知であったことに恥ずかしさを感じねばいけない話だろうと。自分が日本人であるならば、だけど。

ということで、自分も、自分を恥じた次第。こういう無知は許されない。「差別意識はなかった」なんてのは、言い訳にはならない。日本で生まれて、日本で育った日本人なら、知識として持ってないと。まあ、日本人じゃないなら話は別だけど…。

考えてみたら、相手を人間扱いせず、動物と結びつけた発言をするのは、差別表現と言うか、侮辱をする際の常套手段なのだよな…。目の前で発言してる人を見たわけではなく、漫画や映画等で見かけたソレではあるけれど、例えば…。 日本人も含む黄色人種が、白人から 「黄色い猿(イエローモンキー)」呼ばわりされたり。 ある種の状態になっている(男性|女性)を 「盛りのついた(犬|豚)」と呼んでみたり。 リーダーのポジションにある人物を 「猿山の大将」と喩えてみたり。 そんな感じで、色々なパターンを思い出してしまう…。

つまり、「人間を動物に喩えるネタ」を思いついた時は、「それ、大丈夫か? 発信してもいいネタか? ホントに?」と常に疑わないといかんのだろうなと。特に、公共の電波を使える立場であれば…。いや、Webも同じか。気を付けないと…。

とは言え、そのあたりを極度に不安視してしまって、人間を動物に喩えるのは全部ダメだ、許されないのだ、という主張にまでなってしまうと、当然弊害も出てくるだろうなと…。例えば、宮崎駿監督が関わっている、犬の「名探偵ホームズ」や、「紅の豚」等々、あるいは、俳優の香川照之さんが演じるカマキリ先生だって、TV放送できないことになってしまう。さすがにそこまで行くと、それはそれで何かがおかしい。

このあたり、セーフとアウトの境界線はどこにあるのだろうか…?

ネガティブな方向だけとは限らないのだよな。 :

人間を動物に喩えると言っても、必ずしも侮辱表現になるとは限らないのだよな…。
  • 「獅子奮迅の活躍ぶり」とか。
  • 「眠れる獅子」とか。
  • 「龍虎対決」とか。
  • 「彼は一匹狼」とか。
  • 「ボクの可愛い子猫ちゃん」とか。
他にも色々あるだろうけど。

良い印象を与える動物と、悪い印象を与える動物があって、前者に喩える場合は問題は起きないのだよな…。なんだかちょっと難しいなあ…。

まあ、どうしても何かの動物に喩えてみたくなった時は、「なにそれ、カッケー!」と思わせる方向で喩えるよう意識しましょうや、ってことで…。

2020/03/16(月) [n年前の日記]

#1 [python] cx_FreezeでPythonスクリプトをexe化したけど厳しい

PySide2 を使った Pythonスクリプトを、cx_Freeze を利用することで exe化してみたけれど、これがなかなか厳しい。簡単な Helloworld 程度のスクリプトですら、exe化すると、必要なファイル群が全部で345MBぐらいになる…。

環境は Windows10 x64 1909 + Python 3.7.7 64bit + PySide2 5.14.1 + cx_Freeze 6.1。

cx_Freezeでexe化。 :

cx_Freeze に渡した setup.py は以下。
import sys
from cx_Freeze import setup, Executable

script_name = "01_qtquick_load_qrc_py.py"
app_name = "01_qtquick_load_qrc_py"
ver_name = "0.1"
desc = "converter"

# packages = []
# includes = ["PySide2.QtCore", "PySide2.QtGui", "PySide2.QtQml"]
# excludes = []

base = None

# CUIなら以下のifをコメントアウト
if sys.platform == 'win32':
    base = 'Win32GUI'

exe = Executable(script=script_name, base=base)

setup(
    name=app_name,
    version=ver_name,
    description=desc,
    # options={
    #     "build_exe": {
    #         "includes": includes,
    #         "excludes": excludes,
    #         "packages": packages
    #     }
    # },
    executables=[exe]
)

exe化は以下。
python setup.py build

buildというディレクトリが作成されて、exe.win-amd64-3.7/ 以下に .exe ができている。 exeの実行に必要なファイル群は、lib/ 以下にコピーされている。

仮想環境を作成して試してみた。 :

余計なモジュールがたくさん入っているのではないかと思えてきたので、試しに仮想環境を作って試してみたが、345MB が 344MB になった程度だった。効果がほとんどない…。そもそも、PySide2 のフォルダだけで、325MB もあるし…。

一応、仮想環境を利用する手順をメモ。

仮想環境の作成。
python -m venv myenv

仮想環境に切り替え。
.\myenv\Scripts\activate

Pythonのバージョンを確認。
python -VV

仮想環境の終了。
deactivate

仮想環境に必要なモジュールをインストール。仮想環境に切り替えて、pipをアップグレードしてから、必要なモジュールをインストールしていく。
.\myenv\Scripts\activate
python -m pip install -U pip
python -m pip install PySide2
python -m pip install cx_Freeze

以下を参考にして作業しました。ありがたや。

_venvによるPythonの仮想環境構築(Windows) - Qiita

cx_Freezeに渡すオプションを変える。 :

cx_Freeze はバージョンが上がるたびに、「せっかく作ったexeが動かないのでは意味が無い」的に、かき集めてくるファイルを増やすような実装になっていったらしいのだけど。以前と同様の動作をさせるオプションとして、zip_include_packages なるオプションが用意されているようで。

_cx_Freeze 5.0.1 and PyQt - freezing copied too many files - Issue #256 - anthony-tuininga/cx_Freeze

試しに指定してみたのだけど…。180MBぐらいまでサイズが減ったものの、「Qtがちゃんとインストールされてないから動かないよ」と文句を言って終わってしまうexeが出来上がってしまった…。これでは意味が無い…。

2019/03/16() [n年前の日記]

#1 [ubuntu][ruby] Ubuntu 18.04上で複数のRubyを共存

Ubuntu 18.04 上では標準で Ruby 2.5.1 がインストールされるのだけど。Ruby 2.4.x をインストールして動作確認したい場面が出てきたので、バージョンが異なる複数のRubyを共存させる方法があるのか調べたり。

Windowsの場合なら、 _pik_uru を使って複数のRubyを共存させて切り替えて使うことができるけど。*NIX の場合は、rbenv を使うのが一般的らしい。

_rbenv/rbenv: Groom your app’s Ruby environment

Ubuntu なら、apt でインストールできるパッケージが用意されているようだけど。試したところ、設定方法が今一つ分からなくて。

ググった感じでは、最新の rbenv を github から clone して導入する場合がほとんどらしいので、それらに従って作業し直した。

rbenvのインストール。 :

まず、rbenv の動作に必要になるらしいパッケージをインストール。
sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
sudo apt install libreadline-dev
libreadline-dev と libreadline6-dev がダブってる感じがするのだけど、いいのだろうか。

github から rbenv を clone
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

~/.bashrc だの ~/.bash_profile だのに設定を書き込み。
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

ログアウトして、再度ログイン。

状態を確認。
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/USERNAME/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /home/USERNAME/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20190314-2-g5a7c1e4)
Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
「OK」がたくさん表示されてるから、これでいいのだろう…。

rbenvの使い方。 :

インストールできるRubyのバージョンを一覧表示。
rbenv install --list
rbenv install -l

Ruby 2.4.5 をインストールしてみる。結構時間がかかる。
rbenv install 2.4.5
rbenv rehash

インストールできたRubyのバージョンを一覧表示。
$ rbenv versions
* system (set by RBENV_VERSION environment variable)
  2.4.5

現在のRubyのバージョンを表示。
$ rbenv version
system (set by RBENV_VERSION environment variable)

異なる Ruby のバージョンに切り替えてみる。
$ rbenv shell 2.4.5

$ rbenv version
2.4.5 (set by RBENV_VERSION environment variable)

$ ruby -v
ruby 2.4.5p335 (2018-10-18 revision 65137) [x86_64-linux]

元のバージョンに戻す。
$ rbenv shell system

$ rbenv version
system (set by RBENV_VERSION environment variable)

$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]

切り替える際は、global / local / shell の指定が使えるらしい。
  • rbenv global 2.4.5 : デフォルトで使うRubyのバージョンを指定。
  • rbenv local 2.4.5 : カレントディレクトリ内で使うRubyバージョンを指定。
  • rbenv shell 2.4.5 : 現在のシェルで使うRubyバージョンを指定。

参考ページ。 :


2018/03/16(金) [n年前の日記]

#1 [ruby][mruby] Cで書いたプログラムからmrubyを呼び出せるか実験

SDLを使ったCのプログラムに、mrubyを組み込んで使う事例を、DXRuby作者様が昔公開してくれていたので、それのSDL2版を書いて試そうとしていたのだけど。

_SDL_imageとmrubyを使ってみた - mirichiの日記

そもそも、ビルドの仕方が分からない…。ので、まずはシンプルな形でビルドの仕方を確認しようと。以下の記事を参考にしつつ作業。

_手探りでおぼえるmruby その1:クラスを定義する、メソッドを定義する - エンジニアのソフトウェア的愛情
_mrubyで書いたコードをC言語内で読み出す方法 - Bye Bye Moore
_Hello World - mruby/mruby Wiki

環境は、Windows10 x64 + MSYS2。

ディレクトリ構成。 :

以下のような構成にしてみたり。
~/prg
|
+---- mruby
      |
      +---- callmruby
      |
      +---- mruby

~/prg/mruby/mruby/ の中に、 _mruby 1.4.0 のファイル一式を置いた。

MSYS2 のシェルを起動。スタートメニュー内の、MSYS2 MinGW 32-bit (32bit) を実行。

カレントディレクトリを変更して、makeを実行してビルド。
cd ~/prg/mruby/mruby/
make

ビルドが成功すると、以下のような状態になる。
  • ~/prg/mruby/mruby/include/ 内に *.h ファイルが入ってる。(mrubyをDL・解凍した時点で既に入ってる)
  • ~/prg/mruby/mruby/build/host/lib/ 内に、libmruby.a ファイルが出来上がる。この .a ファイルを、Cで書いたプログラムのビルド時にリンクする。

mruby はビルドできたので、callmruby/ の中で、CソースやMakefileを用意して、mruby を組み込めそうか実験していく。

mrubyを呼び出すだけのCプログラムを書いてみる。 :

callmruby/ の中に、callmruby.c というファイル名でCソースを用意。

_callmruby.c
#include "mruby.h"
#include "mruby/compile.h"
#include "mruby/proc.h"
#include <stdio.h>

int main(int argc, char *argv[])
{
  // open mruby state
  mrb_state *mrb = mrb_open();
  if (mrb == 0)
  {
    printf("cannot open mruby state.\n");
    return -2;
  }

  // file open
  FILE *fp = fopen("main.rb", "r");

  // run mruby script
  mrb_load_file(mrb, fp);

  // file close
  fclose(fp);

  // close mruby state
  mrb_close(mrb);
  return 0;
}

上記ソースは、main.rb を読み込んで実行するので、main.rb も用意する。

_main.rb
puts "Hello, I am mruby."
puts "Ok. mruby, your number is 7. instrument recorder on."
puts "Permission to sortie."
puts "Permission granted. GOOD LUCK, mruby."

Makefile も作る。Makefile てのは、make を実行した際にどんな処理をするのか、ルールを記述するファイル。

_Makefile
TARGETS = callmruby

all: $(TARGETS)

SDL_PREFIX  = /mingw32
# SDL_PREFIX  = /mingw

MRB_HEAD    = ../mruby/include
MRB_LIBS    = ../mruby/build/host/lib

# CG_LIBS     = 

CROSS_COMPILE = $(SDL_PREFIX)/bin/
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++

CFLAGS = -g -Wall -I$(MRB_HEAD)
CXXFLAGS = -g -Wall -I$(MRB_HEAD)

LIBS = -L$(MRB_LIBS) -lmruby -lpthread -lm
LDFLAGS = -Wl,-rpath -static -static-libgcc -static-libstdc++

clean:
	rm -f *.o *.a *~ $(TARGETS)

$(TARGETS): $(TARGETS).o
	$(CXX) -o $@ $^ $(LIBS) $(LDFLAGS)

  • mruby の includeフォルダ、libフォルダは、相対パスで指定してる。
  • LIBS に、-L$(MRB_LIBS) -lmruby を記述して、mruby をリンクするように指定してる。
  • MSYS2 でビルドしたプログラムは libwinpthread-1.dll を要求するので、-lpthread と -static を記述して、スタティックリンクをするように指定してる。

ビルドする。
$ cd ~/prg/mruby/callmruby/
$ make
/mingw32/bin/gcc -g -Wall -I../mruby/include   -c -o callmruby.o callmruby.c
/mingw32/bin/g++ -o callmruby callmruby.o -L../mruby/build/host/lib -lmruby -lpthread -Wl,-rpath -static -static-libgcc -static-libstdc++

もし、上手く行かなかったら、以下を実行することで、作業ファイル・出力ファイルを全部消すことができる。
make clean

出来上がった .exe を実行してみる。
$ ./callmruby.exe
Hello, I am mruby.
Ok. mruby, your number is 7. instrument recorder on.
Permission to sortie.
Permission granted. GOOD LUCK, mruby.
Cで書いたプログラムを実行したはずなのに、main.rb に書かれた処理が実行されて、メッセージが出力された。

これで、mruby をCプログラムの中に組み込んでビルドすることはできた。ここまでは、なんとかなった…。

少し説明。 :

Cプログラムから mruby を使うときは、
#include "mruby.h"
#include "mruby/compile.h"
#include "mruby/proc.h"
を書いて…。

  mrb_state *mrb = mrb_open();
で、mrubyの何かを開く、のかな。mrb_state ってなんだか分からんけど、コレを使って mruby のスクリプトを動かすのだろう…。

_mrb_state 解説(必ずしも徹底ではない) - Qiita

mrubyスクリプトが書かれたファイルを読み込んで実行するだけなら、以下を使うのだろう。
  FILE *fp = fopen("main.rb", "r");
  mrb_load_file(mrb, fp);
  fclose(fp);
fopen()、fclose() はCのソレで、ファイルを開いたり閉じたりする。mrb_load_file() で、開いたファイルを mruby に渡して、実行。なのかな。

Cにおいて、開いた何かしらは、えてして閉じないといけない。mruby も開いたのだから、閉じる。
  mrb_close(mrb);

#2 [nitijyou] 某所から連絡

朝方、某所から連絡。昨日のトラブルは、NTT側で、基板が故障していたらしい…。そんなこともあるのか…。何にせよ問題が解決したようで一安心。詳細はGRPでメモ。

2017/03/16(木) [n年前の日記]

#1 [ruby] 3Dモデルデータファイルを読み込んでRubyから使いやすい形に整形するRubyスクリプトを書いた

Ruby + gosu + opengl で実験する際、一々モデルデータを紙に描いて座標を決めて配列にしていくのが面倒臭かったので、Wavefront形式(.obj)の3Dモデルデータファイルを読み込んで、Rubyから使いやすい形に整形して標準出力に出力する Rubyスクリプトを書いてみたり。

_mieki256/tinywavefrontobj

tinywavefrontobj.rb というファイルをダウンロードして実行すれば使える、はず。

Wavefront形式の全ての属性に対応してるわけではないけれど、実験用の頂点配列、法線配列、uv配列、面配列(頂点インデックス配列)をちょこっと作りたい時にはひとまず使える、のではないかなと。

使用例その1。 :

例えば、blender でこういうモデルデータを作成して、Wavefront(.obj)形式でエクスポート。

tinywavefrontobj_ss01.png

ちなみに、Wavefront形式は、三角形ポリゴンと四角形ポリゴンを混在できるのだけど…。後になってからRubyスクリプト側で、面配列(頂点インデックス配列)のみを眺めてそれぞれ三角ポリゴンか四角ポリゴンかを判別するのはおそらく不可能。故に、エクスポート時に「三角面化」にチェックを入れて、全てのポリゴンを三角ポリゴンにしちゃったほうがいいと思う。

tinywavefrontobj_ss02.png

tinywavefrontobj.rb を使って整形出力。
ruby tinywavefrontobj.rb sample.obj

こういう結果が得られる。
@vertexes = [
  1.0, -1.0, 0.0,  # 0
  -1.0, 1.0, 0.0,  # 1
  -1.0, -1.0, 0.0,  # 2
  1.0, 1.0, 0.0,  # 3
]

@normals = [
  0.0, 0.0, 1.0,  # 0
  0.0, 0.0, 1.0,  # 1
  0.0, 0.0, 1.0,  # 2
  0.0, 0.0, 1.0,  # 3
]

@faces = [
  0, 1, 2,  # 0
  0, 3, 1,  # 1
]
これをRubyソースに貼り付ければ実験に使えるだろうと。

jsonやyamlで出力。 :

json や yaml でも出力できる。

ruby tinywavefrontobj.rb sample.obj --json > sample.json
{"vertex":[1.0,-1.0,0.0,-1.0,1.0,0.0,-1.0,-1.0,0.0,1.0,1.0,0.0],"normal":[0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0],"face":[0,1,2,0,3,1]}

ruby tinywavefrontobj.rb sample.obj --yaml > sample.yml
---
vertex:
- 1.0
- -1.0
- 0.0
- -1.0
- 1.0
- 0.0
- -1.0
- -1.0
- 0.0
- 1.0
- 1.0
- 0.0
normal:
- 0.0
- 0.0
- 1.0
- 0.0
- 0.0
- 1.0
- 0.0
- 0.0
- 1.0
- 0.0
- 0.0
- 1.0
face:
- 0
- 1
- 2
- 0
- 3
- 1

Rubyスクリプト側で、例えば以下のような感じで書けば、jsonファイルを読み込んで、頂点配列、法線配列、uv配列、面配列(頂点インデックス配列)を得られる。
    require 'json'
    ...
    vertex_array = nil
    normal_array = nil
    uv_array     = nil
    face_array   = nil
    File.open("sample.json") { |file|
      hash = JSON.load(file)
      vertex_array = hash["vertex"]
      normal_array = hash["normal"] if hash.key?("normal")
      uv_array     = hash["uv"] if hash.key?("uv")
      face_array   = hash["face"]
    }
    ...
    if uv_array
      puts "use texture"
    end
    if normal_array
      puts "use normal"
    end

RUbyソース内から呼び出して使う。 :

以下のように書けば、Rubyソース内から呼び出して使うこともできる。
    require_relative 'tinywavefrontobj'
    ...
    o = TinyWaveFrontObj.new("sample.obj", true, true)
    vertex_array = o.get_vertex_array
    normal_array = o.get_normal_array
    uv_array     = o.get_uv_array
    face_array   = o.get_face_array
    ...
    if o.use_uv
      puts "use texture"
    end
    
    if o.use_normal
      puts "use normal"
    end

#2 [ruby] Ruby + gosu + opengl でプログラマブルシェーダを利用してみる

_算譜記録帳: OpenGLでの頂点データの扱いの変化 を参考にして、OpenGL 2.0風の書き方を ―― プログラマブルシェーダ(頂点シェーダ、フラグメントシェーダ)を用意して3D描画するRubyスクリプトを書いてみたり。

正直、自分の書いたソースはグチャグチャでアレなのだけど…。Web上で紹介されてるOpenGL関係のソースは、そのほとんどがおそらくC++で書かれてるっぽいので、「Rubyで書くとこうなるよ」てな例としてアップロードしておくだけでも多少は意味があるのかなと。

まずは三角形を描画。 :

まずは、三角形のみを描画してみる。

_gosu_opengl_20a.rb

こんな感じの結果画面に。
gosu_opengl20_ss01.png


ポイントになる部分だけをメモ。
  # プログラマブルシェーダの初期化
  def init_shader
    # 頂点シェーダ(Vertex Shader)のソース
    # gl_position に (x, y, 0.0, 1.0) を渡してる
    vert_shader_src_a =<<EOS
#version 120
attribute vec2 coord2d;
void main(void) {
  gl_Position = vec4(coord2d, 0.0, 1.0);
}
EOS

    # フラグメントシェーダ(Fragment Shader)のソース
    # gl_FragColor に (r,g,b,a)=(0, 0, 1, 1) を渡してるので、青一色になる
    frag_shader_src =<<EOS
# #version 120
void main(void) {
  gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
}
EOS

    # (r,g,b,a) の r,g をx,y座標で変化させるのでグラデーションになる
#     frag_shader_src =<<EOS
# #version 120
# void main(void) {
#   gl_FragColor[0] = gl_FragCoord.x / 640.0;
#   gl_FragColor[1] = gl_FragCoord.y / 480.0;
#   gl_FragColor[2] = 0.5;
#   gl_FragColor[3] = 1.0;
# }
# EOS

    # 頂点シェーダを設定
    # ----------------------------------------

    # 1. シェーダオブジェクトを作成
    vert_shader = glCreateShader(GL_VERTEX_SHADER)

    # 2. シェーダのソースを渡す
    glShaderSource(vert_shader, vert_shader_src_a)

    # 3. シェーダをコンパイル
    glCompileShader(vert_shader)

    # 4. 正しくコンパイルできたか確認
    compiled = glGetShaderiv(vert_shader, GL_COMPILE_STATUS)
    abort "Error : Compile error in vertex shader" if compiled == GL_FALSE

    # フラグメントシェーダを設定
    # ----------------------------------------

    # 1. シェーダオブジェクトを作成
    frag_shader = glCreateShader(GL_FRAGMENT_SHADER)

    # 2. シェーダのソースを渡す
    glShaderSource(frag_shader, frag_shader_src)

    # 3. シェーダをコンパイル
    glCompileShader(frag_shader)

    # 4. 正しくコンパイルできたか確認
    compiled = glGetShaderiv(frag_shader, GL_COMPILE_STATUS)
    abort "Error : Compile error in fragment shader" if compiled == GL_FALSE

    # 5. プログラムオブジェクトを作成
    @shader = glCreateProgram

    # 6. プログラムオブジェクトに対してシェーダオブジェクトを登録
    glAttachShader(@shader, vert_shader)
    glAttachShader(@shader, frag_shader)

    # 7. シェーダプログラムをリンク
    glLinkProgram(@shader)

    # 8. 正しくリンクできたか確認
    linked = glGetProgramiv(@shader, GL_LINK_STATUS)
    abort "Error : Linke error" if linked == GL_FALSE

    # 9. シェーダプログラムを適用
    glUseProgram(@shader)

    # 設定が終わったので後始末
    glDeleteShader(vert_shader)
    glDeleteShader(frag_shader)

    # シェーダに渡す属性のインデックス値(0,1,2,3等)を得る
    attr_name = "coord2d"
    @coord2d = glGetAttribLocation(@shader, attr_name)
    abort "Error : Could not bind attribute #{attr_name}" if @coord2d == -1
  end
OpenGL 2.0 でシェーダを用意する手順としては…。
  1. シェーダオブジェクトを作成
  2. シェーダのソースを渡す
  3. シェーダをコンパイル
  4. 正しくコンパイルできたか確認
  5. プログラムオブジェクトを作成
  6. プログラムオブジェクトに対してシェーダオブジェクトを登録
  7. シェーダプログラムをリンク
  8. 正しくリンクできたか確認
  9. シェーダプログラムを適用
更に、1から4までは、頂点シェーダとフラグメントシェーダの2回分、処理を行うようで。

_DXRubyのShader と同様なのだけど、Ruby + OpenGL を使って実験する際、Rubyスクリプトのソース内に、シェーダプログラム(GLSL)のソースを直接ずらずらと書けるあたりはありがたいなと。気軽に実験できるというか。

もう少し複雑な描画をしてみる。 :

正直なところ、シェーダをどんな風に書けばいいのかまだ全然分かってない状態なのだけど。以下の記事で参考として紹介されてるシェーダを使わせてもらって、もう少し複雑な描画を試してみたり。

_床井研究室 - 第1回 シェーダプログラムの読み込み
_床井研究室 - 第2回 Gouraud シェーディングと Phong シェーディング
_床井研究室 - 第3回 テクスチャの参照

Rubyスクリプトは、こんな感じに。

_gosu_opengl_20g_read_json.rb

  • jsonファイルになってるモデルデータは、tinywavefrontobj.rb を使って用意した。
  • 頂点シェーダのソースファイル(.vert)と、フラグメントシェーダのソースファイル(.frag)は、前述の参考記事内で紹介されてるものを利用させてもらって実験。

結果画面は、こんな感じに。



ということで、Ruby + gosu + opengl を使っても、OpenGL 2.0風の書き方はできるみたいだなと。

課題。 :

今回、マテリアル(材質設定)を一種類に決め打ちして描画したけれど。複数のマテリアルを使ったモデルデータを描画したい場合は、どういう書き方をすればいいのかなと…。

_glBegin と glEnd を使って描画した場合 は、処理が遅い代わりに、ポリゴン一枚ごとに材質設定をし直すこともできたので、複数のマテリアルを使っていても描画ができたけど。頂点インデックス配列を渡して一気に描画する場合は…。

もしかしてそのあたり、マテリアル毎に分割した頂点インデックス配列を用意して対応することになるのだろうか。それとも、「この面にはこのマテリアルを使う」てな指定も可能になる書き方があったりするのだろうか。マテリアル情報をVRAMに転送しておいて、マテリアルインデックス配列を渡して、みたいな。…そんなことできるのかな。

テクスチャを使ってる時と使ってない時で、違うシェーダを使って処理してるあたりも気になる。1つのシェーダでどちらにも対応できないものか…。

参考ページ。 :

#3 [prog] オンボードビデオ上でのVBOって意味あるのかな

ここ数日、OpenGL関係の勉強をしてるのだけど、なんとなく疑問が。

メインメモリ上に頂点配列その他を置いておくとアクセスが遅くなるから、GPUが管理してるメモリにその手のデータをあらかじめ転送しといてそっち使うと速くなるよ、ソレをVBOって呼ぶよ、みたいな話があるわけだけど。

今時のPCってオンボードビデオが多かったりするし、そのオンボードビデオはVRAMとしてメインメモリを使ってるわけで。そんな状況下で、GPUが管理するメモリ上にデータを転送してみても、速度の違いが出るのかなと。結局どっちもメインメモリを使ってるやん、と。VBOが有効だったのは、高速なメモリを入手するのがコスト的にちと厳しくてビデオカード上にしか載せられなかった時代、3D描画したかったらGPUが載ったビデオカードを増設するのが当たり前だった時代、そんな時代の話だったりしないのだろうかと。

もちろん今でもゴイスなビデオカードはフツーに売られてるし、複雑な3D描画をしてるゲームを遊びたいなんて時はデスクトップPCを買ってビデオカード増設して、てのが当たり前だったりするから、VBO的なソレがは有効な場面がほとんどやで、とも言えそうだけど。

でも、CPUの中にGPUまで入っていて、ソレを使って画面表示してるPC上では、どの程度意味があるんだろうと。意味があるとしたら、それは何故なんだろうと。CPUもGPUも同じ速度のメモリを使ってるはずなのに、どのあたりの仕組みで速度差が出てくるのだろう…。

いやまあ、「それなりのスペックのPCではそれなりの速度で描かれるけど、ゴイスなビデオカードを積んでるPCではゴイスな速度で描かれるのだから、後者を意識してソースを書くべき」という方針もアリなのかな。逆に、「今時皆が持ってるのはえてしてそれなりレベルのPCなんだから、それなりの速度で動いて、その代わりソースが書きやすければそれで十分じゃん」てのもアリかもしれないけど。

まあ、そんな疑問を持ちました。とメモ。

#4 [nitijyou] 親父さんが退院

手術も無事に済んで今日の午後退院。

もう1回手術しないといけないはず、なのだけど。何故か、次回対処すべき患部が、今回の検査中に見つからなかったそうで。造影剤が少なかったのか、それとも前回の手術で状態が変わったのか分からないとのことだけど、映像は撮れているので探してみるとお医者さんは言ってたらしい。どのみちしばらくしたら診察しないといかんので、その時には状況が分かるのだろう…。

2016/03/16(水) [n年前の日記]

#1 [prog] Processingでテクスチャマッピングをしたポリゴンを描画するテスト

ひとまず Processing を使って実験してみようかと。まずはポリゴンにテクスチャを貼れるかどうか試してみないといかんな、と思ったけどその前に、3Dで描画するアレコレを調べないと。

環境は、Windows10 x64 + Processing 3.0.2。

3D描画する際の基本的な書き方。 :

sketch_3d_test_box_ss.png
_sketch_3d_test_box (Processing.jsで動作する版)
// 3D BOX draw test

void setup() {
  size(400, 400, P3D); // P3Dをつけると3D描画ができる
}

void draw() {
  background(0); // 背景を黒に
  lights();  // ライト設定

  // 全体を移動
  translate(width / 2, height / 2);

  float mx = mouseX - width / 2;
  float my = mouseY - height / 2;

  // 全体を回転
  rotateY(radians(mx));
  rotateX(radians(-my));

  // 箱を描画
  box(150, 150, 150);
}
  • size() の3番目の引数に「P3D」をつけると、3D描画ができる
  • translate() や rotateX()、rotateY()、rotateZ() で、全体の移動や回転ができる。
  • lights() を呼ぶと、陰影をつけてレンダリングしてくれる。
Processing って、このあたり随分簡単にしてあるなと感心してしまったり。楽チンだ。素晴らしい。

テクスチャマッピングをしたポリゴンを描画。 :

sketch_texturepoly_draw_ss.png
_sketch_texturepoly_draw (Processing,jsで動作する版)
// テクスチャ付きポリゴンの描画テスト
// 四角形が三角形ポリゴン2つで描画されてるのが分かる

// Processing.js で画像ファイルを読み込みたい時は以下の指定が必要

/* @pjs preload="uvmap.png"; */

PImage img;

void setup() {
  size(640, 480, P3D);

  img = loadImage("uvmap.png");
}

void draw() {
  background(0);
  translate(width / 2, height / 2);

  beginShape(); // 図形描画開始
  texture(img); // テクスチャを指定

  // 各頂点の位置と、対応するテクスチャ座標を指定
  vertex(-300, -100, 0, 0, 0);
  vertex(-100, -100, 0, img.width, 0);
  vertex(-100, 100, 0, img.width, img.height);
  vertex(-300, 100, 0, 0, img.height);
  endShape();
  
  beginShape();
  texture(img);
  vertex(0, -100, 0, 0, 0);
  vertex(300, -100, 0, img.width, 0);
  vertex(250, 100, 0, img.width, img.height);
  vertex(100, 100, 0, 0, img.height);
  endShape();
}
  • Processing.js (JavaScript) を使ったスクリプトで、画像ファイルを読み込みたいときは、/* @pjs preload="uvmap.png"; */ といった指定が必要。コレをしないと loadImage() で画像ファイルを読み込んでくれない。ハマった。
  • beginShape() で図形描画を開始。
  • beginShape() には、beginShape(QUADS); 等も指定できるらしい。
  • texture() で、マッピングするテクスチャを指定できる。
  • vertex(x, y, z, u, v) で、頂点1つのx,y,z座標と、割り当てるテクスチャのu,v座標を指定。
  • endShape() で図形描画終了。
たしかにテクスチャマッピングができた。

しかし、右側のテクスチャは歪んでる。四角形1つを三角形2つで表現してますよーって時の歪みが出てるというか。

この手のテクスチャの歪みは2つあって。
  • 元のポリゴンは長方形だけど、回転を加えたり透視変換した際に見た目が長方形じゃなくなって歪む場合。
  • 元のポリゴンがそもそも長方形じゃないので歪む場合。
Processing 3.0.2 で試したところ、前者の場合はテクスチャが歪むことは無かった。透視変換して表示した際にテクスチャが歪んでしまう状態を補正するソレを _パースペクティブコレクト と呼ぶらしいけど、Processing 3.0.2 はパースペクティブコレクトとやらをちゃんとやってくれてるらしい。 *1

ただ、前述の図の右側は、後者の事例。元の図形がそもそも矩形(長方形)じゃないので歪んでる。この歪みを簡単に解決する方法は見つからなかった。何かを指定すればサクッと解決しちゃうのかなと期待したけど、そういう機能は用意されてないらしい。

じゃあ、どうやって解決したらいいのか…。今のところ、ポリゴンを分割するしかないのかなと思っているところ。

例えば DXRuby の Window.draw_morph も、四角形1つを三角形2つで表現してるけど、標準では縦横2分割 ―― 1枚のポリゴンを4分割して誤魔化して(?)いるし。たしかそのはず。

プレステ1で3Dゲームを作ってた頃も、こういう状態が頻繁に起きていて。せめて、視点に近いポリゴンだけでも分割して、とかやってた記憶があるのだけど。ググっても、当時のやり方が出てこないんだよな…。

*1: Processing も、昔の「P3D」モード = ソフトウェアレンダリングで処理してた頃は、ちゃんとやってくれなかったらしいのだけど。今の「P3D」はOpenGLを使ってるらしいので、そのあたりをちゃんとやってくれるようになったのだろうと想像。

#2 [neta] 無言の二人

夢の中でなんだか気になるやり取りを見たのでメモ。夢日記。

学生時代のサークル(漫研)の同窓会。女性先輩が「○○(女性)と○○(男性主人公)って、あの頃実は付き合ってたとかないよね」と質問。問われた二人は全力で否定。

どうしてそんなことを思ったのかと尋ねてみると、当時二人の書いてた文章内の記号の書き方がそっくりで、なんだかこの二人は怪しいと思った、という話で。それは…。当時二人が、とある漫画家さんのファンだったので、その漫画家さんの真似をしてその記号を書いてただけというオチで。

そもそも当時、付き合う以前の状態で…。サークル部室内で二人だけになっても、お互い一言も喋らず(「おはようございます」「お先に失礼します」ぐらいは言ってたかな…?)、原稿用紙やアイデアノートに向かって、ひたすらカリカリとペン先を動かし続ける、そんな光景で。

「ずっと無音でソレやってたの?」
「作業用のBGMは流れてましたよ。部室にカセットデッキがあったじゃないですか」
「ああ、ゴミ捨て場から拾ってきたやつ」
「違う! アレは○○先輩の寄贈品」
「アレって寄贈品だったの? スゲー汚いからてっきり」
「持ってきたときは壊れてたけど、○○先輩がバラシて直してくれたんですよね」
「直したって言っても、ローラー回すゴム取り替えただけだよ。でも1回じゃ直らなくて何回か取り替えたと思った」
「時々回転数おかしくなってたのはそのせいかあ」

先輩達が、授業の時間が来るまで部室で暇つぶししてて。カセットテープかけたまま授業に行っちゃうんですよね。部室に残った二人の間に流れているのは、BGMだけ…。

「いいねえ。ムードあるじゃない」
「でも流れてたのアニソンですよ」
「ダメじゃん!」
「しかもMAD流れてたよね」
「最悪だあ!」
「ムードもへったくれもねえ…」

「しかし全然喋ってないって逆に凄いね」
「あの頃、二人とも、サークルの中で一番漫画道を邁進してたよなあ」
「でも、いくらなんでも世間話ぐらいはしてたでしょ」

世間話ねえ…。どうだったかな…。会話らしい会話をした記憶が…。

「あ。ホラ、アレ」

? …ああ! ハイハイハイ。アレかー! たしかアレは


てなところで目が覚めた。


続きが気になる。一体どんなエピソードがあるんだ。二人だけで通じ合ってないで、おじさんにもちょっと話を聞かせなさい。

ちなみに、自分も学生時代に漫研所属だったのですけど、女性のサークルメンバーなんて居ませんでした。工業大学だったので。99%男子校状態だったので。

そんな悲しみに満ち溢れたオチは横に置いといて。「たしかアレは」の続きが気になる。どうせたわいのない話だろうけど、ずっと無言のままペン先を動かしてた二人の間に、何があったのだろう…。

#3 [nitijyou] 自転車で買い物に

ヨークベニマルとサンドラッグで夜食その他を購入。ホワイトデー用の何かを買おうと思ったら当たり前だけど売り場はもう無くなってて、仕方ないからお土産売り場で「酪王カフェオレサブレ」なるものを購入。夕食時に家族で味見してみたけど、比較的評判は良かった、ような気がする。

2015/03/16(月) [n年前の日記]

#1 [anime][neta] 方向音痴の迷子キャラは最強

ローリングガールズというアニメを見ていたら、方向音痴ですぐに迷子になる美少女キャラが、いつのまにか 敵のアジト内で迷子になってて捕まってしまうシーンがあって。笑った直後、もしかしてこのキャラは最強なんじゃないかと思えてきたり。

例えばこういうキャラが STAR WARS EP4 の中に居たら、デススターを X-WING や Y-WING で攻撃するぞ的ブリーフィングの直後に「ちょっとトイレ行ってきます」と言ったまま迷子になって…。

「アレ? ○○ちゃんはどこ?」
「待って。今通信が入った。もしもし? ○○ちゃん?」
「もしもし。あのー、私、今どこにいるんでしょうか?」
「またか…。なんか周りに目印になるもの無い?」
「えーと、○○ジェネレーターって書いてある看板が見えます」
「えっ」
「あ。上の方でコーホーコーホー言ってる黒いおじさんも見えます」
「…ソレ、デススターの中じゃん!」

敵基地の破壊活動し放題ですよ。迷子美少女キャラ、最強過ぎる。

考えてみたら、STAR WARS においてはC-3POとR2-D2がそういうポジションのキャラだったのかなと思えてきたり。大体はC-3POがやらかしそうな印象。…C-3POが美少女キャラだったら、あのシリーズの印象も随分違ったのだろうか。

R2-D2とC-3POの萌え美少女化。なんだか使えそうだな…。

2014/03/16() [n年前の日記]

#1 [windows] 「OS買い替えに持って来いのWindows8.1」とか言ってるお店は地獄に落ちてほしい

PCパーツ販売店のarkさんから、「OS買い替えに持って来いのWindows8.1」てな題名の広告メールが届いていて、なんだかイラッ。地獄に落ちろや。まあ、arkさんはPCパーツを売るお店だろうからOS移行のサポートなんかしなくて済みそうだし無責任でいいよなあ、と。 *1

パソコン工房なんか、最初の頃はWindows8機も売ってたけど、あまりにサポートが大変過ぎて、基本的には Windows7機しか売らないことに方針を決めた時期があるそうで。よほど現場から悲鳴が上がったんだろうな…。たしかに、パソコン工房のサイトを見ると、当時とはちと方針が変わってるかもしれんけど、今でもWindows7機を売ってる模様。

XP、Vista → 8.1 は面倒だけど。XP、Vista → 7 なら操作性その他の面でも比較的ハマらないし。7 → 8系も比較的ハマらないという話をどこかで見かけたので、可能なら一旦 7 にしといたほうがいいんじゃないか、8以降にするのはそれからでもいいんじゃね? と思うんですけど、どうなんでしょうか。田舎に住んでるひきこもり同然の自分ですら、8 までは対応できたけど 8.1 には対応できてない業務用サービスの話を周囲からチラチラ聞かせてもらっているので、今はまだ 8.1 はヤバいなと思うんですけど。趣味ならともかく、仕事で使うなら困るのではないかなあ。

何にせよ、現時点でいきなり 8.1 を売り込もうとしてる店は、ユーザの身に降りかかるトラブルなんかシラネと思ってる、かなりろくでもない店なので注意したほうがいいのかもしれぬ、と思えてきたり。

まあ、全ては Microsoft が悪いんですけど。

今現在 Windows7機ってどの程度購入可能なのか価格comあたりで調べてみたら、ダウングレード権を使って7にする、みたいなソレが目について、やっぱり入手は厳しいのかなと思えてきたりもして。
*1: 一応フォローしておくけれど、arkさんはマイナーなPCパーツを時々売ってるので、そのあたりは応援しております。「このパーツ、いいなー」と思ってググったらarkさんしか扱ってなかった、てな時がちょくちょくあった記憶も。そっち方面は素晴らしい。

#2 [neta] 日本人はとんでもない嘘つき民族のような気がしてきたり

てなアレコレをリストアップしていくと…。

一時期、「韓国人は嘘つきばかり」みたいなソレをネット上のあちこちで見かけたものだけど。なかなかどうして、日本人もかなりの嘘つき民族じゃないかねえ、と最近思えてきたのでした。

もちろん、「日本人が」「韓国人が」という捉え方が大間違いですわな。中国もアメリカも欧州も結構嘘をつくし。人間なら誰でもどこかしらで必ず嘘をついてるもの、と捉えるのが正しいのだろうなと。ただし、重大な嘘をついてもケロッとしてる個体と、小さな嘘でも良心が痛んでしまう個体が、社会の中で混ざってたりするんだろう…。

なんとなく、高校の卒業式で恩師が話した(らしい)内容を思い出したり。 *1

「俺は今までお前達に『嘘をつくな』と教えてきたけど。スマン。実はアレは嘘だ。嘘を教えてた」
「社会人になったら、どうしても嘘をつかなければいけない場面に、必ず遭遇する」
「だけど、許される嘘と、許されない嘘があることぐらいは、せめて覚えておいてほしい」
「他人のためについた嘘は、まだ許される。だけど、自分のためにつく嘘は…これは許されないぞ」

てな話。

考えてみれば、最初にリストアップした「社会的に問題になった嘘」は、どれも「自分のためについた嘘」だよなと。恩師が言ってた(らしい)話は正しいのだなと再認識。

それぞれの話をメモ。 :

_イラストレーターに依頼して描いてもらったと思っていた作品、実は他人の絵を「自分が描いた」と偽って納品していたことが発覚! : オレ的ゲーム速報@刃
_まとめたニュース : 野口英世は本当に偉人? 専門家の間では業績を否定する声が多数
_福島第一原子力発電所のトラブル - Wikipedia

臨界事故は、嘘をついたわけじゃなくて黙ってただけだから、ちょっと違うんじゃないかと思えてきた。

太平洋戦争中の石油備蓄量云々は、NHKの特集番組内で見た記憶があるのだけど。自分の検索キーワードがよろしくないのか関連ページに遭遇せず。たぶん番組を見た人なら、「あー、ハイハイ。そういう話あったね」と思い出してくれそうですけど。

頭が良い人、良くない人。 :

一つ嘘をつくと、その嘘を成立させるために、次々に嘘を重ねていかないといけないので…。かなり頭が良い人じゃないと、整合性のある嘘を次々に生み出せない。かなりの特殊能力が必要で。

だから、「俺はあまり頭が良くないほうだ」と自覚してる人は、正直であることを心掛けたほうが結果的に楽だよなー、凡人が無理しちゃいかんよなー、と自分は思っているのですが。それでもうっかり稚拙な嘘をついて墓穴を掘っちゃう自分だったりもしますけど。

本当に頭が良い人は、そもそも嘘はつかずに「黙ってる」もんで…。政治家とか、経営者とか、そういう感じだし。

となると、バレてしまう嘘をつく人は、「俺は頭が良い」と思ってるけど実は頭が良くない人、だったりしないかな。なんてことを思ったりもして。

*1: 実は自分はその内容を覚えてなくて、父兄として教室の後ろに居たお袋さんが内容を覚えていたらしいのですが。

2013/03/16() [n年前の日記]

#1 [nitijyou] USBメモリを返してきた

某所まで自転車で。昨日借りたUSBメモリを返してきた。

帰りに、ミラーボールモドキを探すため、ビバホームとイオンスーパーセンターに寄ってきたり。

#2 [cg_tools] 憧れのミラーボールを入手

何故ミラーボールに憧れてるかというと、パノラマ画像を撮影する際に少し楽になるかもしれない、という話があるからで。

どうしてパノラマ画像が欲しいかというと、ソレがあると3DCGをやる際に便利なので。3DCGの世界では、10年ぐらい前からIBLレンダリングなるものが流行ってるそうで、ソレをするには、HDRI、かつ、360度もしくは180度のパノラマ画像があると都合がいいのだとか。

ということで、スーパーイオンセンターでアイテム発見。

「5分はもちますゴハンまで」

ピープル株式会社発売の、「5分はもちますゴハンまで」。667円。TB071。対象年齢:6ヶ月以上。中国製。パッケージには、「自分のお顔が不思議な形に映るから、もう夢中!」と書いてある。ほほう、ナイスアイデア! 素敵なお話ですね。…その、「不思議な形に映る」部位が、半球の形をした鏡モドキだったという。

なんだか、「東急ハンズで _ステンレス半球 買えよ…」という声が聞こえてくるような気もするけれど。田舎に東急ハンズはない! (ペシッ) …まあ、東急ハンズもネット通販をしてるから、そっちで買えばいいんですけど。Amazonからも申し込めるみたいだし。ただ、送料も必要になるのでちと高くなる上に、反射具合がどうなのか実際に見て確認できるわけでもないし。都市圏に住んでる人なら東急ハンズで買えばいいと思いますし、お金があるなら最初から魚眼レンズ買ってしまえばいいんじゃないかと。

それはさておき。早速バラして半球ミラー部分だけ取り出したのだけど、どうやって立てたらいいものか…。裏に両面テープで何かを貼り付けて固定、だろうけど、水平方向にクルクル回るようにしておいたほうが撮影時に楽そうだなと。あるいはデジカメに固定して、デジカメから見て必ず同じ場所にあるようにするか。どんな工作をしたものかと。

手持ちのデジカメには望遠がついてない点も、ちと悩むところ。本当は遠くから望遠で撮影すべき、なのだけど。遠くから撮影すれば、撮影者自身の姿が小さく見えるので、撮影できない領域が少なくなるし。望遠を使って撮影画面一杯に映したほうが、情報量が多くなる上に歪みも減るので。…球面を撮影してる段階で歪みも減ったくれもないだろ、という気もするけど、それ故に尚のこと、無駄な歪みは無いほうが嬉しい、とも言えそうな。

フツーのコンデジでもやれなくはないのですが。 :

パノラマ画像の撮影となると、一般的には魚眼レンズを使って、貧乏な場合はミラーボールを使って撮影するのですが。フツーのコンパクトデジカメ「だけ」でも、やろうと思えばできなくはない、です。実際自分も以前試したことがありますし。

ただ、めちゃくちゃ手間がかかる。手動で角度を少しずつ変えながら、360度全方向分をカバーするだけの、膨大な写真枚数を撮影しないといけなくて。当然時間もかかるので、その間に被写体がどんどん動いてしまう。太陽の位置は変わってくるし、雲もどんどん形を変える。後で合成する際に一苦労で。

画質については、膨大な枚数を撮影するやり方のほうが良いのですけど。例えば2Mピクセルのデジカメがあったとして。
  • 魚眼レンズを使う場合は、2M x 3〜4枚の情報から、パノラマ画像を作る。
  • たくさん枚数を撮影するほうは、2M x 数十枚の情報から、パノラマ画像を作る。
元になる情報量が全然違ってくるので、魚眼レンズ使用時より、枚数をたくさん撮るほうが、圧倒的に画質は良くなるわけで。ただ、時間と手間がかかるのが…。

電子工作ができる人なら、サーボモータだかステッピングモータで任意の角度に回りつつ、デジカメにUSB接続して信号を送って露出変えたりシャッター切ったりする電動雲台を作れそうですが。例えば、Linux上で動くgPhoto というアプリからは、 _USB接続されたデジカメをリモートコントロールする こともできるらしいので、使うデジカメによっては全自動化もできそうな印象も。

2012/03/16(金) [n年前の日記]

#1 [movie] 「第9地区」を視聴

TV放映されていたので見てみたり。

ある日、異星人の宇宙船が地球にやってきて、という内容。どことなくドキュメンタリー風の見せ方で面白いなと。基本設定は非リアルだけど、見せ方その他は徹底的にリアルを目指してるように思えた。大きな嘘を描くためには小さな事実を積み重ねないと、みたいな話を思い出したりもして。また、おそらくは 差別問題をテーマにしているような印象も受けて考え込んでしまった。監督にとってそれが本意かどうかは分からないけれど。

見ているうちに、なんとなく仮面ライダーを思い出した。仮面ライダーにおいては、ショッカーが悪の組織と設定されているわけだけど。この映画におけるその手の組織は、人間側が作った組織。となると、本来であれば仮面ライダーも…。みたいなことをもやもやと。

何にせよ、こんなに面白い作品とは知らなかった。結構重要なシーンも多々カットされていたらしいので、機会があればDVDでも借りてちゃんと見てみたい、と思えたり。

_モキュメンタリー - Wikipedia :

そういう呼称もあるのか。

_【ネタバレ】「第9地区」をようやく観ました/ヨハネスブルグからの不敵な挑戦状 - 万来堂日記2nd :

エイリアンがタイヤを食う。食うために食料であるタイヤを奪い合うなんていうシーンはもうひどいブラックジョークといいましょうか。分からない人は「黒人」「リンチ」「古タイヤ」で検索してみてください。

【ネタバレ】「第9地区」をようやく観ました/ヨハネスブルグからの不敵な挑戦状 - 万来堂日記2nd より

検索してみて、なるほどと。

2011/03/16(水) [n年前の日記]

#1 [nitijyou] 余震がまだある状態

昨晩かなり激しい余震が来たので、一気に不安に。静岡でも震度6強の地震が起きたあたりが効いた。茶の間で、お袋さん、妹、自分、でコタツで雑魚寝。3〜4回ほど余震で目が覚めた。緊急地震警報も1回鳴ったような気がする。

妹がパニック障害の薬を貰いに病院へ。お袋さんが運転する車に乗っていった。帰りにヨークベニマルで買い物をしてきたらしいが、行列が凄かったらしい。

福島第一原発の状況がどんどん悪化しているように見える。お袋さんの会社の申し出(?)を受けるべきだったろうか。ウチの家族は選択肢を間違えたのだろうか。

水道は復旧したが、灯油を入手できる見込みがないため、灯油を使ってお湯を沸かす給湯器がほとんど使えない状態になっている。だから家族全員、ずっと風呂に入ってない。同様の理由で、灯油による暖房もできない。この後どうなるか分からないから節約しておかないと。

電気は来ているのでコタツに入って寒さを凌いでいる状態。エアコンを使えれば多少は違うのだろうけど、福島第一原発からの放射能汚染が怖いので、エアコンも使えない。仕組みを考えると外気は吸気しないのではないかと思ったが、色々調べてみたら排水用ホースから吸気する場面もあるらしい。参った…。

とにかく、ガソリンと灯油が入手できないのが厳しい。新聞配達も、牛乳配達も、市のゴミ回収も、ガソリンが無い為しばらくできないということになっている。

明日は氷点下の気温になるらしい。

2010/03/16(火) [n年前の日記]

#1 [nitijyou] 地震の時にピピピと音を出してた機器が分かった

携帯電話だったらしい。数日ぶりに液晶部分を開いてみたら、地震警報が出たぞ気をつけろ、的メッセージ画面が表示されていた。…そういう機能・サービスもあるのか。>携帯電話。凄いなあ。

どういう仕組みでその手の警報を受け取るんだろう。いくらなんでもメール送信の類ではないよな。あらかじめ扱う電波関係の規格の中に、緊急時はコレを送る、みたいなことが決めてあるのだろうか。それなら全機種に、一斉に送れるし。

2009/03/16(月) [n年前の日記]

#1 [zatta] 不気味の「壁」じゃなくて不気味の「谷」じゃないのか

壁と呼び続けてる人は、その後の展開を意識して、あえてそう呼んでいるつもりなのだろうか。歩いていて壁にぶつかること、歩いていて谷に落ちていくこと、壁を壊すこと、壁を飛び越えること、谷を飛び越えること、それぞれ微妙に違う気がする。もしかすると、元々のグラフを見てない人が、壁と呼び続けているのだろうか。それとも元々は壁と呼ばれていて、谷という呼び方が後から生まれたのか。

ちなみに自分は「谷」派。

まあ、どっちでも大まかな意味は伝わるからどうでもいいのかな。

2008/03/16() [n年前の日記]

#1 [iappli] モデリングと位置合わせ作業とマテリアル設定を弄ってたり

背景上に置かれる障害物のパースが合ってないので合わせるべし、という作業に関連して、背景画像の元になった実写写真画像を送ってもらえたり。また、真上から見たらこうなるはず、てな感じの画像もWeb上で見つけた。これでなんとか正確に、3DCGツール上で位置合わせができるぞと。

前回はShadeでやったけど、Shadeはレンダリング時の光源調整等面倒。なので、今回はblenderで作業。

が。障害物の壁をもっと薄く、という要望が来たのでモデルデータを弄ろうとして、悩む。頂点を動かしたら、ポリゴンが平面じゃなくなる…。三角形にしてデコボコしてちゃいかん形状だし。そもそも、前回Bevelを使ったら角がテカテカして背景とミスマッチだったっけ。仕方ない。また最初から作るか。

むう。モデリングの仕方を忘れた。作り始めてみたものの、途中で平面が破綻してまた作り直し、てなことを2〜3回繰り返したり。y軸上で平面作って形を整えてコピーして両面を剪断してポリゴン張って端っこを押し出ししてx軸上で反対側にもコピーして真ん中の頂点消してポリゴン張って、とかそんな感じの作業を。

位置合わせでまた悩む。実写画像にいろいろ補助線を引いて台形を見い出して。真上から見た画像を下絵として読み込んで基準モデルを作成して。基準モデルが実写画像の台形に一致するようにカメラ位置や角度や焦点距離を弄る。が、合わない。焦点距離、どのくらいなんだろう。そこからして判らん…。

2時間ぐらいそのへんの作業をしてたけど疲れてきてしまい、とうとう(?)、カメラを趣味にしてる親父さんに助けを求めたりして。親父さん、実写画像を見るなり、「こんな写真、広角に決まってるだろ」と。えー。そうなの? 親父さん曰く、一般的に標準は50mmぐらいだけど、それよりはるかに短いはずだとのこと。ということで、親父さんの言う通りにカメラの焦点距離を設定したらいきなり合ってくれそうな状態に。うわ。助かった。ありがたや。親父さん、スゲエ。…や。自分、プログラマーなんだから、計算でそのへん求めなきゃいかんやろ、てな感もちょっぴりあるんだけど。

マテリアル設定を弄る。出力画像に対してドット修正とかできるだけの能力は持ってない自分なので、Toon設定にしてみたり、AOとやらを使ってみたり、光源をアレコレ変えてみたり。なんとかフラットな感じの画像に。

ついでに、背景上に載せるロゴ画像も作成。元の背景画像の台形部分を、真上から見たような感じの状態に、Photoshop Elements の遠近変形を使って変形させる。その上にロゴ画像を作成。それぞれ回転。また Photoshop Elements で遠近変形して元々の形に。

2007/03/16(金) [n年前の日記]

#1 [flash] _sozaijiten.com - FONTWIRE 3400 EXTRA PACK for Windows

とある方から、これをFLASHで使えないかという打診が。どうなんだろう…。 _使用許諾契約書 を見ると、
本製品は、営利、非営利を問わず、広告やパンフレット等の印刷物の印字作成用や、ホームページ等の文字表現用として使用できます。また、特定の第三者への提供目的の為に本製品に含まれるフォント(以下「フォント」)をPDFファイル等に埋め込んで配付することができます。

sozaijiten.com -FONTWIRE 3400 ユーザー使用許諾契約書 より

とあるので、ホームページ上に設置するFLASHにも使えるのかな、と思えるのだけど、
フォントを映像、ゲームなどのデジタル作品に格納したり、商業放送に使用することはできません。

sozaijiten.com -FONTWIRE 3400 ユーザー使用許諾契約書 より

不特定の第三者に配布することを目的として、PDFファイル等のデータにフォントを埋め込んで配付したり、インターネットやそれに類する方法で公開することはできません。

sozaijiten.com -FONTWIRE 3400 ユーザー使用許諾契約書 より

というのが気になる。
  1. FLASHは映像作品として扱われるべきなのか?
  2. 中小企業のWebサイトなどは、商業放送にならないのか?
  3. 「インターネットやそれに類する方法で公開はできない」のでは、そもそもWebサイトで使えないんじゃないのか?
よくわからん。

ということで、 _質問フォーム から打診してみた。「中小企業のwebサイト(該当企業情報の紹介・公開が目的)に設置するFLASHの中で使えるのか?」みたいな。

FLASHの中でフォントを使うといってもパターンがある。
Photoshop等で、ビットマップ画像の中にフォントを入れて出力。FLASHではビットマップ画像を表示する。
フォントデータとしての再利用は不可。ビットマップ画像しか存在しないのに、フォントデータになるわけがない。(トレース等は可能だろうけど、それを言い始めたら印刷物等に使うのもヤバイことになる。)
FLASHの中で、静的テキストの表示に使う。フォントのアウトラインデータを、FLASHのドローデータとして利用する。
フォントデータとしての再利用は不可。フォントデータとして利用するための各種情報 ―― ベースラインがどうとか文字間隔がどうとかどの文字コードに割り当てられるか等 ―― がなくなるし、そもそも表示に使った文字の分しかドローデータが含まれない。「あいうえお」と表示したら、「あいうえお」のドローデータしか入らない。「かきくけこ」は入ってないので、フォントデータとしては実質使えない。
FLASHの中で、動的テキストの表示に使う。どの文字が使われるか判らないので、フォントデータが丸々埋め込まれる(と思う)。
フォントデータとしての再利用が可能になる可能性は高い。スーパーハッカー(?)なら、解析してフォントデータを取り出すこともできてしまうのではないか。
ということで、3番目はダメだろうけど、1番目と2番目なら技術的に再利用不可・再配布不可なんだからOKにしてくれよ、と思うのだけど。でも、フォントのライセンスって技術的に云々という視点で決められてるわけじゃないしなぁ。

返信メールが届いた。 :

1時間ほどで返信が届いた。応対が早いなぁ。素晴らしい。>データクラフト。

メールから、該当部分を引用。
当該製品に収録のフォントをFLASHアニメの中でご使用いただく件ですが、基本的にwebページの一部として機能するバナーや 、サイトナビゲーション、デザイン表現につきましては、ご利用になれます。 Flash等の技術につきましては問いません。

ただし、本製品は、フォントを映像、ゲームなどのデジタル作品に格納したり、商業放送に使用することはできません。故に、webページ内の独立したコンテンツ(映像コンテンツ、ゲームコンテンツなど)に使用する場合、またそのコンテンツを頒布する場合(ダウンロード、CD-ROM等方法に関わらず)については、Java、Flashその他技術の方法を問わず、使用不可となります。
ということらしい。

読んだ限りでは、「Webページが主、FLASHが副 ―― FLASHがWebページを構成する一部品としてのみ扱われる状態である」なら、FLASHでも利用可能、ということなのだろうと。しかし、例えばFLASHゲーム・FLASHアニメのように、それ単体でコンテンツとして成立してしまう場合は、利用不可となると。たぶん。

利用されるスタイル・パターンを、勝手に想像して、列挙してみる。
個人のWebサイトで、メニューをFLASHで作成・そのFLASHの中で使用。
OK。FLASH単体ではコンテンツとしては成り立たず、リンク先のWebページも存在しないとコンテンツにならないから。
企業のWebサイトで、メニューをFLASHで作成・そのFLASHの中で使用。
OK。FLASH単体ではコンテンツとしては成り立たず、リンク先のWebページも存在しないとコンテンツにならないから。
FLASHでゲームを作成・その中で使用。
NG。FLASH単体でコンテンツとして成立してしまうから。無償公開、有償配布に関わらず、NG。
FLASHアニメを作成・その中で使用。
NG。FLASH単体でコンテンツとして成立してしまうから。Webページ上にFLASHを配置した場合でも、FLASHがメインコンテンツで、WebページはFLASHを閲覧するための手助けにしかなってないので、NG。
個人でアニメを制作・その中で使用。
NG。アニメ単体でコンテンツとして成立してしまうから。
あくまで、メインとなるコンテンツが、印刷物、もしくはWebページ・Webサイトに限られていて、かつ、その構成部品として使われる場合のみ利用可能…と。

チラシ的なWebページを作ったりする分には、制限はないと考えてもいいのかもしれない。自分も購入しておくかな…。と思ったがヨドバシじゃ売ってないみたいだな。

#2 [jiji] _堀江被告に実刑判決、「投資家の判断誤らせた責任重い」

日興コーディアルの件を考えると、なんだかおかしい気がする。有罪でも構わんけど、だったら他企業に対しても同じようにやれよと。

#3 [nitijyou] ktのチラシページ作成中

複数の th や td を選択して、一気に class を指定するツールってないものか。

2006/03/16(木) [n年前の日記]

#1 [windows][iappli] wav関係のツールを検索・インストール

iアプリ用の波形データを作成したかったので。色々と。

とりあえず、8kHz、16bit、Mono のwavを作成して、YAMAHA で配布されてるツールで変換。 何はともあれ、まずは 8kHz、16bit、Mono の .wav を作らないと話は始まらない。

編集ツールをインストール。 :

_SoundEngine Free
_Audacity
_YAMAHA Wave Editor TWE
_wavy

色々入れてみた。

参考: _波形編集ソフト リンク&レビュー

いきなり 8kHz にサンプリング周波数を変換してくれるツールは無いようなので、ひとまず、44.1kHz、16bit、Mono として保存。

_WAVEファイルのリサンプル :

サンプリング周波数の変換サンプルを聴きつつツールを選ばせてもらったり。wavconv がいいらしい。

_Sampling Rate Converterの比較 :

SSRC もいいらしい。もう配布してないけど。 *1

_akJ Speechtools(音声合成ソフト) :

_ドキュメントトーカ 日本語音声合成エンジン for Windows
_読み上げTool
_SayIt
_ReadPlease 2003

試しに声も入れてみたくなった。自分で吹き込むのは恥ずかしいので、コンピュータに喋らせて加工しようかと。 _2005/06/19の日記 でメモしたツールも色々とインストール。…ていうか、結局 MS Agnet まで入れてしまった。

…本当にwavを鳴らせるんだろうか。>iアプリ。そこからして不安。エミュレータ上では鳴ってるけど、実機じゃダメだったりしないだろうか。

_超驚録 - 録音・編集ソフト :

DLしようと思ったらメルアド入力要求ページが。むう。止めた。

_Rockoon - 録音ソフト :

こちらを導入。

サウンドのプロパティで、録音 - Stereo mixer を選択してみたけれど、常時一定の値が入ってるみたい。 :

オンボードサウンドだから仕方ないのだろうか。

4kHzに変換できるツールが見当たらない。 :

仕方ないので、WSDで4kHzまで落としながらプレビュー再生。

人の声じゃなくなった。あかんわ。音質的には、8kHzが限界っぽい。

*1: ssrc-1.29.zip で検索すればなんとか。日本のサイトには置いてないけど。あと、 _SSRC GUI Frontend もあると便利かも。

#2 [windows] _VB 6.0J(SP6)ランタイムファイル群と10個のActiveX

SSRC GUI Frontend を動かそうとしたら、「comdlg32.ocx が無い」と言われる。 _CL Windows で入れようとしたが、「CRCが違うからダメ」と言われてしまった。…とりあえず、記事タイトルにあるページからDL・インストール。

_Visual Basic 6.0 SP6 ランタイムファイル :

ベクターを眺めてたら色々あった。こっちも入れてみたり。というか、どれか最新なんだろう。たくさんありすぎてわからん。

_Runtime Download Page :

こちらで紹介されてるのは、6.00.8418 だけど。一つ上のページからDLした版は、6.01.9782 になってる。

#3 [pc] _VSTプラグインって何?

_Audacity:プラグインエフェクト のページを眺めたら、VSTエフェクトとやらも使えると書いてあった。気になったので検索。

VSTというのは「Virtual Studio Technology」の略で、Cubase SXやNuendoなどを開発するドイツのSteinberg(スタインバーグ)社が打ち出したコンセプトです。直訳すれば「仮想スタジオ技術」ということになりますが、まあ、その名前のとおりで、コンピュータ上でスタジオを実現してしまう技術を意味しています。つまり、コンピュータ1台でレコーディングから編集、またエフェクトやミキシング、シンセサイザの音色作り……とすべてのことを実現してしまうということを意味しています。

【シリーズ テクニカル用語徹底解説】その3 VSTプラグインって何? - [DTM・デジタルレコーディング]All About より


_VSTプラグインって何? - ページ2
一言でVSTのプラグインといっても実はここには大きく2種類のものが存在します。それは

VSTプラグイン
VSTインストゥルメント

の2種類です。VSTプラグインのことをVSTエフェクトという表現をする場合もあります。またVSTインストゥルメントはVSTiといった表記の仕方をすることもあります。前者がエフェクト、後者がソフトシンセのプラグインとなっているのですが、

【シリーズ テクニカル用語徹底解説】その3 VSTプラグインって何? - [DTM・デジタルレコーディング]All About より

_Synth1 - VSTi、DXiの両プラグイン形式に対応してるフリーのソフトシンセ :

ということでコレが気になってきた。デモ曲を聴いて、スゴイなと。

もっとも、VSTi に対応してるシーケンスソフトなんて持ってないのでアレなんだけど。

#4 [web] 背景色が水色とか緑色とか赤色のWebページを見ながらふと思ったりして

個人のWebサイトを、授業中にとってたノート、みたいなものと考えれば。ノートの全面を水色のマーカーで塗っちゃってる人が居たら、どうなんだろうと。ノートを貸してもらった側は目が点。…せっかく貸してもらったわけだから、面と向かってどうこうは言わないんだけど。裏で何を言われてるかは推して知るべし。

Webページには、スケッチブック・キャンバス的な意味合いのページと、ノート的な意味合いのページがあるような気もする。前者ならともかく、後者で、しかも全面に色が塗ってあると、さて。たぶんそのへん、作り手は目利き(?)であることが常に要求される予感。

#5 [iappli] サウンドデータも画像データと同様にまとめるようperlスクリプトを修正

$ARGV[n] に "-sound" が入ってきたときだけ、チェックする拡張子を ".mld" に変更。後は、呼び出すbatファイルをもう一つ作って対応。

#6 [nitijyou] メールに返事を出すかどうかで悩む

この日記ページを見たという方からメールが送られてきた。しかし、返事を出すかどうかで悩んでしまったり。

というのも、もしかしてSPAMの類だったりしないかという不安があって。文章が妙に短いので判断が難しい。…たとえば、仮に自分がスパマーだったら、対象blogから特徴的な単語をいくつか拾って、文章を自動生成して送信するような人工無能的スクリプトを作るだろうと想像するのだけど。で、昨今のSPAMの凝りようを眺める限り、自分如きが思いつくような策は現実のスパマーも既にやってる可能性が高いだろうと。つまり、一見すると自分のblogを読んで送ってきたかのようなメールであっても、実は巧妙に作成されたSPAMであろう可能性も否定できない現状が。

と書いたところで気がついた。自分のblogでは書いてない単語が混ざってたら、それはSPAMじゃないと言えるのではないか。別のサイト・blogから文字列を抽出して折り混ぜることはできるだろうが、対象blog内に出現する文字列と関連のある文字列かどうかをPCに判断させることは、現在の技術では難しいだろう。ていうかそれが出来たら特許が取れる。スパマーなんてやらんでも一儲けできてしまう。

ということで。返事を出してみよう。そうしよう。

でも、万が一、相手が携帯でメールを受けてるのだとしたら、夜中に送信したらマズイことに。また、学生さんだとしたら、授業中に携帯が鳴るのもまずかろう。ということで、お昼時とかPM7:00とかそのくらいに送ることにしよう。そうしよう。…つーか本来、自分の好きな時間に受け取れるのが電子メールの利便性だったはずが、電話感覚で使う人が混入してきたことで面倒なことになってる感も。これもまた、ある種の文化衝突なのであらうか。

と書いたところで気がついた。指定時刻になったらメール送信するツールがあればいいのではなかろうか。メールを溜めといて、cron みたいなヤツが呼び出して、メール送信。とか。

どうでもいいことを考えてるなぁ。>自分。

この記事へのツッコミ

Re: メールに返事を出すかどうかで悩む by けいと    2006/03/21 19:26
> cron みたいなヤツが呼び出して、メール送信

海外発?のspamの多くがそうなっていると思うなぁ…
特定の毎時00分すぎになるとどさっとまとまって
spamがくる感じですし。
Re: メールに返事を出すかどうかで悩む by ひっとくん    2006/03/22 00:44
554 rbl error

でメールが送れないよ〜!!
一般ユーザレベルでも欲しいですな by mieki256    2006/03/22 05:42
> 特定の毎時00分すぎになるとどさっとまとまってspamがくる感じ

なるほど。

技術的には比較的容易なのだろうと思うんですが、>定刻のメール送信機能。
一般的なユーザが使うメーラその他で、
そういう機能を提供してる例って聞いたことがなくて…
いや、自分が知識不足なだけで、
実は機能を有するものがちょくちょくあるのかもしれんですが。

まあ、メールを電話感覚で使う人が、完全に主流になったら…
…送信時間を気にしないと「非常識」と叩かれる時代が来たら、
の話ですな。
それまでは、特にそういう機能は必要ないのかもしれず。
554 rbl error について by mieki256    2006/03/22 05:46
> 554 rbl error でメールが送れない

ガーン!

〜@104.net じゃなくて、
goo のメルアドのほうも送れないですか?

2005/03/16(水) [n年前の日記]

#1 [digital] _SILKYPIX - RAWデータとは?(RAWデータとは一体何なのでしょうか))

判りやすいかも。

#2 [cg_tools] _グリーンバックのバックには

_THE MAKING OF AGITO から。照明さんのお仕事の一つとして、グリーンバックへの照明が紹介されてた。
合成カットの「ヌケ」をよくして、クォリティを高めるためには、

1. グリーンバック/ブルーバックの色をムラなく均一に。
2. かつ、被写体にバックの色が回り込まないように。
3. かつ、被写体の照明はリアルに。

の3条件をクリアする必要があります。被写体とバックとの距離が充分に稼げれば、さほど問題はないのです。ただし、広大な撮影現場と、巨大なバックが必須。そんな理想的な環境なんて、めったにありません。
なるほど…。ていうか、ブルーバックじゃなくてグリーンバックなのだな。

_一番の誤算は、超巨大なグリーンバックが、予想以上に風にあおられること :

ライダー龍騎2話、7重合成シーンの撮影こぼれ話。ここでもグリーンバックだったのか。

余談。以前読んだ記事なのだけど、何故かブルーバックだと思い込んでた ―― 頭の中に残ってた“画像イメージ”もブルーバックだったわけで。人間の記憶ってつくづく怪しいな。色を丸々間違えて覚えてたとは。なんだか怖くなってきた。

さておき。撮影風景を見る限りライトをあててるようには見えない…。太陽光を当てて均一さを得ているのかと思ったけど、人物の影の向きを見る限りそういうわけでもなさそう。アレかな。「被写体とバックとの距離が充分に稼げれば」の条件を満たしてるのかな。あるいは、龍騎制作時、グリーンバックの材質なり、もしくはマスク作成処理なり、何かしら技術革新があったのだろうか。でも、わずか1年で変化があったとは思えないし…。たまたまライトを当ててない撮影風景の画像なのかしら。

_Professional Video Solutions - ウルトラマンネクサスの事例を紹介・その1 :

_その2_その3_その4 。 板野一郎氏のコメントも少し載ってる。ここでもグリーンバックだった。

それにしても、画像を見る限り、合成してるようには全く見えない。 _ノイズの加味でマッチング云々 とある。スゴイや…。

この記事へのツッコミ

Re: グリーンバックのバックには by otsune    2005/03/17 08:22
昔のフィルム時代のカラーキーはブルーバックだったのですが。
・CCDカメラの特性でRGBのG解像度が高い(YCrCb系)
・白人の目は青い
などの理由でグリーンバックになったとか。
そういえば邦画の写楽とかでも、和室の色合いに合わせるためにグリーンバックにしてたかなぁ。
最近はグリーンバックが主流だから、最新のキーイングソフトもグリーンのほうが良く抜けるはず。
Re: グリーンバックのバックには by mieki256    2005/03/18 18:58
> CCDカメラの特性

あ! そうか、なるほど…。
記録フォーマット(?)の特性かと思ってたけど、
そもそもセンサ部の特性故、だったのですね。

http://allabout.co.jp/computer/digitalcamera/closeup/CU20040315A/index2.htm
たしかにGのほうが素子(?)が多そう。
すると、デジカメで静止画を撮影する際も、
グリーンバックのほうがいいのか…。

> 白人の目は青い

ああ! それは全く気がつきませんでした。
そうか。そういう問題もあるのか…
服の色とかは変えられるけど、目の色までは変えづらいですね。
納得であります。なるほどなぁ…

#3 [anime] _電話ボックスまで作ってたアギト

アギトですら(?)ここまでやってたということは、最新作に至ってはどこで何をどうしてるかなんて想像もつかない…。とりあえず、 _本場岡山から直送のきびだんごを使ってる らしいけど。ってそんな視聴者サービス、見てもわかんねーよ!(苦笑)

先日の放送では、 _日本最大級の太鼓 を叩いてたらしい。クレーンつきトラックで運搬・設置したのか…。かように本気度は高いし、あらゆる箇所でサービスサービスしてるのだけど、フツーの視聴者にとっては伝わりにくいかなという気もする。なんていうか、ベクトル *1 の“大きさ”は充分過ぎるのだけど、“向き”が渋いというか…。 *2

それはともかく、今尚、睡眠時間3〜4時間だの連日徹夜状態だので作ってるのかしら>スタッフ。苦労した分は人気が出てほしいなぁ…。まあ、娯楽コンテンツ制作って、苦労が人気に直結しない世界ではあるのだろうけど。
*1: ベクトル → 大きさ+向きを表すもの。
*2: や。自分はそういうの好きですけど。

#4 [web][pc] フレッツ・スクウェアで『機動戦士ガンダムSEED DESTINY』を見てみた

ADSL利用時は、1Mbpsの映像までしか見れなかったけど。Bフレッツになったので、3Mbps版も見れるようになった。

静止画は綺麗。VHS3倍録画より、よほどマシな画面かと。

しかし問題が。画面がたまにガクガクする。どうやら、自分のPC、Celeron 1.0GHzでは再生が厳しいらしい。残念。

親父さんPCでも確認してみた :

Pen3 800MHz。こちらは 1Mbps版の再生すらままならず。500kbps版なら滑らかに動く。その代わり、画質はかなりボロボロ。

ヘルプページを眺めたら要求スペックが書いてあった :

CPU
Pentium4 1.5G以上
HDD
1GB以上の空き容量
メモリ
128MB以上のメモリ
ビデオカード/モニタ
Super VGA(800 x 600)以上の高解像度ビデオアダプタおよびモニタ
サウンドカード
32ビットサウンドカード
プレーヤー
Windows Media 9
ブラウザ
Internet Explorer 5.5SP2( Internet Explorer 6.0以上推奨)
Pentium4 1.5GHz以上、ですか。うーむ。“見るだけ”でも、そのくらい要求される時代になったのだな。…HDDの空き容量が1GB以上ってのがよく判らんけど。

WinとMacの環境しか書いてなかったけど、やっぱり Linux は完全無視だろうか。もっとも、WindowsMedia形式で配信してるから、Linux上では利用できるはずもないのかな。 *1

3Mbps版の『ガンダムSEED〜』の再生は、上記スペックが要求されるけど。その他、6Mbpsの動画コンテンツもあったりするらしい。そちらは、Pentium4 2.6GHz以上を推奨、とある。…今現在のPCの世界は、そのぐらいが最低ランクということだろうか。

『神無月の巫女』なる作品の第一話も配信されてるらしいので再生してみたのだけど :

こちらは、SEEDよりスペックが必要なようで。画面がスクロール(?)するシーンでは、確実に動きがガクガクしてしまう。残念。

ただ、それよりも気になるのは…この動画コンテンツの閲覧が、有料なのか、無料なのか、それすら判らないこと。ページに何も書いてないのですが…。この状態はマズイんじゃないか。

仮に有料だとしたら。料金すら書いてないのに、クリック一つでユーザからお金を巻き上げるのはマズかろうと。アダルト関係のサイトだってそこまで酷くはない。NTTは、アダルトサイト未満の悪質な商売をしてるのか。と、そういう話になってしまう。

また、無料なら無料で、何故にその旨ハッキリ書いておかないのかという話に。書けない理由でもあるのだろうか。 *2

ということで、どっちにしても現状はマズそうな。…どうして書いておかないのだろう。わずか4バイト、「無料」or「有料」をページ中に記載するのって、そんなに手間隙・コストがかかることなのでせうか。

さておき。作品本編の感想だけど。「マリみて」が「エロゲ文化」を醸し出しつつ「ゼオライマー」しちゃう印象。組み合わせが非常にバカバカしくてグーだと思いました。…続きを見たいとまでは思わなかったのがちと残念だけど。 *3

2005/04/04追加 : Linux でも Windows Media 形式が再生できるらしい :


*1: 仮想PC?を構築すれば利用できるのかしら。それにしたって、やっぱりWindowsが必要になりそう。
*2: 仮に無料だとしたら、1話のみ配信というのは宣伝として上手いかも。でも、それならそれで、『1話のみ無料配信!』と謳ったほうが、宣伝効果はより高まるのではないかしら。<「無料」という言葉に吸引される人は多いであろうと想像するので。
*3: アニメでやってるにしては、突き抜けてる部分を感じなかったので。…特撮でコレをやったら大絶賛なんだけどなぁ。<無茶言うな。

#5 [web] _フレッツ・スクウェア内のコンテンツを視聴するには料金がかかりますか?

Q.10 フレッツ・スクウェア内のコンテンツを視聴するには料金がかかりますか?
A.10 フレッツ・スクウェアにてお楽しみいただけるコンテンツのうち、フレッツ・オンデマンドをご契約いただいたコンテンツ提供事業者が提供する有料コンテンツをご利用になる場合には、別途コンテンツ提供事業者が設定する料金が必要となります。
「それら記載のないコンテンツは基本的に無料でご覧いただけます」等、ハッキリ書いてない。どうなってるねん。…ウチは、フレッツ・オンデマンドとやらを契約した覚えはないのだけど。ということは無料なのか? 判らんなぁ…。

ユーザが「判らんなぁ」とか言っちゃってる時点でマズイと思うのですけど。利用に関して必須な情報を、目につきやすいところに置いてないということだもの…。 *1

フレッツ・スクウェアの中に置いてあるヘルプページ :

そのへん書いてないかと思って眺めてたのだけど。途中で疲れてきた。考えてみると、結構な量の情報が複数ページに別れてるのに、検索機能が存在していないのだよなぁ。 *2 ましてやフレッツ・スクウェアは、インターネットの世界から隔離されてるネットワーク。Google等、インターネット上の検索サービスも利用できない。情報を求めて訪れるユーザに対して、目を皿のようにしてページを眺めろというのだろうか。不親切だなぁ…。

「そんなに文句があるなら見るな」とか言われそうだけど :

今現在、イケメンが大挙して出演してる仮面ライダーアギトの映画だの、今をときめく韓国産のイケメン映画だの…どうやら映画を丸々一本配信してるように見えるのです。どうです、奥さん。そりゃ気になりますよね。アギトの映画なんて、要潤氏が出てるんスよ! 家に居ながらクリック一つで要氏出演の映画が見れるなら、そりゃ見たいでしょ、奥さん。…ホントに出てるのかな。自信なくなってきた。<オイ。

あれだけ動画コンテンツを集めておきながら、説明しないってどういうことだろう。どうもNTT関連のサービスは、ところどころで何かがヌケてる印象が…。

料金が書いてないから無料かしらとも思うのだけど :

本当にそうなんだろうか。うーん。

これがインターネット上のサーバなら、「あらあらこんなところでこんなデータがDLできちゃいますよ(ニヤリ」ぐらいなもんだけど。フレッツ・スクウェアはNTTの管理下にある、インターネットとは別の世界のサービスだから…。いつのまにやらフレッツ料金に追加されてたりとか、そういうことも可能だよなと。そういった、“NTT独自の仕組み・システム”に対する不信感・知識の無さが根底にあるから、無料・有料を気にしちゃうのだろうなぁ… >自分。

*1: 「フレッツ・スクウェアの利用は、フレッツサービス利用者にとって基本的に無料」「有料・無料を知らないほうがおかしい」と皆さん思ってるのかもしれんけど。新規にサービスを利用し始める顧客ってのも居るわけで。それら顧客が混乱しないよう、説明できるときには説明しておくべきで、「知らないほうがバカ」的態度をとれば済むもんじゃないでしょうと。ましてや企業サイトなんだから、顧客に提供するサービス内容について、有料・無料すらコンテンツ紹介ページで明記してないのは、商売(?)として見た場合、レッドカードのレベルじゃないのかとすら。<大げさすぎ。
*2: 全てが一つのページに書かれてるなら、ブラウザの、ページ内検索機能で、まだどうにかなるけれど…。

2004/03/16(火) [n年前の日記]

#1 [nitijyou] スキャナで取り込み中

印刷物をスキャン。色変更等。仮想なんちゃらが少ない云々とWinXPが言ってくる。メモリを増やせば言ってこなくなるだろうか。

#2 [pc] _バッファロー、128Mbit SDRAM互換の 「Virtual Bank Memory」を製品化

_440BXでは使えない。 残念。

#3 [web] _ウイルスメールを99%ごみ箱に直行させる方法

_Becky! はそんなメッセージルールを指定できるのか。

_ウイルスメールを受け取らない方法 -No more Hybris!- :

OE6単体ではこのへんが限界か。

#4 [windows] _Adobe Reader SpeedUp

「Adobe Reader」の起動を高速化するツール。通常は利用しないpluginの読み込みを無効にするのだとか。導入してみたら確かに速くなった。後は表示に問題がないか確認してみないと。 _(via 裏編集後記:tips)

#5 [windows] _Win2000/XPにおいてユーザー別に画面解像度を設定できますか?

昨日、親父さんのPCにおいて、同様の要望があった。妹がたまに親父さんのPCを使うのだけど、その際、ユーザ別で異なる解像度を指定したいとのこと。親父さんは800x600で、妹は1280x960。Win98では可能だったので、当然WinXPもできるものと思い込んでたけど。Win2000から出来なくなってたらしい。スタートアップに画面解像度変更ツールを入れることで対応しろ、とのことだけど。さて、どのツールがいいのやら。

_ExtRes :

親父さんのアカウントは、既にコレを入れてたと思った。コレでなんとかならないか。…妹のアカウントでも呼ばないとダメか。それでは同じ解像度になってしまいそう。うーん。

_Resolution Manager :

お。そのものズバリかも。そのうち導入・動作確認してみやう。

#6 [pc] _Logitec LCM-T042AS

ポータブルタイプVGA対応4型アナログ液晶モニタ。これ欲しいなぁ。利用場面として、サーバ監視モニタの例が示されているけど。まさしくその目的の為に欲しい。しかし、 _ヨドバシでの価格は\49,800。 うぐぅ。 _(via ただのにっき)

#7 [web] via

from に比べて1バイト短いので、これからはそういう表記にしてみやう。なんとなく。

2003/03/16() [n年前の日記]

#1 子プロセス

子プロセス処理をafterメソッドで実装。一通り出来たような気がする。せっかくだから、 俺はこの赤の扉を選ぶぜ _公開 してみる。

geocitiesが外部サーバから画像呼び出し不可になってたとは知らなんだ。今頃知った。であればバナーURL明記はトラブルの元なので削除しておくですよ。

DVDドライブ購入の相談を受けるもDVD-RW/+RWのどちらを奨めるべきかで悩む。あなたならどちらをどんな理由で奨めますか?

買い物に。タバコとお菓子とジュース購入。スーパーにはたしかにDVD-RWのみが置いてあった。

2002/03/16() [n年前の日記]

#1 ftp鯖にloginできたけど

歯医者行ってきたんで口の中がシンナー臭いです。


昨日ハマってたftpアクセスですが…
ftp 192.168.x.xではダメなのに、ftp kerochan だと、なぜかスンナリとログインできました。
自分のメインPCは、192.168.x.xで指定してログインできてるのに。なぜ?

2001/03/16(金) [n年前の日記]

#1 An-httpd

また職安行ってきました。2件ほど応募。
1件は教育委員会のパソコン講師助手。
雇用状況改善の為の国の政策らしく、期間は半年。継続就労不可。
でも、面接の日にオイラがこっちに居ない(諸般の事情で埼玉に居なきゃならない)のでアウト。
1件はできたばかりの会社のため社会保障関係がかなり貧弱。
求人票のコピー貰って現在検討中。

や、検討する前に履歴書を書いておかないと。
職安の受付のお姉さんに「そのくらいあらかじめ用意せよ」と怒られました。うぐぅ


数日前から、CASIOのXV3というデジカメが気になってる。
334万画素なのに¥27800(コジマ価格)
なぜこんなに安い? もしや、なにか不具合でもあるのか?
ちなみに、他の300万画素以上のデジカメはもっと値が張る。
やっぱり何かあるんだろうか。
それにしても。
オイラの腐れヘボだめカスごみデジカメ(RICOH DC-4U、131万画素)に払った金額の半分で、334万画素か…トホ
なんにしても今お金無いから関係無いんだけど。

AN-HTTPDをインストール。
cgi等をローカルで動作テストして煮詰める→Linuxマシンにftpして最終確認→ネットへアップ、という腹づもり。
しかし、cgiが正常動作せず。ログファイルが更新されにゃいのん。
もしやlock関係か。それともbinmode()入れなきゃダメか。AN-HTTPDの設定ミスか。さてはて。

さてはて、ふうーん、さて、ふうーん…
とかいう歌ありませんでしたっけ?

2000/03/16(木) [n年前の日記]

#1 (NoTitle) SAMBAを使ってみよう...

SAMBAを使ってみようと思い立ったのです。
雑誌を見たら、2.0x系は色々といい事があるらしく、また日本語に対応した版もあると知り、どうせならアップグレードしてから使おうか、などと初心者のクセに思ってしまったのが運の尽き。
あらかじめ入ってた前のバージョンをアンインストールしたらもうわけがわからん状態に。トホホ
一日中(一晩中)思考錯誤してようやく動いたかのように見えたのですが、ブラウザを使った設定(SWATとかいうらしい)ができず。未だに問題解決に至ってません。自業自得ではありますが、サンバんな目に会ってしまいました (´Д`;)

1999/03/16(火) [n年前の日記]

#1 (NoTitle)家でゴロゴロ。なんか...

家でゴロゴロ。なんか何もする気がしない…。
そういやCG、描いてないなぁ。
どうせ描くならFLASHで、とか気負っちゃって、どうも描き始められない。
FLASHならアニメしなきゃ、とか思っちゃって、どうにも…。

TVを見てたら、チャイルドシートの着用義務化についてニュースで流してたんですが、
なんかマスコミの怪しい面を見てしまったような。
シートの着用率が円グラフで出てきたのですが、以下のように表示されたんですね。
graphbug.gif

なんだか作為的なものを感じるのは私だけでしょうかねぇ…。

以上、26 日分です。

過去ログ表示

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