mieki256's diary



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

#1 [lua] luarocksを使おうとしてハマった

Luaを使った実験をしたくなって、Windows10 x64 20H2上で luarocks をインストールしようとしたのだけど、ハマってしまった。

luarocks というのは、Lua関係のライブラリをインターネット経由でインストールできるツール、という説明でいいのだろうか。Ruby で言えば gem、Python で言えば pip みたいなもの。たぶん。

luarocks を使うためには、gcc等のコンパイルができる環境が必要らしいので、MSYS2 上ならすんなり使えるのではないかと考えたのだけど。スタートメニューから、MSYS2 MinGW 64-bit を起動して、Lua関係のパッケージをインストールしたものの…。
pacman -S mingw-w64-x86_64-lua
pacman -S mingw-w64-x86_64-lua-luarocks
$ lua -v
Lua 5.4.2  Copyright (C) 1994-2020 Lua.org, PUC-Rio

$ luarocks --version
C:/msys64/mingw64/bin/luarocks 3.5.0
LuaRocks main command-line interface

$ gcc --version
gcc.exe (Rev2, Built by MSYS2 project) 10.3.0

json4lua というライブラリが使いたかったので、luarocks でインストールを試みるも、エラーが出てしまう。

_JSON4Lua - LuaRocks
_craigmj/json4lua

~$ luarocks install json4lua

The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
Installing https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/json4lua-0.9.30-1.src.rock
Warning: Failed searching manifest: Failed extracting manifest file: failed extracting D:\home\mieki256/.cache/luarocks/https___luarocks.org/manifest-5.4.zip

Error: Failed unpacking rock file: C:\msys64\tmp/luarocks_luarocks-rock-json4lua-0.9.30-1-7074/json4lua-0.9.30-1.src.rock: failed extracting C:\msys64\tmp/luarocks_luarocks-rock-json4lua-0.9.30-1-7074/json4lua-0.9.30-1.src.rock

MSYS2上で動かすのは難しいのだろうか…。よく分からん…。

Ubuntu Linux 20.04 LTSで試す。 :

VMware + Ubuntu Linux 20.04 LTS上で試してみる。
$ sudo apt install luarocks
...
以下の追加パッケージがインストールされます:
  liblua5.1-0-dev lua-any lua-sec lua-socket lua5.1
以下のパッケージが新たにインストールされます:
  liblua5.1-0-dev lua-any lua-sec lua-socket lua5.1 luarocks
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 0 個。
421 kB のアーカイブを取得する必要があります。
この操作後に追加で 2,739 kB のディスク容量が消費されます。
続行しますか? [Y/n] 
$ which lua
/usr/bin/lua

$ lua -v
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio

$ which luarocks
/usr/bin/luarocks

$ luarocks --version
/usr/bin/luarocks 2.4.2
LuaRocks main command-line interface

json4lua をインストールしてみる。--local をつければユーザ別でインストールできるらしいので試してみる。
$ luarocks install json4lua --local

Installing https://luarocks.org/json4lua-0.9.30-1.src.rock
Do not use 'module' as a build type. Use 'builtin' instead.
No existing manifest. Attempting to rebuild...
json4lua 0.9.30-1 is now installed in /home/mieki256/.luarocks (license: GPL)

~/.luarocks/ 以下に色々インストールされたっぽい。

インストールできたのかなと思ったけれど…。呼び出そうとすると、エラーが…。
$ lua -i
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> json = require('json')
stdin:1: module 'json' not found:
    no field package.preload['json']
    no file './json.lua'
    no file '/usr/local/share/lua/5.1/json.lua'
    no file '/usr/local/share/lua/5.1/json/init.lua'
    no file '/usr/local/lib/lua/5.1/json.lua'
    no file '/usr/local/lib/lua/5.1/json/init.lua'
    no file '/usr/share/lua/5.1/json.lua'
    no file '/usr/share/lua/5.1/json/init.lua'
    no file './json.so'
    no file '/usr/local/lib/lua/5.1/json.so'
    no file '/usr/lib/x86_64-linux-gnu/lua/5.1/json.so'
    no file '/usr/lib/lua/5.1/json.so'
    no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
    [C]: in function 'require'
    stdin:1: in main chunk
    [C]: ?

require('json') と打っても呼び出せない。どうやらライブラリを探すパスの中に、~/.luarocks/ 以下が登録されてないっぽい。どうやって呼び出せばいいのだ…。

管理者権限でインストールしたら呼び出せるようになったけど…。それっていいのかな…。
$ sudo luarocks install json4lua
Installing https://luarocks.org/json4lua-0.9.30-1.src.rock
Do not use 'module' as a build type. Use 'builtin' instead.
json4lua 0.9.30-1 is now installed in /usr/local (license: GPL)

$ lua -i
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> json = require('json')

ググった感じでは、どうやら package.path, package.cpath, LUA_PATH, LUA_CPATH あたりが関係してる…?

luarocks path と打ち込むと追加すべきパスが表示される模様。コレを ~/.bashrc の最後あたりに追加したところ、luarocks --local でインストールしたものが呼び出せるようになった。

管理者権限でインストールした json4lua はアンインストールした。
sudo luarocks remove json4lua

Linux上ではどうにかなるようだなと…。さて、Windows上で luarocks を動かせるようにするには、どうしたら…。

#2 [prog] MinGWのサイトが消えている気がする

Windows10上で MinGW + MSYS をインストールしようとしたのだけど、その手の解説ページに記述されている、http://www.mingw.org/ というサイトが開けなくなっているような…。

SourceForge の MinGW ページはまだあるようだけど…。

_MinGW - Minimalist GNU for Windows download | SourceForge.net

twitterで検索して眺めてたら、「osdnが現在のMinGWの開発メインサイトですよ。」という話を見かけた。https://mingw.osdn.io/ というサイトもあるようで。

_MinGW - Minimalist GNU for Windows プロジェクト日本語トップページ - OSDN
_Welcome to MinGW.org

たしかに、OSDN のほうが、ファイルは新しい感じ。

「俺達、https://osdn.net/projects/mingw/ に引っ越すよ」という宣言(?)もされているな…。2018/01/21頃の話だったらしい。

_MinGW - Minimalist GNU for Windows / [Mingw-users] MinGW.org Project Hosting

しかし、DLした mingw-get-setup.exe を実行して、MinGW Installer をインストールしてみたら、SourceForge からファイルをDLしているように見える…。パッケージの日付も、2013年頃になってる…。どういうこと…。

でもまあ、インストールできたから、これでいいかな…。

一応メモ。今回は、D:\MinGW\ にインストールしてみた。また、パスが通ったところに、mingw.bat というバッチファイルを作っておいた。内容は以下。
@rem MinGW,MSYS enable

@set MINGW_PATH=D:\MinGW

@set MSYS_PATH=%MINGW_PATH%\\msys\1.0

@set MINGWADDPATH=%MINGW_PATH%\bin;%MSYS_PATH%\bin
@set PATH=%MINGWADDPATH%;%PATH%

@echo add path %MINGWADDPATH%

@set C_INCLUDE_PATH=%MINGW_PATH%\include
@set CPLUS_INCLUDE_PATH=%MINGW_PATH%\include
@set LIBRARY_PATH=%MINGW_PATH%\lib

MinGW,MSYSを使いたい時は、DOS窓で mingw.bat を実行すれば、環境変数PATHの最初に MinGW関係のパスが追加されて、使えるようになるはず。

本来、最初から環境変数PATHに登録しておくものだろうけど、自分の環境では、インストール済みのPerl関係も gcc を持っていて、そっちが登録されちゃってる環境なので、必要になった時にPATHを設定する感じでいいかなと…。

2020/06/18(木) [n年前の日記]

#1 [enve2d][cg_tools][anime] enve の Expression で拡大縮小時の線幅を一定にしてみる

enve の Expression を使って、他にどんなことができるだろうと考えていたけれど、もしかしてパスを拡大縮小した際に線幅を一定にすることもできるだろうかと思えてきたので試しに実験してみたり。環境は Windows10 x64 1909 + enve 6_12_20。

一般的に、この手のアニメ制作ソフトで、パスが拡大縮小するような動きをつけると、線幅もそれに応じて細くなったり太くなったりするのだけど。手描きアニメ風というか、手描きの動画に近づけたいなら、線幅が一定のほうがそれっぽくなるわけで…。

指定内容をメモ。 :

以下のような Expression を、パスの outline → thickness に指定。thickness の数値入力欄を右クリックして Set Expression を選べば、xpression を入力できる。
Bindings:

scalex = Path 0.transform.scale.x;
value = $value;
Calculate( scalex, value ):

return value / scalex;
  • 「Path 0」は対象のパス名(レイヤー名?)。
  • $value は、この場合 thickness に元々指定されていた値を参照するための変数。

expression_02_ss01.png


こんな感じになった。




Expression を指定してないほうは線幅も含めて拡大表示されてるけど、Expression を指定してるほうは線幅が一定に見えるように拡大表示されてる。予想通りの結果が得られた。

問題点。 :

ということで、Expression を使えば、線幅が一定に見える状態で拡大縮小できそうだと分かったけれど。

ただ、実際には、もっと複雑な絵を ―― 多数のパスで構成された絵を拡大縮小したくなるはずで。しかし、それら多数のパスに対して、一つ一つこういう指定をしていくのは現実的ではない…。本来は、ソフトウェア側で機能を持ってると嬉しいというか、チェックボックスをON/OFFするだけで、線幅一定の表示になる、等の機能が欲しくなるところではあるよなと…。

ただ、「拡大縮小表示をする時に線幅が一定だと一体何が嬉しいんだ? 意味あるのか?」と言い出す人が多数かもしれないという予感もあり。そもそも必要性を感じてもらえなければ、実装されるわけもなく。

このあたり、一度自分の手を動かして、手描きで動画の中割を描いてみないと、こういう機能の有難味が分からないだろうなと…。でも、コレって、CGで拡大縮小してるだけなのに手描きで動かしてるかのように一瞬勘違いさせる、所詮は騙しのテクニックの範疇かもしれないので、なんというか…。

Adobe Flashの場合。 :

ちなみに、Adobe Flash の場合、線幅を「極細線」で指定すれば、拡大縮小時に線幅が一定になってくれた…ような気がするけどどうだったかな…。

手持ちの Adobe Flash CS5 を起動して確認してみたら、たしかに「実線」ではなく「極細線」にすれば、拡大縮小しても線幅が変わらなかった。記憶は正しかった。

というか、「伸縮」という設定項目がちゃんとあって、「標準」から「なし」にすれば線幅が変わらなくなる模様。こんな項目あったっけ? 昔は無かったような気がするのだけど。

ググってみたら、FLash 8 で追加された機能らしい。

_Amazing Flash: 線の話

知らなかった…。自分、Flash 4 で一旦使わなくなって、Flash CS4 からまた使い始めた人なので、その間にどんな機能追加があったのか全然把握してないのだよな…。

何にせよ、Adobe Flash CS5 までは線幅一定で拡大縮小することが可能、というのは間違いない模様。

Adobe Animate は…触ったことないので知らないです。

#2 [zatta][pc] Flash関係の愚痴

ちょっとFlash関係で愚痴を言いたくなったのでメモ。

自分が Flash を触り始めた当時(Flash 4の頃)、Macユーザさんから、「WebページにFlashが貼り付けてあるとブラウザだけでは飽き足らずOSまで巻き込んで落ちる」と苦情が来てしまって。 *1 「マジか。Flashを使うのは時期尚早なのかなあ…。もうちょっと様子を見るか」としばらく離れてたら、その間にどんどんブームになっちゃって、周回遅れになっちゃって。「しまった。これはもう追いつけないわ」みたいな。

Web関係の技術は、仮に作り込みが未成熟でユーザに迷惑をかけたとしても、「んなの知ったこっちゃねえ」的に最新機能を使いまくる人のほうが勝者になれるのだなー、と Flash を通じて悟ったというか…。

しかしそんなFlashも、2020年末にはブラウザ上で見れなくなっちゃうという。「あの人達って勝ち組だなあ」と思いながら眺めてた人達が(大変失礼ながら)皆負け組ですよ。恐ろしい。自分がせっせと作ったFlashデータも、ジョブズ一人のせいで、全てが強制的に問答無用でゴミ扱い。酷い。酷過ぎる。許すまじ、ジョブズ。

でも、こんなことはこれから何度も起きるに違いないのです。JavaScriptだって、CSSだって、もしかするとそのうち皆で寄ってたかってタコ殴りされて殺されるかもしれない…。その場の空気でFlashを殺した連中が、違う空気に支配されて似たようなことをしないという保障なんてどこにもないわけで。

なので、Flash のような展開になるかもしれないのに、そんなもんわざわざ勉強したくないよなあ、てなことを思ってしまって、ますます周回遅れになるという。なんだかな。

でもまあ、各技術が持っていた概念部分は、他の何かにも応用できるのかもしれないから、勉強したことも全くの無駄にはならないのかもしれないけれど。

だけどおそらく、後になっても役に立つ知識と、後になったら役に立たない知識があるんだろうなと…。そのあたりを賢く見極めることができればいいのだろうけど、それができないから今更勉強する気も起きないという…。

まあ、技術に対して目利きではないダメ人間の、只の愚痴です。それだけです。
*1: 古いMacとOSでは落ちる、という話だったから、当時の Macromedia が比較的新しいMacにのみフォーカスを当てて開発していて、古いMacは切り捨てていたのかなと想像するのですが。そりゃまあ開発リソースは常に限られているし、当時のMacって不安定なPCの代表格だったから、全ての機種でデバッグするとか無理だったのかなと…。

2019/06/18(火) [n年前の日記]

#1 [cg_tools] TupiTubeを試用していたけれど

アニメ制作ソフト、TupiTube のチュートリアルページを眺めながら試用していたけれど。これはちょっと…。どうなんだろうなあ…。

1コマずつ手描きをしていく動かし方は、コマを追加していく操作が猥雑で。描画機能も ―― ベクターデータの制御点を操作する機能が足りてなくて、思ったようなシェイプ形状にできない。制御点両端の操作ハンドルを目視とマウス操作で揃えるとかちょっとありえないよな…。そこはコンピュータにやらせる作業だよな…。1度描いたソレを数コマ使う場合も、コピペをする以外に無いような。これなら Krita、Pencil 2D、OpenToonz 等を使ったほうが良さそう。

一応、トゥーン機能というか ―― PC側で、位置、角度、スケール等の自動補間をして中割相当を作る機能もあるけれど、これまた操作が分かりづらい。おそらく修正もしづらい。イーズイン・アウトの類も無さそうに見える。まだ OpenToonz や Synfig を使ったほうが良さそうな。もしかすると AviUtl の拡張編集プラグインで動かしたほうが、機能も豊富だし、下手すると操作方法も分かり易いかもしれず。AviUtl の拡張編集プラグインは、操作方法については褒められたモノじゃないけれど、まだそちらのほうが、と思わせるあたり TupiTube のソレは…。

Static BG や Dynamic BG、つまりは動かない背景やスクロールする背景を別途指定できるあたりもよくわからない。レイヤーの概念を持ち込んで、各レイヤーを動かすかどうかを指定できれば、わざわざ専用のレイヤーなんて設けなくても済みそうだけど。子供さんでも分かるようにと、背景専用のレイヤーを設けてみたのだろうか…。

TupiTube ならでは、という機能もあるようには見えなかったし、mp4 でエクスポートしたら再生できない mp4 がエクスポートされたりもして、なんというか…。

画面デザイン等は綺麗なのだけど、作業効率を向上することは考えられてないように見えるし、各種機能も足りてない。「どうせアニメなんてこういう機能があれば作れるんだろ?」的な浅さが根底にありそうな雰囲気を感じる。

以前触った時も似たような感想を持ったけど、TupiTube をあえて使う必要は無さそうだな、と…。

#2 [nitijyou] 給湯器のスイッチが壊れた

台所側に設置してある、給湯器の制御パネルの電源スイッチが壊れて、業者さんに見てもらったのだけど。「交換用のパネルの在庫がもう無いから修理できない」「現在販売されてる、ボイラーとセットの製品と交換するしかない」「30万円かかる」との話だそうで。

浴室側にも制御パネルはついているので、そちらの電源スイッチを使って電源を入れてしばらくしのごう、という話になったけど…。なんだかな。

スイッチなんて、少し値段が上乗せされてる電子部品屋さんの店頭で購入したとしても、5円、10円、高くても200円とかそんなお値段だろうけど。スイッチだけ交換するわけにいかない、パネルごと交換するしかない、というのもアレな話だなと。昭和の中頃だったら、フツーにスイッチだけを交換して直したよな…。このあたり、何もかもブラックボックスになった弊害なのだろう…。それでもまだ、交換用のパネルはあります、という状況ならともかく。ブラックボックスです、そしてパネルはありません、30万払ってまだ動くボイラーもこの際捨ててください、てのは…。なんともおかしな時代になった…。

おそらく、パネル内の基板の裏側にコードをはんだ付けでもして、別のスイッチを外付けすれば直りそうな気もするけれど。壁にガッチリ設置されてるソレを取り外したり分解するわけにもいかず。

どこかに、同型番で廃棄扱いになった、ジャンク扱いのパネルのみ、が売ってないものか…。

2018/06/18(月) [n年前の日記]

#1 [game] メガドラは一体何色同時表示ができるのだろう

昔のゲームの動画を検索して眺めているうちに、「メガドライブ 960色」という一文を目にして「どういうことだ…」と気になった。ググってみたら、個人的には面白いと感じる話を見かけたので、一応メモ。

前提となる知識。 :

メガドライブ(以下MD)は、フツーに使うと64色しか同時表示できない。
  • 1パレットにつき、512色の中から16色を設定できる。
  • 4パレット持ってる。
16色×4パレット、なので、64色。

この64色と言うのはちょっと大雑把な値で。正確に言うと、61色を同時表示できる。
  • 各パレットの0番目の色は透明色として扱われるので、1パレットにつき画面に表示できる色は15色。
  • 画面全体の背景色を1色、指定できる。
15色×4パレット+背景色、だから、61色。

ということで、MDは、フツーに使うと61色しか同時表示できないハードウェア。…だったはずなのだけど。

「TOY STORY」がスゴイ。 :

MDのゲームタイトルについて、実際に表示されている色数を実測した動画があるようで。

_Sega Genesis Color Analysis: Can it show more than 64 colors? - YouTube

目にしてビックリ。「TOY STORY」というタイトルが、 _171色を同時表示 している…。

仕組みについて解説してる動画もあった。

_How TOY STORY displayed IMPOSSIBLE IMAGES on the SEGA Genesis (MegaDrive) - YouTube

英語はよく分からんので間違ってるかもしれんけど。どうやらシャドウ/ハイライトモードを駆使して実現してるらしい。

MDには、シャドウ/ハイライトモードという画面表示機能があって、通常はスプライトとBGの優先順位を指定するビットを流用して、色を明るくしたり暗くしたりする機能がある。以下のページの下のほうの解説図も分かりやすいだろうか。

_VDP - MegaDrive Wiki

「TOY STORY」は、このモードを使って、「ノーマル色」+「シャドウ色」+「ハイライト色」の3枚を重ね合わせて表示することで最高171色の同時表示をしている…らしい。スゴイ。頓智の世界だ。なんとなくだけど、色数を増やすために何枚もそこに置くというのは、 _ファミコン版メタルスレイダー・グローリー を思い出したりもして。

もっとも、「TOY STORY」の場合、色数が多い映画版のスクリーンショットという画像が先にあって、それをMD上で表示しなくちゃいけないからこういう頓智が使われたのだろうなと…。最初からMDのオリジナルタイトルとして作られていたら、他のタイトルと同様に、16色や32色でもそれらしく見えるドット絵を描いて対応してたのではあるまいか。

それにしても、このシャドウ/ハイライトモード…。なんでこんな不思議な機能を入れたのか、理由がさっぱり想像できない。元々は何に使おうとしていたんだろう…。

「エクスランザー」は怪しい。 :

当時、「エクスランザー」というタイトルが「128色同時表示」を宣伝文句として謳ってたのだけど。コレについても実測動画があるようで。

_Color Analysis: Ranger X (Sega Genesis) Ex Ranza Sega Mega Drive - YouTube

実測してみたら最高でも65色しか表示してなかったらしい…。誇大広告も甚だしい。いや、61色に比べたら4色多いぞ、一体どうやってんだ、という気もするけれど。

おそらくだけど、アレも洞窟面でシャドウ/ハイライトモードを使って洞窟に差し込む光を表現していたので、「単純に考えたらコレって128色になってるよね」という話だったのかもしれない。上記の実測動画では肝心のその場所を映していないので、もしかするとその場所を実測したらもうちょっと色数が増える可能性もありそうだなと。

ただ、 _「TOY STORY」の仕組みを解説してる動画 内でも説明してるけど、件のモードを使ったからと言って、ユニークな色が単純に倍に増えるわけではなく。いくつかの色はノーマル色と重複してしまうので、実測するとそんなに色数は増えないのだろうなと。それでも、件の動画内では、「理論上は 3375色中から148色を同時表示できる」と計算してるようで。…アレ? どうして「TOY STORY」は171色出てるんだ? 実測の誤差か、それとも計算が間違っているのか。そこはちょっと分からない。

960色同時表示できる可能性もあるらしい。 :

以下の動画が気になった。

_How a SEGA GLITCH created stunning images - YouTube
_I wish I'd perfected this for SONIC 3D. Could have looked AMAZING! - YouTube

英語はまったく分からんので、仕組みが今一つ分からんけど…。どうも、「MDで960色を同時表示できるぞ」と言ってるように見える。違うのかな。

あくまで想像だけど、走査線が画面を描いている最中に背景色の値をゴリゴリと書き換えることで512色同時表示できる、という話なのかもしれない。英語分からんから違うのかもしれないけど。

それに加えて、インターレースモードを使って、1フレーム目と2フレーム目で表示するドットパターンを変えれば、疑似表示ではあるけど前後の中間の色がそこにあるように見えるから960色までイケる、という話なのかも。本当にそういう話なのかは分からんけど。

_「MZ-700に不可能はない」 ならぬ、「メガドラに不可能はない」みたいな話になってきた…。

時間軸で色数を増やすソレ。 :

念のためにちょっと説明。時間軸を使って色の分解能?を増やす方法は、一見するとインチキ臭いけど、液晶ディスプレイでも使われている(場合もある)方法で。

液晶パネルはざっくり大別して、TN、VA、IPSといった種類があるのだけど。VAやIPSに比べると、TNは表示可能な色数が少ないから、そのままだとRGB各8ビットの色数は出せない。けれど、書き換え速度・応答性は、VAやIPSより高速なので…。表示できない色を使ったドットが出てきたら、そこだけ高速にちらつかせて中間色が出てるように疑似表示する、という仕組みの製品が存在していて。

_同じ色数でも画質が違うヒミツ――液晶ディスプレイの「最大表示色/LUT」に迫る (1/2) - ITmedia PC USER

液晶ディスプレイのスペック表を見ると、「約1677万色」「約1620万色」の2種類があったりするけど、後者は疑似表示で出してますよ、という情報なわけで。まあ、昨今は嘘のスペック載せてる製品もたまに出てそうな御時勢だけど…。

_4Kディスプレイのスペック「誤表記」で「2000円」の補償 UPQの見解は? - ITmedia NEWS

何にせよ、足りない分は時間軸を駆使してどうにか、というやり方も、意外と身の回りにあったりするのです、ということで。

画面を描いてる最中にゴリゴリ書き換えるソレ。 :

走査線が画面を描いてる最中にゴリゴリ書き換えるというソレは、MZ-700の野球拳2000を思い出したり。

_Yakyu-ken 2000 for MZ-700

グラフィック画面が無い・文字しか表示できないMZ-700で、どうやってグラフィック画面っぽいものを表示するのか…。表示したいドットパターンとよく似たドットパターンを持っている文字を探し出して、画面を描いてる最中に、CPUが全力でゴリゴリと表示してる文字を書き換える、みたいな。よくもまあ、そんな方法思いつくよなあ…。

まあ、MDの場合、件の動画ではDMAが云々と言ってるようだから、CPUじゃなくてDMAが奮闘してるのかもしれないけど。

パレットを書き換えちゃうソレ。 :

画面を描いてる最中に書き換えるソレと言えば、水面の位置でパレット値を書き換える方法もあったなと…。色んなタイトルでやってるけど、一番有名なのは、やっぱりソニックだろうか。

_Sonic The Hedgehog SEGA Mega Drive Labyrinth Zone Part 1 - YouTube

水面の上と下で色が違ってるけど、水面の位置でパレット値を書き換えて表現してるわけで。このやり方でも、128色以上出せる可能性があるよなと…。

ただ、実機でコレをやると、そこにノイズが出ちゃう。そのノイズを誤魔化すために、ソニックは横一列にスプライトを並べて、表示をチラつかせてノイズがパッと見では分からないように工夫していたりするのだけど。

何にせよ、ソニックのようなメジャーなタイトルでも、64色以上同時表示できる頓智が使われていたのだなあ、ということで。

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

#1 [moho] Mohoのパーティクル機能を試したり

Moho Pro 12 にはパーティクルを生成する機能があるらしいので試したり。一応使い方を簡単にメモ。

基本的な使い方。 :

例えば、ベクターレイヤーにこういう図形を描いたとして。
particle_ss_01.png

レイヤーウインドウ上で、パーティクルレイヤーを追加。
particle_ss_02.png

ベクターレイヤーを、パーティクルレイヤー上にドラッグして登録。
particle_ss_03.png

こんな感じの結果が得られる。

パーティクルレイヤーをダブルクリックしてレイヤー設定を表示して、パーティクルタブの中で色々設定ができる。
particle_ss_04.png

図形の増殖にパーティクルを利用。 :

パーティクルを利用して、同じ図形を増殖させてランダムに配置することもできる。

例えば、以下のような画像をインポートしたとして。
particle_ss_05.png

パーティクルレイヤーを作成して、画像レイヤーを登録して、以下のようなパーティクル設定にすると…。
particle_ss_06.png

こんな感じに、それぞれをその場に配置することもできる。

  • 「持続時間(フレーム)」を0にすれば、ずっと存在し続ける。
  • 「ソースの幅」「ソースの高さ」「ソースの奥行き」を設定すれば、発生する範囲を指定できる。
  • 「速度」「加速」等を0にすれば、その場に留まり続ける。

ただ、こんな風にカメラを動かすと、おそらくはZソートの問題で各画像の前後関係がパカッと変わってしまう時もあるようで。回避策は無いのだろうか…。

アニメーションをしている何かしらをパーティクルに使う。 :

アニメーションをしている何かしらをパーティクルに使うこともできる。



パーティクルレイヤーに登録している、画像レイヤー、ベクターレイヤー等でアニメをつけてやればいい。それぞれのレイヤー内で、形・色・半透明度等をアニメさせられるので、例えばそれぞれがじわじわと消えていく見せ方もできるはず。

その他。 :

パーティクルのレンダリングは重い・時間がかかるので、別途、パーティクルだけを画像シーケンス(連番画像)としてエクスポートしてから、その画像シーケンスをインポート(レイヤーウインドウ上で画像シーケンスレイヤーを新規作成)して利用すると最終レンダリングが早く済む、てなノウハウが、チュートリアルpdfに載っていた、とメモ。

よく分からない点。 :

360度全方向にパーッと散らすようなパーティクルの設定方法が分からず。そんなことできるんかいな…。

3次元的に動かすことができるのかどうかも分からず。それができればもうちょっとイイ感じのソレを作れそうだけど…。

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

#1 [cg_tools] コミPoで感嘆符や疑問符ってどうやって出すんだろう

コミPo、面白いです。触ってて楽しい。サクサクと漫画(っぽい画像)が作れる。これはイイ。

それはさておき。

漫画と言えば「!?」とか「!!」とか「??」とかそのあたりが台詞の最後についたりするわけだけど。コレをコミPoで再現するのはどうしたらいいのかなと。

ググってみたら、そこだけ横書きの吹き出しを作って重ねる、という方法を紹介している記事が。

_コミPo!先行体験版を使ってみた! DAIさん伝説 第4回「それはそれ、これはこれ」 | フラン☆Skin

fonttest02_001.png

いやまあ、たしかに、昔の漫画は写植を貼って台詞部分を作ってたはずで…。その手の記号を一つ一つ撮影して組み合わせて現像してペタペタ貼ってたんだろうと想像すると、ソレと似たノリで別途吹き出しを置いて誤魔化そう、てな実現の仕方もアリかなと思わないでもないけれど。

しかし、漫画制作ソフトを謳っておきながらそのあたりサクッと処理するための機能が入ってないってのは、こりゃちょっとおかしいだろありえないだろ今は二十一世紀だよAIが碁で人間に勝っちゃう時代だよこんな時代に別途吹き出し作って重ねてくれとかえーちょっと待てよオイ本気かよ嘘だろマジかよ、と思えてくるのも正直なところ。マジかよ…。

などと一瞬絶望的な気分になったものの、色々調べてたら少しはどうにかできそうでもあり。要は、「!?」とか「!!」が外字領域(私用領域)に入ってるフォントを使えばいいらしくて。

fonttest01_001.png

CLIP STUDIO PAINT に付属してた、イワタアンチック体Bと、 _Gutenberg Labo で試験公開中のGL-アンチックPlusを使って試してみたけど、そこだけ別の吹き出しで重ねたりしなくても御覧の通りどうにかなりそうな感じ。

ちなみに、 _フキダシのフォントを変えてコミPo! の作品をよりマンガらしく! | コミPo! (コミポ) 公式ブログ で紹介されてた、「新コミック体フォント」と「やさしさアンチック」も試してみたけど、それらのフォントにはこの手の文字が入ってない模様。ちょっと残念。

ところで、このやり方(?)で文字入力する際、入力欄にそのまま文字が出てくるわけではないようで。
font_area_ss01.png
font_area_ss02.png

なんだか変な文字が出てるけど、「ここにはきっと『!?』があるに違いねえ」と思いながら作業することになりそうだなと。

それぞれの文字の入力・挿入は、IMEパッドを使う。文字入力欄にフォーカスを合わせて、IMEをONにした状態で Ctrl + F10 を押すとメニューが開く。その中からIMEパッドを選択。もしくはタスクトレイの「あ」のアイコンを右クリックしてIMEパッドを選択。表示させたいフォントを選んで、私用領域を選んで、文字を探してクリックすれば、アプリの入力欄に文字が挿入されていく。みたいな。

font_input_imepad_ss.png


ちなみに、CLIP STUDIO PAINTには、そのあたりを楽にするための機能があって。テキスト入力中に「文字一覧」ボタンをクリックすると、入力フィールドパレットとやらが開いて、簡単に外字(?)を選択して入力できるという。

_第10回:フキダシにセリフを入れる - 森の熊太郎さんコミスタ教室 - ComicStudio 使い方講座 - CLIP | 創作活動応援サイト

さらに、縦書きテキストの中で、半角文字、かつ、指定文字数以下なら、そこだけは横書きにする機能もあったりして。

_ビックリマークの連続 | CLIP STUDIO PAINTの要望・不具合ボード | CLIP

こういうところは、さすがにComicStudioを作ってた会社だなと感心してしまったり。

もっとも、機能追加を是とする CLIP STUDIO PAINTと、機能を絞ることに意識を払ったコミPoを比較するのもどうかと思うのだけど。にしても、コミPoもこのあたり、もう少しどうにかならんか、とも思いました。

吹き出しの種類が少ないのも気になる。 :

テキスト関係繋がりでメモ。コミPoは吹き出しの種類が少ないというか、カッチリした形ばかりな点が気になったりもして。

もう少し不定形な吹き出しの形が欲しい気も。個人的には、感情が不安定な状態で叫んでる吹き出しと、落ち込みながらボソボソと喋ってる吹き出し、ぐらいはいくらなんでも欲しいなと…。デフォルトではデジタルな感情しか吹き出しの形に含まれてないというか。絵がショボくなるんだから、それ以外のところで漫画としての情報量を増やせないと厳しいところがあるよなと。 *1

どこかに吹き出しデータの作り方・追加の仕方を解説してる記事でもあれば、自分でどうにか…。と思ったけど、確認してみたら吹き出し関係はユーザデータを読み込む仕様が無いようにも見える。何か特殊な作りのデータだったりするのかな…。

*1: 漫符や書き文字は充実してるように見えたので、吹き出しの形も同様に重要、情報量を増やすことに使える、と開発側も気づいてそうなものだけど。もしかすると、種類が多いとどれを選んだらいいのか悩む人が出てくるかも、などと想像して少なくしたのだろうか…。あるいは監修をした方が、吹き出しの形で感情まで示す手管を得意としていないとか、そういう描き方は嫌いだったとか…。

#2 [nitijyou] 弟が帰省

弟が新車を買ったそうで、慣らし運転のついでに帰省したいとのことで。PM03:30頃到着。

今回も色々持ってきてくれた。一つは三菱製マルチメディア液晶ディスプレイ MDT243WG-SB。DELL製の4K?ディスプレイを購入してそちらを使い始めたので欲しいなら、との話で。

もう一つはATXサイズのPCケース、Owltech OWL-ASOP-01。アルミ製。Mini-ITXサイズで自作PCを揃え始めたのでATXサイズは処分したいとのことで。

加えて、32GBのコンパクトフラッシュと、1GB前後のSDカードを8枚ほどを持ってきてくれたけど、そちらは親父さんがデジカメで使いたいと引き取る形に。

2015/06/18(木) [n年前の日記]

#1 [python] Visual Studio に PTVS をインストール。

Visual Studio 上で Python開発ができるようになる、PTVS (Python Tools for Visual Studio) という Visual Studio 用の拡張機能?があるらしく。試しに VS2013(Visual Studio Community 2013)にインストールしてみたり。

_Python Tools for Visual Studio - Home 経由で _Releases - Microsoft/PTVS に辿り着き、PTVS 2.2 RC2 ( PTVS 2.2 RC2 VS 2013.msi ) をDLして実行してインストール。

VS2013 の、ツール → オプション → Python Tools → Environment Options で、既にインストール済みだった Python 2.7 を指定。また、各プロジェクトのプロパティでも、どの Python を使うのか指定できる。

プロジェクト新規作成時、テンプレートの中に Python が追加された。

少し触ってみたけど、たしかに結構補完が効くような感じ。いつも Visual Studio を使ってる人は、コレを使えばイイ感じなのかも。

ただ、「label」と打ちたいのに、補完されて「Label」になってしまったり等、ちょっと使いづらい瞬間も。

#2 [python] IronPythonをインストール

IronPython は、.NET Framework を Python から呼べるようにした Python。という認識でいいのかな。C# で実装されてるから .NETアプリ (.exe) に変換できるんだぜ、てな話を見かけて興味が湧いたので少し触ってみようかと。

_IronPython - Home から IronPython-2.7.5.msi をDLして実行してインストール。今回は C:\Python\IronPython2.7\ にインストールした。パスに空白が入ってると後で面倒臭いので、空白は省いた場所にインストールしておく。

Visual Studio の設定を変更。IronPython 2.7 を使うようにする。この設定変更は、Visual Studio を再起動しないと反映されないっぽい。

_C#のコードを参考にしてみよう をコピペして実行してみたら、ウインドウが表示された。たしかに、.NET が使われることで Form が表示されてるっぽい。

IronPython用のPythonスクリプトをexe化。 :

2015/06/18現在は、IronPython に同梱されてる pyc.py を使えばexe化できる。exe化する際の指定は以下。
ipy.exe IronPythonインストール場所\Tools\Scripts\pyc.py /target:exe /main:hoge.py hoge.py
  • コンソールアプリにしたい場合は、/target:exe を指定。
  • GUIアプリにしたい場合は、/target:winexe を指定。

試してみた。自分の環境では、C:\Python\IronPython2.7\ に IronPython をインストールしてある。
> C:\Python\IronPython2.7\ipy.exe C:\Python\IronPython2.7\Tools\Scripts\pyc.py /target:winexe /main:PythonApplicationTest01.py PythonApplicationTest01.py
Input Files:
        PythonApplicationTest01.py
Output:
        PythonApplicationTest01
Target:
        WindowApplication
Platform:
        ILOnly
Machine:
        I386
Threading:
        STA

Compiling...
Saved to PythonApplicationTest01
これで、以下の2つのファイルが出来上がった。
PythonApplicationTest01.dll
PythonApplicationTest01.exe

exe を実行したら、フォームが表示された。たしかに、exe化できたっぽい。

2つのファイルサイズを合わせても15KB。これがもし、Ruby + Ocra で exe化した日には、ファイルサイズは大きいわ、起動は遅いわで…。それと比べると、LLで書いてあるのに、このサイズの exe になるのはありがたい、かもしれない。 *1

でも、ぶっちゃけ、Windowsアプリを簡単に作りたいなら、それこそ C# あたりで書いちゃうほうがいいよな…。

とは言え、選択肢が色々あるのはいいことだなと。これが Ruby だったら、Windows用のGUIアプリを書こうとしても選択肢が無いし…。 *2 Python はまだ恵まれてるほうなのかしらん。

さすがにTkinterは動かないらしい。 :

IronPython で Tkinter は使えないのかなとググってみたけど、英語フォーラムで「動くわけねえだろ」てなやり取りが。まあ、.NET 使おうぜ、ってことですわな。せっかく .NET用に作ったんだし。でもそれだと、Windows専用アプリになるよなあ…。

*NIX や Mac でも動く Python + GUI となると…。やっぱり Python 2.7 + Tkinter でやれないか、ひとまず検討してみたほうがいいのかな。

*1: もっとも、あらかじめ、.NETという巨大なファイル群が入ってる上で動かしているのだから、比較するのはおかしい気も。
*2: Mac や *NIX なら Ruby で GUI も選択肢があるらしいけど、Windowsでも使えるGUIライブラリとなると、ほとんどが放置状態で。Ruby 1.8 の頃は色々あったんだけど…。今は Ruby 2.x が主流なのでライブラリが対応してなくて…。

#3 [python] Python + Tkinterを勉強中

ググってたら、どうやら Tkinter はキャンバス上に表示した画像をマウスドラッグで移動することが簡単にできるらしいと知り。昨日作ったようなツールを比較的簡単に書けるのかなと興味が湧いたので少し勉強中。

とりあえず画像を表示してドラッグ移動することはできたので、Frame に、メニューその他を追加できるかどうか試したり。

underの指定。 :

メニューバー(Menu)追加時の under だか underline だかの指定がよく分からなかったけど。 _Tkinter ウィンドウにメニューをつける。 - Cassiopeiaの日記 を眺めて、そういうことかと。要するに、メニューに表示する文字列内の、何番目の文字を Alt + 英数字キーに割り当てるか、という指定なのですな。
# 文字は、0,1,2,3番目、と数える。

# under=0 が指定されてるから、「Save」の、0番目の文字の「S」が使われる。
menu_file.add_command(label="Save", under=0, command = self.save_project, accelerator="Ctrl+S")

# under=5 が指定されてるから、「Save as...」の、5番目の文字の「a」が使われる。
menu_file.add_command(label="Save as...", under=5, command = self.save_as_project, accelerator="Shift+Ctrl+S")

# under=1 が指定されてるから、「Exit」の、1番目の文字の「x」が使われる。
menu_file.add_command(label="Exit", under=1, command = self.quit, accelerator="Ctrl+Q")

Tkinterのショートカットキー関係。 :

Shift + Ctrl + 英字キーを割り当てる時、英字キーは大文字で指定しておかないといけない。
self.bind_all("<Shift-Control-S>", self.save_as_project)

self.bind_all("<Control-q>", self.quit)
Shiftキーが押されることで、大文字が入力されるから、とのこと。

以下は Tcl/Tkの解説だけど、参考になりました。ありがたや。

_イベント処理
次の例は Contorol キー、Shift キー、ALT キーを扱う例です。

1 : bind . <Control-ButtonPress-1> {puts "Control and mouse button 1 is pressed."}
2 : bind . <Shift-KeyPress-A> {puts "Shift-A is pressed."}
3 : bind . <Alt-KeyPress-b> {puts "Alt-B is pressed."}
4 : bind . <Shift-Control-KeyPress-C> {puts "Shift-Control-C is pressed."}

Alt キーのときは「b」としているのに、 Shift キーが関わっているときには「A」のように大文字にしています。 これは Shift キーと同時にアルファベットキーを押すと大文字になるからですね。 したがって、キーボードの Caps Lock をオンにすると、 上記のキーに関するイベントは反応しなくなります (大文字と小文字が逆になるからです)。

イベント処理 より


ここでちと気になる動作が。

自分の環境は、CapsLockキーをCtrlキーとして使う設定にしてあるのだけど。どうやら Tkinter (Python 2.7.10 同梱版)では、Shift + Ctrl + 英数字キーをバインドした際、CapsLock を Ctrl として扱ってくれないようで。
  • Shift + CapsLock(Ctrl化) + 英数字キーは無反応。
  • Shift + Ctrl(本物のCtrl) + 英数字キーなら反応する。

これが単に、Ctrl + 英数字キーのバインドだったら、CapsLock(Ctrl化) + 英数字キーも反応してくれるのだけど。ちょっとよく分からない動作だなと。

終了のさせ方。 :

_python - Close a tkinter window? - Stack Overflow によると、sysy.exit(0) でも終了できるけど、root.quit()、self.parent.quit() でも終了できるらしい。後者は、 root = Tk() とかしてないとダメだけど。

#4 [python] Python + Tkinter でドラッグアンドドロップ

Windowsのエクスプローラから、Python + Tkinter で表示してるウインドウにファイルをD&Dして、ファイルパスを取得したいなと。

ググってみたら、Python + Tkinter、というか Tk は、標準ではそんな機能を持ってないらしい。

しかし、ちょっと頑張ればなんとかなるのかもしれないという話もあるようで。せっかく調べたので、そのあたりをメモ。

環境は Windows7 x64 + Python 2.7.10。

Win32 APIとやらを使う。 :

_Python+TkでD&D - MasaHeroの日記 で解説されてた。ソースをコピペして試してみたら、たしかにD&Dしたファイルのパスを取得することができた。素晴らしい…。

もちろん、この方法だと Windows専用アプリになるわけで。であれば、もしかすると IronPython + .NET Framework で作ってしまうという選択肢もアリになってくるのかしら。Tkinter を使うことで、Windows以外の環境でも動かせる可能性が、という話は無くなってしまうよなと。

TkDNDを使う。 :

TkだけではD&Dに対応してないけど、Tkの拡張として TkDND なるものがあって、ソレを使うとD&Dができるらしい。

_Scripting Laboratory: tkDND

TkDNDは、 _TkDND download | SourceForge.net から入手できる。 _Files_Windows Binaries_TkDND 2.8 と辿って、tkdnd2.8-win32-ix86.tar.gz を入手。

解凍したら、以下のファイルが入っていた。
└─tkdnd2.8
        libtkdnd2.8.dll
        pkgIndex.tcl
        tkdnd.tcl
        tkdnd_compat.tcl
        tkdnd_generic.tcl
        tkdnd_macosx.tcl
        tkdnd_unix.tcl
        tkdnd_windows.tcl

インストール方法がさっぱり分からなくて困ったけれど。 _tkinterでドラッグ&ドロップ - None is None is None でインストール場所について言及しているのを発見。

要は、Python2.7インストール場所\tcl\ フォルダの下に tkdnd というフォルダを作って、その中に先ほど入手した *.dll、*.tcl を全部突っ込めばいいらしい。

*.dll だけあればいいんじゃないのと最初は思ったけど、どうも pkgIndex.tcl というファイルで、「この拡張を使う時は、このファイルを使え」的な情報が書かれている気配があって。よく分からないから *.tcl も全部突っ込む。

さらに、Python + Tkinter から使うためには、TkDND のラッパーとやらが必要になるそうで。それについては、 _Drag and drop in Windows - Google グループ 経由で、 _TkinterDnD download | SourceForge.net にサンプルとラッパーがあると知った。Files → TkinterDnD2 と辿って、TkinterDnd2-0.1.zip を入手。

解凍すると、中に色々ファイルが。
D:.
│  test.py
│  TkinterDnD.html
│
└─TkinterDnD2
        TkinterDnD.py
        __init__.py

test.py を実行したら…。たしかに、エクスプローラからファイルをD&Dしてファイルのパスを取得することができた。

しかし、このままではちと使いづらい気もする。Pythonインストールフォルダに件のファイル群を手作業でコピーさせるのってどうなんだろうと。自分の環境だけで使う分にはいいけれど、他の環境でも使えるようにと考え始めると、ソレってちょっとどうなのよと。

_python drag and drop explorer files to tkinter entry widget - Stack Overflow で、またちょっと違うラッパー、untested_tkdnd_wrapper.py が公開されてた。untested_tkdnd_wrapper.py を呼び出す側のスクリプト内で、TkDNDがどこにあるかを指定できるらしい。

試しに、untested_tkdnd_wrapper.py、及び、呼び出すスクリプトがある場所に、tkdnd というフォルダを作って、TkDND の *.dll、*.tcl をコピーして。呼び出す側のスクリプトの最初のあたりを、
os.environ['TKDND_LIBRARY'] = DIRECTORYTOTHETKDNDBINARY
↓
os.environ['TKDND_LIBRARY'] = ".\\tkdnd"
と修正。

これで試してみたところ、こちらもD&Dでファイルパスを取得できた。

つまり、ラッパーの書き方次第で、スクリプトと一緒に関連ファイルをフォルダごと同梱して使える状態にできそうだなと。

ただ、ライセンスはどうなるのか分かってないけど。

_TkDND 自体は、BSD License と書いてあるな…。

#5 [python] PyOpenGLをインストールしようとして少しハマった

Windows7 x64 + Python 2.7.10 の環境に、PyOpenGL をインストールしようとしたら、少しだけハマった。

まずは公式のやり方でインストールを試みた。(このやり方だと不具合が出ることに注意。)
pip install PyOpenGL
pip install PyOpenGL_accelerate
pip install PyOpenGL-Demo
それぞれ、以下がDLされて、インストールされたらしい。
PyOpenGL-3.1.0.tar.gz
PyOpenGL-accelerate-3.1.0.tar.gz
PyOpenGL-Demo-3.0.0.tar.gz

PyOpenGL-Demo は、以下にインストールされた。
C:\Python2.7インストール場所\Lib\site-packages\PyOpenGL-Demo


しかし、PyOpenGL-DEMO を動かそうとしたらエラーが出た。
C:\Python\Python27\Lib\site-packages\PyOpenGL-Demo\redbook> py hello.py
Traceback (most recent call last):
  File "hello.py", line 97, in <module>
    glutInit(sys.argv)
  File "C:\Python\Python27\Lib\site-packages\OpenGL\GLUT\special.py", line 333, in glutInit
    _base_glutInit( ctypes.byref(count), holder )
  File "C:\Python\Python27\Lib\site-packages\OpenGL\platform\baseplatform.py", line 407, in __call__
    self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before ca
lling

_python 2.7 - PyOpenGL glutInit NullFunctionError - Stack Overflow によると、どうやら公式のバイナリ ―― pip でインストールできる版には不具合があるらしい。 _Python Extension Packages for Windows - Christoph Gohlke からDLできる版を使えば解決するかもしれない、とのこと。

以下の2つをDL。
PyOpenGL_accelerate-3.1.1a1-cp27-none-win32.whl
PyOpenGL-3.1.1a1-cp27-none-win32.whl

以下を実行してインストール。
pip install PyOpenGL-3.1.1a1-cp27-none-win32.whl
pip install PyOpenGL_accelerate-3.1.1a1-cp27-none-win32.whl


PyOpenGL-Demo については、 _PyOpenGL-Demo 3.0.1b1 : Python Package Index から、PyOpenGL-Demo-3.0.1b1.zip をDLして解凍。中に入ってる setup.py でインストール作業ができる。
py setup.py install

この版なら、PyOpenGL-Demo内の各スクリプトも動いてくれた。

2014/06/18(水) [n年前の日記]

#1 [ruby] 今時のRuby用GUIライブラリって何があるんだろう

もしかすると Ruby/Tk あたりが充実していたりしないのかなと思ったのだけど。ググってみたら、Windows + Ruby 1.9用の Tk拡張 (tcltklib.so) はあるけど、Rub 2.0用は無いらしくて。どうやら Ruby/SDL や Star Ruby と同様に、Ruby 2.0 には追随してこないライブラリになってしまったのかな…。

結局、今時の Windows + Ruby用のGUIライブラリって、何があるんだろう…。ほとんどが、Ruby 1.8、1.9 で開発停止になってるみたいだし…。

#2 [python] Python + tkinter が気になり始めたり

_Need a GUI Builder for Tkinter / Python - Stack Overflow というページを眺めていたら、Python+ tkinter 用のRADツール(ビルダー?)が紹介されていて、なんだか tkinter が気になってきました。

_Rapyd-Tk
_PAGE | Free Business & Enterprise software downloads at SourceForge.net
_Visual Tkinter Python IDE | Free software downloads at SourceForge.net
_alejandroautalan/pygubu
_SpecTcl - Browse /GUI Builder/2.5.20070129 at SourceForge.net
_SpecTcl Home Page

少し試用してみたり。環境は Windows7 x64。

pygubu をインストール。 :

_alejandroautalan/pygubu から zip をDLして解凍。Python 2.7 以上を使って、python setup.py install を実行。Python 2.6 以下は対応してない。エラーが出る。

Pythonインストールフォルダ\Scripts\pygubu-designer.py を実行すれば起動する。動作はちょっとモッサリしてるけど、今風な操作感覚のように思えた。

Rapyd-Tk をインストール。 :

_Rapyd-Tk から rapyd-1-0-0.zip をDLして解凍。rapyd.py を実行。

起動したように見えたのだけど、Project を Create new すると落ちる…。Project が作れないのでは話にならない…。

Python + GUI。 :

_GuiProgramming - Python Wiki を眺めてクラクラしてきた。比較的充実してるように見えるなあ…。

2013/06/18(火) [n年前の日記]

#1 [neta] どうしてパズドラなんだろう

や、どうしてゲーム名がパズドラなんだろう、という疑問が浮かんだだけなのですが。

「ダンジョン&ドラゴンズ」をもじって、「パズル&ドラゴンズ」なのかなと勝手に想像。そういう流れがアリならば、他にも組み合わせは色々ありそうだなと。 どれも既にありそうだな…。

何の略なのかは、読み手の想像にお任せします。…こういうのって、むしろ積極的に勘違いしたほうが、独特な発想に繋がっていきそう。

略称から逆に、ラノベ等の長々としたタイトルを想像するのもなんだか面白そう。フツーは本編書いてからタイトルを考えるのだろうけど、タイトルから無理矢理本編考えるとか。…ソレって三題噺みたいなものかもしれず。

#2 [anime][pc] 録画番組のダイジェスト版を作る機能って実現できないかな

HDDレコーダに録画したアニメその他をせっせと見て消ししてるのだけど。時短再生というか早見再生機能がもっと充実してたらなと。自分が持ってるHDDレコーダは1.5倍速再生らしいけど。2倍速再生は無理かな…。まあ、何を喋ってるか聞き取れないか…。

飛び飛びで再生してざっくりと本編内容を把握する機能はどうだろう。自動でダイジェスト版を作ってくれる機能。でもまあ、無理だろうな…。たった1カットが伏線になってる場合もありそうだし…。

もしかすると将来的には、毎週毎週、1番組をさらに編集してダイジェスト版を作る仕事、なんてものがあり得たりもするのだろうか。今現在もNHKあたりでは、大河ドラマの内容がざっくり数分で分かります、みたいな番組を流してたりするけれど。そういう感じの…。

#3 [anime][game][neta] 「君だけの○○を作れ」なる謳い文句って実はあまりウケがよくなかったらどうしよう

例えば、ゲームその他で、「君だけの○○を作れるぞ!」云々の機能を売りにしてる場合があるわけだけど。アレって、実はあまりウケがよくない機能だったらどうしようとなんとなく思えてきたり。

アニメにしろゲームにしろ、作ってる側は、何かしらを作るのが好きな人達なので、そういう機能があると「面白そう」と思ってしまうわけだけど。ていうかそこで「面白そう」と思う人だから、そういう職種・業界を目指して、そうなってるわけだけど。一般人って、実は何かしらを作ることが大嫌いな人達ばかりだったりしないのかなと…。ひたすら消費だけをしたい、みたいな。「自分だけの○○が作れる? それのどこが面白いの?」と思われていたら、どうしよう。

でも、そういう人達が面白いと思ってくれそうな方向性なんて、分からないよな…。自分が「面白い」と思うものは分かるけど、「自分は面白いと思えないけど、自分以外はコレを面白いと思うはず」なんて方向性が分かるものだろうか…。そんなの分からんよな…。

2012/06/18(月) [n年前の日記]

#1 [zatta] 画像に説明文をつけるなら、上、下、どちらか

先日の、X-718BK-J2の分解写真を載せる際に、少し悩んでしまった。写真に対する説明文は、写真の前に書くのがいいのか、写真の後に書くのがいいのか、どっちだろうと。上か。下か。

上に書くモノ。
ゲームのスコアや残機情報。TVの地震速報。雑誌や書籍のロゴ。
下に書くモノ。
TVニュースのテロップ。映画の字幕。紙芝居ゲームのメッセージウインドウ。
どっちに書くのがいいのかなあ…。一般的には、下に書くほうが多いのだろうか。よくわからない…。

#2 [dtm] Photoshopのフィルタで遊んでいる感覚に近いかもしれず

FL Studioを触っていて、自分は、おそらく、作曲と呼べるだけの行為を全然してない、と思えてきたり。なんというか…Photoshopのフィルタ処理で色々遊んで、出てきた結果をコラージュしている、そんな感じかも。自分の中に、こうしたいという明確なイメージがあって、そこに近づけようとしているわけではなく。コンピュータがたまたま出してきた結果を見て、ヨサゲなモノだけ選択して、ひたすら並べてる、そんな作業のような気が。積み木遊びみたいなもの。かもしれず。

でもまあ、最終的にはなんかソレっぽいものが出来るから、これでいいや。昔はこんな遊びなんて出来なかったので、「体験」としては面白さを感じるし。楽しいからオッケー。…20〜30年ぐらい、やってることが遅れてるとは思うけど。おじさんになってからそういうのに手を出しちゃダメ、なんて法律があるわけでなし。別にいいんじゃないの。

学生時代にこんな道具を持ってたら、ハマってしまって、猿のように延々コレで遊んでたであろう予感。…そう考えると、子供さんも試しに遊べるような、フリーの環境が整っていたらいいのだろうけど。

音楽はレコード会社から買うものではなく、自分達で作って楽しむもの、てな時代になればいいな。

#3 [zatta] 原発を再稼働させるなら

原発を再稼働させるなら、いや、再稼働しないとしても、せめて以下のことは決めておかないといけないんじゃないか、と思ってる。 福島第一原発の事故をちゃんと認知できてる人なら、どれも妥当と思うのでは、と想像するのだけど。

逆に、こういうことをやっとけば、人体への影響という面で、最悪の事態はかなり避けられるのだろうから、単に事故を恐れて停止しているという話であれば、バンバン再稼働していいんじゃないスか、とすら。 *1

とりあえず、「こういうことやった上で再稼働しないと筋が通らないよなあ」と自分は思ってます、とメモ。…後で事故が起きてから「俺はこう思ってたんだよ」と後出しするのもなんかアレだから先に書いときますよ。

…でも、西日本も、体験しなきゃ分かんないんだろうな。

自分もそうだったし。阪神大震災の被害写真等を目にしてたのに、家具は固定しないわ、非常食等用意しないわ。自分が遭遇してから、「なんでちゃんと考えておかなかったんだろう。馬鹿だった。救いようのない馬鹿だった」と後悔したわけで。

だから、西日本も同じ。体験者が「こうしたほうがいいよ」とアドバイスしても、あっさりスルーして、後になって悔やむのだろう。

古い文献を紐解けば、貞観地震の数年後〜十数年後に、西日本でも巨大地震が発生したことが分かってるし。今回のソレが貞観地震のソレだとすれば、そう遠くない将来、西日本も大変なことになるだろうな、と想像してる。

しかし、そうだとしても、対策しとけば、ある程度はどうにかなるはず。対策しといて、それでもダメだったら、スッパリ諦めもつくし。…でも、どうせ対策しないで、「なんでやっておかなかったんだろう」と後悔するんだろうな。

SPEEDIについての補足。 :

SPEEDIの計算結果は、あくまでシミュレーションであって、実際の結果とは異なる可能性がある、と、しつこく伝えた上で、それでも公表しなきゃいけないだろうと思う。

信憑性云々の言い訳は、もう通らない。前回の事故で、大味なれど、まあまあそこそこ当たると証明された、と自分は判断しているので。…もし、次回も隠蔽する気満々なら、今のうちからSPEEDIを破壊・破棄して、関係者を全員クビにしたほうがいいんじゃないか。使う予定が無い予測システムに、お金使うのは無駄でしょう。

それと、今頃になって、福島県がSPEEDIの計算結果をメールで受け取ってたのに捨てていた、という話が出てきたけど。 *2 その話の胡散臭さは別にしても、仮に文科省の言う通りなら、少なくともそれら計算結果を、各自治体が文科省から受け取れることは間違いない、という話になるわけで。であれば、各県は、各種防災訓練の中で、その結果を受け取った際の手順を、今のうちから確認しておくことが可能なはず。その時になってドタバタして、貴重な情報を消しました、なんてことは絶対起きないはず。ですよね。

さて、再稼働を認めた県は、そういう訓練を、文科省との間で既にやったのだろうか? これからやる予定があるんだろうか? 県民に対し、事故発生時の流れを、訓練等の形で認知してもらう予定があるのだろうか?

そのあたりに注目することで、各県が事故の可能性を真剣に考えているか、県民の生命を守ろうという意思があるのか、今、この時点でも、容易に判断できるだろう、と思っていたり。

80km圏内という数字についての補足。 :

80km圏内という数字は、福島第一原発の爆発時に、アメリカ政府が日本国内に居るアメリカ人に対して出してきた数字。

日本政府と、アメリカ政府の、どちらが妥当な数字を出しているかと言えば、たぶんアメリカのほうが、科学的・論理的に正しい。放射性物質が広がっていった、実際の結果を見ても、日本政府が出した30km圏内という数字は甘い。 *3 *4

日本政府は、科学的レイヤーで事故を捉えることをせず、異質なレイヤーで事故への対応策を決定していく。前回の事故でソレが明白になったと思うが、今現在、真に事故を反省していると言うのであれば、次回はアメリカのソレに従ってないと話がおかしい。

と思うので、80kmという数字は、日本政府や自治体が、未だに原発事故を甘く捉えていることの判断材料になるのでは、と。

*1: 事故が起きなくても、使用済み核燃料の処分方法の問題が残り続けるし。全電源喪失に陥っても、停止状態なら、対応の時間的余裕が多少得られると試算が出ていた記憶があるので(浜岡原発絡みでそういう記事を見た記憶があり)、個人的には、停止しておいたほうがいいんじゃない? と思ってるけど。
*2: なんで今頃そういう話が出てくるのか、個人的には怪しいと思ってる。それが本当なら、マスコミが、結果を隠蔽した文科省を叩いてた時期に、文科省がもっと強気で反論してたはずだろうと。なので、今になって、そういうことにしておこう、という裏取引でも行われたんじゃないかと邪推してる。
*3: そもそも同心円状に事故の影響を考えるのが非科学的だと思うけど…まあ色々都合があるんだろうから、そこは目を瞑る。が、それでも尚、という話。
*4: 当時、「アメリカはマイル使ってるからその数値なんだ」という話を聞いて、「なんだそうなのか」と自分は正常性バイアスに支配されてしまった。本来なら、「それにしても数値に差があり過ぎるだろ。なんでだ?」と疑問を持つべきだった。アメリカのほうが核実験のデータを山ほど持ってるから、予測の信憑性は高いだろうし。また、福島県中通りの線量の高さを見れば、アメリカの出した数値のほうが、まだ当たってたと言えるはず。

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

#1 [comic] 「風光る」1〜18巻を読み直し

地震で本棚の下敷きになりそうな目にあったので、手持ちの本を古本屋に持っていくべく整理中。で、持っていく前に目を通そうかと。

続きを読んだような気がするのだが、巻が見つからない。部屋の中が壊滅したときに、どこかに埋もれてしまったのだろうか…?

妹に確認してみたら、以前レンタルで続巻を読んだことがあるはずだ、とのこと。そういうことだったか。

巻が進むに従ってホモ話ばかりになるので、続きを購入して手元に置いておくほどでもなさそうな感じ。巻の最初の頃は、年老いたウチの親父さんですら「これは面白い」「この主人公は本当に実在したのか…?」と感想を述べたぐらい、まだ普遍性があったのだけど。

この作家さん、綿密な調査に基づいた上で、一般的な読者でも受け入れられる感動的なエピソードを比較的しっかり描ける、実に稀有な作家さん、という印象だったのだけど。しかし一旦タガが外れてしまうとなかなか戻ってこれない印象もあるわけで。せっかくの長所が…。実に惜しい…。

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

#1 [cg_tools] 走りの作画を勉強中

とある理由で、走りのドット画を描かねばならないなと。しかしそもそも走りのアニメが描けない。あちこちの解説サイトを見て、Flashで棒人間を描いて動かしてみたが、ちゃんと走ってるようには見えない…。微妙に何かが違うらしい。うーん。

湖川氏が昔書いたアニメのデッサン云々の解説本を引っ張り出してきて読んでみた。しかし、走りの作画についてはほとんど記述が無かった。うーん。

上半身も描かねばならないのだが。 :

ポーズがよくわからない。

Logicool製Webカメラ QCAM S7500 を引っ張り出してきて、ドライバをインストールしてから接続。カメラの前で、カメラの三脚を抱えながら、ポーズを取って撮影した。

ヨサゲなフレームをビットマップで保存して、Flashに取り込んでトレースしてみようかと。

#2 [anime] 最近の動画ってベジェ曲線で線を描いているのか

作画講座云々の情報を探しているうちに、RETASで原動画を描く解説動画を目にした。東映、及びテレコム内で作業している様子を動画にしたものらしいが、線をベジェ曲線で引いていてビックリ。

あんなもんで線が引けるのか…。時間がかかってしまって、かえって大変じゃないのか。と思ったが、むしろ逆らしく。手描きで線を引いてもガタガタしてしまって、後で線を滑らかにする作業が必要になり、そこで随分時間がかかってしまうようで。だったら最初からベジェ曲線で綺麗な線を引いてしまったほうが早いよね、ということらしい。そういうものなのか…。

しかし個人的には、ソフトの機能の弱さ、あるいは、タブレットの使いにくさを、手作業でカバーしちゃってる感じもする。

と思ったけど、ベジェ曲線のソレは、マウスで全部作業ができるあたり、導入コストの面ではメリットがあるのかしら。スタジオに導入する機器のコストもバカにならないだろうし…。タブレットは何万円もするし、ましてや液晶タブレットなんてもっと高いけど。それに比べてマウスなら、下手すると498円でも一応作業ができる状態になってしまうしなあ…。

2009/06/18(木) [n年前の日記]

#1 [nitijyou] 一日中寝てた

昨日、犬の散歩をするべくずっと起きてたせいか、あるいは珍しく外出したせいか、今日は一日中寝てしまったり。と言っても夕飯当番なのでさすがに夕方には起きたけど。

2008/06/18(水) [n年前の日記]

#1 [digital] N905iを購入

店頭から無くなる前に、と思ったわけで。自転車でロックタウンのDoCoMoショップまで。本体+ホルダーで。46,410円。一括で支払い。…高いなぁ。でもこれで、動作確認用の端末が一つ増やせた。

充電器はP902iS購入時に買ったものがあるので、それを流用できればと。

契約プランも変更。 :

N905i購入と同時に、契約プランも変更。ベーシックコース+いちねん割引から、バリューコース+ひとりでも割50に。

ひとりでも割50は、基本料金が半額になる割引サービスだけど。その代り、2年間は回線を解約できないという縛りが入ってくる。期間内に解約しようとすると、1万円近く払わないといけない。また、期限が来た頃に何もアクションを起こさないと、自動で契約が更新されてしまう。つまり、何もしないと、4年間、6年間、8年間という単位で縛られてしまう。

解約時に余計なお金を払いたくなければ、自分の場合、2年後の、2010年7月中に解約するよう動かないといけない。…なんだか忘れそう。いや、絶対に忘れる。非常に危ない。

ちなみに、今まで申し込んでたいちねん割引を、一年経たないうちにやめるとなると、3,000円ぐらい払わないといけない、とDoCoMoのサイトには書いてあったのだけど。ショップの人の話では、他の会社に移られてしまう場合はその額を請求するけど、今回のような切り替えの場合は、いちねん割引を廃止という形になるので、その3,000円は発生しないとのことで。他社に移られないようユーザを縛るための3,000円、ということらしい。

使ってなかったサービスも解約、というか廃止してきた。 :

iチャネル、キャッチホン、メロディコール、転送電話も今回廃止。一番最初に携帯を購入する際に、これも申し込むと安くなりますよ、と言われて申し込んじゃったのだけど。結局使わないまま、しかし廃止するのも面倒で、延々と料金を払っていたわけで。これでちょっとスッキリした。

今回携帯を購入する際、保険を入れるかどうか、とも聞かれたけど。毎月315円払うのもなんだかアレだし、また廃止するのを忘れそうなので、最初から申し込まないことに。ちょっと不安ではあるけど、そもそもそんなに外出する人間でもない・一日中PCの前に座ってるような状態なので、携帯を壊してしまう確率は非常に低いだろうから、まあ大丈夫だろうと。…壊しちゃう頃には新機種が出てるだろうし。

住所変更もしてきた。 :

一番最初の契約時からして間違えて登録していたことに今頃気づいたわけで。番地の数字が83-8じゃなくて83-3になってた。

自分が住所を間違えて書いてしまうのはちとあり得ない気もするので、おそらくショップ側の人がPCに打ち込む時にミスしちゃったんだろうと。しかし、「これで間違いないですか?」と確認されたときに、自分がまったく気付かなくてスルーしちゃった上に、2年間も自分が気付かなかったということで、どう考えてもこちら側のトホホ。幸い、住所変更作業に関してお金はかからなかった。助かった(?)。

microSDも買ってきた。 :

ヤマダ電気まで足を延ばして購入。 _IO-DATA SDMC-2G/A。 2GB。3,280円。

余談。ヤマダ電機のほうが、ケーズデンキより1,000円ほど安かった。デジカメ等も、ケーズデンキよりヤマダ電機のほうが全般的に安い感じ。ポイント込みで、の話だけど、下手すると10,000円ぐらい安い。>デジカメ。…ケーズデンキは「ポイントがつかない代わりに安くしてます」と店内放送してるけど。全然安くなってない…。

2007/06/18(月) [n年前の日記]

#1 [zatta] _異性をほぼ確実に落とす方法 - あるSEとゲーマーの四方山話

ヤンキー効果と自分が呼んでるソレ。普段悪いことをしてる人がたまに気まぐれでイイことをすると評価が高くなる。みたいな話。TV番組等でも、不良が更生するネタは結構取り上げられるのに、生まれて此の方ずっと真面目に生きてきた人はこれっぽっちも評価されない。みたいな。

#2 [cg_tools] _Adobe Storeに確認したところ、全バージョンの対応というのは米国での発表であり、日本での対象となるバージョンは「FreeHand 9」以降と云うことでした。

ガーン。すると自分の FREEHAND 8 は Illustrator にはできんということなのか。全バージョンが対象ならこの際 Illustrator にしてしまおうかと思ってたけど…。ガックリ。

この記事へのツッコミ

Re: Adobe Storeに確認したところ、全バージョンの対応というのは米国での発表であり、日本での対象となるバージョンは「FreeHand 9」以降と云うことでした。 by けいと    2007/06/23 00:56
半分期待している人の一人。

なんせ、メインがマクロメディアDreamWeaverとアドビIllustrator使いなので
両社統合環境になってくれると助かりそう、って言う
漠然とした期待なんですが・・・

ソフトがバカ高くなりそうな予感というのがアドビのつらいところ。
Dreamweaverは残るみたいですかな by mieki256    2007/06/24 06:52
> メインがマクロメディアDreamWeaverとアドビIllustrator使い

そういやDreamweaverはどうなるんだろう…
と思ってAdobeのサイトを覗いたら、ソレについては CS3 があるようですね。
他のAdobe製ソフトと何かしら仕様・機能を一致させてあるのかしら。

FreeHand を選んでしまったのは失敗でした。>自分。
まさか消滅するとは。
まあ、自分にはドローツールを使いこなせないことが判っただけでも、
買った意味はあったのかもですが…。
Re: Dreamweaverは残るみたいですかな by けいと    2007/06/29 21:32
マクロメディアのDreamweaverに対するアドビ製品はGoLiveなのですが、
これはマクロメディア側に譲ったと言うことなのかも。
利用者も多いしね。

マクロメディア - アドビ
○ Dreamweaver - GoLive ×
× Fireworks - Photoshop ○
× FreeHand - Illustrator ○

こんな感じ?
GoLiveもまだ残ってる? by mieki256    2007/07/02 18:32
> ○ Dreamweaver - GoLive ×

気になって検索してみたら、
GoLive もついこないだ新バージョンが出たようですな。

アドビ、CSSレイアウトを強化した「Adobe GoLive 9日本語版」http://internet.watch.impress.co.jp/cda/news/2007/06/08/15991.html

ジャンルがダブってる気が一瞬しましたが、
「GoLiveからAdobe Dreamweaver CS3への移行するための〜」
等書いてあるあたり、ランク的に、
DreamWeaver > GoLive
として商売するつもり、なんですかねぇ…。>Adobe。

#3 [zatta] _日本人じゃない子供が赤ちゃんポストに捨てられた場合、その子は日本人国籍取得できちゃうんじゃね?

なるほどたしかに…。その場合どうなるんだらう。

_「赤ちゃんポスト」に乳児2人 計3人に :

つまりは、 _ゴミの中に突っ込まれて死んでたり_スクーターのヘルメット入れに突っ込まれて死んでたり するはずだったそんな子供が、しかるべき施設に引き取ってもらえることになった、ということでもあるんだよな。

たった3人しか救えてないのか。と考えることもできるよな。

#4 [zatta] 「月の哲学者」の記事が消えてるな…

_Internet Archive で探した。消えないうちにメモしておこう。
2003/08/11 (Mon)

月の哲学者

GeekPress 経由で知った月の哲学者の話。アメリカ版「月をなめるな」というところでしょうか。

----

たぶん6,7年くらい前のことかな、ぼくはウィスコンシン大学(理系の大学としてはなかなかいいところだ)で哲学のクラスを受けていた。そこではティーチング・アシスタントがデカルトについて説明をしていたのだけど、彼はものごとが必ずしも思った通りにはいかないということを示そうとして、次のように言ったのだ。「ペンを放せば地球ではいつもそれは下へ落ちるけれど、月では漂いだしてしまうだけだ」と。

ぼくは顎を落として、つい「なんだって?」と叫んでしまった。教室を見渡してみると、どうやらTAのその発言に驚いているのは友人のマークともう1人ほかの学生だけらしい。その他の17人はみんなぼくを「どうしたんだ、お前は」っていう顔で見ている。

「でも月でもペンは下に落ちるでしょ、ゆっくりとだけど。」ぼくは言ってみた。
「いーや、違うね」TAは落ち着き払って言う。「だって地球の重力からは離れすぎてるから。」

えーと、えーと...あっ、そうだ!「でも月でアポロの宇宙飛行士たちが歩き回るのは見たことあるでしょ? どうして彼らは漂いだしてしまわないのさ。」これにTAが答えて、「そりゃー、重いブーツを履いていたからだよ。」まったく理にかなっているかのようにそんなことを言う。(これが論理学のクラスをたくさん取ったはずの哲学のTAが言うことなんだから!)

どうやら彼とぼくとはまったく違った世界に住んでいるらしい。そして決してお互いの言葉がわかることはないのだ。初めてそう気づいたぼくは、そこで諦めることにした。教室を出るとき、マークは憤慨していた。「なんてこった! どうしたらあんなに大馬鹿になれるんだ?」

ぼくは努めて理解的にふるまった。「マーク、彼らもかつてはわかっていたんだよ。ただそれは彼らの世界の見方の一部ではなくなって、忘れてしまったのさ。たぶん多くの人間はおなじような間違いをしてしまうんだと思う。」そしてそのことを証明するために、ぼくらは寮に戻るとキャンパスの電話帳から適当に名前を選んで、30人に電話で以下の質問をしてみることにした。

1. あなたは月にいます。そこで握っているペンを放せば、それは a) 漂いだす b) そこで浮かんだまま c) 地面へ落ちる のどれでしょうか?

正解したのは約47%。間違えたひとたちにまた次の質問をしてみる。

2. アポロの宇宙飛行士が月を歩くのを見たことがあるでしょう。さて、どうして彼らは月面を歩けるのでしょうか?

~この質問を聞いたとき、約20%がここで最初の答えを変えた。でもいちばん驚いたのは、それでも半分のひとが自信たっぷりにこう答えたときだった。「だって、重たいブーツを履いていたんでしょ?」

Action Potentials より

_Diana Mertz Hsieh: NoodleFood :

オリジナルの英語版は残ってた。 _(via せち日記 2nd − 2003年09月)

#5 [nitijyou] ホームセンター系を回って扇風機を見てきたり

ダイユーエイトとカインズホームを自転車で回ってきた。「これだ」というものが見つからず。うーん。フツーの形の扇風機のほうがいいのか、スリムタイプのほうがいいのか、それもよくわからない。

#6 [digital] P902iSのカメラ性能を確認するために写真を撮ってみたり

昨日今日とテスト撮影。Canon PowerShot A300 と P902iS で撮影して比べてみたり。

A300。(クリックでオリジナル画像を表示。)
A300 (1)
A300 (2)


P902iS。(クリックでオリジナル画像を表示。)
P902iS (1)
P902iS (2)


携帯電話のカメラ機能に希望を持っちゃいかんなぁ…。 _N506iS のとき も思ったけど。トイデジカメだな。コレは。

どうせトイデジカメのレベルなら、RAW画像で保存できたら色々遊べて面白いのに。 :

「携帯電話で撮影した画像だって、現像ソフト次第でこんなに奇麗に!」的な新たな市場を開拓できるかもしれん。当然、その後、ちゃんとしたデジカメを買うときは、「やっぱりRAWで保存できるのがいいよね」「携帯のカメラですらあんなに段違いの画質になったんだし。きっとデジカメもそうなんだろう」ということになるので、値段の高いデジカメを購入させるための呼び水に。

というのはいくらなんでも見通しが甘いか。そもそも画質を気にするようなユーザは、携帯電話のデジカメ機能なんぞ使わん。

というのもまた甘いか。中学〜高校生ぐらいなら、経済的理由で、携帯のデジカメ機能ぐらいしか使えない、といった状況があったりするのではないか。であれば、たとえ携帯であっても、画質どうこうを追及できる(ような気になれる)余地を入れて、子供の頃に色々と遊んでもらったほうが、将来的にはデジカメ業界の真っ当な顧客になってくれる可能性が高まる。とか思ったけど実際はどうなんだろうな。

まあ、容量的にも、スケジュール(?)的にも、使われるか使われないかも判らない、RAW保存可能な機能を入れる余裕なんてないだろうとは思うんだけど。

この記事へのツッコミ

Re: P902iSのカメラ性能を確認するために写真を撮ってみたり by けいと    2007/06/23 01:05
そんな中高生は、
写真を見せる相手も携帯ユーザーだったりするから、
VGA以上の画素数なんて意味ないだろ、
って思っちゃったりするのも甘いか。
画素数が多いと経済的にも厳しいですな by mieki256    2007/06/24 07:05
> 写真を見せる相手も携帯ユーザー = VGA以上の画素数なんて意味ない

あ、そうか。考えてみたら、
画素数が多い = メールに添付する画像のファイルサイズも大きくなる
= パケット料金がかかる = お財布に厳しい、のですな。
経済的理由で携帯しか使えないユーザであれば、
カメラの解像度も経済的理由でせいぜいVGA程度に制限されがち、
ということでもあったりする、ということなのかしら…。

#7 [web] mixi内もspamが飛び交ってたりするんだろうか

いや、なんとなく、そんな疑問を。

_mixiを悪用した「情報ねずみ講」、進行中:Garbagenews.com :

あー、こういうこともあるのか。

_宇宙線実験の覚え書き:mixiでSPAM広告する企業って、アホですか? :

あー、やっぱりあるのだな。

全然関係ないけど。このリンク先のblog、ずいぶんと文字が小さいんだけど…。なんで? IEで見ても…小さいな。Firefoxで見るともっと小さい。こりゃ厳しいな。

Opera で見たら IE と同じ文字サイズだった。知らんかった。Firefox だけが仲間外れか。

この記事へのツッコミ

Re: mixi内もspamが飛び交ってたりするんだろうか by けいと    2007/06/23 01:03
字が小さいから、きっとこの人は、
画面と印刷物が一緒の大きさじゃないといやな人種
=ブログで時折叩かれる10ポイント指定の人
とか
字が小さいほうがかっこいいと思ってる人だと思ったら
メイン文字がxx-small指定か…

せめてメインはmediumにしてほしいなー
xx-small指定でしたか… by mieki256    2007/06/24 06:58
> メイン文字がxx-small指定か…

あ、その指定でしたか。
自分、そこまでは確認しなかったんですが、
なるほどそれでは小さいはずですね…。

まあ、Firefox の場合最少文字サイズを設定で指定しちゃえば
豆文字も問答無用で、読めるサイズにできますが、
ソレをやっちゃうとレイアウトが崩れる場面もあり…なかなか難しい。
Re: mixi内もspamが飛び交ってたりするんだろうか by oxon(本人です)    2007/06/30 00:36
ご指摘ありがとうございます。
いつからこんなCSSにしてたんだろう。。。
自分のbrowserでしか基本的に確認してなかったので、
今まで気がつきませんでした。
# 最小フォントを指定していたので。

xx-smallとか、そりゃ見づらいですよね。
修正しました。
フォントサイズ修正ありがとうございます by mieki256    2007/07/02 18:42
> oxon様

おお。わざわざ修正していただけたとは…ありがとうございます。
なんだかスミマセン。変な?指摘?をしてしまって…。
Re: mixi内もspamが飛び交ってたりするんだろうか by けいと    2007/07/08 20:20
実質的に指摘したのは私ですm(__)m

なんか勝手なところで好きなこと言って済みません。
直してくれて感謝いたします。

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

#1 [eclipse] エラーのある行に飛ぶことはできないんだろうか

タグジャンプみたいな感じで。…そもそもタグジャンプってよくわかってないけど。

_タグジャンプで関数の定義にジャンプ :

各エラー出力がタグファイルの形式で出力されるから利用できてるだけなのだな。

全然関係ないけどインライン化機能があるのだな。>eclipse。 :

今頃気づいた。

#2 [iappli][game] シーケンスをコピペ

2本のうちの1本はそれらしく動いたから、もう1本にオプション画面関係をごっそりコピペ中。

BG処理。 :

BGチップの並びデータの持ち方がちと面倒な持ち方で。利用する画像が複数あるのと、マップエディタのデータの持ち方の関係で、画面単位・レイヤー複数の状態で持ってたり。なもんで、BGが書き換わっていく処理をどうやって書いたもんかと悩んでたけど。ステージ初期化時に、処理の軽いチップの並びデータを作ってしまって、それを参照すればいいことに気づいた。と、そんな感じで実装中。

問題は、実機で動かした際にメモリが足りなくなったりしないかどうか。かもしれん。

実機でも動いてくれた。

もしかすると、実機に渡すデータバイナリを作る段階で処理の軽いデータの持ち方にしてしまえばよかったのだろうか。…それだとDLするファイルサイズが増加してしまうか。

ランキング登録。 :

作成中のゲームだけど。ゲーム中に登場する得点アイテムの数に限りがあるので、プレイが上手くなっちゃうと全員満点になるような予感。しかし、「サーバにランキング登録する仕様を盛り込め」という指示がきたのでそのへん盛り込んであるという。…満点がずらずらと並んだランキング結果ってのはどうなんでせう。意味があるのか? かなり不安。

指示は、おそらく配布サービス側から来てるのかなと思うのだけど。他の会社・サービス・タイトルではこういうことをしてるからウチもやらないと、みたいなノリだったりするのかしら。…ゲーム内容によって必要なものとそうでないものがあると思うんだけど。そのへん検討したうえで指示を出してるのであろうか。うーむ。

もちろんこの場合、開発者の発案と作業によって、最高点が容易には定まらないゲーム内容に作り変えるのが正しい対応なのだろうと思うのだけど。でも、それについては疑問も残る。そのへんって、ある種、開発者としての善意というか、プライドによってなされる行為になってしまわないだろうか、とか。得点関係の仕様についてはこれといった指示がきてないわけだから、その仕様を盛り込むことは、上(?)にとって「余計な作業」という認識・位置づけになりゃしないか。てな感じの不安が。

また、開発者が人知れず(?)こっそり仕様を変更してしまったとしたら。ゲームアプリを配布するにあたって、考えなければいけない要素としてそういうものもある、てなことを配布側がいつまで経っても認識せずに、事態は何ら改善に向かわない可能性も。

といったことを考えると、一度くらいは「オラ知らね」モードで出しちゃったほうがいいのかもしれん。なんて怖い考えになったりもして。…や。結局のところ、苦労して実装しても「よくぞ気づいてくれた」「そういう要素があったのか」などとこれっぽっちも思われないのもなんだかな、てな話でしかないけど。

まあ、そこらへんの発案修正作業まで、黙っててもいいかんじに行われて、それでようやく「発注」とか「お仕事」になり得るのかもしれんと想像したりもするし。最終的にユーザが楽しんでくれれば、それだけで充分に精神的な見返りがある、と言えるのかもしれない。…といってもユーザの声なんて作り手には届かない状況が多いだろうからその手の精神的見返りを期待しちゃいかんのかも、てなことを思ったりもするんだけど。…それは発注者に対しても同じだったりするのかな。となると、作業をする側は、その作業をすることで何を得るのか。そのへんは人によって全く異なるわけだからアレなんだけど。

さておき。得点云々・ランキング云々を考えると、同じ属性の敵を連続で倒せばコンボ成立で高得点、なんて仕様を盛り込んだシューティングゲームってのはよく考えられてるよなと。スコアというものに対して真摯に向き合ったことがある人達だからこそ、そういう案も出てくるのかもしれない。

自分、ゲームをプレイするにあたって、クリアできる/できないしか意識したことがないような気がする。それでは、スコア云々まで意識が回らない・スコアに対する執着心が出てこないわな。…プレイがとにかく下手だから、点数云々まで考える余裕がないということか。つまり、ゲームプレイが上手い人じゃないと、スコア云々まで含めたゲームデザインは難しいということになるのか。いや、それはなんだか違う気がするのだけど。何がどう違うのかは言語化できないのであります。

アニメの原画が上手い人じゃないとアニメの監督にはなれない、てな話と、近いかもしれないけど、遠いかもしれない。

#3 [jiji] オラ知らねモード

昨今ニュースになってるエレベーター事故。プログラムのミスが原因、という話が出てきてるけど。エレベーターのプログラム開発者は、周囲の非開発者の、開発に対する度重なる無理解ぶりに、「オラ知らね」モードに入っちゃったんじゃないか。なんて勝手な想像をしたりもする。

人命に関わる仕事ともなれば、一つたりともミスがあってはならない、てな気概で取り組むのが技術者・開発者なんだろうなと想像するけど。その気概も失いかねない追い込まれた状況がそこにあったのではないか。みたいな。や、件の事例に関して、全然情報集めてないんで完全にズレた想像をしてる可能性大ですが。

本来なら、開発者のプライドだの善意だの気概だの、そんな不確定なものに頼らなくても済むような開発の流れ・チェック機構・システムが必要なのだろうな。と思ったけれど。そういったシステムを構築・維持するにあたっても、おそらくは管理職側の理解とか善意とか気概とかが必要になったりするのだろうかと思い至った。またそこで、不確定なものに頼らないといかんのか。なんとも難しい。

ていうか。管理職には、気概やプライドはあるのだろうか。俺が管理するからには、俺のプライドにかけて、ちゃんとした組織・システムを構築してやる、みたいな気持ちを彼らは持ってたりするのだろうか。…って難しいわな。上からは数字のことだけ言われて、やっぱりそこで気概を失うのかもしれん。…これまた、数字のことだけ言ってくる側には、おそらくは経営者としての気概やプライドなものがあったりして、それがあるが故に数字のことだけとやかく言ってくる。とかだったらどうしよう。などと愚にもつかないことをもやもやと。

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

#1 [anime] ケロロ軍曹、南の島でバカンスの回

素晴らしい。

基本的には、女の子が男の子とお近づきになろうと画策するのをひたすら周囲が邪魔してるだけの話なのだけど。その、各所の表現が秀逸。

日光浴とビーチバレーには笑ってしまった。前者は、パッと見ただけで何が起きてるのか即座に伝わる、記号化されたデザインを最大限に活用した笑い。後者は、既存作品に見られるシリアスな表現・シーケンスを事前に見せたことで意外な結末を引き立たせつつ、やはり記号化されたデザインを用いることで異様なテンションを付加させて笑いをとる手法だし。とにかく素晴らしい。

コレ、子供にはどの程度ウケてるんだろう。自分が子供の頃にコレを見てたら、たぶん腹が痛くなるぐらい笑い転げてただろうと思うのだけど。

原作もこんな感じなのかしら。だとしたら、原作者は天才かもしれぬ。現代の赤塚不二夫か、はたまた鴨川つばめか。ってそこまで言うとアレか… (;´Д`)

OP映像でポケモンショック防止フィルタが効いていることに気づいた :

ショック。

OP終盤の、買い物から帰ってきたケロロが密かに食玩を購入していたことを咎められるシーンなのだけど。あの程度でフィルタがかかってしまうとは…。まあ、機械が判別してることなのでアレだけど。それに、TV東京系みたいだし。仕方ないよな。キレのいい映像が見たかったらDVDを購入せよ、ということでもあるのだろうし。

映像の中でオバケが活用されてるあたりが個人的には結構嬉しいのだけど :

オバケと言っても本編に登場するオバケのキャラじゃなくて。素早い動きを見せるときに、残像部分も作画=そのカットだけ静止画で見るとなんだかよくわからないオバケのように見える表現、なのだけど。

OP映像にしろ、本編にしろ、3DCGではおそらくできそうにない、人間のみが描けるであろうそれら表現が頻繁に見られて嬉しかったり。好きなのです。オバケ。 *1

そういえば、EDの3DCGアニメ映像も面白い。面白いと言っても、OP映像・本編とは全く正反対の位置にあるというか…3DCGの得意分野と不得意分野が同居してるトホホぶりが面白いのだけど。<ってオイ。黄金に輝くアフロ像がグルグル回るところは、形状を正確に描写する3DCGのメリット全開だけど。各キャラがふにゃふにゃ踊るところは、モーション以前の問題で、形状が硬過ぎて面白くも何ともないというデメリットを痛いほど感じさせる。狙ってやってるのか、何も考えてないのか、どっちなんだろうなぁ。単なる実験、かしら。

*1: 初めてそれら表現を意識したのは、MEGA-CD版の「ゆみみみっくす」だったかしら。ヒロインが小動物を拾い上げるカットでそれがあって。「なんだ? 今の表現は?」と思ったのが最初。一度意識すると、結構当たり前のようにそれら表現が使われてるのが判って。ゲームのドット絵でも当たり前のように使ってる、というか使わないと仕事にならないと知って感心した記憶も。

#2 [anime] ネクサス、ラストちょっと前の回

悲壮感漂うウルトラマンの人。彼女とのやりとりのあたりは、ちょっと感心してしまった。

が。やっぱりあそこは消して欲しかったな。消したはずなのに消えなかったとなれば、想いの強さもわかろうというもの。ていうかそれって「フルーツバスケット」か。…まあ、そこまでの時間は残されてないのでアレか。それに、既に各話で、「消す」「消さない」を使ったエピソードは書いてるし。

#3 [anime] ジャスティライザー、新しい大ボス登場

オカマか! しかも配色が気色悪い。結構斬新。

全然関係ないけど。今まで、本編のアクションシーンで、ブラーがかかったような映像が時々流れる場面があって。てっきりスタッフが手を加えてるのかなと感心してたけど、アレって実はポケモンショック防止フィルタが効いてただけだったんじゃ…。何せ、TV東京系だし。なんかこうなってくると、編集時・映像加工時のスタッフの工夫ぶりを読み取ろうと努力するのもアレかなという気もしてきた。機械が勝手に判別してわけのわからん映像加工をしてしまうのでは、何がスタッフ自身の手によるものか、判別しにくいよなぁ。

つーかポケモンショック防止フィルタって本当に効果あるの? :

ちゃんとデータを取って効果を確認したうえで適用してるのだろうか。であれば仕方ないとは思うけど…。防止できるか否か根拠もなく、ただ、「対策してます」とポーズを取るためだけに適用してるなら、ちょっとどうかと思うんだけど。

と言ってもやっぱり、「本来の映像を見たかったらDVDを購入せよ」という話になるから、それらフィルタを排除・改良する必要はない、という話になりそうか。

いっそ、日本のアニメ・特撮は、法律でも制定して、全部、6 frame/sec (4コマ撮り?)ぐらいの映像に制限しちゃうというのはどうか。作る側が楽になるし、子供も倒れたりしない。いいことづくめ!

無理があるか。

#4 [prog][mozilla] JSActionsで文字変換できないものかと試行錯誤中

上手くいきません。うーん。…とりあえず作ってたものをメモ代わりに載せとくか。

やってることは、 ぐらい。

JSActions のバージョンは、2.1.0。文字コードの設定は、Shift_JIS。

vbs版変換スクリプト :

動いてるけど、クリップボードからの取得に時々失敗する…。
' クリップボード内の文字列を文字変換してクリップボードへ送り直す
' Last updated: <2005/06/19 02:32:26 +0900>

Option Explicit

WScript.Sleep(500)

with CreateObject("InternetExplorer.Application")

  .Navigate("about:blank")

  Do until .Busy = False Or .ReadyState = 4
    WScript.Sleep 50
  Loop

  With .Document.ParentWindow.ClipboardData
    Dim stext

    stext = .getData("text")
    
    If IsNull(stext) = False Then
      stext = GetOperatedText(stext)
      .SetData "text",stext
    Else
      stext = "クリップボード内のデータが不正です。"
    End If

    WScript.Sleep(150)
    WScript.Echo stext

  End With

  .Quit
End With


' 文字変換 subroutine
Function UserTextConvert(utext,dicsrc,dicdist)
    Dim c, moji, i, index
    c = ""
    For i = 1 To Len(utext)
        moji = Mid(utext,i,1)
        index = inStr(dicsrc, moji)
        If index > 0 Then moji = Mid(dicdist,index,1)
        c = c & moji
    Next
    UserTextConvert = c
End Function

' 改行等削除、半角/全角変換
Function GetOperatedText(t)
    Dim bobj
    Dim t0,t1,t2,t3,t4,t5,t6,t7,t8
    Dim d1a, d1b, src, temp, temp2, newsrc,result

    Set bobj = CreateObject("basp21")
'   t1 = bobj.Kconv(t,1)
    t1 = t
    
    t0 = Replace(t1,vbCrLf, " ")
    t1 = Replace(t0,vbCr, " ")
    t0 = Replace(t1,vbLf, " ")
    t1 = Replace(t0," ", " ")
    t0 = Replace(t1,"  ", " ")
    t1 = Replace(t0,"−", "-")
    t0 = Trim(t1)
    
    src = bobj.HAN2ZEN(t0)
    bobj.Translate "tr/0-9A-Za-z()/0-9A-Za-z()/k",src,newsrc

    Set bobj = Nothing

    d1a = "!""#$%&',.+?/:;"
    d1b = "!”#$%&’,.+?/:;"
    result = UserTextConvert(newsrc,d1a,d1b)

    GetOperatedText = result
End Function

JSActions側のvbs変換スクリプト呼び出し :

変換自体はvbs側で行ってる。クリップボードに選択範囲をコピーして、該当vbsスクリプトを呼び出してるだけ。
// selection copy -> zenkaku hankaku convert -> copy
// zenkaku hankaku convert ... convhzclip.vbs used.

jsa_conv_selection_copy();

function jsa_conv_selection_copy() {
    var wscriptpath = "C:\\WINDOWS\\system32\\wscript.exe";
    var convpath = "C:\\home\\bin\\convhzclip.vbs";

    if ( _jsaCScript.context.isTextSelected ) {
        var str = window.getSelection().toString();

        // _jsaCScript.dump("Org text : " + str );
        _jsaCScript.setClipBoardString( str );

        convpath = _jsaCScript.convertCharCodeTo( convpath, "shift_jis" );
        _jsaCScript.exec(wscriptpath, convpath);

//         var cstr = "";
//         for ( var i = 0; i<5000; i++ ) {
//             cstr = _jsaCScript.getClipBoardString;
//             if ( str == cstr ) break;
//         }
// 
//         if ( str == cstr ) {
//             _jsaCScript.popAutoHideAlert( "Clipboard : " + cstr );
//             convpath = _jsaCScript.convertCharCodeTo( convpath, "shift_jis" );
//             _jsaCScript.exec(wscriptpath, convpath);
//         } else {
//             _jsaCScript.popAutoHideAlert( "Error : Can't set clipboard." );
//         }

    }
}
コメントアウト部分は、クリップボードに正しくコピーされたかどうかチェックするようにしてみた部分。でも、絶対、「ちゃんとコピーされてない」と言われる。うーん。

JSActions側だけで変換処理ができないか模索した版(動かないけど) :

JavaScriptだけで変換できればそれが一番いいのだけど。どうも全角文字の切り出し(?)・比較・置換が失敗してるみたいで…。いわゆる、Webページに付加するJavaScriptのサンプル等からコピペしてやってみたのだけど。何が違うのだろう…。
// selection copy -> zenkaku hankaku convert -> copy

jsa_hzconv_selection_copy();

function jsa_hzconv_selection_copy() {
    if ( _jsaCScript.context.isTextSelected ) {
        var str = window.getSelection().toString();
        var rstr = get_operated_text(str);
        _jsaCScript.setClipBoardString(rstr);
        _jsaCScript.popAutoHideAlert(rstr);
    }
}

function get_operated_text(s) {
    var ss;
    ss = del_spc(s);
    s = ss.replace(/^\s+|\s+$/g,"");
    ss = kana_h2z(s);
    s = conv_z2h(ss);
    return s;
}

function conv_z2h(s) {
    var src = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz− ";
    var dst = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz- ";
    return convstr_str(s,src,dst);
}

function del_spc(s) {
    s = s.replace(/[\t\r\n]+/g," ");
    s = s.replace(/  /g," ");
    return s;
}

function convstr(ostr,src,dst) {
    var str = ostr;
    if ( src.length != dst.length ) {
        _jsaCScript.dump('Error: src.length != dst.length');
        str = 'error';
    } else {
        for(var i = 0; i < src.length; i++){
            var srcc = src[i].toString();
            var dstc = dst[i].toString();
            var srccm = '/'+srcc+'/g';
//            _jsaCScript.dump('['+srcc+'] -> ['+dstc+']['+srccm+']')
            str = str.replace(srccm, dstc);
        }
    }
    _jsaCScript.dump('['+ostr+']['+str+']');
    return str;
}

function convstr_str(ostr,src,dst) {
    var str = ostr;
    var mode = 0;
    var sn = src.length;
    var dn = dst.length;
    _jsaCScript.dump('sn='+sn+' dn='+dn);
    
    if ( sn == dn ) {
        mode = 0;
    } else {
        if ( sn == (dn * 2) ) {
            mode = 1;           // z2h
        } else {
            if ( (sn * 2) == dn ) {
                mode = 2;       // h2z
            } else {
                _jsaCScript.dump('Error: src.length != dst.length');
                return ostr;
            }
        }
    }
    _jsaCScript.dump('mode='+mode);

    switch(mode) {
    case 1:
        // z2h
        for ( var i = 0; i < dn; i++ ) {
            var srcc = src.substr(i*2,2);
            var dstc = dst.substr(i,1);
            _jsaCScript.dump("["+srcc+"] -> ["+dstc+"]");
            str = str.replace(srcc, dstc);
        }
        break;
    case 2:
        // h2z
        for ( var i = 0; i < sn; i++ ) {
            var srcc = src.substr(i,1);
            var dstc = dst.substr(i*2,2);
            _jsaCScript.dump("["+srcc+"] -> ["+dstc+"]");
            str = str.replace(srcc, dstc);
        }
        break;
    default:
        for ( var i = 0; i < sn; i++ ) {
            var srcc = src.substr(i,1);
            var dstc = dst.substr(i,1);
            _jsaCScript.dump("["+srcc+"] -> ["+dstc+"]");
            str = str.replace(srcc, dstc);
        }
        break;
    }
    
    _jsaCScript.dump('['+ostr+']['+str+']');
    return str;
}


function matchNum(text, sText) {
    var n = 0;
    for (i=0; i<text.length;i++ ) {
        i = text.indexOf(sText, i);
        if (i == -1) {
            break;
        } else {
            n++;
        }
    }
    _jsaCScript.dump('['+text+']'+'['+sText+']'+'match='+n);
    return n;
}

// hankaku kana -> zenkaku kana
// http://www5e.biglobe.ne.jp/~access_r/hp/javascript/js_111.html

function kana_h2z(str){
    var kana1 = new Array(
        'ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ',
        'ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ',
        'パ','ピ','プ','ペ','ポ',
        'ヲ',
        'ァ','ィ','ゥ','ェ','ォ',
        'ャ','ュ','ョ',
        'ッ','ー',
        'ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ',
        'サ','シ','ス','セ',
        'ソ',
        'タ','チ','ツ','テ','ト','ナ','ニ','ヌ','ネ','ノ',
        'ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ',
        'ヤ','ユ','ヨ',
        'ラ','リ','ル','レ','ロ',
        'ワ','ン');
    var kana2 = new Array(
        'ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ',
        'ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ',
        'パ','ピ','プ','ペ','ポ',
        'ヲ',
        'ァ','ィ','ゥ','ェ','ォ',
        'ャ','ュ','ョ',
        'ッ','ー',
        'ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ',
        'サ','シ','ス','セ',
        'ソ\',
        'タ','チ','ツ','テ','ト','ナ','ニ','ヌ','ネ','ノ',
        'ハ','ヒ','フ','ヘ','ホ','マ','ミ','ム','メ','モ',
        'ヤ','ユ','ヨ',
        'ラ','リ','ル','レ','ロ',
        'ワ','ン');
    
    return convstr(str,kana1,kana2);
}

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

#1 [cg_tools] ImageMagick convert のオプション

_ convert -geometry 50% で縮小処理ができるのか。知らなかった。 _convert +antialias でアンチエイリアスが外せると。ふむ。

_ImageMagickによる基本的な画像処理 :

-geometry には 100x75 とか 20%x20% なんて指定もできるのか。ふむ。試しに -geometry 608 と渡してみたら、横幅608dotの画像を出力してくれた。縦幅は自動計算してくれてるみたい。

英語が判れば、 _本家ページ を見て使い方も理解できるのだろうけど。

順番 :

-density、+antialias、-geometry の順番を変えると結果は変わるだろうか。試してみた。…変わらなかった。fc /B で比較してみたけど、相違点は無し。

色々変換してみた :

oodrawでエクスポートした .eps を ImageMgick の convert で .png にしてみた。

(注:どれも100kbyte以上あります。)
_oodraw で png エクスポート
_convert -density 150 -geometry 608 hoge.eps hoge.png
_convert -density 150 -geometry 608 +antialias hoge.eps hoge.png
_convert -density 300 -geometry 608 hoge.eps hoge.png
_convert -density 300 -geometry 608 +antialias hoge.eps hoge.png
_convert -density 600 -geometry 608 hoge.eps hoge.png
_convert -density 600 -geometry 608 +antialias hoge.eps hoge.png
_convert -density 1200 -geometry 608 hoge.eps hoge.png

antialiasを無効にすると、最終画像の文字が太くなってしまう。また、antialiasを有効にしておく限りは、150dpi(ppi?)も300dpiも600dpiもさほど違いはない、けどdpiが高くなれば微妙に綺麗(?)になっていくような。600dpi(ppi?)と1200dpiは、違いが全く判らない。600ぐらいで止めとくのが吉かも。文字の読みやすさで言えば、oodrawの出力した画像が一番読みやすいけど、その代わり、図形の線が汚い。

optipngは凄いな :

平均30kbyteも減った。

#2 [svg] oodrawからSVGで出力してみたけれど

Sodipodiに読んでみたら、線がpolygonになってるみたい。しかも、繋がってたはずの線がバラバラになって、グループにまとまってる。繋ぎ目が見えてしまって汚い。

_ねこめしにっき - SVG を作ってみた (5) :

embed で指定するより、object で指定したほうがいいのか。 _早速実験。 (注: _SVG表示のためのplugin が必要。)ひとまず、WinIE6では表示できたように見える。

_FlashのEMBEDとOBJECTタグ :

面倒臭いにょ。

_SVG学習辞典 :

メモ。

#3 [svg] _Delineate - raster to SVG converter

Javaアプリ。ビットマップをベクターデータに変換してくれるツール。 _autotrace、 または、 _potrace にパラメータを渡して変換した結果を表示・確認できる。試しにautotraceを使って変換してみたり。 *1 …パラメータが何を表すのかさっぱりわかりませんな。

_Re: potrace (ビットマップ ---> ベクトル画像変換用フリーソフト) :

_スキャンデータからのオートトレースについて
なるほど。と思ってコマンドラインでpotraceを使おうとしたら、compress not found と言われるのですよ。cygwinには入ってないのでせうか>compress。

_Re: No compress :

use gzip/gunzip instead,
$ cd /bin
$ ln gzip.exe compress.exe
$ ln gunzip.exe uncompress.exe
えー? いいの? …いいみたいだ。エラーが出なくなった。しかしコマンドラインから potrace を使うと、SVG viewer で表示できないデータが出てくる。Delineate で指定して出力する分には SVG viewer でも見れるデータが出てくるのだけど。何故。

_Peter Selinger: potrace :

compressが必要な理由が書いてあった。LZW圧縮を使うのだけど、特許関係で potrace に含めるわけにはいかない、と書いてあるのかな。compressがなければないで、圧縮しない形式で出力すると書いてある、ようにも見える。すると、エラーが出ても気にする必要はなかったのか。

しかし、gzip.exe を compress.exe の代わりに使っても、出力結果はテキストのままのように見える。圧縮してないやん。何のために必要なんだろう>compress。

*1: 最初にautotraceのみ入れて動かそうとしたんだけど、何がなにやらさっぱり。なもんで、Delineateも入れたのだけど。

この記事へのツッコミ

Re: Delineate - raster to SVG converter~ by こぶん    2004/06/20 05:17
本日やっと日本でのLZWアルゴリズム特許が切れますね。
もうじきLZW特許が有効な国が無くなるのでファイルやデータの圧縮に大手を振ってLZW法が使えるようになるのは喜ばしいことです。
GIF形式やPostScriptL2、SVGなどデータを圧縮するにはLZW符号化していなければならないファイル形式を扱う必要があるプログラムにとって妙な回避策を取る必要がなくなりますね。

きっとpotraceも全世界でLZW特許が切れたら外部コマンド(compress)を使う必要のないバージョンなどになるかもしれませんね。
Re: Delineate - raster to SVG converter~ by mieki256    2004/06/20 18:28
> 本日やっと日本でのLZWアルゴリズム特許が切れますね。

え!? 今日ですか?

わ。ホントだ。バンザーイ <なのか?
http://www.omi-para.net/png/index.htm
http://pc5.2ch.net/test/read.cgi/hp/1055243912/l50

しかしまあ…
PNGはともかく、MNGは普及しなかったなぁ… (;´Д`)

#4 [hns] RLINKを使えば

画像の置き場所を一々指定しなくても済むのでは。と喜んだら、RIMGは無いのですね。orz …aliasで抜けられないか。うーん。

rlink.txt を覗いたら :

画像の置き場所を、昔自分で指定してた模様。完全に忘れてました。orz

LI とか RT とかの中で :

LINK、RLINK、IMGは使えないのだらうか。もどかしい。…こういう感じになってしまうわけですよ。
ツール-density-geometry+antialias結果画像
oodraw で png エクスポートRLINK myimg maptest08_oodraw.png ●
convert150608RLINK myimg maptest08_imagemagick_den150geo608.png ●
convert150608RLINK myimg maptest08_imagemagick_den150geo608antoff.png ●
convert300608RLINK myimg maptest08_imagemagick_den300geo608.png ●
convert300608RLINK myimg maptest08_imagemagick_den300geo608antoff.png ●
convert600608RLINK myimg maptest08_imagemagick_den600geo608.png ●
convert600608RLINK myimg maptest08_imagemagick_den600geo608antoff.png ●
convert1200608RLINK myimg maptest08_imagemagick_den1200geo608.png ●
ギャーッ。みたいな。テーブルの中にリンクや画像を入れる事自体が邪道だったりするのかしら。

#5 [anime] googleイメージ検索で

「プリキュア」で画像が1つも出てこないのは何故だろう。人気ないのかな。

この記事へのツッコミ

Re: googleイメージ検索で by けいと    2004/06/19 20:33
あ、ほんとだ。

これが一部で有名な、かの「Google八分」なのか?

著作権がらみのものだから意図的に外してるくさいな〜
Re: googleイメージ検索で by mieki256    2004/06/20 18:06
> 著作権がらみのものだから意図的に外してるくさいな〜

そんな気がしますね。

しかし「ナージャ」は出てくる…
既に放映が終わった番組だからなのか…
それともナージャは、
「Google八分」も面倒なくらいに売れていないし、
金もこれ以上かけたくないということか…可哀想なナージャ…

2003/06/18(水) [n年前の日記]

#1 電話が通じない

朝、親父さんから不具合報告が。インターネットは繋がるのに電話が通じない。電話機を替えても通じず。同時に電話機が2つ壊れるなんて考え難いし、ネットが利用できる以上、家庭内の配線に異常は無さそうだしで、おそらく局側の問題だろう。 *1 数時間問題を放置してたら使えるようになってた。やっぱり局側だったかな。でも何が起きてたんだろう。原因が知りたいけど、復旧した今となっては尋ねようもないし。「使えてるのになんで聞くんだ」と変人扱いされるのがオチだろうな。
*1: スプリッタが壊れた可能性もあるとは思いつつ。

#2 [pc][anime] _かんたん!ネットでアニメ

簡単だとは思えないけど、メモ。

#3 [anime] アトムのサーカスの回

ちょっと泣きそうになった。 *1 でもこの話を平成ウルトラマンなり東映戦隊モノで見てたらたぶん白けてた。アニメだから若干の感情移入ができた気が。実写を見た場合、比較的無意識に、現実との相違点を探してこれは嘘話だという確信を強めようとする。結果、話を率直に受け止める事ができずに見てしまう。アニメの場合、最初から作りモノ・嘘話として見てるので、話は話としてそのまま見れる。アニメにはアニメのメリットがあるなと思った。…逆もありそうだけど。ていうか演出次第かも。それにしても平成アトムは今のところ恐ろしい出来だなぁ。
*1: ラストは嫌だけど。

#4 [pc][prog][java] eclipseをインストールしてみたり

Java勉強中、CUI的にちょっとした動作確認をしてみるにしても _IDEは必要 だなと思ったので _eclipse を導入。ウホッ。いいツール。めっちゃ軽い。この動作の軽快さだけで 掘れました 惚れました。と喜んでたら、 _eclipseは重い(2003/05/29) という話が。ガーン。つまりは 100% Pure Java の JBuilder がいかにモサモサしてるかということであって。(JBuilder || Java || Swing) は、PC界の大リーグ養成ギブス。 *1

コンピュータ言語の擬人化(?) :

なんでも無難にサクッとこなしてしまうPerlは花形満だろうか。ソースの泥臭さ=星飛雄馬の少年時代っぽいけど。星一徹=lisp。伴宙太=C。明子姉さん=JavaScript。なんとなく。

jsp? servlet? :

って何? eclipseのインストール解説ページを見てると、大抵 _Tomcatプラグインをインストールして云々 と書いてあるので一応それも試してみているのだけど。コレのメリットって何だろう。動作が速いのかな。とりあえず面白そうなんだけど。

*1: ギpuス? ギbuス? _ギpuスが正解 だろうけど巨人の星ではギbuスと聞こえてたような。自分の勘違い・聞き間違いだろうな。

#5 [pc][web][linux] WinnyとWineについて調べてみたり

Linux上で _Winny が動く可能性について検索してみたら、なんか _Linny とやらを _作ろう としてたらしく。と思ったら立ち消えになったとか。そして、 _Winnyの作者さんがLinux版Winnyを作る可能性について発言 してたようで。となればコレは「待ち」ですかな…。

WinnyはWin32APIだけじゃなくMFCも使ってるとか、各種仕様やソースについても将来に渡って公開する気はないとか聞いたので、作者さんしか手が出せない世界っぽい…。

仮に移植されたとして :

_画面 を見る限りX-Window上で動くツールになりそうな。更にCPU負荷も、 _Celeron1.3GHzでCPU使用率50% *1 という話もあるようで。どうやら余りモノで作ったウチのサーバ(K6-200MHz)上で、のほほんと放置しながら動かすのは無理っぽい雰囲気。hnsですら(?)表示にこれだけ待たされたり、X-Window使うと髪を掻き毟りたくなるほどの非力さなので。オイラのような貧乏人には利用が難しげなツールの匂いが。

Win32APIエミュレータについて :

小耳に挟んだ程度しか知らなかったので検索して調べてみたり。Wineってのを頻繁にみかけた。とりあえずメモ。

_The Wine FAQ - Windows Emulator FAQ
_TopPageとWine(IBMホームページビルダー英語版をWineを使ってLinuxに移植した話)
_Windowsエミュレーターを使おう(Wine導入解説)
_Wineを使う(Wine導入解説)
_wine動作報告
_最近のWineは全然いけてる

でも、 _Wineの日本語化パッチを公開してた方のサイトが閉鎖した という話も見かけて、えー、みたいな。

その他、Wine以外のもメモ。

_The PEACE Project(NetBSD/i386でWin32アプリを動かすためのプログラム群)
_Win32アプリのLinuxへの移植ツール「MainWin」
_VMware (Linux)でWindowsOSを走らせる。
_LINE(WINEの逆)

色々あるのだなぁ。でもサーバ上で動かすのはちょっとドキドキなので、そのうちメインPCにもLinux入れて色々動作テストしてみたい。

*1: FTTH環境の場合らしいから、一概にそれだけの負荷がかかるというわけではないだろうけど。

#6 [hns] 箇条書き

関係ないけど、箇条書き中にリンクが書けないのはイヤン>hnf。表現力を抑え簡単にするか、表現力を増やし複雑怪奇にするか、バランスの取り具合が難しいということだろうなぁ。

2002/06/18(火) [n年前の日記]

#1 腕が…

しつこく親指シフトにチャレンジしてるんですが。
腕が…吊る…
姿勢とキーボードが悪いんかな。

2001/06/18(月) [n年前の日記]

#1 VBScript

VBScript勉強中。
ループ条件記述で、論理積を記述しても動いてくれない。なんでやねん。
SORTが無い。仕方なく自分でサブルーチンを記述。メンドクサイ。
sprintfに相当する関数も無い。これも自分で記述。トホホ
なんかホントに基本的なところだけ用意してある感が。
まだJScriptのほうが使いやすいなぁ…

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

#1 手が震えます

ペン入れ。
何ヶ月ぶりかの作業なので、手が震えるデス。

今回はマスクをちゃんと切って彩色してみようかなと。
もっとも、Painterで塗るつもりなんで、結果には反映されないかも。
作業効率に関係してくるかどうか、そのへんも微妙。


昨日、あるPC初心者(?)の方宛に、メールが届いてないという事態が発覚。
原因を色々考えてみたけど思いつかず。

何が原因だったか。
その方が、メールの受信操作の必要性を知らず、受信操作をしてなかった、というだけの話なんですが。
たまたま送信の操作は行っていて、相手に送信は出来ていたため、原因解明に少し時間がかかってしまいました。
なるほど、こういう事例もあるのか、と勉強になったです。

しかし、電子メールの仕組みについて、上手く説明するにはどうしたらいいのか。
郵便局あたりに例えて説明すれば、わかりやすいのかな。

やはりPC初心者である、親父さんやお袋さんに説明する時もそうですが。
上手く説明できないことで、自分の能力不足、理解不足、思考の固さ、を強く感じるです。

手順を一通り説明することはできる。でもそれだけではダメで。
その手順がどんな意味を持つのか、大まかにでもどんな仕組みになっているのか、そのへんも一緒に伝えようとした時、上手く伝えられない。
それはイコール、本質的な部分を、説明する側である自分もちゃんと理解できてないということ、だろうし。

「教える」「説明する」という行為は難しいですね。
そう考えると、今まで自分に色々と教えてくれた方々に、どれだけ感謝しても足りないなぁ、みたいな。
ありがとう。師匠、先輩、先生、etc…

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

#1 (NoTitle)わお。9000アクセスあ...

わお。9000アクセスありがとうございます〜。\(^O^)/

「久遠」エンディング見ました…って言っても、なんかバッドエンドなんですけど〜。1度クリアすればメッセージスキップ機能がONになるのを幸いと、2回目のプレイ。でも幕末編が出てこない・・・選択肢間違えてるなコリャ。
てなわけで、「久遠の絆+攻略」でネットを検索。攻略情報のあるサイトをいくつか発見。 え?自力で攻略しろって? …冗談でしょ。ファーストプレイ20数時間、セカンドプレイでも数時間かかるうえに、先の展開を予測などできそうにない選択が数十箇所…これに「総当り戦」を挑むなんて、正気の沙汰じゃございませんことよ。

とにかくシナリオ長すぎます。正直ツライ。メッセージスキップしても1プレイ数時間…ってアナタ…。
シナリオの構成が1〜3章と直列になってますが、これは並列に構成して1プレイあたりの時間を短くした方が良かったんじゃないかと。少なくとも「謎を明かしていく」事に関しては、並列構成でもなんとかなるはず。(そのへんは「痕」が参考になりそうですね。もっとも、「久遠」の開発者インタビューで、「痕」を参考にしていた、という情報もどこかのサイトで見かけましたが…。ひょっとしたら「痕」の構成は良くない、ってことであえてそうしたのか…?)
まあ、プレイ時間の長さに関しては、画面エフェクト処理、テキストの画面への展開時間といったシステムの仕様ミスもバカになりません。データロード待ち時間は仕方が無いとして、それ以外の部分は、省略・速度調整が可能にしておかないとユーザーとしてはツライです。(もっとも、エフェクト等の処理時間でデータロード時間を稼いでる可能性もあり…そうだとしたらスタッフに「いい仕事してますね〜」と言ってあげたいですけど。)

なんのかんの文句を言ってますけど、シナリオはとにかくgoodです。「RPGのシナリオも結構楽しめるよネ〜」なんてヌカす御仁がいらっしゃったら、「コレをプレイしてからモノを言え〜!」と強制的にプレイさせたくなるぐらい、goodです。

とはいうものの。
もしコレが小説なりアニメのシナリオだったとしたら、「面白い?」という問いに、正直疑問が残ります。音楽と、可愛い娘さんの絵で、かなり得をしているところはあります。
大体にして、設定の類が観念的過ぎ…いや、観念的なのが全て悪いというのではなく(文章における恋愛に関する表現なんて観念ナシでは書けませんしね)、それを如何にユーザーに自然に理解してもらうか、その点の努力が足りない…というかテクニック不足ですね。「太鼓の神々が…」「○○○の一族が…」なんて言われても…そんなの目にしただけで、もう「ペッペッペッ」モノです。そのへんは、なんだか出来の悪いゲーム企画書(1ページ目に「遥か昔、神々は…」といった類のクソにもならない説明が延々とあるタイプ)を読まされてるような個所がチラホラ。

とかなんとか言いつつ。
「そんなに言うならデメーもなんか書いてみろや」なんて言われたら、
「えっ? …いや〜、すんませ〜ん、書けませ〜ん。いやあダンナ、いいシナリオですね、文句のつけようもありませんぜ、ヘヘヘ」なんて言ってしまうであろう私。
…まあ、結局、これだけグダグダ書くって事は、それだけ私がこのゲーム(シナリオ)を気に入っちゃってるからなんですけど。(うおお、桐子〜 …ってD氏が先約済みか、チッ)
つくづく、文句ばっかでモノを作ろうとしないオタクなオイラ…ヤなヤツだにゃ (^^;)

そういや技術的に気になる点が。一つはBGM。データロードしてるはずなのに途切れない。シーケンス演奏かな、と思ったんですが、それならループした曲を作るでしょうし…。CD-ROMから波形をメモリに落として再生してるのかな?(ストリーミング再生…っていうの?違ったっけ?<無知ですな) ソレ…毎回やりたいなと思ってたけど手が回らなかったんだよな…だとしたら尊敬するです。
あとキャラクターのfade in,out(オーバーラップっていうの?)。半透明モードの不自由なPSにしては、結構自然にやってるなと感心しました。すごーく細かくてユーザーにしてみればどうでもいいところではありますが。(一度技法を知ってしまえば大した事じゃないですし) でもそういった目立たないところを真面目に工夫してるのは、好感度UPでした。

以上、23 日分です。

過去ログ表示

Prev - 2021/10 - 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