mieki256's diary



2024/09/18(水) [n年前の日記]

#1 [dtm] 音声合成ソフトVOICEVOXを試用

スピーカーのテストをするための音声データを作りたくなったけれど、自分の声で「Left」「Center」「Right」と吹き込むのはなんか嫌だなと思えてきて、音声合成ソフトを使ってみたくなった。

ググってみたら、VOICEVOXという音声合成ソフトが無料で利用できるらしいと知った。

_VOICEVOX | 無料のテキスト読み上げ・歌声合成ソフトウェア
_VOICEVOX Nemo

特に VOICEVOX Nemo のほうは、何かしらで使った際に「VOICEVOX Nemo」とクレジットを入れておくだけでいいらしい。
Nemo の音声ライブラリを用いて生成した音声は、「VOICEVOX Nemo」とクレジットを記載すれば、商用・非商用で利用可能です。

VOICEVOX Nemo より


_Nemo 利用規約 | VOICEVOX

Windows10 x64 22H2上でインストールして試用してみることにした。

インストール :

VOICEVOX.Web.Setup.0.20.0.exe を入手して実行。ネットから1.xGBの何かをダウンロードした後、インストール作業が始まる。今回は、現ユーザのみ使用を選んで、D:\Prog\VOICEVOX\ にインストールしてみた。

起動すると、キャラクターの声を選ぶ画面になる。が、設定 → オプション → マルチエンジン機能、を有効にする。ここで一旦終了。

VOICEVOX Nemo のファイル、voicevox_engine-windows-directml-0.20.0.vvpp を入手して、ダブルクリック。警告が出るけどそのまま続行。これで VOICEVOX Nemo のエンジンが、VOICEVOX に追加された。

全部で1.79GBほどストレージ容量を使う模様。

使ってみた感想 :

比較的それらしく喋ってくれて感心してしまった。ビミョーにイントネーションが怪しいところはあるけれど、そのあたりは指示し直して使うことになるのだろう…。

出力されるwavは、モノラル/24KHzらしい。

#2 [python] edge-ttsを試用

英語に対応した音声合成ソフトを使いたいとググっていたら、PythonからMicrosoft Edge経由で音声合成(TTS)を呼び出せる、edge-tts なるモジュールがあると知った。

_Pythonで音声合成 〜edge-ttsを利用して英語の音声ファイルを作成〜 | 東陽テクニカ | “はかる"技術で未来を創る | ワン・テクノロジーズ・カンパニー
_UbuntuやRaspberry Piでも利用可能な音声合成エンジン、Edge-TTSの導入方法 - uepon日々の備忘録
_[Pythonプログラミング]最新のAI音声合成ライブラリEdgeTTSを試してみる : 乙Py先生のプログラミング教室

気になったので試用してみることにした。環境は Windows10 x64 22H2 + Python 3.10.10 64bit。

インストール :

pip でインストール。
pip install edge-tts

色々なモジュールがインストールされた…。
> pip install edge-tts
Collecting edge-tts
  Downloading edge_tts-6.1.12-py3-none-any.whl.metadata (4.0 kB)
Collecting aiohttp>=3.8.0 (from edge-tts)
  Downloading aiohttp-3.10.5-cp310-cp310-win_amd64.whl.metadata (7.8 kB)
Collecting certifi>=2023.11.17 (from edge-tts)
  Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB)
Collecting aiohappyeyeballs>=2.3.0 (from aiohttp>=3.8.0->edge-tts)
  Downloading aiohappyeyeballs-2.4.0-py3-none-any.whl.metadata (5.9 kB)
Collecting aiosignal>=1.1.2 (from aiohttp>=3.8.0->edge-tts)
  Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting attrs>=17.3.0 (from aiohttp>=3.8.0->edge-tts)
  Downloading attrs-24.2.0-py3-none-any.whl.metadata (11 kB)
Collecting frozenlist>=1.1.1 (from aiohttp>=3.8.0->edge-tts)
  Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl.metadata (12 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp>=3.8.0->edge-tts)
  Downloading multidict-6.1.0-cp310-cp310-win_amd64.whl.metadata (5.1 kB)
Collecting yarl<2.0,>=1.0 (from aiohttp>=3.8.0->edge-tts)
  Downloading yarl-1.11.1-cp310-cp310-win_amd64.whl.metadata (49 kB)
Collecting async-timeout<5.0,>=4.0 (from aiohttp>=3.8.0->edge-tts)
  Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Requirement already satisfied: typing-extensions>=4.1.0 in d:\python\python310-64\lib\site-packages (from multidict<7.0,>=4.5->aiohttp>=3.8.0->edge-tts) (4.5.0)
Requirement already satisfied: idna>=2.0 in d:\python\python310-64\lib\site-packages (from yarl<2.0,>=1.0->aiohttp>=3.8.0->edge-tts) (3.4)
Downloading edge_tts-6.1.12-py3-none-any.whl (29 kB)
Downloading aiohttp-3.10.5-cp310-cp310-win_amd64.whl (379 kB)
Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
Downloading aiohappyeyeballs-2.4.0-py3-none-any.whl (12 kB)
Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Downloading attrs-24.2.0-py3-none-any.whl (63 kB)
Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl (50 kB)
Downloading multidict-6.1.0-cp310-cp310-win_amd64.whl (28 kB)
Downloading yarl-1.11.1-cp310-cp310-win_amd64.whl (110 kB)
Installing collected packages: multidict, frozenlist, certifi, attrs, async-timeout, aiohappyeyeballs, yarl, aiosignal, aiohttp, edge-tts
  Attempting uninstall: certifi
    Found existing installation: certifi 2022.12.7
    Uninstalling certifi-2022.12.7:
      Successfully uninstalled certifi-2022.12.7
Successfully installed aiohappyeyeballs-2.4.0 aiohttp-3.10.5 aiosignal-1.3.1 async-timeout-4.0.3 attrs-24.2.0 certifi-2024.8.30 edge-tts-6.1.12 frozenlist-1.4.1 multidict-6.1.0 yarl-1.11.1

動作確認 :

edge-tts というコマンドと、edge-playback というコマンドが入るらしい。
> which edge-tts
"D:\Python\Python310-64\Scripts\edge-tts.exe"

> which edge-playback
"D:\Python\Python310-64\Scripts\edge-playback.exe"

edge-tts は、音声合成の結果をファイルとして出力する。mp3を出力して動作確認してみる。
edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.vtt

edge-tts --text "こんにちは、世界" -v ja-JP-NanamiNeural --write-media jhello.mp3 --write-subtitles jhello.vtt

hello.mp3、jhello.mp3 が保存された。再生してみたら、たしかに「ハローワールド」「こんにちは世界」と喋ってる。


edge-playback は、その場で音声として鳴らしてくれるけれど、mpv という再生ソフトが必要になるらしい。Ubuntu Linux 20.04 LTS上で mpv をインストールして試してみたけれどたしかに音声がその場で鳴った。しかし、Windowsではどうすればいいんだろう…?

Windows版のmpvもあるらしい。mpv-x86_64-20240918-git-22620af.7z を入手して、解凍して、任意のディレクトリに置いて、環境変数PATHに追加してみたら動作してくれた。

_mpv.io
_mpv_rのインストール方法(Windows)|kwks_workshop

音声の種類 :

edge-tts -l または edge-tts --list-voices で、選択できる音声の種類が表示される。めちゃくちゃたくさんあるなと思ったけれど、どうやら言語別で用意されてるようで、実際には男性か女性かぐらいしか選べない感じもする。

日本語に対応しているのは以下だろうか。
Name: ja-JP-KeitaNeural
Gender: Male

Name: ja-JP-NanamiNeural
Gender: Female

英語(en-us)は結構あるな…。男女別で分けると以下のような感じだろうか。
Gender: Female
en-US-AnaNeural
en-US-AriaNeural
en-US-AvaMultilingualNeural
en-US-AvaNeural
en-US-EmmaMultilingualNeural
en-US-EmmaNeural
en-US-JennyNeural
en-US-MichelleNeural

Gender: Male
en-US-AndrewMultilingualNeural
en-US-AndrewNeural
en-US-BrianMultilingualNeural
en-US-BrianNeural
en-US-ChristopherNeural
en-US-EricNeural
en-US-GuyNeural
en-US-RogerNeural
en-US-SteffanNeural

#3 [prog] AIにPythonスクリプトを作成してもらえないか実験

昨日も作業したのだけど、Microsoft Copilot に、Pythonスクリプトを作成してもらえないか試してた。

昨日は何度も修正要求を出して目的のスクリプトに辿り着いたけど、そのあたりをまとめたら以下のプロンプトになった。コレを渡したら、最初からそれらしいスクリプトを生成してくれた。

ちなみに、フツーはEnterを叩くと即座に送信してしまうので改行できないけれど、Shift+Enterで改行できるらしい。あるいは、まとめてコピーして貼り付けるだけでも改行は反映される模様。

以下に示す仕様でPythonスクリプトを作成してください。
・ tkinterとwinsoundを使った、ウインドウサイズが300x140のGUIアプリです。
・ wavファイルをwinsoud.SND_LOOP指定でループ再生します。
・ スレッドは使いません。
・ デフォルトのwavファイル名は「speakertest.wav」です。
・ アプリを起動すると自動でwavが再生されます。
・ ボタンをクリックすると再生を停止してボタン表示が「Play」になります。
・ 再度ボタンをクリックすると再生を開始してボタン表示が「Stop」になります。
・ ウインドウ上にwavファイル名が表示されます。
・ ファイル選択ボタンをクリックするとファイル選択ダイアログが開いてwavファイルを選択できます。
・ Enterキーかスペースキーを押すと再生または停止になります。
・ ESCキーかQキーを押すとアプリが終了します。
・ これらの処理をクラスを使わずに記述します。

生成結果は以下。
import tkinter as tk
from tkinter import filedialog
import winsound

# デフォルトのwavファイル名
wav_file = "speakertest.wav"

# 再生中かどうかのフラグ
is_playing = True


# 再生を開始する関数
def play_sound():
    global is_playing
    winsound.PlaySound(wav_file, winsound.SND_LOOP | winsound.SND_ASYNC)
    button.config(text="Stop")
    is_playing = True


# 再生を停止する関数
def stop_sound():
    global is_playing
    winsound.PlaySound(None, winsound.SND_PURGE)
    button.config(text="Play")
    is_playing = False


# ボタンがクリックされたときの処理
def toggle_sound():
    if is_playing:
        stop_sound()
    else:
        play_sound()


# ファイル選択ダイアログを開く関数
def select_file():
    global wav_file
    file_path = filedialog.askopenfilename(filetypes=[("WAV files", "*.wav")])
    if file_path:
        wav_file = file_path
        label.config(text=wav_file)
        if is_playing:
            play_sound()


# キーが押されたときの処理
def on_key_press(event):
    if event.keysym in ["Return", "space"]:
        toggle_sound()
    elif event.keysym in ["Escape", "q"]:
        root.destroy()


# ウインドウの設定
root = tk.Tk()
root.title("WAV Player")
root.geometry("300x140")

# ラベルの設定
label = tk.Label(root, text=wav_file)
label.pack(pady=10)

# ボタンの設定
button = tk.Button(root, text="Stop", command=toggle_sound)
button.pack(pady=10)

# ファイル選択ボタンの設定
file_button = tk.Button(root, text="Select File", command=select_file)
file_button.pack(pady=10)

# キーイベントのバインド
root.bind("<KeyPress>", on_key_press)

# アプリ起動時に再生を開始
play_sound()

# メインループの開始
root.mainloop()

コメントで何をしてるか解説してくれているし、イイ感じかもしれない。プロンプト次第で生成結果が結構変わるのだな…。

余談。「すげえ。これならもうプログラマー要らねえじゃん」と言い出す人が出てきそうだけど、Python も tkinter も winsound もプログラマーが作ってくれているからこうして呼び出して利用できるわけで…。それに今回の事例に限って言えば、どのモジュール(ライブラリ)を使うのか、どのオプションを使うのか、そこまで逐一指示しないと、音が鳴り続けて止め方すら分からないダメダメなスクリプトを生成してきたので…。

やはり、ある程度分かってる人が ―― プログラムを書ける程度の知識を持ってる人ならコレを使ってちょっと楽ができそうかも、みたいな状況かなと。Copilot = 副操縦士、という名称はなんだか上手い気がする。

2023/09/18(月) [n年前の日記]

#1 [nitijyou] 溜まっていたRSSを消化

自分は Inoreader というRSSリーダーサービスを使わせてもらっているのだけど、気づいたら3000以上未読になっていたので、溜まっていたRSSを消化。

余談。昔は Firefox のアドオンで、何かのキーを押しながらマウスカーソルを動かすと、その軌跡上にあるリンクを一気に開けるものがあったので、それを使ってこの手のRSSをごっそりタブで開いてざっと眺めてガンガン閉じて、という感じでサクサクとチェックできていたのだけど。Firefox が昔のアドオンを切り捨てて、件のアドオンも使えなくなって、マウスの中ボタンクリックで、一つ一つのリンクをポチポチとクリックしてタブを開くことになってしまって…。なんとも面倒臭い。何かいい手は無いものか。選択範囲の中に含まれているリンクを一気に開くアドオンはあるけれど、Inoreader のページでソレをやると、クリックしてはいけない管理系のリンクまで開いてしまうので使えない…。

2022/09/18() [n年前の日記]

#1 [python] PyOpenGLでボールが跳ね回るスクリプトを作成

PyOpenGL を使って、ボールが箱の中で跳ね回るスクリプトを書いてみた。

動作確認環境は以下。
動かすとこんな感じ。




以下のキーが有効。 FPS表示時の赤い線は、期待した60FPSに対して実際何FPS出ているかを、箱の一辺の長さとの比較で表示している。60FPSが出ていれば、赤い線は箱の一辺と同じ長さになるし、それより少ないFPSなら、箱の一辺より短く表示される。

ソース。 :

ソースは GitHub Gist にアップロードしてみた。このページにも埋め込めるだろうか…。どうかな…。

_01_bound_ball.py (Gist)


以降、ソースの中身について、少しだけ解説。

FPSの計測について。 :

FPSの計測は、1秒間に何回画面を書き換えたかをカウントする方法で調べた。init_count_fps()、calc_fps() を見れば、どうやっているか分かるかなと…。

時間の取得には、time.time() を使った。import time をすれば使えるようになる。time.time() を呼ぶと、その時点の時刻が、秒単位(小数点以下も含む状態)で得られるらしい。

Python 2.7.18 32bitの場合、time.time() の返り値は小数点以下3桁まで含んでいる。ミリ秒まで分かるのだろう…。
>>> import time
>>> time.time()
1663505711.946
>>> time.time()
1663505714.521

Python 3.9.13 64bitの場合、time.time() の返り値は、小数点以下7桁まで得られる模様。もしかすると、マイクロ秒まで得られる…?
>>> import time
>>> time.time()
1663505644.9368925
>>> time.time()
1663505648.3456943

まあ、Python 2.7 の場合を考えて、time.time() は少なくともミリ秒まで分かると思って使えばいいのかなと。

ちなみに、最初は時間の取得に time.perf_counter() を使っていたのだけど。time.perf_counter() は Python 3.3 で実装されたメソッドだから Python 2.7 では動かなくて、time.time() で置き換えることになった。

文字描画について。 :

OpenGL で画面に文字を描画するあたりは、GLUT (freeglut) の glutBitmapCharacter() を利用した。GLUT (freeglut) を利用できる状況じゃないと使えないけれど…。

_情報メディア実験
_glutBitmapCharacter : PyOpenGL 3.1.0 GLUT Man Pages
_~mcfletch/openglcontext/trunk : contents of tests/glutbitmapcharacter.py at revision 699
_python - pyopengl How to render text - Stack Overflow

文字を描画する際の位置決めは、最初、glRasterPos3f(x, y, z) を使ってみたのだけど、glWindowPos2f(x, y) というメソッドもあると知って、そちらを使うようにしてみた。

_glRasterPos : PyOpenGL 3.1.0 GL Man Pages
_glWindowPos : PyOpenGL 3.1.0 GL Man Pages

この glWindowPos2f() を使えば、3D空間内の位置ではなく、ウインドウ上の2D的な感覚で座標指定ができる。

ただし、注意点が2つほどある。
  • 画面左下が (0, 0) になっている。
  • OpenGL 1.4 から追加されたメソッドなので、OpenGL 1.1 等では使えない。
例えば、Windows に標準で入ってる OpenGL は 1.1 対応だそうで、そのせいか、C/C++ で書いたプログラム等で glWindowPos2f() を使おうとすると「そんなAPIは無い」と言われてしまう。

もっとも、今時のPCなら、ビデオドライバはもっと後の OpenGLバージョンにも対応してるだろうから…。もしかすると、PyOpenGLを使う時はそのあたりを上手い具合に変更してくれて、それで今回 glWindowPos2f() が使えているのかもしれない。たぶん。分からんけど。

アニメーション処理について。 :

アニメーションをするためには一定の時間間隔で処理を呼ばないといけないけれど、そのあたりは glutTimerFunc() で指定している。

_glutTimerFunc : PyOpenGL 3.1.0 GLUT Man Pages
_GLUT のイベント

巷の解説ページでは glutIdleFunc() を使う場合が多いのだけど…。glutIdleFunc() に渡す関数は引数を取らないけれど、glutTimerFunc() に渡す関数は引数を1つ取るので、その点はちょっとだけ注意。

#2 [prog] C言語とOpenGLでボールが跳ね回るプログラムを作成

_PyOpenGLを使ってボールが箱の中で跳ね回るスクリプトを書いた わけだけど、これをC言語 + OpenGL で動くように移植してみた。

環境は、Windows10 x64 21H2 + MinGW (gcc 9.2.0) + freeglut 3.0.0。MSYS2 + MinGW-w64 ではなくて、MinGW + MSYS でコンパイルしている。

MinGW用の freeglut 3.0.0 バイナリ (freeglut-MinGW-3.0.0-1.mp.zip) は、以下から入手させてもらった。ありがたや。

_freeglut Windows Development Libraries

動作画面は PyOpenGL版と大体同じ。

以下のキーを受け付ける。

ソース。 :

コンパイル。 :

Makefile があるので、make と打てばコンパイルできるだろうけど…。一応、コンパイルは以下。01_gl_bound_ball.exe が生成される。
gcc 01_gl_bound_ball.c -o 01_gl_bound_ball.exe -static -D FREEGLUT_STATIC -lfreeglut_static -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows

01_gl_bound_ball.exe を実行すれば、PyOpenGL版と同じ見た目のウインドウが開くかと。

覚書。 :

FPS表示時に、一応「FPS: xx」の文字描画もしてみたけれど、glWindowPos2f() が使えなかったので、 *1 glRasterPos3f() を使うことになった。そのせいで、箱の上のほうに「FPS: xx」がくっついて動いてる表示になってしまった。ちょっとダサイ。ウインドウの特定の位置に固定して表示したかったのだけど、このあたり本来はどうやって解決すればいいのやら。

一般的に、C言語で円周率を使いたい時は、math.h をインクルードして(#include <math.h>)、M_PI を利用するらしいのだけど。試してみたら Visual Studio Code 上で「このシンボルは見当たらないよ」と言われてしまった。math.h を include する前に、「#define _USE_MATH_DEFINES」を書いておけば、その手のマクロが使えるようになるらしい。ただ、移植性は落ちるそうで…。

_定数M_PIが使えない - 需要のないページ
_プログラミングメモ日記 C++での数学定数の利用について
_M_PI ‐ 通信用語の基礎知識
_C言語(標準)にM_PIは無い - 簡潔なQ
_math.h の M_PI などは仕様外だった - GUST NOTCH? DIARY

*1: glWindowPos2f() は OpenGL 1.4 から使える。OpenGL 1.1 では使えない。

2021/09/18() [n年前の日記]

#1 [windows] WindowsUpdateのせいで共有プリンタから印刷できなくなっていた

数日前に、某所から、「プリンタで印刷できない」と不具合相談を受けていたのだけど。

構成としては、Windows8.1機にUSBケーブル接続で EPSON PX-M6711FT が繋がっていて、かつ、共有プリンタに設定してある状態。LAN内の他のPC(Windows8.1機)から、共有プリンタに ―― プリンタが繋がってる Windows8.1機に対して印刷指示を出しても、「印刷できない」と言ってくる、とのことで。

某所の方に頼んで、ping を打ってもらって、各IPアドレスまで届いてるか、名前解決ができているか、等々を調べてもらっていたのだけど、そのあたりは問題が無く…。

結論を先に書くと、おそらく、2021/09/15から配布が始まった WindowsUpdate のせいだろうと…。

_KB5005565に印刷ができなくなる不具合。対処方法あり | ニッチなPCゲーマーの環境構築Z
_Windows 10に新たな印刷問題 〜2021年8月のセキュリティパッチ以降で - 窓の杜
_Print server and Print Nightmare update - Microsoft Q&A
_New Windows security updates break network printing
_【WinUp個別】急報・・・9/15のWinUp後にUSBプリンタ共有に不具合発生中か?【2021/9/17】 - 自作PCの道楽新館

我が家のLAN内でも不具合に遭遇。 :

ふと今頃になって、考えてみたら我が家のLAN内でも似た構成になっていることに気が付いて。

自分のメインPC(Windows10 x64 21H1)には、USBケーブル接続で Canon iP4600 が繋がっていて、かつ、共有プリンタとしても設定してある。普段、妹のPC(Windows10)から、自分のメインPCに向けて印刷指示を出して印刷していたのだけど。

妹に頼んでテスト印刷ができるかどうか確認してもらったら、エラーメッセージも何も出さずにだんまり状態になってしまった。メッセージが出る・出ないとか、OS種類とか、プリンタの型番の違いはあるけれど、某所と構成は似ているし、印刷できない点は同じ。

試しに、2021/09/16〜17にインストールされた KB5005565 を、ホスト側PC、クライアント側PCの両方からアンインストールしたところ、実にあっけなく、すんなりと、印刷ができてしまった…。

ということで、これはもう、どう考えても、WindowsUpdate のせいだろうと…。

ちなみに、KB5005565 をアンインストールしようとしたら、再起動してデスクトップが表示されるまで、以下の時間がかかった…。
  • HDD環境では20分以上。
  • SSD環境ですら10分前後。
アンインストールを試してみる場合は、かなり待たされることを覚悟しつつ作業しないとアレだなと…。フリーズしてると勘違いして途中で電源を切らないように。とにかく待たされます。

USB接続がマズいらしい。 :

この不具合は、プリンタがUSB接続されていて、かつ、共有プリンタに設定されている場合に発生する模様。

例えば、自分のメインPCからプリンタで印刷する場合は問題無く印刷できた。しかし、同じLAN内に居る別のPCから印刷しようとすると印刷できない、という症状で…。

また、プリンタが、LANケーブルによる有線接続、もしくは、Wi-Fiによる無線接続で、LANに直接参加してる場合も問題は起きない。某所でも、LANに直接参加してるプリンタからは印刷ができている、と報告があった。

今時のプリンタ(複合機)は、Wi-Fiによる無線接続でLANに直接参加してる場合が多いのだろうから、その場合はトラップが発動しないのだろうなと…。

#2 [love2d] love2dでテクスチャ付きポリゴンを歪めずに描画したい

love2d 11.3 上で、テクスチャ付きポリゴンを描画したい。

Mesh を使えば描画できることは分った。ただ、そのまま描画すると、四角形等を描画した際に見た目がめっちゃ歪んでしまう。

_love2dでテクスチャ付きポリゴンを描画したい

解決策は無いものか。

とりあえず、四角形を細かく分割して描画すれば、見た目ではさほど歪みが気にならなくなるのではないか…と思ったので試してみた。

ソースと使用画像。 :

ソースと使用画像は以下。

_conf.lua
function love.conf(t)
  t.window.title = "Love2d Mesh divide"
  t.window.width = 640
  t.window.height = 480
  t.window.vsync = true
  t.modules.joystick = false
  -- t.window.fullscreen = true
  -- t.window.fullscreentype = "exclusive"
end

_main.lua
-- Love2d Mesh

function makeVertices(src, xc, yc)
  xyuv = {}
  local xi, yi, u, v
  local yi = 0
  for yi = 0, yc do
    v = yi / yc
    local sx0 = (src[4][1] - src[1][1]) * v + src[1][1]
    local sy0 = (src[4][2] - src[1][2]) * v + src[1][2]
    local sx1 = (src[3][1] - src[2][1]) * v + src[2][1]
    local sy1 = (src[3][2] - src[2][2]) * v + src[2][2]
    for xi = 0, xc do
      u = xi / xc
      local x = (sx1 - sx0) * u + sx0
      local y = (sy1 - sy0) * u + sy0
      table.insert(xyuv, {x, y, u, v})
    end
  end

  vidx = {}
  for y = 1, yc do
    for x = 1, xc do
      local i0 = x + ((xc + 1) * (y - 1))
      local i1 = i0 + 1
      local i2 = i0 + (xc + 1)
      local i3 = i2 + 1
      table.insert(vidx, i0)
      table.insert(vidx, i1)
      table.insert(vidx, i2)

      table.insert(vidx, i2)
      table.insert(vidx, i1)
      table.insert(vidx, i3)
    end
  end

  vt = {}
  for j = 1, #vidx do
    local i = vidx[j]
    local x, y, u, v
    x, y = xyuv[i][1], xyuv[i][2]
    u, v = xyuv[i][3], xyuv[i][4]
    table.insert(vt, {x, y, u, v, 1.0, 1.0, 1.0, 1.0})
  end

  return vt, xyuv
end

-- init
function love.load()
  -- get window width and height
  wdw_w, wdw_h = love.graphics.getDimensions()

  img = love.graphics.newImage("uvcheckermap01-512.png")

  divide = 3

  -- src = { {270, 40}, {370, 40}, {620, 440}, {20, 440} }
  -- src = { {270, 20}, {370, 60}, {620, 350}, {20, 440} }
  src = { {270, 240}, {370, 240}, {630, 460}, {10, 460} }

  vert, xyuv = makeVertices(src, divide, divide)

  mesh = love.graphics.newMesh(vert, "triangles")
  mesh:setTexture(img)

  guide = true
  mesh_refresh = false

  ang = 0
end

-- update
function love.update(dt)
  if mesh_refresh then
    vert, xyuv = makeVertices(src, divide, divide)
    mesh = love.graphics.newMesh(vert, "triangles")
    mesh:setTexture(img)
  end

  ang = ang + 90 * dt
  local d = 140 * math.sin(math.rad(ang))

  -- change x0, x1
  src[1][1] = (wdw_w / 2) - 150 + d
  src[2][1] = (wdw_w / 2) + 150 - d

  vert, xyuv = makeVertices(src, divide, divide)
  mesh:setVertices(vert, 1)
end

-- draw
function love.draw()
  -- fill BG color
  love.graphics.setColor(0.1, 0.2, 0.4)
  love.graphics.rectangle("fill", 0, 0, wdw_w, wdw_h)

  -- draw mesh
  love.graphics.setColor(1, 1, 1)
  love.graphics.draw(mesh, 0, 0)

  if guide then
    -- draw lines
    love.graphics.setColor(1, 1, 1, 0.5)
    for i=1, #vert, 3 do
      local vlst = {vert[i][1], vert[i][2], vert[i+1][1], vert[i+1][2], vert[i+2][1], vert[i+2][2]}
      love.graphics.polygon("line", vlst)
    end

    --draw points
    love.graphics.setColor(0, 1, 1, 0.5)
    for i = 1, #xyuv do
      local x = xyuv[i][1]
      local y = xyuv[i][2]
      love.graphics.ellipse("line", x, y, 3, 3)
    end
  end

  -- print FPS
  love.graphics.setColor(1, 1, 1)
  love.graphics.print("FPS: "..tostring(love.timer.getFPS()), 2, 2)
  love.graphics.print("Divide: "..tostring(divide), 2, 20)
  love.graphics.print("G key : Guide on/off", 2, 40)
  love.graphics.print("Up, Down : Divide +/-", 2, 60)
end

function love.keypressed(key, isrepeat)
  -- ESC to exit
  if key == "escape" then
    love.event.quit()
  end
  if key == "g" then
    guide = not guide
  end
  if key == "up" then
    if divide < 32 then
      divide = divide + 1
    end
    mesh_refresh = true
  end
  if key == "down" then
    if divide > 2 then
      divide = divide - 1
    end
    mesh_refresh = true
  end
end

使用画像は以下。

_uvcheckermap01-512.png

以下で公開されてる画像を利用させてもらいました。ありがたや。

_Arahnoid/UVChecker-map: A collection of free images what can be used during unwrapping of 3D models

実行結果。 :

実行すると、Gキーで分割状態表示のON/OFFが切り替えられる。また、カーソルキーの上下で、分割数を 2 - 32 まで変更できる。




一応、 _LoVE Web Builder を利用させてもらって、Webブラウザ上でも動かせるようにしてみた。

_06_mesh_divide_c

Windows10 x64 21H1 + Firefox 92.0 64bit、Google Chrome 93.0.4577.82 64bit では動いているけど、どうだろう。

ちなみに、CPU は Ryzen 7 1700 (8コア、16スレッド、3.0GHz)、GPU(ビデオカード)は GeForce GTX 1060 6GB で動作確認した。このスペックなら 60FPS で動いてるように見える。ただ、それはローカルで動かした場合の話で、Webブラウザ上で動かすと11x11分割あたりから60FPSでは間に合わなくなってくる…。

雑感。 :

4x4分割、もしくは、8x8分割ぐらいで、そこそこ歪みが気にならなくなった印象を受けた。16x16分割まで行けば、全然歪んでるようには見えない。まあ、描画面積も関係してくるのだろうけど…。今回、ウインドウサイズは 640x480 だけど、1280x720 や 1920x1080 なら歪みが感じられる可能性もありそう。

ただ、毎フレーム、四角形の頂点の描画位置が変わるとなると、分割のための再計算も毎フレーム必要になるわけで…。4x4分割なら25個の頂点を、8x8分割なら81個の頂点を再計算しないといけない。1〜2枚を処理するなら問題無いかもしれんけど、例えば何十枚も処理をしたらどうなるのかちょっと分からないなと。実際、前述したように、Webブラウザ上で動かしたら11x11分割あたりで処理落ちが始まった。

また、あくまで2D的に分割しているので、こういうソレを使って3D的な見せ方をしようとするなら、元テクスチャ自体に遠近感を盛り込む等の工夫が必要になるのかもしれない。

遠近感を意識した分割はできないのだろうか。やろうと思えばできるはず。ていうか、以前DXRubyを使ってやったことがあるし。

_DXRuby上で射影変換ができた
_DXRubyのShaderで射影変換

でも、使い道が…。そもそも 3Dっぽく見せたいなら Unity や Godot Engine を使ったほうが、という気分にもなるわけで。2Dゲームエンジンの love2d で無理してやらんでも、みたいな。

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

2021/09/03を最後に日記をアップロードしてなかったのでアップロード。

2020/09/18(金) [n年前の日記]

#1 [lua] Lua用軽量IDE ZeroBrane Studio を試用

TIC-80用のスクリプトソースを Microsoft Visual Studio Code 1.49.0 (VS Code)で編集していたのだけど、どうもソースの自動整形設定が上手くいかなくて。TIC-80用のコードは、たしか64KB以内に収めないといかんので、できれば文字数は減らしたい。けれど、VS Code は読みやすいようにスペースを入れて整形してくれるから、その分文字数が増えてしまう。

自分は以前、何を使って書いてたのだろうと日記を検索してみたら、どうやら ZeroBrane Studio を使って作業していた時期があるらしい。ということで、Windows10 x64 2004上に、ZeroBrane Studio 1.90 (ZeroBraneStudioEduPack-1.90-win32.exe) をインストールして試用してみたり。

_ZeroBrane Studio - Lua IDE/editor/debugger for Windows, Mac OSX, and Linux

Download のページに飛んで、「Take me to the download page this time」をクリックすれば、DLできる。開発を支援したい場合は、いくらか払うこともできる。

各種設定は、日記を眺めながら再設定した。

_mieki256's diary - Lua用軽量IDE ZeroBrane Studio を少し試用

#2 [lua] Geany 1.36を試用

日記を検索していたら、Luaスクリプトを編集する際に Geany を使っていた時期もあるようで。一応インストールしておこうかなと…。環境は Windows10 x64 2004。

_Home | Geany

今回は、Geany 1.36 (geany-1.36_setup.exe) をインストールしてみた。

以前使った際は、文字を打ち込むと、GTK+ 32bitのバグで、何故か半角カタカナになってしまう不具合に遭遇したのだけど。今回試用した Geany 1.36 + Windows10 x64 2004 なら、その不具合は発生してないように見えた。

ていうか、日記を検索したら、以前も 1.36 をインストールして問題は起きてなかったらしい。

_mieki256's diary - Geany 1.36 をインストール

#3 [tic80] TIC-80のスクリプトがエラーを出す問題を調べてたり

自分が以前書いたTIC-80用のスクリプトが、0.70.6 ではエラーを出さないけれど 0.80beta ではエラーを出すあたりが気になって、原因を調べていたり。

どうも、0で除算をしているあたりが怪しい気がする…。
  -- adjust enable
  local vmax,vmin=0,0
  for i=1,#dt do
   if dt[i]>vmax then vmax=dt[i] end
   if dt[i]<vmin then vmin=dt[i] end
  end
  local range=vmax-vmin
  for i=1,#dt do
   dt[i]=math.floor(15*(dt[i]-vmin)/range)
   dt[i]=clamp(dt[i],0,15)
  end
range に 0 が入った時に、おかしくなるのではないか…。

以下のように書き換えたらエラーが出なくなった。
  -- adjust enable
  local vmax,vmin=0,0
  for i=1,#dt do
   if dt[i]>vmax then vmax=dt[i] end
   if dt[i]<vmin then vmin=dt[i] end
  end
  local range=vmax-vmin
  if range == 0 then
   for i=1,#dt do
    dt[i] = math.floor(15 * (0.5 * dt[i] + 0.5) + 0.5)
    dt[i]=clamp(dt[i],0,15)
   end
  else
   for i=1,#dt do
    dt[i]=math.floor(15*(dt[i]-vmin)/range)
    dt[i]=clamp(dt[i],0,15)
   end
  end

ただ、0.70.6 も、0.80beta も、0 を割ったり、0 で割ったりした際に、「そんな計算はできないよ」的な何かが入ってるっぽいのだよな…。

function TIC()
 cls(13)
 a = math.floor(15*(8-8)/0)
 print("a="..a, 0, 0)
 b = 10 / 2
 print("b="..b, 0, 8)
end

実行すると、「a=-nan(ind)」と表示される。0.70.6 も 0.80beta も結果は同じ。であれば、0.70.6 で実行した際にもエラーを出して止まりそうなものなのに、0.70.6 は動いちゃう…。何故。

2019/09/18(水) [n年前の日記]

#1 [python] Python + curses で時間表示をするスクリプトを書いてみたり

Python + curses で、時間を表示するスクリプトを書いてみたり。環境は Windows10 x64 + Python 2.7.16 32bit。

curses_timedisp_ss.gif

_curses_timedisp.py

Windows + Python 2.7.x 上で動作させるには、curses-*-cp27-cp27m-win32.whl のインストールが必要。

_Python Extension Packages for Windows - Christoph Gohlke

curses は、端末画面上で表示位置を指定して文字列等を描画できるライブラリ。

テキストの描画しかできないので、MZ-700 (8bit PC) + BASIC を使ってプログラムを書いてた時代を思い出した…。あの時代にBASICプログラムをせっせと書いてた人達なら、Python + curses を使って何かしらをサクサクと作れたりしそうだなと。

分かった点をメモ。 :

window.border() を使うと画面端に枠を描画することができる。けれど、DOS窓(コマンドプロンプト、cmd.ex)やConEmu上では右端の枠が妙な表示になってしまったので、使用を諦めた。日本語フォントを使うとずれるのだろうか。よく分からず。

curses.BLOCK を指定すれば、ブロック状の文字を指定できるはずなのだけど。DOS窓やConEmuでは、たしかにブロックっぽい文字が表示されたものの、VMware Player + Ubuntu Linux 18.04 上では「#」になってしまった。仕方ないので、curses.CKBOARD を指定して、チェッカーボードパターンっぽい文字を表示。

他に何ができるかは、公式ドキュメントが参考になりそう。

_15.11. curses --- 文字セル表示を扱うための端末操作 - Python 2.7.16 ドキュメント

#2 [python] termdownを試用

前述のスクリプトを書いた後でググっていて気が付いたのだけど。端末上で、大きな文字で時間を表示するだけなら、termdown というPythonスクリプトを使えば済むらしい。

_trehn/termdown: Countdown timer and stopwatch in your terminal

pip でインストールできる。
pip install termdown
Windowsの場合、termdown.exe というファイルも、Pythonインストールフォルダ\Scripts\以下にインストールされた。

termdown 5 と打てば、5秒でカウントダウンができる。

termdown_countdown_ss.gif

現在時刻を表示したければ、termdown -z もしくは termdown --time。

termdown_time_ss.gif

表示するフォントを変えたければ、termdown -f banner3 のように指定。指定できるフォントは、以下で紹介されている。もっとも、日本語フォントで表示していると _バックスラッシュ が「\」になってしまうので、使えないフォントばかり、なのだけど…。

_FIGlet - hosted by PLiG

termdown_font_ss.gif

qキーを叩けば終了できる。

2018/09/18(火) [n年前の日記]

#1 [comic][neta] 「りびんぐゲーム」「雑居時代」から色々と考えたり

思考メモ。

寝ていたら夢の中で、「りびんぐゲーム」「雑居時代(小説。氷室冴子著)」っぽい漫画のネタが出てきて。

目が覚めてから、「今でもああいった設定は、アレンジ次第でイケるんじゃないのか」「少なくとも巷に溢れてる異世界転生モノよりは面白くなるのでは」と思えてきて、夢の中で見たソレを頭の中でネーム(モドキ)に起こし始めたのだけど。

しかし、脳内で、主人公に「何だよ…この状況…ありえねえ」的な台詞を言わせた瞬間、ソレは違うなと気が付いた。今の時代、ああいうのって、全然「ありえねえ」話ではないよなと…。シェアハウスとかよく聞くわけだし、ひょっとすると今現在では「あるある」ネタじゃないのかと。

ああいった状況設定を異常と捉えるのは、御歳を召した方々、いわゆる昭和世代やバブル世代、ぐらいではないのか。今時の若い人達からは、「そんなどこにでもありそうな風景の何が面白いんだよ」と思われちゃったりしないか…。

考えてみたら、「りびんぐゲーム」ってバブルが弾けたちょっと後ぐらいに連載されてた作品、だったような気もする。時代に先駆けていた設定ではなくて、時代と同時進行していた設定というか。当時の自分は「ありえねえ」「漫画だなあ」と思いながら読んでた気もするけど、アンテナの性能が低すぎて、現実が同じような状況になってることに気づいてなかっただけ、かもしれないなと…。

まあ、よくあるシチュエーションだったとしても、それはそれで、今なら「ほのぼの日常系」というジャンルとして作れるのではないかと思ったりもするのだけれど。

ん? もしかして「きらら」系の作品で、そういうのって既に結構あったりしないか? ありそうな気がしてきた。そっち系は詳しくないけど、たぶんあるよな…。

異世界転生モノも「りびんぐゲーム」「雑居時代」かも。 :

「そういう設定の作品は、異世界転生モノより面白くなるのでは」と一瞬思ってしまったけれど。よく考えたら巷に溢れてる異世界転生モノって、えてして「りびんぐゲーム」「雑居時代」の要素がどこかしらに含まれてるような、そんな気分になってきた。

例えば、「このすば」。アレは「雑居時代」だよなあ…。

あるいは、先日見かけた、魔王がどうこうな設定のラノベ原作アニメ。宿屋の狭い一室に、男性主人公と美少女二人が暮らしてるわけで、「りびんぐゲーム」と言えなくもないよなと。

戦士や魔法使いが馬車に乗って皆で旅をする系の設定も、ある意味、開放感のある「りびんぐゲーム」だったりしないか。

四谷さんは大事な気がする。 :

ということで、異世界転生モノはえてしてそのあたりの要素も既に含んでいるのだ、てな印象になってきたのだけど。

ただ、それらの作品には、男性メンバーが主人公しか居ない・ハーレム状態という違いがあるなと…。「めぞん一刻」で言えば、四谷さんが居ない世界線ばかり。

四谷さんが居ないと、気持ち悪いのだよなあ…。いや、四谷さん自体もかなり気持ち悪いというか不気味な存在だけど、居ないともっと不気味。居たら劇的に何か変わるわけでもないのだけど、居なかったら世界が閉じるというか…。

異世界転生モノは、何故に四谷さんが置かれないのか。四谷さんが相手でも、主人公が負けてしまうと思い込まれているのだろうか。どんだけ魅力がない主人公なの…。

主人公以外の男性が居るかどうか。 :

主人公以外の男性が配置されているかどうかについて考えているうちに、宮崎アニメの「紅の豚」を思い出したり。飛行機工場に 女性しか居なくて主人公が驚く、みたいなシーンを…。

ただ、あのシーンは、工場長に、「ガハハ」と笑う系の男性が配置されていたよなと…。要するに、彼は四谷さん、なのだよなと。

主人公が異性の集団の中にたった一人でポツンと居ると、なんとも居心地の悪さを感じてしまうし、それは同時に、読者、視聴者、観客にとっても居心地の悪さを感じさせてしまうのだけど。周囲に一人二人同性を配置すると、それだけで気が楽になる、見ていてどこか安堵する、みたいな。異常な状況が、ちょっとフツーにありえる状況になって、受け入れやすくなる…。

しかし、仮に、今時の作家がああいうシーンを作ろうとしたら、きっと工場長は、巨乳の美人女性になってしまうのだろう…。もしかすると「サービスサービス〜」とか言っちゃう系のキャラかもしれないってそれは古いか…。

そこらへんが、当時の宮崎駿監督の優れたバランス感覚であり、より多くの大衆が最終的には支持する作品を繰り出せてた秘訣、だったのかもしれないなと。 *1 要するに、設定一つ考えるだけでも「健康的」か「病的」か、みたいな話で…。今の作家は、ほとんどが「病んでいる」可能性が…。

まあ、病んでいる受け手の数がソレなりに居る現代なので、それはそれで商売になってしまうのだろうけど。より多くのリターンを得たいなら、大ヒット作品を得たいなら、どこかで転換を、なのだろうな…。と言っても、病んでる人に「健康的になれ」と要求しても「無茶言うな」だよなあ…。

ということで、健康的な作家を見つけたら、これは大事にしないといけませんよ、今時珍しい掘り出し物ですよ、と。「コイツの感覚、古いなあ」と思った直後に、「待てよ。もしかして俺は、未来の宮崎駿にダメ出ししちゃってるのでは」と、ちょっとは思い直したほうがいいのかも…。なんちてぽっくん。

このへんは、「普遍性」と「古さ」の混同、みたいな話になるのだろうか。ちょっとよく分かりませんが。

*1: もっとも、宮崎駿監督も、「もののけ姫」では巨乳美人女性的な工場長ポジションのキャラも出しているのだけど。しかしアレは、男女関係なく集団をまとめていく強い女性リーダー像という別属性を描いてるわけで…。 _大衆の先頭に立って旗を振ってる例の絵画 のソレというか。そこもまた、優れたバランス感覚があるように思える…。

#2 [anime][neta] 「紅の豚」の飛行機工場のシーンについてなんとなく思ったり

思考メモ。

「紅の豚」の飛行機工場のシーンについて思い返しているうちに、アレは宮崎駿監督が初期の東映動画に属していたから思いついたシチュエーション、自身の体験から生まれたシーンだったりするのかなと思えてきたり。

東映動画時代は、作品制作の終盤になると、原画マンや動画マンも仕上げ部に手伝いに行ってた、みたいな話が大塚康生氏の「作画汗まみれ」に書かれてたような気がするわけで。おそらく、女性ばかりがずらりと並んでる仕上げ部の光景を見て、当時の宮崎駿氏は何かを感じていたのではあるまいか…。そしてそれが、後に自作の中で、ひょっこり芽を出したのでは、と…。

「紅の豚」の主人公は、最初、「オイオイ大丈夫か」と不安がってるけれど。工場長は「まかせとけ」なノリだし、そのうち顔を知ってる婆ちゃん達も出てくるし、「モリモリ食べて、ビシバシ働こう」というスローガン通りに立派な働きを見せる作業員の姿を目にするしで。「コイツラに任せとけば大丈夫だ」という気持ちに変わってくる…。そこらへんも、東映動画時代の宮崎駿監督の体験から出てきた流れ、だったりしないかと…。「この娘さん達、スゲエな。頼りになるな」「仕上げに関しては俺より上手いやん」みたいな。

だとしたら、マズイ。若い作り手世代は分業が進み過ぎていて、部署間の交流がほとんど無いらしいから、宮崎駿監督が目撃したそういう風景を、自身の体験として得る機会が無いだろう。ということは、宮崎アニメのような作品を作ろうとしても、コレは作れない。実体験に基づく引き出しが少ないから。

であれば…。時々強制的に、演出、原画マン、動画マンを、仕上げの手伝いに行かせないとマズいのでは…。って短絡的過ぎるか。というか、そんな余裕が今のアニメ業界にあるわけ無いし。そもそも、それぞれ、別スタジオ・別会社になってるだろうから無理だよな。おそらくはスタジオがある国自体も違ってそう。

などと考えると、一つのスタジオで全工程をやっていた初期の東映動画に参加してた世代って、なんだかズルいなあと思えてきたりもして。「作画汗まみれ」には、仕上げを手伝ってるうちに仕上げ担当の女性を奥さんにしちゃった男性アニメーターの話が載ってたりするし…。出会いの機会もあったのだよなあ…。なんだかズルい。

と言うのは冗談としても、分業が進むとそれはそれで色々デメリットがあるんだろうな、みたいなことを思ったり。制作システムの柔軟性は失われるだろうし…。誰かが言ってたけど、アニメの1カットは工業製品じゃなくて、本来は全カットが特注品・一品モノなのだ、それを工場のラインのような感覚で作ろうとするから話がおかしくなってくるのだ、みたいな。しかし、そういった妙な分業を推し進めちゃったのが東映動画・東映アニメーションってあたりがなんだか皮肉な状況だけど。

東映動画ではなくて、スタジオぴえろの話だけれど…。「うる星やつら」劇場版第1作の時は、時間も人手も足りなくて、押井監督までセルの仕上げをやってたらしいけど。本来なら、そのぐらい柔軟なことができる環境で作ったほうが、伸び伸びとした作品が出てくるのかなと…。 *1 と言っても当人達は「あんなのは二度とゴメン」「伸び伸び云々以前の悲惨な状況だよ」と絶対言い出すだろうけど。

とかなんとか考えちゃう機会すら与えてくれるあたり、やはり宮崎アニメは名作揃いだなーと思いました。(小並感)
*1: いや、「うる星やつら」劇場版第1作は、押井監督からすると伸び伸びとは程遠い作品だったのだろうけど…。「ビューティフルドリーマー」のほうが伸び伸びしてるよな…。

2017/09/18(月) [n年前の日記]

#1 [prog] Kuinなるプログラミング言語を少し触ってみたり

Kuinなるプログラミング言語が公開されてるらしいので、なんとなく触ってみたり。Windows専用のプログラミング言語。エディタ付き。

_Kuinのダウンロードと紹介 - プログラミング言語「Kuin」 - Kuina-chan
_Kuinチュートリアル1 はじめてのKuin - プログラミング言語「Kuin」 - Kuina-chan

第一印象。 :

エディタがついてるあたりはグッドだなと。 _HSP_Small Basic 等もそうなのだけど、これさえDLすればとりあえず始められる、てのは初学者向けを意識した場合、超大事だなと思ったり。導入ハードルは低ければ低いほど好ましい。

とりあえず、チュートリアルを眺めつつ写経してみたけれど。

  • 「=」が「::」だったり。
  • 「0xffffff00」が「16#FFFFFF00」だったり。
  • 「@」だらけだったり。
  • 1行書くたびに頭に「do」が入ったり。

う、うむ…。どうしてこうなった…。

疑問に思ってドキュメントを眺めてみたら、どれもこれも設計理由が書いてあった。どうやら Pascalの圧倒的なコンパイル速度を強く意識したことで、Pascal由来の記述や、コンパイル処理の最適化に繋がる不思議な記述が増えたっぽい。言われてみれば、たしかにコンパイル速度が速い、ような気もする。

既存言語をガン無視してこうなったのかなと邪推したけど、むしろ逆のようで。C、Pascal、Basic、Python等を例に出しつつ設計理由を説明してあったので、色々意識しまくったら結果こうなったのだ、ということらしい…。

感想。 :

(感想には個人差があります)

個人的には、一つの言語と各種ライブラリを揃えるパワフルさに、まず素直に脱帽。よくまあここまで作れるなあ…。言語・環境を作れる人達って尊敬します…。

ただ、しかし。コンパイル速度と、ソースの入力のし易さを優先した結果、可読性が悪く、また、他の言語に移行しづらい独特な記述スタイルになって、習得しても潰しが効かない、そんな雰囲気も感じてしまったり。ていうかぶっちゃけ、「そんなにPascalが大好きなら、Pascalそのままじゃダメなのかのう…」などと身も蓋もないことを…。

でもまあ、プログラマーって、えてしてこういう方向に最適化しちゃう人が多いから…。意味のある文字列を打つより謎記号を1文字打って済んだほうが早いだろ、みたいな。Markdownとwiki記法を比較して「Markdownは機能が少ないからダメだ」「wiki記法のほうが文字数が少ない上に機能も豊富だから優れている」みたいな判断を下すノリとでもいうか。それはそれで分かるし、そういう方向性もアリと言えばアリだよなと。

もっとも、自分は…。ソースの可読性が悪くなったらバグが混入する可能性が高くなって、結局デバッグ作業で余計に時間がかかるのだから、打鍵数の少なさを気にしてもアレだし、まともなIDEを使えるなら打鍵数は意外とどうでもよくなるし、自分が最後までそのソースをメンテナンスできるとも限らないから、となると優先すべきは、誰でもざっくり眺めただけで「ハイハイ。なるほど」と理解できる優れた可読性を実現することだろうし、そのためには既存言語への慣れを積極的に利用して奇抜な記述・文法は最小限に、などと思ってしまうのだけど。

とは言えもちろん、色んな言語があったほうが色々なことに気付けるし、多様性があったほうが面白いので、こういう言語が存在することは当然肯定するわけですが。いいぞもっとやれ。みたいな。

プログラミング言語マニアの意見感想を、眺めてみたい気もする…。例えば、屈指の言語マニアであろうRuby作者様あたりが言及したら、全然違う視点やアイデアがチラチラ見えてきて、めっちゃ勉強になるのだろうな、などと妄想を。

(感想には個人差があります)

サンプルソースのウインドウサイズ。 :

言語仕様とは全然関係ない話だけど。チュートリアルのソースや、サンプルソース群で指定されてる、1600x900というウインドウサイズに首を捻ったり。何故、このサイズ…。

この話は長くなりそうなので、別記事でメモ。

#2 [prog] サンプルソースのウインドウサイズについて少し考え込んでしまったり

Kuinというプログラミング言語を少し触ってみた際に、チュートリアルのソースや、サンプルソース群で指定されてる、1600x900というウインドウサイズに首を捻ってしまったり。何故、あえて、そのウインドウサイズを選んだのだろう…。

というのも、サンプルの類は、興味を持ってくれた人達に、「コレはこういうことができますよ」と伝える・宣伝するためのソレだから、できるだけ多くの環境で動かせることを意識したほうがいいだろう、であれば、そこで指定するウインドウサイズは、どの環境でも表示できるサイズであることが望ましいのではあるまいか、と自分は思っているからで。

例えば…。ペルソナだか顧客ストーリーだかを提示してみるけど…。

小中学生がお小遣いやお年玉を貯めて、自分専用のノートPCを買ったとする。あるいは、親御さんにお願いしてノートPCを買ってもらうとする。

お小遣いやお年玉で買えるPCとなれば、それほど高額でゴイスなスペックのPCは選べないだろう。だって、他にも買いたいものがたくさんあるはずだし。

あるいは、親御さんが子供に買い与えるとしたら、最初からゴイスなPCは買わないだろう。子供が使うのだからと、比較的安いPCを「とりあえず」で選んでしまうのではないか。

ということで、安いノートPCの画面解像度を眺めてみると…。

_価格.com - ノートパソコン スペック検索・性能比較

1366x768とか、1280x800とか、そんな画面解像度のノートPCがゴロゴロしてる。つまり、そのぐらいの画面解像度のPCを、お子さん達が入手している可能性は否定できない。

さて、そのお子さんが、「えっ? コレを使うとゲームが作れるの!?」と、めっちゃワクワクしながら、何かしらのプログラミング言語・ツール等をDLしてインストールしたとして。

期待に胸を膨らませながら、サンプルソースを実行してみたら、1600x900でウインドウがバーン。1366x768の画面解像度のノートPC上で、1600x900のウインドウがバーン。

そのお子さんはどう思うだろうか。「クソが!」「画面(ウインドウの中身)が全部見えないじゃん!」と思うわなと。印象最悪ですがな…。どんなに言語やライブラリを作り込んでいたとしても、サンプルのウインドウサイズが1600x900だったというただそれだけで「コイツ使えねー」扱い。トホホ。

であるから、サンプルの類は、あまり大きなウインドウサイズを指定しないほうが良いのだろうなー、と自分は思うわけで。

じゃあ、どの程度のウインドウサイズならいいのか。一般的にこの手のソレは、640x480とか800x600が多いような気がする。 _Windows 10 のシステム要件と仕様 を眺めると、「最低でも800x600のディスプレイを用意してくれよな」と書いてあるし、 _Windows 8 と Windows 8.1 のシステム要件 を眺めると、「1024x768は欲しいッスねー」と書いてあるので、どんなに酷い環境でもWindowsを使ってる以上、640x480や800x600のウインドウサイズなら確実に表示できるはず。

でも…。2Dゲームっぽい何かしらを表示したいとなると、今時、640x480なんてちょっと寂しいよね、悲しいよねえ、Windows95を使ってた時代ならともかくねえ、てな印象が無きにしも非ず。

もうちょっとリッチに行きたいよなあ…。であれば。一昔前のゲーム機の「HD画質」てのは1280x720だったらしいし、TVアニメ制作時の解像度も1280x720だったりするらしいので、せめてその程度はあってもいいんじゃないか。800x600のディスプレイを使ってる人には「ゴメン!」するしかないけれど、いくらなんでも今時そんな環境は少数派だろう。大体は、最安ノートPC群の1366x768や1280x800のディスプレイが最低ラインじゃないかしらん。だったら、1280x720のウインドウが表示できるよなと。たぶんできると思う。できるんじゃないかな。

てなことを考えながら、普段、サンプルスクリプトのウインドウサイズを640x480とか1280x720で指定してる自分からすると、なんでコレ1600x900にしたんだろうなー、と疑問に思ってしまったわけです。

まあ、大きな画面でグリグリ高速に動いたらビックリしてくれるだろう、てなノリかなと想像したりもするのですが。でも、「クソが!」と思われちゃったら元もこうもないよな…。みたいな。さて、どうなんですかね。

いやまあ、そもそも今時の子供さんは「ゲームを作れるの!?」なんてワクワクしないだろ、と根底から否定されそうでもあるけど。「ゲームを作る…? うへえ、メンドクサ…」としか思わないんじゃないか…。ワクワクするのって、ファミコンで遊んでたおじさんぐらいじゃないの…ってソレを言っちゃあ…。

サイズが変えられるのがベストではあるのだろうな。 :

そういえば、cocos2dを触っていて感心した点があるのだけど。 _特定のショートカットキーを押す と、フルスクリーン表示とウインドウ表示を切り替えられたり、FPS表示のON/OFFができるあたりが便利だなと。640x480の小さいウインドウで表示されても、ショートカットキーを押すだけで全画面表示される。迫力満点。大体にして、そのあたりの機能はえてして必ず欲しくなるものだし、最初から機能として実装済みのほうがいいよな、毎回個別に実装するのもアレだよなとも思えるわけで。cocos2dって、そういうところは賢い。

あるいは、昔のTVゲームのエミュレータ関係を試用してみると、ウインドウサイズを自由に変更できるものがたまにあったりして感心したり。ウインドウ内のドット絵がボケたりジャギったりするデメリットはあるものの、画質よりゲーム画面の大きさを優先したい人は、ウインドウ枠をドラッグするだけで目的が果たせる。こりゃ便利。

考えてみれば、ウインドウサイズ変更、ウインドウ表示とフルスクリーン表示の切り替え、てなあたりは、PC上で動かしてるからこそ得られるメリットなのだよな…。家庭用ゲーム機で、そういうことはフツーできないわけで。

例えばWebブラウザなどは、Ctrl+ + や Ctrl + - を叩くとページが拡大したり縮小したりするけれど。そういう機能を盛り込んでみた2Dゲーム制作ライブラリ、なんてのも実はアリだったりするのかもしれないな、てな妄想を。

そして、そういう機能があれば、サンプルソース内のウインドウサイズの指定なんて、結構どうでもいい話になるはずで…。ウインドウサイズを変更できない作りが前提になってるから、デフォルトサイズってかなり大事ですやん、という話になっちゃうけれど、ユーザがいつでも好きなように変更できるなら、デフォルトサイズはなんでもいいよね、ということに…。

などと書いているうちにふと気づいたけど。Kuinのウインドウって、枠をドラッグしてサイズを変更すると、中に描画されたアレコレもサイズ変更されるのだな…。ああ、なるほど。それで最初から件のサイズが指定してあるのか。見えなかったら枠をドラッグして小さくすりゃええやん、と。そういうことか…。

となると残る問題は、ユーザがその機能の存在に気づくかどうか…。自分は、「いやー言われなきゃ気付かないんじゃないか?」とネガティブな想像をしちゃうけど、作者さん的には「何言ってんだよ気づくに決まってるだろ。だからこれで問題無し」と思っているからこのサイズ、なのだろう…。

まあ、例えばフルHDのディスプレイを使ってる環境等では迫力が感じられるサイズなので、「迫力があるほうが訴求力もある。だからこのサイズがグッド」てな判断もアリなのかもしれず。

しかし、迫力があるほうがいいなら、最初からフルスクリーン表示のほうが更に良かったりしないか。と思ったけど、その場合は終了のさせ方が分からなくて「クソが!」と思われちゃうか…。なかなか難しい。

てな感じで、サンプル類のウインドウサイズ決定って、考え込んでしまうと意外とどこまでも悩むことができちゃうので、「あーもうめんどくせーからVGA(640x480)で」「こんなところでグダグダ悩んでる暇あったらガンガンソース書いてサンプルの本数増やしたほうがいいわ」てのもアリだよなと思えてきちゃったりなんかしちゃったりなんかして(広川太一郎風に)。

このへん、典型的な _自転車置き場の議論 ですわ。たぶん。

2016/09/18() [n年前の日記]

#1 [opentoonz] OpenToonz勉強中その2

OpenToonzを使ってちょこちょことロトスコの真似事をまだ続けていたり。

ペンタブレットを使ってトレスしてるけど、線の端っこがぐるんと逆に回った状態になってしまいがちなのは何故だろう…。他のCGソフトはそのあたり上手いこと処理してるのだろうか…。

色を塗ったり等もしてるけど、どうも一般的なアニメ絵には見えない仕上がりに。何がいかんのか…。線幅が太過ぎるのかな。1280x720の解像度で、ペンだかブラシだかのサイズが1だと太いのだろうか。0.5ぐらいを入れないとダメかな。

塗り領域にテクスチャを貼ろうとしたけど、スタイル設定上でサイズ調整する方法が分からず。Scaleを弄っただけでは反映されないような。何を基準にサイズを決定してるのだろう…。

2015/09/18(金) [n年前の日記]

#1 [pc] UBCD 5.3.5をUSBメモリにインストール

_2015/01/26のメモ に従って作業。

ついでにCD-Rも焼いた。某所に渡しておけば、コレを使ってメモリテストぐらいはできるだろう…。

#2 [nitijyou] 健康診断に行ってきた

幸い晴れたので、電動自転車で北団地の集会所まで。受付時間はAM09:00-AM10:30。AM09:45頃行ったけれど結構混雑してた。

どうしても血液採取は慣れない…。無痛の採取方法が発明されないものかと。科学技術はまだまだ発展させるべき余地がある。みたいな。

レントゲン撮影は集会所の外で順番が来るのを待つのだけど、蚊に刺された…。蚊が血を吸う時は痛みを感じないけど、その仕組みを血液採取に利用できないものか。そういう研究をしてる人がTVで紹介されてた記憶もあるけど。

2014/09/18(木) [n年前の日記]

#1 [ruby] RubyでPDF作成

prawn というライブラリを使うと、Ruby で PDF作成ができると知ったので試していたり。

以下、参考ページ。

_prawn | RubyGems.org | your community gem host
_prawnpdf/prawn - GitHub
_猫ぐらし: Ruby de Pdf
_* Ruby - PrawnでPDF作成! - mk-mode BLOG
_RubyのPDFライブラリ "Prawn" のご紹介 : Raccoon Tech Blog - 株式会社ラクーン 技術戦略部ブログ
_PDF生成ライブラリ「Prawn」 - 名もないテクノ手
_prawn:measurement_extensions.rb - noritsuguの日記

WIndows7x64 + Ruby 1.9.3 上で、
gem install prawn
でインストールできた。

位置の指定をする際の単位はポイントだけど、mm(ミリメートル)等を使いたいなら、
require 'prawn'
require 'prawn/measurement_extensions'
と書いて、
Prawn::Document.generate( PDF_FILE,
                         :page_size     => "A4",      # 用紙サイズ
                         :page_layout   => :portrait, # 用紙向き ( 縦:portrait、横:landscape )
                         :left_margin   => 10.mm,        # 余白(左)
                         :right_margin  => 10.mm,        # 余白(右)
                         :top_margin    => 10.mm,        # 余白(上)
                         :bottom_margin => 10.mm         # 余白(下)
                         ) do
といった感じで「10.mm」等の指定をすればいいらしい。

ThinReportsなるものがあるらしい。 :

_帳票ソリューション for Ruby and Rails | ThinReports

GUIで帳票のレイアウトが出来て、Rubyで帳票のPDF作成ができるらしい。素晴らしい。

ThinReportsEditor-0.7.7.2-mswin.exe をDLしてインストールしてみた。このエディタで、帳票のデザインをする。

Rubyのライブラリをインストール。
gem install thinreports

_Getting Started - ThinReports - Matsukei Open Source Center を眺めながら試してみたけど、かなりイイ感じ。簡易仕様書までhtml出力できてしまうあたりも感心。印刷については、コレを使えばバッチリ、のような気がしてきた。

ちなみに、ドキュメント内では、
report.generate_file('hello_world.pdf')
と記述されてるけど、現在のバージョンでは、
report.generate(:filename => 'hello_world.pdf')
と記述するようになった模様。

PythonでもPDF作成。 :

RubyでPDF作成ができるなら Pythonでもできるのではないか、と思ってググってみたら、ReportLab というモジュールがあるそうで。

_PDF生成(ReportLab) - Python入門から応用までの学習サイト

Windows上でインストールする方法がちょっとよく分からないけど、とりあえず Python でもPDF作成ができるっぽい、ということをメモ。

#2 [pc] LibreOfficeでも差し込み印刷

昨日、Word と Excel で差し込み印刷をテストしたのだけど。OpenOffice や LibreOffice を使ってもできるんじゃないのかと思えてきたので試してみたり。

ググってみたら、以下のページで解説されてた。

_LibreOffice で差し込み印刷する方法
_差込印刷 - 使ってみようOpenOffice.org

Word と操作手順は違うけど、同じようなことができるらしい。挿入 → フィールド → その他 → データベース、みたいな流れでフィールドを挿入してから、ツール → 差し込み印刷ウィザード、でいいのかな。たぶん。

む。今頃になって気がついたけど、LibreOfficeはテキストボックス内にフィールドを挿入することができないな…。これでは、差し込まれる文字列を自由な位置に配置することができない…。あらかじめ印刷用紙のレイアウトが決まってる場合は対応が難しい予感。

OpenOffice はどうなのか確認してみたけど、これもテキストボックス内にフィールドを挿入することはできなかった。LibreOffice と同じっぽい。

このあたり、Wordはどうなっているのか確認してみた。Word ならテキストボックス内でもフィールドを挿入することができる。さすが有償製品。なのかしら。

と思ったけど勘違いしてた。Wordのテキストボックスは、LibreOffice、OpenOffice では「枠」が相当するらしい。挿入 → 枠、で挿入ができる。「枠」の中なら、フィールドを挿入することができた。自分、図形描画ツールバー上の「テキスト」をテキストボックス相当と思い込んでました。ソレはまた別の機能だったのですな…。

OpenOffice Writerはちょっと動作がおかしい。 :

差し込み印刷をしてみたら、各ページに、余計な空白ページまでついてきた。結合して1つのファイルとして保存する分にはそういうことにならないし、LibreOffice Writer では印刷時もおかしくならないのだけど。どうも OpenOffice の差し込み印刷は、印刷時の処理にバグがありそうな予感。

#3 [pc] TeXをちょっとだけ勉強

自分、TeXって何なのか全然知らなかったので、この際少し触ってみようかなと。ちなみに環境は Windows7 x64。

インストール作業。 :

以下のページを参考にして、TeX Live とやらをインストール・設定作業をしてみたり。

_TeX Live 2014 for Windows ・ Baldanders.info
_第1回 Windowsで簡単にLaTeX環境を構築する方法(TeX Live 2011) | 餅と輪
_第2回 Windowsで簡単にLaTeX環境を構築する方法(TeX Live 2011) | 餅と輪
_第3回 Windowsで簡単にLaTeX環境を構築する方法(TeX Live 2011) | 餅と輪
_TeX Live 2012をWindows 7 (64bit)環境にインストールしたメモ - 結城浩のはてな日記
_WindowsへのTeXのインストール

今回は、install-tl-windows.exe をDLして実行してみたり。

注意すべき点は、レポジトリを変更して日本のミラーサーバを選択してから作業を進めること。最初、デフォルトのままインストールしたら、途中で止まってしまって…。日本のミラーサーバを選び直して作業をしたら、30分ぐらいで各パッケージをネットからDL・インストールができました。

や。30分てのもかかりすぎだけど。もしかすると iso をDLして、そっちを使ってインストールしたほうが良かったのかもしれない。おそらく、インストール後に TeX Live Manager を起動して、「導入済みのものをすべて更新」を選べば、iso版より新しくなったパッケージだけを更新してくれそうだし。

TeXworks のタイプセット設定は、 _TeXworks/設定/Windows - TeX Wiki を参考に、列挙されてる分を全部設定したのだけど。途中でウンザリしてきました。一々GUIでオプションを一つ一つ設定するなんて拷問…。設定ファイルを直接弄って楽に設定とかできないのかな…。

もしかすると、upLaTeX (ptex2pdf) の設定だけしておけば、とりあえずお試しはできるのだろうか? 他の解説ページも、えてしてタイプセットを一つぐらいしか登録してないし。

印象。 :

とりあえず、 _TeX入門 - TeX Wiki の「使い方」のあたりを眺めながら、TeXworks 上でコピペして試してたのだけど。何かこう…。うーん。

コレ、今時は、Word や OpenOffice/LibreOffice Writer でいいんじゃないか、という気がする。 _僕が TeX を使うのを辞めた3つの理由 - ++C++; // 管理人の日記 てな話も見かけたし。

あるいは、Markdown を使えばかなりの部分を済ませることができそう。と思って Markdown + TeX でググってみたら、その組み合わせで作業を改善する試みがいくつか見受けられた。やっぱり今時はそうなるよな…。

TeX関係のファイルだけで、約13万ファイル、4GBになってるあたりも、なんというか…。

2013/09/18(水) [n年前の日記]

#1 [dtm] 一部よろしくない効果音があったような気がする

昨日アップロードしたゲームサンプルだけど、どうも一部のSE(効果音)がライセンス的によろしくないような気がしてきたり。

以下のSEは、問題ないだろうと思うのだけど…。 まさか、計算して作った楽器の音一つ一つにまで制限かけてくるとも思えないので、そこらへんは大丈夫じゃないのかなと…。そんな制限がついて回るなら、曲を作って公開とか、ゲームに利用とか、そのへん何もできなくなるよなと。電子音楽を作ってるミュージシャンは全員犯罪者ということになる。いくらなんでもそんなわけないよなと。

ただ、「It's a new record」の音声は、Balabolka + Microsoft Speech Platform + ZiraPro で出したものを色々加工して作ったもので…。それはどうなんだろうなと。

調べた範囲では、Microsoft Speech Platform を経由して出力した音声ファイルは、商用利用も可能らしく。

_明日,明後日のLD学会発表 | CogDiv+
_BOOKSCANが始めた「音声化チューニング」がすごい - ただのにっき(2012-11-22)
_*--掲示板--*

だったら、ゲームの効果音の加工元素材として使っても大丈夫じゃないのか、と思っていたけど。商用利用可能だからと言って、加工だか改変だかが許可されているかというと分からんし、CC0で公開できるサウンドファイルになるかというと、それはまた別の話じゃないのかと思えてきて。というか、以下のスレを読んでるうちに、だんだんそう思えてきたのだけど。

_【音声合成】テキスト読み上げソフトスレ【SAPI5】

ということで、早急にそこだけは差し替えないといかんのであろうと思えてきたので、作り直しを始めたり。

#2 [dtm] Ubuntu上で音声合成出力を実験

Linux 界隈なら、フリーで使える音声合成ツールがあったりしないのかな、と思えてきたので少し調べたり。たぶん、GPL や BSD License のプログラムがあったりするんじゃないのかと。さすがに日本語で喋らせるツールは無いだろうと思うけど、今回自分にとっては英語で喋らせることができればひとまず充分だし。

とりあえず、Windows7 x64 + Vmware Player + Ubuntu 13.04 上で色々試してみたり。

Festival を試用。 :

Festival というプログラムで音声合成ができるらしいと知り、以下の記事を参考にしながら試用。

_TextToSpeech - Community Ubuntu Documentation
_nishimotzの日記 - Festival in Ubuntu
_SVX日記 - チープに歌うLinux「妖音リナ」
  • Ubuntuソフトウェアセンターを起動して、festival や festvox で検索して、ソレっぽいものをいくつかインストール。festvox てのが、音声・言語の種類らしい。
  • 端末? ターミナル? を起動して、festival と打ち込むと、コマンドを受け付けるモードになる。
  • help と打ち込むとヘルプが出る。
  • TABキーでコマンド名の補完ができる。
  • (SayText "Hello") と打ったら、「ハロー」と喋ってくれた。
  • (voice_????_diphone) 等を打ちこむと、音声種類を切り替えることができる。
  • 終了は、(exit) もしくは C-d。

wavファイルにするには、text2wave というツールが使えるらしい。.txt ファイルに文字列を書いておいて渡すようで。
text2wave -o hoge.wav hoge.txt

Gespeaker を試用。 :

_gespeaker - A GTK+ frontend for the espeak system - Google Project Hosting

これも Ubuntuソフトウェアセンターからインストールできた。GUIで音声合成が指定できる。

出力音声の品質。 :

音声の品質については…うーん。たしかに、喋ってるのだけど。何かこう…。うーん。

gnuspeechも気になるのだけど。 :

_Gnuspeech - GNU Project - Free Software Foundation (FSF)

GNU とついているということは、かなり制限がないソフトなのかな、と想像するのだけど、どうやったら使えるようになるのかさっぱり分からず。

2012/09/18(火) [n年前の日記]

#1 [cg_tools] RealWorld paintを試用してみたり

_RealWorld Paint - image editor for bloggers
_TiltStr::不定期版: RealWorld Paint 2011.1 - 更新情報

Windows用の画像編集ソフト。オプションを変更することでメニュー等を日本語化することもできる。

少し触ってみたのだけど、曲線や多角形を描画する際の仕様がなんだか面白いと思った。ドラッグすると線が描けるわけだけど。その描いた線の中間に、自動的に頂点が置かれるという仕様で。その頂点を動かすと更に辺が増えて、その増えた辺の中間にも、また頂点が自動的に作成される。つまり、最初はシンプルな形を描いて、そこからどんどん複雑な形状に変えていくことができるわけで。面白いというか、こういうやり方があったのかと感心。

タブレットの筆圧も感知してるっぽい。Intuos3で試してみたらちゃんと反応してくれた。ただ、筆圧を何に反映させるのか、そのあたりの設定を変える場所が見つからず。

#2 [zatta] 設計ミス、なのかなあ

_伊集院光が語る「オスプレイ事故における問題点」 | 世界は数字で出来ている を読んで、
「人為的ミスが出やすい設計っていうのは、設計ミスって言うんじゃねぇのって思って」

伊集院光が語る「オスプレイ事故における問題点」 | 世界は数字で出来ている より

という話に「だよなあ」と思ったり。ユーザ(?)のせいにして済ませてんじゃねえ。クソゲーはプレイしてるユーザがダメなんじゃなくて実装や仕様がダメだからクソゲーなんだろうが。みたいな。…それとはちょっと違う気もするけど。

にしても、オスプレイって本当にタッチパネルで墜落に繋がりそうなクリティカルな操作を要求されるんだろうか? スマートフォンやタブレット端末を触ればタッチパネルは誤操作を誘引すると分かるだろうに、そんなものをクリティカルな操作に使うものだろうか。気になって _「osprey cockpit」でGoogle画像検索 してみたけれど。たしかにタッチパネルがついてるように見えなくもないが、それ以前にスイッチだらけのような…。写真からはよく分からん…。

_時事ドットコム:【特集】垂直離着陸機オスプレイ を眺める限り、そもそもモードが3つあるから複雑な操作を要求される、てな話が気になるわけで。モード切替時に事故が起きてるという話を聞いた記憶もあるけれど、実際には・具体的には、どういう操作を要求されるんだろう。

何にせよ、そんなにも人為的ミスが発生しやすいなら、逆説的(?)だけどミスが発生しにくい設計に改善できる余地がどこかにあるはずだよなと。…任天堂に技術協力を仰ぐわけにはいかんのだろうか。宮本氏の一言で操作体系が劇的に改善する、そんなお花畑の展開を妄想。ありえないか。

航続距離は魅力的なので、なんとか改善してほしいけど。人間のせいにしてるようでは、改善の見込みすら断たれてしまいそうだな…。

UIの設計ミスと言えば。 :

なんとなく、自動車のソレを思い出したり。ブレーキとアクセルの踏み間違いによる事故が度々起きてるけど、アレは設計ミス、というかUIデザインミス?だよなと。

自動車のUIを、自転車のUIと比較すれば分かる。自転車なら、進むつもりで止まってしまったり、止まるつもりで進んでしまったりはしない。「進むなら踏み込め」「止まるなら握れ」なので間違えようがない。進む・止まるという操作に限定すれば、自転車のUIは、ほぼ完璧な設計。 *1

それに比べると自動車は、「進むなら踏み込め」「止まるなら踏み込め」なので、間違える場面が出てきてしまうのは当たり前。平時ならともかく、一瞬パニックになってる状態で正確に踏み分けができるのか。そのあたりを考えれば、車のUIはダメUIの典型例と言える。

人類はどこかの時点で、自動車のUIを大幅に改変しなきゃいけないと常々思うのだけど、どうにかならんのかしら。何人もの命を一瞬で奪える馬力があって、しかも何十万〜何百万もする乗り物が、下手すると1万円でも買えちゃう乗り物にも劣るUI設計のまま放置されてるのは、状況として異常なんだけどなあ…。

もしかして、オスプレイのUIもソレなんだろうか? ヘリコプター、もしくは飛行機という、旧来のUIに慣れた操縦士のために、理に適っていない・非合理的だが歴史を踏襲したUIにしたものの、ヘリコプターと飛行機を融合させたが故に一部異なる操作が混入して、それがミスの原因になっている、とか。分からんけど。

慣れた人のために、人命がかかってるが故に、非合理なれど歴史を守ったUIを維持し続けるのか。それとも、これから使うユーザのために、人命がかかってるが故に、合理的なれど歴史を無視したUIを発明するのか。車のUIはそういう問題が突きつけられて、人類は前者を選び続けてるわけだけど。本当にソレでいいんだろうか。

QWERTY配列のキーボード。MS-Officeのリボンインターフェイス。Windows8 の旧称メトロスタイル。WebサイトUI設計。そのあたりも関係してそうな。それらは人命なんて関係ないけど、それでもこんなに試行錯誤しているわけで。…人命がかかってないから積極的に試行錯誤してるのかもしれんけど。

*1: ついでに言えば、人間は猿から進化したので、緊急時に手を握ることで動作を止めるという設計は理に適ってる。木にぶら下がった状態の猿が、危機に遭遇した際に手をパッと開く性質を持っていたら、落下して地面に叩きつけられて死んでしまう。そんな性質の猿は、種として生き残るのは難しい。つまり、今も生き残ってる猿は ―― 人間と呼ばれている、この猿は、とっさの場面では本能的に手を握るはずなのです。…樹上生活なんてはるか昔に忘れてしまった種なので、性質が変わってる可能性も高そうだけど。

2011/09/18() [n年前の日記]

#1 [cg_tools] blender2.59をインストール

2.59が出ていたらしいのでインストール。環境変数PATHの先頭にPython3.2インストールディレクトリを追加してからblenderを起動するバッチファイルもコピー。

ユーザホームディレクトリ?をどこで設定しているのかが分からない。レジストリを参照しているのだろうか。regedit で調べてみたら、Win7 64bitの場合、
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\BlenderFoundation
に、Home_Dir と Install_Dir という項目があるようで、そこに設定がされている、ように見えるが、はたしてコレを参照しているのかどうか。

#2 [pc] Win7 64bitにNTEmacsを入れてみた

以下のサイト・blogからバイナリをDLさせていただいたり。ありがたや。

_NTEmacs 22BASE (日本語インライン変換 & 半透明)
_NTEmacs
_NINE GENERATIONS: Emacs (NTEmacs) 23.1 をWindows 7上で少し快適に使う - Part.2

どれも動きました。本当にありがたや。

ついでにVimも入れてみた。 :

_ソフトウェア ? KaoriYa から 7.3.315 (2011/09/16) 版をDLさせていただいたり。

以前DLして Win7 64bit 上で試したときは、たしかウインドウサイズを変更…だったかな…とにかく何か操作をすると不正終了してしまって使えなかった記憶があるのだけど。もしかすると設定ファイルがまずいのかもと気づいて、環境変数 HOME 以下の _gvimrc やら _viminfo* やら _vimrc やら vim と関係ありそうなファイルを全部削除してから、今回DLした版で gvim.exe を実行してみたところ、ちゃんと動いてくれた模様。

_GVimのウィンドウサイズを保存・復元したい - present を _gvimrc にコピペさせてもらった。チョー便利です。ありがたや。

vi も、慣れれば手離せなくなるんだろうけど。あふと同様、ワンキーでアレコレ操作ができるという思想だから、どのキーがどの機能なのかを覚えてしまえば、脳と直結しているかのような使い勝手が得られるのだろうけど。いかんせんキーを覚えるのが大変な印象があって少し触って投げ出して操作を忘れてまたたまに少し触って投げ出して、を繰り返している始末。

#3 [cg_tools] マップエディタを少し試したり

_Tiled Map Editor なるマップエディタをDLして少し試用したり。Tiled Qt というアプリ名なんだろうか。よくわからない。とにかく、Windows版とMac版が用意されてたり、Java版が用意されていたりで、使える環境が多いマップエディタらしい。

2010/09/18() [n年前の日記]

#1 [sound] Music Maker は落ちにくくなった

UCA202 + ASIOドライバのほうが安定してるということなのかなあ。

とりあえずアレコレ効果音を作成中。「ピロ」とか「ポコピ」とかそういう感じの音を。…ソフトウェアシンセを鳴らして作っているけど、これってライセンス的にはどうなるんだろう。プリセットの音色をそのまま使っているわけではない・並べたり弄ったり重ねたりしてるから、一応フリー扱いにできるのか、それとも特定のソフトウェアシンセを使う限りはそれを使って作られた音も制限がかかるのか。もしかするとフォントのライセンス問題などと同じ罠がこの分野にも仕掛けてあるのだろうか…。

2009/09/18(金) [n年前の日記]

#1 [eclipse] eclipseにプラグインをいくつか導入

してみたり。

_More Emacs Plugin :

_Index of /update-site

eclipseの各種操作を emacsのソレに近づけるプラグイン。

導入後、検索ダイアログを表示しようと Ctrl+H を押したら前の文字を削除になっていて、ありゃ、みたいな。いや、emacsならそういう割当てが正解なのだろうけど。中途半端にeclipseのキー割り当てに慣れてしまっていたのかもしれぬ。>自分。

_Emacs+ Eclipse Plug-in (MulgaSoft) :

_update-site (MulgaSoft)

eclipseの各種操作を emacsのソレに近づけるプラグイン。導入してみたら、Ctrl+A(行の先頭)やCtrl+E(行の末尾)やCtrl+K(行の末尾まで削除)等のキー割り当てが外れてしまって、うーん。が、Ctrl+Sでインクリメンタル検索を呼んだ後、Ctrl+Wでその直後の単語を拾って検索してくれるようになって、非常に満足。xyzzy上でもコレは多用してるので、戸惑わなくて済む…。

_jp.mobster.eclipse.utilitiesをサルベージして公開しました - アガテナ :

パッケージエクスローラのフォルダに対して右クリックすると、ユーティリティという項目が増えていて、そこからDOS窓が開けたり。ありがたい。あふまで戻らなくて済む。

2008/09/18(木) [n年前の日記]

#1 [nitijyou] なんとか2.5リットルほど水を飲んだ

バリウムが固まるのが怖くて努力しました。3リットルには足りてないが、腹痛で目覚めることもなく。たぶんこれでなんとかなった…のであればいいなあ。

#2 [zatta][neta] 昨日の朝方、自転車で街中を走ったのだけど

人間ドックを受けるために、朝御飯を食べるわけには行かない、が、家族が朝食の用意をしてるのを見ているとお腹が減ってるのと相俟って実にツライ。ので、1時間ぐらい早目に家を出発して、街中を自転車でウロウロと探索してたわけで。

街の中心部にある、とある公園の近くを通った時に、なんとなく昔を思い出したり。小学生の頃の自分にとって、その公園は、自分が滅多に踏み入れることのできない領域として認識されていたなと。

小学生の頃は、何かそういった、「ここから先は踏み入れたことのない空間」「ここから先は異世界」てな印象の強い場所がたくさんあったような気がする。小さい頃は、人の形はしていても、まだ動物みたいなものだから、そういう意識 ―― ナワバリみたいなものを意識することも強かったりしたのだろうか。

そこまで考えて、ふと、なんとなく、電脳コイルを思い出したりして。アレも「駅向こうの〜」という単語が出てきたけど。大人になったらなんてことのない空間も、小学生の頃は外国みたいなもの、ということに気づいて話に組み込んでいたあの作品の監督さんの目の付けどころに今頃感心というか。や、そういうところにまで気を配って作っている作品より、全然そういうところに気を配ってない後番組、「テレパシー少女ナントカ」のほうが子供に受けがいいらしいという話を見かけてちょっとガックリくるけど、まあそれはそれとして。

自分の認識できた領域を広げていくことも快楽、なのだろうか。 :

RPG(TVゲーム系。テーブルトーク系に非ず)の面白さが全然判らない自分も、高校生の頃は、ブラックオニキスなる、非常に原始的なダンジョン系RPGを楽しんでたりしたわけで。あのゲームの何を楽しんでいたかと言えば、マッピング作業だよなと。方眼紙ノートにマップを描いていく作業を楽しんでいた、ような気がする。

つまるところ、自分の知らない空間を訪れ、地図を描くという行為で、その空間は自分が既に認識を済ませた空間である、と認知する快楽を得ることによりゲームを楽しんでいた、のだろうと思える。…そういえば、PS版のドラキュラもそうだったか。アレは地図が出てくるのだけど、プレイヤーが行ったことのある部屋と、行ったことのない空間が示されることで、まだここから先は行ってないな、的にゲームを続けようという気になる、みたいな。

ビジュアルノベル系のADVなどもその方向の快楽がある故にゲームとして成立するのかなと。空間が、ストーリーやエピソードに置き換わっている、とでも言うか。自分の知らない選択肢、別のストーリー、エピソードを知ることで、ここは自分が占領したぞ、と。…それを考えると、ストーリーに関しても「マッピング」を明確に示すことのできるシステムがあったほうが面白いのかもしれない。や、たしかそういうゲームが昔あったような気もするのだけど。

このあたり、以前友人が話していた、「ゲームにはコレクション性が必要」という話にまで単純化できるのかもしれない。空間認知も、ストーリーやエピソードを知るのも、自分の脳内にコレクションをしてるのと同じこと、なのではないか。…となると、それは必ずしもゲームでなければ体験できないものでもなくなってくる。Webサーフィンをしたり、ニュースサイトを作ったりするのも、情報をコレクションしてるのと同じこと。しかも、ゲーム内でしか通用しない知識ではなく、別のどこかで使える実用的な情報のコレクション作業なのだから…。そりゃゲームが売れなくなるわけだな、という気もしてきたり。

2007/09/18(火) [n年前の日記]

#1 [xyzzy] xyzzy から CSS Validator を呼び出し

_xyzzyの使い方が分からぬやし 励ましあえ その7 の333-336から。

333名無しさん@お腹いっぱい。sage2005/07/18(月) 01:28:08 ID:k11PvYCt0
CSS ValidatorをWindows 2000で動かす(http://homepage2.nifty.com/hobbit/html/cssvalid.html)
を参考に、CSS Validatorをインストールしました。
xyzzyからhtml+-modeやxml-modeでCSS Validatorを使いたいんですが、

set CLASSPATH=c:\css-validator\validator.zip
java org.w3c.css.css.StyleSheetCom <編集中のファイルのパス>

上2行のコマンドを実行して、出力された内容を別のウィンドウに
表示することはできないでしょうか。

ローカルで文法チェック(http://www.uranus.dti.ne.jp/~shiro-/soft/xyzzy/html+.html#lint)
をまねして書いてみたんですが、lispはほとんど分かってないのでだめでした。

334名無しさん@お腹いっぱい。sage2005/07/18(月) 01:45:00 ID:jOFm48uI0
リンク先にあるようなバッチファイルを書けば、ローカルで文法チェックとほとんど同じでいけるよ。

;バッチファイル.batの内容
@set classpath=c:\css-validator\validator.zip
@Java org.w3c.css.css.StyleSheetCom %1

;.xyzzyに追加
(defvar *css-validator-bat-file* "[バッチファイルのパス]")
(defun validate-css ()
(interactive)
(let ((file (get-buffer-file-name)))
(when file
(pipe-command
(format nil "\"~A\" \"~A\""
(map-slash-to-backslash *css-validator-bat-file*)
(map-slash-to-backslash file))))))
(global-set-key #\[キー] 'validate-css)

こんな感じ。

335333sage2005/07/19(火) 01:33:08 ID:ARBFP7Mk0
>>334
ありがとうございます。試してみましたが残念なことに「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」というメッセージが出力されるだけでした。

336333sage2005/07/19(火) 02:49:26 ID:ARBFP7Mk0
(format nil "\"~A\" \"~A\"" を (format nil "~A \"~A\"" に変えたらうまく動くようになりました。

xyzzyの使い方が分からぬやし 励ましあえ その7 より

_CSS ValidatorをWindows 2000で動かす :

_CSS Validator のダウンロードとインストール から css-validator.jar をDLして java -jar css-validator.jar http://www.w3.org/ てな感じで打ってみたのだけど main がどうたらと言われて動かない。

ので、 _CSS ValidatorをWindows 2000で動かす のページから site.zip をDLさせてもらって解凍。validator.zip を取り出して使わせてもらったり。

Firefox拡張のWeb Developerからも呼び出せるのだな。 :

ローカルファイルはチェックできず、必ずサーバにアップロードしてからじゃないと呼び出せないものかと思い込んでた。Tools の Validate Local * を選択すれば、ローカルファイルもチェックできるのだな。
Validate Local のメニュー。

#2 [anime] _読売テレビ 70年代の名作アニメ「宇宙戦艦ヤマト」や「ルパン三世」などのリバイバル版を放送

また、来年1月から月曜午後7時台のアニメ番組をリニューアル。放送中の「名探偵コナン」(後7・30)に加え、70年代の名作アニメ「宇宙戦艦ヤマト」や「ルパン三世」などのリバイバル版を放送する予定。同局によると「他局だがアルプスの少女ハイジなどもやりたい。現在、権利を交渉中」という。

スポニチアネックスOSAKA 芸能 より

面白い試みだなぁ。(via mixi)

_/.J | 読売テレビ、月曜19時台に「ヤマト」「ルパン」を放送検討
よりにもよって旧作に追われて深夜移動となる「結界師 [ytv.co.jp]」が哀れです。と書きつつ最初だけで見るのやめてたけど…。

スラッシュドット ジャパン | 読売テレビ、月曜19時台に「ヤマト」「ルパン」を放送検討 より

たしかにそれを言われると…。

とはいえ、過去の名作を再度放送することは文化的に見て意味があることではないかと思ったり。世代間において視聴したアニメ作品に関し断絶があるというのは、小説・漫画・映画等の他メディア?と比べた場合、扱いとしてちょっとどうなんだろうとも思うわけで。いや、レンタルビデオ等で借りてくればええやんという話もあるかもしれんのだけど、やはりTVをつけたら流れてるって状況は、自分から能動的に動かないと見れない状況とはちと違うのかなとか、そもそも今時レンタルビデオでルパンやヤマトを見れるのだろうかとか、そんなことをもやもやと。また、全世代に共通して通用するコンテンツを今以上に増やせるのは、ビジネス的にも非常にメリットがあるように思える。つまり、文化と経済という2つの側面から見ても、実験してみる価値はあるのではなかろうか。

つーか音楽においては過去の名曲をカバーすることでヒットしたりもしてるわけだから、映像作品においても過去の名作・コンテンツを有効活用する道が当然あるはず、ではないのかと。ただ、映像作品は音楽と違って、内包する情報量・情報の質が異なるだろうから、音楽のソレとは受け入れられ方が大きく異なる可能性もありそうな。…でもまあ、実験してみないと判らないか。仮説を立てて、やってみて、結果を見て検証して、軌道修正して、みたいな。

でも、福島では流れるのかしら。不安。そうなると、地域間におけるコンテンツの断絶てな問題も出てくるか。…それが問題なのかどうかはよくわからんけど。

ルパンが緑ジャケだったら :

高畑・宮崎コンビが後半で参加してる旨を宣伝すれば、どのように受け止められるか予測がつかないな…。

#3 [windows][cg_tools] 「Windows版 fontforge簡単お手軽パッケージ」が消えた理由

_スレ4 - meirのジオログ に理由が書いてあった。

トップページからfontforgeへのリンクがなくなっているのですが...一体何があったのでしょうか?
作成者 miki : 2007年8月21日(火) 08:46

fontforge Windows版は削除することにしました。あまりに不安定で、半端ものを公開しておくのは良くないので。それと、私都合によりサイト規模を縮小するためです。
作成者 meir : 2007年8月22日(水) 02:55

スレ4 - meirのジオログ - Yahoo!ジオシティーズ より

むぅ…。仮に不安定でも、さくっとお試しできないよりはよほどマシだと思うのだけど…。「不安定さが嫌なら _TTEdit を買いましょう。安定性とコストはトレードオフなのです」とでも書いておけば、そのへん免責(?)されるのではないかしらん。とはいえ「私都合により」と言われたら…。うーむ。 *1

フォント作成環境に関してはなんだか Windows 3.1 時代に近いものを感じる。 :

どのジャンルもシェアウェア・市販ソフトしかありませんよ、みたいな状況というか。小学生や中学生が「僕も作ってみたい」と突発的に思っても、経済的に手を出せない・ひとまず体験してみるのが難しい状況。いや、たとえば動画関連も比較的そういう感じなので、フォント作成云々に限った話じゃないのですが。

でもないか。AfterEffectあたりになると入門の「門」に辿り着くだけでも結構大変だけど、Flashでいいならフリーソフトも出てきているし。フォント作成も、FontForgeを動かすにあたって、cygwinも、Linuxの各ディストリも、無料で使えるし。単に前準備が大変なだけで。

…その、「前準備が大変」なあたりが障害だったか。

*1: まあ、「Linuxかcygwinインストールして使えばイイじゃん。面倒なのが嫌ならTTEditを〜」という言い方もできちゃうだろうしなぁ。

#4 [ubuntu] VMware 上の Ubuntu 6.10 で FontForge をリビルド(?)してみたり

ウチの環境ではツールボックスのアイコンその他が真っ黒になってしまうわけですよ。

FontForgeのツールボックスのアイコンが真っ黒。

御覧のとおり表示がおかしいのです。変なのです。…ひょっとして、パッケージのリビルドとやらをしたら正常表示になるのだろうかと疑問が。

_APT HOWTO - ソースパッケージでの作業 を見ながら作業。よくわからないけど。
mkdir temp
cd temp/
sudo apt-get update
sudo apt-get source fontforge
sudo apt-get build-dep fontforge
sudo apt-get -b source fontforge
sudo dpkg -i fontforge_0.0.20060703.1-1_i386.deb
起動してみた。英語表示だったのが、日本語表示になった。が、相変わらずアイコンは真っ黒なまま。

やっぱりFontForgeのツールボックスのアイコンが真っ黒。

なんでだろ。VMware上で動かしてるから仕方ない? VMware上で動かす限りは改善できないのかしら。ちなみに GIMP や Inkscape は別に表示がおかしくなったりしないのですが。使われてるライブラリ?が違うのかしら。たぶん違うのだろうけど。

つーかリビルドした版を入れると、「ソフトウェアのアップデート」で、同じバージョンなのに FontForge がリストアップされるな…。置き換えられないようにするために、何か対策が必要なのだらう。

_[debian-users:48455] パッケージの正しいリビルド方法は? :

_[debian-users:48469] Re: パッケージの正しいリビルド方法は?

たぶんこのへんが関係ありそう。メモ。

まあ、今回はオフィシャル(?)のパッケージを、また入れ直しちゃったのだけど。

_Linux Salad: FontForgeでフォントを制作する :

こちらの記事のスクリーンショットでも、アイコンが真っ黒になってる。もしかすると、VMware云々は関係なく、Ubuntu上でFontForgeを動かすと必ずこうなるのであらうか。

検索してみても、それらしい情報には遭遇せず。もしかして、Ubuntu上で FontForge を使ってる人ってまったく居ないのかしら。それとも正常表示されてる環境がほとんどだから話題にならないのだらうか。いかんせん自分の環境は VMware上で動かしてるソレなので確証が持てない。や、確証を持ったところで何かが変わるわけでもないけど。

Ubuntu 7.04 で試してみた。 :

_VMware用仮想マシンのダウンロード | Ubuntu Japanese Team から、Ubuntu 7.04 のソレをDL。VMware Player から開いて起動。FontForge をインストール。…変わりませんな。やっぱりアイコンがおかしいまま。

Vine 3.2 で確認。 :

Windows XP上から VNC で、Vine 3.2 機にアクセス。FontForge 起動。

Vine機で動かしたFontForge。

こっちは見た目正常だな…。

#5 [nitijyou] ktのサイトにチラシページをアップロードした

その旨メールで連絡した。

他に4点ほどのチラシファイルがあるらしいのだけど、まだ送られてこない。土日・休日だから、担当者はおそらく休みだろうし。もうちょっと待つか。あるいは電話連絡を入れて確認してみるか…。

もしかして、メールに添付した云々ということではなく、お袋さん宛てに送ってきた印刷物のチラシをwebページにしてほしいという要望だったのだろうか。ちょうど4種類あるし…。でも、それなら自分宛てに送ってきそうだし、「サイトにアップロードしてください」的一言が書かれたメモでも入ってそうなものだし。お袋さん宛て、かつ、メモの類は入ってなかったわけだから、それについては通常のチラシ配布だったのであろう気もする。

メールが届いた。 :

前回届かなかった4点の添付ファイル付き。さておき、前回のソレは、別の人がメールに添付して送ったはずとの話で。うーむ。謎だ…。どこに消えてしまったのか…。

もしかすると、迷惑メールと勘違いしてサクサクと削除しちゃったのかしら。>自分。でも、ktからのメールは差出人名が決まってるし。広告メールの差出人名はえてして女性名だから、ずらりと並んだ時にktからのメールはそれなりに目立つはずで、見落とすとも思えないのだけど。とはいえ自分も機械じゃないので、うっかりミスしてる可能性は十分にありうる。そのへん自信がない。

まあ、何にせよ、こうして届いたので、早速作業を始めるのであります。

なんだか訝られている気配。 :

相手先から、どうもこちらのミスと思われているっぽいメールが…。たしかにメールサーバの障害よりは、ユーザが操作ミスする可能性のほうが高いし。かつ、送信者が「俺は送ったはずだ」と思っていたら、当然「受信側がミスをしたに決まってる」という流れになるだろうし。

念のため、メールのやり取りにおそらく関係してそうな、NTT東日本、ocn、plala、ClubBBQ、Yahooの障害情報を一応チェック。plalaでちょっと怪しい報告はあるけれど、メールサーバに関しては明らかな報告はないように見える。つーか受信に関してplalaのソレを経由するかしら。ちと判らない。…するとやっぱり自分が見落としたのかしら。

自宅サーバの /var/log/maillog* を grep。…来てないんだよな、コレが。8月末と、ここ数日の分は、ktからメールが送られてきた記録がちゃんとログに残っているので、記録が残らないというわけではないはず。また、送ったという日の前後のログを眺めた限り、サーバを止めていた・止まっていたらしき痕跡もない。更に、この日記を確認しても、当時は台風が近づいていたものの、雷が鳴ってサーバを止めた云々の記録もないし。…メールサーバのログに記録がないのだから、やっぱり届いてないんじゃないかしら。いや待て。もしかすると別のメルアドに送ったという話なのだろうか。そうなると自宅サーバのログを眺めてもしょうがないわけで。

メール関係のトラブルは嫌だなぁ。某社の時も「送った・返事が来た」「受け取ってない・読んでない」でヒドイ目に会ったし。信用できない道具だな。>電子メール。でもまあ、郵便物を送るのに比べれば、圧倒的に短時間で届くので、使いどころを間違えなければ / 下手に信用し過ぎなければ / 別の連絡手段で補完していけば、使える道具であることに違いないとは思うのだけど。

2006/09/18(月) [n年前の日記]

#1 [iappli] 一通り流れはできた

スコア結果画面やらクリア画面やらも表示できた。それぞれ、画面を丸々埋め尽くすサイズの画像なので、一見メモリを圧迫しそうだけど。各シーンにおいて、必要な Image だけロード → 使わなくなった Image を dispose・null代入してるから、大丈夫ではないかと。たぶん。おそらく。

ボーナスステージらしきものは手はつけてない。送ってもらった文書を読んでも、何がしたいのかよくわからない。まあ、書いた人もおそらくは深く考えていないのであろう予感も。たぶん。せっつかれて、それっぽい文と絵だけ置いてみたとか、そんな感じなんだろう…。仮に作るとしたら、使ったマークはワーク上から除外するのはもちろんのこと、BG上から消えるように描画することになりそう。問題は選ぶ順番とやら。順番があるってどういうことなんだろう。

キーリピートを盛り込むかどうかで悩む。あったほうがいいのかな。

とりあえず、現時点の実行バイナリをあちらに送ってみたり。…必要になりそうなデータのリストも送ったほうがいいんだろうか。

#2 [nitijyou] 夕方頃からネットに繋がらなくなった

iアプリを実機で動作確認しようとして、気づいた。フレッツ・スクウェアには繋がるけど、plala経由・インターネットには繋がらない。サーバやルータのログを見ると、16:45 あたりから、外部からのアクセスがなくなってる。おそらくはその頃からネットと切断されてたのだろう。

フレッツ・スクウェアにはガンガン繋がるので、ケーブルが外れてる等はありえない予感。NTT局舎内で何か変なことをしちゃったか、plala で障害が発生したか。それともルータが壊れてしまったのか。

plalaで障害が発生していたらしい。一安心。

2005/09/18() [n年前の日記]

#1 [web] _PDFをはじめとするウェブページではないドキュメントは新しいウィンドウで開こう

興味深い話。

#2 [linux] _Apacheの設定 - IIS狙いのアクセスを自分宛に

_SpaceTag Online - Apache設定の各項目についての説明1
_Apacheの設定 - Combine ログからwormのログを消去

気になる設定。

とりあえずウチの環境でも worm 関係を切り分ける設定だけ追加してみたり。

#3 [digital] _ロボットスーツ HAL(Hybrid Assistive Limb)

_筑波大学 大学院 システム情報工学研究科 山海研究室
_パワーアシストロボットスーツHAL - パワーアシストで世界新続出!?
_SFロボット産業化に挑むココロ、テムザックの開拓魂/Tech総研

仮面ライダー555かと思った。イカス。これで実際に動くらしいのだからスゴイ。…ビジュアルの力は大きいなぁ。

#4 [web] _ISP規制情報Wiki

ぷららは結構規制されてるらしい。まあ、値段安いしユーザ数多いしでアレなんだろうな。

#5 [anime] エウレカセブン、夫婦キャラ登場の回

ボードに対する台詞といい、波に乗れるか乗れないかの台詞といい、どことなくこの作品を作るにあたっての姿勢・スタンスが見え隠れしたような。…考えすぎか。さておきなかなか魅力的なキャラ。おそらくはゲッコーステイトのリーダーとは対比になるようなキャラ設定、なのかしら。少年の理想とする先輩像、だったりして。

#6 [anime] マジレンジャー、記憶喪失の回

ラストのあたりに出てきたロケ地は555や響鬼で出てきた場所ですかな。…こういう場所ってCGやミニチュアで擬似的に作るわけにはいかないのだろうか。一々ロケに行くのも大変そうな。

#7 [anime] ライダーヒビキ、新武器の回

面白い。まさか布施明をあれほど愉快なキャラとして登場させるとは思わなかった。新武器の扱い方もグー。ヒビキやイブキじゃダメで、トドロキじゃないとああいう流れにもっていけない。さすがにキャラは掴んでるような。また、他のライダーが登場したのもイイ感じ。今まで出てきたキャラをちゃんと活かしてる。…もしかしてこの回は高寺Pが居た頃にプロットができていたのだろうか。

時間と予算のケチケチ作戦になるのかと思いきや、CG巨大モンスターはちゃんと出てくるわ、新しい敵は出てくるうえに合成で攻撃しまくりだわ、山や野原でロケをしてるわで。高寺版の要素をあんなに継承しちゃって大丈夫なのだろうか。逆に不安になってきた。

布施明がおやっさんに対して「人のせいに」云々なる台詞を。誰のことなんだ…。

#8 [anime] プリキュア、黄色の人に新アイテムの回

冒頭の映像を見て驚いた。UMAは倒れるときまで可愛らしい電子音が鳴るのか。ということは。彼等は日常生活におけるありとあらゆる場面で電子音が鳴るのであろう。歩くときだって驚くときだって音が鳴るし。おそらく、排泄時には「ピルリ、ピルリ、ピルリ」「ポヨーン」とか。性交時には「ピックル、ピックル、ピックル」とか。…って一体何を考えてるのですか>俺。いや、しかし、性交はともかく排泄時は本当にそういう効果音をつけそうではあるな。<いや、ぶっちゃけありえないか。

アニメでその手の効果音を積極的につけるようになった草分け的な作品はどのへんなのだろう。ディズニーアニメあたりで最初にやり始めたのだろうか。それとも日本製アニメだろうか。「現実世界には存在しない効果音を、キャラの各種アクションに付加する」という手法に関しては、漫画作品において実現するのは不可能なわけで。 *1 アニメ、もしくは人形劇あたりで生み出されたテクニックだろうと想像するのだけど。鉄腕アトムが「ピョコン、ピョコン」という効果音を伴って歩いてたわけだから、それより昔の作品でやり始めたのだろうな。
*1: ただ、元となった発想は漫画の中にあったであろう気もする。いや、漫画より前か。「擬音」という概念が登場したのは、おそらく漫画より昔の時代だろうし。

この記事へのツッコミ

Re: プリキュア、黄色の人に新アイテムの回 by けいと    2005/09/20 01:27
> 現実世界には存在しない効果音を、キャラの各種アクションに付加する」という手法

タラちゃんは?
サザエさんも該当していたとはこのリハクの目をもってしても by mieki256    2005/09/20 02:09
> タラちゃんは?

ああっ!
そういやタラちゃんも、いや、サザエさんのキャラも
「ヒュパパパー」とか音を立てて移動してましたな。
なんだか盲点でありました。意外と色んな作品でやってるのだなぁ…。

#9 [tv][movie] TVをつけたら007が流れてたので途中から見てみたり

中国人女性とコンビを組む作品。結構最近の作品なのかしら。…秘密道具が面白い。各道具のアイデアは、ルパン三世とさほど変わらないはずだけど、実写になるととても面白く見える。いや、編集の上手さと小道具の作りこみも関係してるのだろうか。

中国人女性キャラがいいなぁ。宮崎版ルパンの峰不二子みたい。強い。しかも未来少年コナンまで混ざってる。ていうか峰不二子の強さ云々は、おそらくはボンドガールのほうがオリジナルか。

#10 [anime] ケロロ軍曹、お祭りとラジオの回

EDが音頭。久々に見たなぁ。今時、音頭を流すアニメって存在しないから。なんだか感動。

アニメといえば「夏はEDで音頭が流れる」というのがパターンのように思えるけど、よくよく考えてみるとそれほど存在しないような気もしてきたり。ギャグアニメぐらいしか流せないし。

#11 [anime] ウルトラマンマックス、飛行機の回

冒頭のカット。雲の上を飛んでいく科特隊の飛行機。なんだかいいなぁ。

ギャオスのような怪獣のデザイン。金子監督担当回だからデザインも合わせたのだろうか。いや、これまでのウルトラシリーズで既に出てきてるのかもしれんけど。自分、あまり詳しくないから、どれがリメイクでどれがオリジナルか判らん。

ウルトラバリアーとは懐かしい。…前回もそうだったけど、身振り手振りで意志を伝えようとするウルトラマンの図が面白い。そういったアクションは近年それほど見かけなくなった気もするし。また、ちゃんとプロレスしてるところもグー。

子供でもわかりそうなロジックを用意して話を作ってるあたりに感心。簡単すぎてもダメだし、難しすぎてもダメだし。子供が少し背伸びすれば、理解できるぐらいがちょうどいい。

#12 [nitijyou][windows] ひたすらデフラグ

最近 WinXP の動作が重い。試しにデフラグ。…めっちゃ時間がかかる。

WinXPのNTFSに対するデフラグは、Win98 のデフラグのようにキッチリ詰めていくことはできないのだろうか。

久々にWin98を起動してみたけど :

軽いなぁ。

WinXP もクラシックスタイルにすればもう少し軽くなるのだろうか。とはいえ各種操作について質問されたときにLunaスタイルを常用・慣れておかないと答えられないし。

この記事へのツッコミ

Re: ひたすらデフラグ by けいと    2005/09/20 01:35
> 各種操作について質問されたときにLunaスタイルを常用・慣れておかないと答えられないし。

私も職場で同じ悩みを抱えております。

軽量化の手段はたくさんあるのにユーザーサポートのために
何もカスタマイズできないという悲しさが…

っていうのが不便でしょうがないので
サポート専用に何のアプリも入っていない
素のWinXPマシンを別に一台用意してしまいました^^;
(で、自分はWin2000使いだったりする)

どうせ電話越しで会話しながらだから
マシンスペックなんて遅くても問題ないし。
サポート業務は複数台必要になりそうな話 by mieki256    2005/09/22 23:45
> サポート専用に素のWinXPマシンを別に一台用意

なるほど。サポート業務を本格的に行うとすれば、
サポート専用機があったほうが楽かもしれんと…

む。もしかすると、仮想PCソフトがあれば
その手の業務にも使えたりするのかしら。
Re: サポート業務は複数台必要になりそうな話 by けいと    2005/09/23 19:21
> 仮想PCソフトがあれば

いま上司におねだり中です:-P

#絶対必要っていうわけじゃないので年度末にお金が余ったら、
#といわれてますが

今そのマシンは
WinXP/2000/98/FedoraCore1のマルチブートになってます。

2004/09/18() [n年前の日記]

#1 [nitijyou] カセットテープを久々に購入

自転車でK'sまで。これでMZ-700のプログラムを保存し直すつもり。なのだけど、作業工程を想像しただけで眠くなってくる。1つあたり5〜6Kbyteのファイルを、8ファイルほど保存し直すのに、30分ぐらいかかるし。眠くもなります。

店頭にカセットテープはほとんどなかった :

あるのはMDばかり。DVDもそうだけど、すっかり普及してしまいましたな>不可逆圧縮。 *1

*1: もっとも、デジタル化自体が、オリジナルの信号を完全には残そうとしてないわけで。bit数以上の分解能は無いし、サンプリング周波数の1/2以上の周波数は出ないし。…ふと思ったけど、bit数少・サンプリング周波数低で可逆圧縮と、bit数多・サンプリング周波数高で不可逆圧縮は、どっちがマシなのだろう。

#2 [nitijyou] プリンシェイクなるものを飲んでみた

うええ。コップに注ぐと見た目はアレ。視覚も味覚の一部ですかな。

#3 [tv][anime][neta] 総集編ってなんだろう

本編見てる人にとっては見たことあるエピソードばかりでつまらない回になりがち。本編見てない人にとっては早足で次々とイベントシーンが提示されて興醒め。難しいなぁ。

仮面ライダー龍騎の総集編は秀逸だった気もする :

_28話。 プロットレベルで工夫していて感心したっけ。あの作品の、あのタイミングでしかできない総集編。しかも伏線になってたし。

たぶん2つあるんだろうな :

今まで本編を見てた人に向けて、過去の映像を使いながら新しいエピソードを提供するやり方と。今まで本編を見てなかった人に、作品の魅力をアピールするやり方と。

脇役がナレーションであらすじを説明しちゃうタイプの総集編が、一番救いようがない気もする。説明じゃなくて、宣伝をしないと。しかし、言うは易く行うは難し。

いっそのこと :

Pや監督が作品の魅力や裏話を解説しちゃう総集編はどうか。ダメか。ていうかソレ、既に総集編じゃないし。…でも、そういう回なら見てみたい気もする。…ガンダムSEEDあたりでソレをやってたら大変な事になっただろうな。全編の20〜30%が、監督のアニメ制作講義か、BANDAIのガンプラ組み立て講義に。マズイ。…いや、もう、いっそ、Aパートはアニメ本編だけどBパートはAパート制作時の解説を丸々しちゃうというのはどうか。「今回、○○氏の作画したこのシーンは要チェックです。このタイムシートで、タイミングを解説しましょう」とか。世界初、新しいフォーマットの究極マニアックなアニメ作品誕生。…どこが総集編の話やねん。

#4 [pc] MZ-700のプログラムを変換してたのだけど

BASIC+マシン語で動くプログラムの場合、BASIC部分はともかく、マシン語部分を1200ボーでSAVEしなおすことができない。LOADアドレス、サイズ、実行アドレスがわからないから、LOADはできてもSAVEの指定ができなくて。どうしたもんか。

プロッタプリンタ関係のプログラムを発掘 :

どうしようもないな…。実機で動かそうにも、ロール紙・ボールペンも既に無いし。ロール紙はまだ自作できるけど。さすがにボールペンはなぁ…。

#5 [zatta] 今のカセットテープって品質悪いのかな

早送りや巻き戻しをするとカタカタと音がする。組み立てはタイでやってるらしいけど、そのせいかな。

2003/09/18(木) [n年前の日記]

#1 寝過ごした

メガネを受け取りに行って来ないと。

#2 昨日、健康診断の結果が来てた

眼底検査で、緑内障性乳頭陥凹と診断された。眼科に行って来ないと。

#3 道頓堀で死人が出てたのか

やっぱり新しいパフォーマンスを考える時期なのでは。とはいえ大阪に居ながら盛り上がることができて周囲に迷惑もかけず死人も出ずに皆が喜ぶパフォーマンス…難しそうですな。そもそもアレは祭りだろうし。リオのカーニバルでポロポロ死人が出るのと同じかもしれず。

この記事へのツッコミ

Re: 道頓堀で死人が出てたのか by 会長    2003/09/20 18:33
は〜い。只今現場の道頓堀近くにいます。でも、今日は台風の影響で雨なので、行くとすれば明日以降で〜す。といっても、台風でずっと雨でしょうか?
死人は出ましたが、大阪はすごくにぎやかです。優勝記念セールの袋をもった人がなんばの往来にたくさん出ていました。東京と違い、活気があっていいで〜す。
Re: 道頓堀で死人が出てたのか by mieki256    2003/09/22 04:40
>会長さん
うぐぅ。今度は大阪でスか…
まさに日本縦断では…お仕事ご苦労様です。

しかしこの時期に道頓堀界隈を直に見れるというのはラッキーかもですね。
次にその風景が見れるのは、何十年後になることやら… <ヒドイ事言ってるな

2002/09/18(水) [n年前の日記]

#1 ヤシガニ?

ヤシガニが大流行らしいですね。
アニメ業界に何が起きてるのでしょうか… (・_・)?
なんとかならないものですかね。 _

#2 [anime] ヤシガニ?

ヤシガニが大流行らしいですね。
アニメ業界に何が起きてるのでしょうか。


ミュウx2のヤシガニキャプ画面を目にしましたが、
変身後のカットならバンクで乗り切れそうに見えました。
仕上げ済みカット(セル・背景)の状況をPCで細かく管理して、
より効果的にバンクシステムを活かせないでしょうか。

PC導入の利点は彩色・撮影のみにあらず。
コピペや管理に使わずして何の為のPCか。
…と思うのですが。


コンテのレイアウト枠に、制作済みの画像一覧から該当パーツをD&D、
秒数、セル移動量等を入力すれば、
動撮aviも出来るし、新規作成を要するカットの一覧も出てくる…

…なんてシステムは作れないかな。
セルシスあたりで既に作ってそうな気もしますが。

パーツを探すのが面倒?
キャラ名、コスチューム、ポーズ、アップやロングなどの情報を、
それぞれのパーツにテキストで付加しとけば、後から容易に検索できるでしょう。
それら情報の付加作業は、NHKの映像アーカイブ同様、専任で1人つけとけばいい。
作画担当者にその都度つけてもらう手もありますが、
只でさえ厳しい彼等の負荷を、これ以上増やすわけにはいきませんから。
専任で用意すると、そのぶん人件費がかかるって?
海外に丸投げしてヤシガニをTVに流すこと考えれば安くありませんかね。
作画などの特殊能力も要りませんから、作業人員の調達も容易なはず。
というか、日本語が判る人が居れば、その作業自体を海外に投げてもいいわけですし。

似たようなレイアウトばかりになる?
背景を異なるモノにするだけでも、かなり印象が変わると思いますし、
色調変更、左右反転、拡大縮小、トリミング、パーツの組み合わせ等、
多少の工夫で更に違う印象になると思います。
デジタル作画・撮影ならそれらの工夫も容易に出来るはずですし。
(ゴノレゴ関係のFLASH見れば、そのへん見えてくるのではないかとも…
パーツの使い回しでアレだけやれるんですから…)
というか、似たようなレイアウトになったとしても、ヤシガニよりよほどマシです。

神には作監をさせてはいけません。
そんなもったいないオバケが出るような使い方をしてはいけない。
神には、バンクに使えそうなカットの原画を延々と描き続けてもらって、
ライブラリの充実にひたすら寄与してもらいます。
質の高いライブラリが揃えば、作品が全般的に質の高い画で埋まるのですから。

コンテを描く際も制限をつけましょう。
せっかくのバンクシステムも、肝心のコンテが無視してたら効果はゼロです。
ライブラリを充実させる為の最初の数話は仕方ないとして、
中盤は、一人あたり新作カットはいくつまでと制限を設ける。
制限を越えたら、スタッフ全員に余計な負荷をかけたということで、報酬カット。
そのくらい厳しくしなきゃ、コンテの人も意識してくれないでしょうから。


…書いてて泣きたくなってきました。
なんか寂しい話ですね (;´Д`)


なんかこういうの書くと業界の人の怒りを買いそうだなぁ…
でも、あの富野監督御大だって、
「戦闘中に喋ればセルx枚でx分持つ」
とかセコビッチなことやりながらもあれだけのモノ作ってきたわけですし…
そのへんのコンテマンが新作カット要求するなんて(現状では)贅沢なのでは。
つーか、TV映像制作で飯食ってながら、
ビデオ編集の縦解像度半分の静止画出すような演出や監督から文句言われたくない…
TV表示の仕組みも知らないなんて、ゲーム業界やキャプチャ道の人に笑われてしまいます。
(知ってるけど時間の都合であえてソレを選択してるならスイマセン)


何にしても、そろそろ既存の作り方では無理が出てると思うんです。
それが露見してるのが、ヤシガニじゃないのかなと。

最低限ここまでなら、まだ容易に質を保てる…
海外に投げずに、国内だけでもなんとかなる…
そういう作り方やシステムが、現在求められてる気もします。
鉄腕アトムのリミテッドアニメ導入と同様のブレークスルーとでも言うか…

それは結果的に業界全体を弱体化させるかもしれないけど、
今この時点で、倒れたり潰れたりしてたら元もこうも無いし。
大体金出す方、上の連中は、作る側の事情や状況なんて何も見てないんでしょうから。
黙ってて状況改善することは、今後絶対に無いでしょうし。
技術革新なり、新たな制作手法を生み出して、自衛するしかないんじゃないかと…
昔の、人件費が安い頃ならいざ知らず、
もうマンパワーどうこうで事態を切り抜けられる時代じゃないと思うのです。


一アニヲタの分際で好き勝手なこと言ってスイマセン… (;´Д`)
ヤシガニ、どうしたら絶滅できるんですかねぇ…

それとも、あえてヤシガニを大量生産・画面に出す方が、
業界にとっては結果的にプラスに働くのかなぁ…

2001/09/18(火) [n年前の日記]

#1 うああ…

爆睡してて、ムリョウ、録画するの忘れた…
一週間の中で一番楽しみなアニメを…ううううう…

2000/09/18(月) [n年前の日記]

#1 惰眠

教習所が休みだったので、一日中寝てました…

1999/09/18() [n年前の日記]

#1 (NoTitle)朝からずっと自動巡回...

朝からずっと自動巡回のソフトを試してました。試してたのは Internet Ninja , 波乗野郎 , WebAuto , GetHTMLWなど。
で、今のところGetHTMLWに落ちつきそうです。理由はフリーソフトだから。きっちり設定できれば問題無く使えそうです。d氏の掲示板もバッチリOK。ただし設定が面倒くさいです。最初適当な設定で巡回させたら、gooのトップページに辿り着いて片っ端から落とし始めたりしてあせりました。(非テレホ時間に1時間近くも勝手に落としてた。ひええ〜 (´Д`;) )
あとはタイマー予約があれば言う事無しなんだけど、作者曰く「そういう機能は他の市販ソフトにお任せ。餅は餅屋」だそうですから将来的に仕様追加は無いでしょう。もっともコマンドライン版も存在するので、コマンドライン版+タイマー起動予約ソフトの組み合わせをすれば、似たような事は出来るらしいのですが。 <こうなるともう普通のユーザーさんは使えないだろうな。 <いや、私もめんどくさくてやりたくない (;^_^A
GetHTMLWの変わったところとしては、peoxy server として IE,NN とプロバイダとの間に入るというのもあります。ダウンロードしたWeb情報を、オフラインなんだけどオンラインのように閲覧できるというのがなんとなく助かるかも。うっかり古いページをいつまでも見てたりという不安もありますが、まあユーザーが明示的にHTML取得をできると考えればそれもまた良し。
でも、普通にHPを巡回させる分には他の3本のほうが全然使い勝手はいいですね。特に Internet Ninja は、取得したHP、画像ファイルをサムネイル表示してくれるので管理が楽。それと GetHTMLW は取得したHTMLに何も手を加えないけど、他の巡回ソフトは各リンクをローカルで閲覧できる形に書き換えつつ記録してくれるので、その点も人によってはかなり便利だろう、と思います。

以上、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