mieki256's diary



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

#1 [prog][cg_tools] OpenGLでモデルデータを読み込めそうか調べてる。その6

C/C++ とOpenGLで、何かしらのモデルデータを読み込んで描画したい。

今回は、wavefront形式(.obj)を Pythonスクリプトで読み込んで、C言語の配列の形で出力して、それを使って OpenGLで描画するC言語のソースを書いてみた。C/C++ でモデルデータファイルを読み込んでいるわけではないけれど、.exeの中にモデルデータを含めてしまいたい場合は、こういうやり方でもいいんじゃないかなあ、と…。

動作確認環境は以下。
先に実行結果を。今回作成した 01_drawobj.exe を実行すると以下のような見た目になる。モデルデータを描画することができている。

使用するモデルデータ :

blender 3.6.9 x64 LTS で簡単なモデルデータを作成して、wavefront形式(.obj)でエクスポートした。ファイル → エクスポート → Wavefront (.obj) を選択。
  • .objファイルは、頂点座標、テクスチャのUV座標、法線情報、面情報が保存されているファイル。
  • .mtlファイルは、マテリアル情報が保存されているファイル。

blender から .obj をエクスポートする際、四角形を三角形にするオプション(メッシュの三角面化)にチェックを入れる。後で出てくる Pythonスクリプトも、C言語のソースも、三角形ポリゴンにのみ対応させてある状態なので…。

作成したモデルデータは以下。一つは、只の四角い箱。各面が別の色になっている。

_cube01.obj
_cube01.mtl

cube01_ss01.gif


以下のモデルデータは、blenderでお馴染みのスザンヌ。目や口のあたりを別の色にしている。

_suzanne01.obj
_suzanne01.mtl

suzanne01_ss01.gif

PythonスクリプトでC言語の配列に変換 :

この wavefront形式(.obj) と .mtl を、Pythonスクリプトを使って、C言語の配列の形に変換して出力する。今回書いたPythonスクリプトは以下。ライセンスは CC0 / Public Domain ということで…。

_pyobj2c.py

使用方法は以下。
python pyobj2c.py INPUT.obj > OUTPUT.h

例えば hoge.obj というファイルを読み込ませた場合は、以下の名前の配列を作成する。
  • const float hoge_obj_vtx[] ... 頂点配列。1つにつき、{x, y, z} を持つ。
  • const float hoge_obj_nml[] ... 法線情報配列。1つにつき、{x, y, z} を持つ。
  • const float hoge_obj_uv[] ... テクスチャ座標配列。1つにつき、{x, y} を持つ。
  • const float hoge_obj_col[] ... 頂点カラー配列。1つにつき、{r, g, b, a} を持つ。
  • const unsigned int hoge_obj_vtx_size ... 頂点配列の個数
  • const unsigned int hoge_obj_nml_size ... 法線情報配列の個数
  • const unsigned int hoge_obj_uv_size ... テクスチャ座標配列の個数
  • const unsigned int hoge_obj_col_size ... 頂点カラー配列の個数
OpenGL 1.1 の glDrawArrays() を使って描画することを前提にした配列になっている。ちなみに、頂点カラーについては、マテリアル情報の Kd (Diffuse色)だけを取り出して頂点カラーにしている。


前述の2つの .obj を変換。以下の結果が得られた。

_cube01.h
_suzanne01.h

これらの配列を、C言語のソースで #include して利用する。

C言語のソース :

C言語のソースは以下。ライセンスは CC0 / Public Domain ってことで。ちなみに、ウインドウの作成等はGLFW3を利用している。

_01_drawobj.c
#include <stdlib.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GLFW/glfw3.h>
// #include <SOIL/SOIL.h>

#include "cube01.h"
#include "suzanne01.h"

#define WDW_TITLE "Draw wavefront obj"

// Window size
#define SCRW 1280
#define SCRH 720

#define FOV 50.0

#define ENABLE_LIGHT 1

#if ENABLE_LIGHT
const float light_pos[4] = {1.0, 1.0, 1.0, 0.0};
const float light_ambient[4] = {0.2, 0.2, 0.2, 1.0};
const float light_diffuse[4] = {0.8, 0.8, 0.8, 1.0};
const float light_specular[4] = {0.7, 0.7, 0.7, 1.0};
#endif

typedef struct
{
  int scrw;
  int scrh;
  float fovy;
  float znear;
  float zfar;

  double angle;
} GWK;

static GWK gw;

// ----------------------------------------
// Render
void render(void)
{
  gw.angle += (45.0 / 60.0);

  // init OpenGL
  glViewport(0, 0, gw.scrw, gw.scrh);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(gw.fovy, (double)gw.scrw / (double)gw.scrh, gw.znear, gw.zfar);
  glMatrixMode(GL_MODELVIEW);

  // clear screen
  glClearColor(0, 0, 0, 1);
  glClearDepth(1.0);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glDepthFunc(GL_LESS);
  glEnable(GL_DEPTH_TEST);
  glEnable(GL_BLEND);
  glEnable(GL_NORMALIZE);

  glLoadIdentity();

#if ENABLE_LIGHT
  glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
  glEnable(GL_COLOR_MATERIAL);

  glLightfv(GL_LIGHT0, GL_POSITION, light_pos);
  glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
  glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
  glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
#endif

  // obj move and rotate
  glTranslatef(0.0, 0.0, -10.0);
  float scale = 3.0;
  glScalef(scale, scale, scale);
  glRotatef(-20.0, 1, 0, 0);
  // glRotatef(gw.angle * 0.5, 1, 0, 0);
  glRotatef(gw.angle, 0, 1, 0);

  glEnable(GL_CULL_FACE);
  glCullFace(GL_BACK);

  // draw vertex array

  glEnableClientState(GL_VERTEX_ARRAY);
  // glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  glEnableClientState(GL_NORMAL_ARRAY);
  glEnableClientState(GL_COLOR_ARRAY);

#if 1
  glVertexPointer(3, GL_FLOAT, 0, suzanne01_obj_vtx);
  // glTexCoordPointer(2, GL_FLOAT, 0, suzanne01_obj_uv);
  glNormalPointer(GL_FLOAT, 0, suzanne01_obj_nml);
  glColorPointer(4, GL_FLOAT, 0, suzanne01_obj_col);
  glDrawArrays(GL_TRIANGLES, 0, suzanne01_obj_vtx_size);
#else
  glVertexPointer(3, GL_FLOAT, 0, cube01_obj_vtx);
  glNormalPointer(GL_FLOAT, 0, cube01_obj_nml);
  glColorPointer(4, GL_FLOAT, 0, cube01_obj_col);
  glDrawArrays(GL_TRIANGLES, 0, cube01_obj_vtx_size);
#endif

  glDisableClientState(GL_COLOR_ARRAY);
  glDisableClientState(GL_NORMAL_ARRAY);
  // glDisableClientState(GL_TEXTURE_COORD_ARRAY);
  glDisableClientState(GL_VERTEX_ARRAY);
}

// ----------------------------------------
// init animation
void init_animation(int w, int h)
{
  gw.scrw = w;
  gw.scrh = h;
  gw.angle = 0.0;

  gw.fovy = FOV;
  gw.znear = 1.0;
  gw.zfar = 1000.0;

  glViewport(0, 0, (int)gw.scrw, (int)gw.scrh);
}

// ----------------------------------------
// Error callback
void error_callback(int error, const char *description)
{
  fprintf(stderr, "Error: %s\n", description);
}

// ----------------------------------------
// Key callback
static void key_callback(GLFWwindow *window, int key, int scancode, int action, int mods)
{
  if (action == GLFW_PRESS)
  {
    if (key == GLFW_KEY_ESCAPE || key == GLFW_KEY_Q)
    {
      glfwSetWindowShouldClose(window, GLFW_TRUE);
    }
  }
}

// ----------------------------------------
// window resize callback
static void resize(GLFWwindow *window, int w, int h)
{
  if (h == 0)
    return;

  gw.scrw = w;
  gw.scrh = h;
  glfwSetWindowSize(window, w, h);
  glViewport(0, 0, w, h);
}

// ----------------------------------------
// Main
int main(void)
{
  GLFWwindow *window;

  glfwSetErrorCallback(error_callback);

  if (!glfwInit())
  {
    // Initialization failed
    exit(EXIT_FAILURE);
  }

  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 1); // set OpenGL 1.1
  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);

  // create window
  window = glfwCreateWindow(SCRW, SCRH, WDW_TITLE, NULL, NULL);
  if (!window)
  {
    // Window or OpenGL context creation failed
    glfwTerminate();
    exit(EXIT_FAILURE);
  }

  glfwSetKeyCallback(window, key_callback);
  glfwSetWindowSizeCallback(window, resize);

  glfwMakeContextCurrent(window);
  glfwSwapInterval(1);

  // Init OpenGL
  int scrw, scrh;
  glfwGetFramebufferSize(window, &scrw, &scrh);
  init_animation(scrw, scrh);

  // main loop
  while (!glfwWindowShouldClose(window))
  {
    render();
    glfwSwapBuffers(window);
    glfwPollEvents();
  }

  glfwDestroyWindow(window);
  glfwTerminate();
  exit(EXIT_SUCCESS);
}

render() の中で OpenGL の描画をしている。glDrawArrays() の前後を見れば、今回のモデルデータの利用の仕方が分かるだろうか…。

  glEnable(GL_CULL_FACE);
  glCullFace(GL_BACK);

  glEnableClientState(GL_VERTEX_ARRAY);
  // glEnableClientState(GL_TEXTURE_COORD_ARRAY);
  glEnableClientState(GL_NORMAL_ARRAY);
  glEnableClientState(GL_COLOR_ARRAY);

  glVertexPointer(3, GL_FLOAT, 0, suzanne01_obj_vtx);
  // glTexCoordPointer(2, GL_FLOAT, 0, suzanne01_obj_uv);
  glNormalPointer(GL_FLOAT, 0, suzanne01_obj_nml);
  glColorPointer(4, GL_FLOAT, 0, suzanne01_obj_col);

  glDrawArrays(GL_TRIANGLES, 0, suzanne01_obj_vtx_size);

  glDisableClientState(GL_COLOR_ARRAY);
  glDisableClientState(GL_NORMAL_ARRAY);
  // glDisableClientState(GL_TEXTURE_COORD_ARRAY);
  glDisableClientState(GL_VERTEX_ARRAY);
  • glEnableClientState() で、利用したい情報を有効にする。
  • GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY, GL_NORMAL_ARRAY, GL_COLOR_ARRAY 等を指定することで、頂点座標配列、テクスチャ座標配列、法線情報配列、頂点カラー配列を有効にできる。
  • glVertexPointer()、glTexCoordPointer()、glNormalPointer()、glColorPointer() で、利用したい頂点配列等を指定できる。
  • glDrawArrays() で、頂点配列を使って描画。
  • glDisableClientState() で、利用したい情報を無効化。


Makefileは以下。MinGW gcc 6.3.0、MSYS2 gcc 13.2.0、Ubuntu Linux 22.04 LTS + gcc 11.4.0 でビルドできることを確認した。

_Makefile
MODELS = cube01.h suzanne01.h
SRCS = 01_drawobj.c $(MODELS)

ifeq ($(OS),Windows_NT)
# Windows
TARGET = 01_drawobj.exe
GCC_VERSION=$(shell gcc -dumpversion)

ifeq ($(GCC_VERSION),6.3.0)
# MinGW gcc 6.3.0
LIBS = -static -lopengl32 -lglu32 -lwinmm -lgdi32 -lglfw3dll -mwindows
else
# MinGW gcc 9.2.0, MSYS2
LIBS = -static -lopengl32 -lglu32 -lwinmm -lgdi32 -lglfw3 -mwindows
endif

else
# Linux (Ubuntu Linux 22.04 LTS, gcc 11.4.0)
TARGET = 01_drawobj
LIBS = -lGL -lGLU -lglfw -lm
endif

$(TARGET): $(SRCS) Makefile
    gcc -o $@ $(SRCS) $(LIBS)

%.h: %.obj
    python pyobj2c.py $< > $@

.PHONY: clean
clean:
    rm -f *.o $(TARGET) $(MODELS)

ちなみに、MinGW gcc 6.3.0 でビルドすると、別途 glfw3.dll が必要になるけれど、MSYS2 gcc 13.2.0 でビルドすれば GLFW3 をスタティックリンクできるので、MSYS2 を使って実験したほうがいいと思う。

以下を打ってビルド。
make clean
make
01_drawobj.exe が生成される。

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

#1 [cg_tools] Rembgでエラーが出て少しハマった

画像生成AI、Stabel Diffusion web UI に、背景を消去してくれるらしい拡張機能、Rembg をインストールして使ってみようとしたのだけど。

_GitHub - AUTOMATIC1111/stable-diffusion-webui-rembg: Removes backgrounds from pictures. Extension for webui.
_簡単に背景を除去して透過できる!Rembgの使い方(WebUI AUTOMATIC1111 拡張機能) | note_lilish
_画像の背景を削除する拡張機能「Rembg」の使い方【Stable Diffusion web UI】 | くろくまそふと

妙なエラーが出て少しハマってしまったので、解決すべくジタバタした流れをメモ。

一応結論を先に書くと、Python の rembg と onnxruntime-gpu をアンインストールしてから再インストールすると改善する時もあるっぽい。

環境は、環境は、Windows10 x64 22H2 + Pyhton 3.10.6。AMD Ryzen 5 5600X + GeForce GTX 1060 6GB。

Stable Diffusion web UI (以下、SDwebUIと記述) は、D:\aiwork\stable-diffusion-webui\ にインストールしてある。

Rembg のインストール作業自体は前述の解説ページを参考にして作業。SDwebUI のページ、http://127.0.0.1:7860/ をWebブラウザで開いて、拡張機能 Extensions タブを開けば、そこからインストールができる。

Extras タブを開いて、下のほうに背景削除関連の項目が増えているから、そのあたりを指定していけば処理できるはずなのだけど、以下のエラーが出てしまった。

Error completing request
Arguments: (0, <PIL.Image.Image image mode=RGB size=192x128 at 0x1C2B77937F0>, None, '', '', True, 0, 4, 512, 512, True, 'None', 'None', 0, 0, 0, 0, False, False, 4, 'u2net', False, True, 240, 10, 10) {}
Traceback (most recent call last):
  File "D:\aiwork\stable-diffusion-webui\modules\call_queue.py", line 56, in f
    res = list(func(*args, **kwargs))
  File "D:\aiwork\stable-diffusion-webui\modules\call_queue.py", line 37, in f
    res = func(*args, **kwargs)
  File "D:\aiwork\stable-diffusion-webui\modules\postprocessing.py", line 56, in run_postprocessing
    scripts.scripts_postproc.run(pp, args)
  File "D:\aiwork\stable-diffusion-webui\modules\scripts_postprocessing.py", line 130, in run
    script.process(pp, **process_args)
  File "D:\aiwork\stable-diffusion-webui\extensions\stable-diffusion-webui-rembg\scripts\postprocessing_rembg.py", line 53, in process
    session=rembg.new_session(model),
  File "D:\aiwork\stable-diffusion-webui\venv\lib\site-packages\rembg\session_factory.py", line 71, in new_session
    ort.InferenceSession(
  File "D:\aiwork\stable-diffusion-webui\venv\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 360, in __init__
    self._create_inference_session(providers, provider_options, disabled_optimizers)
  File "D:\aiwork\stable-diffusion-webui\venv\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 408, in _create_inference_session
    sess.initialize_session(providers, provider_options, disabled_optimizers)
RuntimeError: D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1106 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : FAIL : LoadLibrary failed with error 126 "" when trying to load "D:\aiwork\stable-diffusion-webui\venv\lib\site-packages\onnxruntime\capi\onnxruntime_providers_tensorrt.dll"

どうもよく分からんが、onnxruntime_providers_tensorrt.dll とやらでエラーが出てるんだろうか?

ファイル自体は、D:\aiwork\stable-diffusion-webui\venv\Lib\site-packages\onnxruntime\capi\ の中に、onnxruntime_providers_tensorrt.dll がちゃんとあった。

エラーメッセージ内容でググったら、以下のやり取りに遭遇。

_[BUG] ...RuntimeError: ...\onnxruntime\capi\onnxruntime_providers_tensorrt.dll" - Issue #312 - danielgatis/rembg - GitHub

rembg と onnxruntime をアンインストールしてから再インストールしたら解決した、という報告があるな…。ちなみに、SDwebUIのインストールフォルダに、Python 環境が入ってるはずなので、(SDwebUIインストールフォルダ)\venv\Scripts\ をカレントディレクトリにしてから pip を使って作業する必要がある。
cd /d D:\aiwork\stable-diffusion-webui\venv\Scripts
pip list

pip で、各モジュールのアンインストールと再インストール。
pip uninstall rembg
pip uninstall onnxruntime
pip install rembg[gpu] onnxruntime-gpu

しかし、pip が以下のようなエラーメッセージを出してきた。
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed.
This behaviour is the source of the following dependency conflicts.
open-clip-torch 2.7.0 requires protobuf==3.20.0,
but you have protobuf 3.20.3 which is incompatible.

open-clip-torch 2.7.0 が protobuf 3.20.0 を要求してるけど、protobuf 3.20.3 がインストールされちゃってるぞ、ということかな。

なら、protobuf 3.20.0 をインストールすればいいのだろうか。
pip install protobuf==3.20.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed.
This behaviour is the source of the following dependency conflicts.
onnx 1.13.1 requires protobuf<4,>=3.20.2,
but you have protobuf 3.20.0 which is incompatible.

onnx 1.13.1 が protobuf 3.20.2 以上を要求してるけど、protobuf 3.20.0 がインストールされちゃってるぞ、と怒られた。どうしろと。

onnx 1.13.0 をインストールしてみたらどうなるだろう。
pip install onnx==1.13.0
やはり怒られるな…。

とりあえずダメ元で、目に入ったモジュール名について、pip に -U をつけて再インストールしてみた。-U は、そのモジュールの新版がWeb上に存在するならアップデートするように指示するオプション。
pip install rembg[gpu] onnxruntime-gpu -U

こんな感じでアレコレを再インストールしていたら、最初にメモしたエラーが出ない状態になって、Rembg がようやく動いてくれた。助かった。

ちなみに、現時点では、各モジュールのバージョンは以下のようになってる。
> pip list | grep -E "rembg|onnx|proto|open-clip-torch"
onnx                    1.13.0
onnxruntime             1.14.1
onnxruntime-gpu         1.14.1
open-clip-torch         2.16.0
protobuf                3.20.3
rembg                   2.0.32

pipが警告を出す :

余談。pip list を打ったら、なんだかやたらと警告が出てきた。

以下の事例らしい。

_pip listのWARNINGを消す - Qiita

D:\aiwork\stable-diffusion-webui\venv\Lib\site-packages\ 内に、最初の文字が 「~」になってるディレクトリがいくつかあった。それらのディレクトリを別の場所に移動してみたところ、pip list を打っても警告が出てこなくなった。

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

#1 [nitijyou] 救急車を呼んだ

激しい腹痛になって、救急車を呼んでしまった。お医者さんの見立てでは尿路結石だろうとの話。

状況をメモ。 :

夕食後、右の脇腹が痛くなってきて、転げ回って呼吸もできないほどの痛みが30分ほど続いた。お袋さんや親父さんに背中をさすってもらって痛みを誤魔化そうとしたけれど、そのうち4回ほど吐いてしまって、これはさすがにマズいのではと救急車を呼ぶことに。ちなみに、お袋さんが同行してくれた。

救急車が到着した頃はかろうじて自力で歩ける程度の痛みになって、搬送先のS病院に着く頃には、それほど強い痛みは感じない状態になった。

S病院で、血液検査、尿検査、レントゲン? CT?の撮影をした。お医者さんの見立てでは、おそらく尿路結石だろうとの話。
  • 撮影結果の尿路のあたりに小さくて薄い点が見えるので、おそらく結石だろうとのこと。
  • 尿検査で潜血反応があるが、結石が尿路を傷つけている可能性がある。
  • 症状が尿路結石のソレと似ている。
結石で吐くことはあるのかと質問したら「ありますあります。全然あります」との答え。結石に限らず、強い痛みで吐いてしまうのはよくあることだそうで…。

ちなみに、CTの結果では両方の腎臓に巨大な白いモノが存在していて…。お医者さん曰く、「コレも結石ですが腎臓とくっついてるだろうから無害でしょう」との話…。心配なら泌尿器科に行って診てもらってほしいとのこと…。

自分は子供の頃に急性膵炎になったことがあるので、膵臓が原因ではないかとお袋さんは疑っていたけれど、医者の話によると今回その可能性は低いそうで。
  • 膵臓がおかしい場合、撮影結果上では膵臓の周りにもやもやしたものが見えたりするが、ソレが無い。外見ではどの臓器も異常無し。
  • 膵臓その他がおかしいなら血液検査の数値に現れるはずだけど、その兆候も全く無い。

痛みもほぼ治まって、入院するほどの状態でも無いので、妹に電話連絡して車で迎えに来てもらった。

費用がどうなるのか不安だったけど、夜、時間外の診察なので、その場では保険証+5,000円を仮預かりとして渡して、後日、昼間の診察時間内に診察料を払って、保険証を返すことになる、との話だった。

時間や病院名等、詳細はGRPでメモ。

2021/04/16(金) [n年前の日記]

#1 [hsp] HSPで作ったスクリーンセーバがトロイの木馬扱いされてしまった

以前、HSPを使って作成したスクリーンセーバのラッパープログラムが、今日になって Windows10 x64 20H2 + Windows Defender からトロイの木馬扱いされてしまった…。

_mieki256/scrsavwr: Screensaver wrapper on Windows
_mieki256/driveqp_scrsaver: Screensaver for Windows. Created with the Godot engine.

hsp_scr_error_ss.png

「Trojan:Win32/Wacatac.B!ml」というトロイの木馬として検出されてしまっている。HSPを使って自分でビルドしたバイナリなのに…。どう考えても誤検出・誤検知・誤認識…。

もっとも、iniファイルを読み込んで、そこに書かれてる exe を実行する仕組みだから、怪しいプログラムとして扱われても仕方ない気もする。もし、その ini に、悪意を持ったプログラムのパスが上書きされたらどうなるか、みたいな。

まあ、ソースは公開してあるわけだから、気になる人は自分でHSPをインストールして、ソースだけDLして、HSPでビルドしてバイナリを作ってくれればと。そもそも今時、この手のスクリーンセーバを新規に欲しがる人なんて居ないだろうという気もするし…。

さておき。ググってみたら、HSP で作成した、無害なプログラムがウイルス扱いされてしまう場面は結構あるようで。

_HSP3.4でのセキュリティソフト誤認識について(技術情報)
_トロイの木馬と判断されるプログラムを知りたい - HSPTV!掲示板
_HSPの実行ファイルの中に別の実行ファイルの埋め込み方が分かりません。 - HSPTV!掲示板

なかなか厳しい…。

HSPに限らず、誤認識はちょくちょく起きるようで。

_Windows Defenderによるウイルス・マルウェア誤検知の報告が相次ぐ 〜「Lhaplus」や「Tera Term」など - 窓の杜
_[Python] Pyinstallerで実行ファイルがマルウェアに分類されてしまったときの対策 - はまたんく
_ウィルスが検出されました!それ、いつもの誤検出です

Pythonスクリプトを exe化しても誤認識されてしまうのはなかなか困る…。

2020/04/16(木) [n年前の日記]

#1 [blender] LuxCoreRender 2.3 Linux版をビルドしようと試みたけど上手く行かない

無料で使える物理ベースレンダラー、 _LuxCoreRender の 2.3 Linux版は、Intel CPUでしか動かないバイナリが公開されてしまっているっぽいのだけど。自分でビルドしたら AMD CPU (AMD A8-3850, A6-3500等)でも動くバイナリが作れるのではないかしらん、と思えてきたので試行錯誤中。

_昔の日記 によると、LuxCoreRender 2.0 の時は、以下をすることでAMD製CPUでも動いたらしい。
であれば、今回も同じ作業をすれば動くバイナリが作れるのではないか。

ちなみに、Embree というのは、Intel が提供してくれたライブラリで、レイトレーシング計算時の交差判定を高速に処理してくれるのだとか。

_Introduction to Embree

おそらく、元々がIntel製だけあって、Intel CPUでしか動かないバイナリがずっと公開されているのだろう…。たぶん。

さておき、Ubuntu 18.04 LTS + AMD A8-3850 で、ビルドできるか試してみたけど…。Embree をビルドするところまではできたけど、LuxCoreRender ダイナミックリンク版をビルドするところで詰まってしまった。 _公式 Wikiに記述されてるビルド手順 が古い内容らしくて、「oidn (Intel製ノイズ除去ライブラリ)が足りない」と言われて止まってしまう。

他にも、LuxCoreRender が使用しているライブラリのいくつかが、AVX や SSE4_2 を有効にした状態でビルドされているようで…。2.3 は 2.0 より機能が増えた分、他のライブラリへの依存度も増えていて、その分、Intel CPU に特化したバイナリが混ざってしまっているのだろうなと。

#2 [pc] AMD CPUのSIMD対応状況を調べたり

AMD CPU、特にAPUの、 _ストリーミングSIMD拡張命令 について調べてみたり。

自分の部屋に転がってるのは、A8-3850、A6-3500、そして Athlon II X2 250 なのだけど…。

_AMD Accelerated Processing Unit - Wikipedia
_Athlon II - Wikipedia

A8-3850、A6-3500 は、Llano世代。2011年頃の製品。AMD APUとしては第一世代なのかな。たぶん。対応しているのは…。
MMX, Enhanced 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, NX Bit, AMD-V

AMD Accelerated Processing Unit - Wikipedia より

AVX や SSE4.2 は未対応らしい。

Athlon II X2 250 は、Regor世代。2009年頃の製品。対応しているのは…。
MMX, Extended 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, Cool'n'Quiet, NX bit, AMD-V

Athlon II - Wikipedia より

これも、AVX や SSE4.2 は未対応。

しかし、同じAPUと呼ばれる製品でも、例えば Trinity世代、2012年の製品、第二世代では…。
MMX, SSE1 - 2 - 3 - 3s - 4.1 - 4.2 - 4a, AES, AVX, BMI1, F16C, FMA3, FMA4, TBM, XOP, AMD64, NX Bit, AMD-V, Turbo Core 3.0

AMD Accelerated Processing Unit - Wikipedia より

AVX も SSE4.2 も対応しているっぽいのだよな…。

つまり、
ということで、「LuxCoreRender が動かない? お前の使ってるCPUが古過ぎるんだよ。そんなもん窓から投げ捨てろ」と言われてしまっても仕方ないような気もするわけで。

CPUだけ交換したら使えるPCにならんかな、と思ったけれど、A8-3850 や A6-3500 って Socket FM1 だから…。第二世代は Socket FM2 なのでM/Bに刺さらない。Socket FM1対応CPUって第一世代だけなのだよな…。

ちょっと待て。古いPCを有効活用できないかと悩んでいたのに、別途ハードウェアを購入することを考え始めるとか…。これでは本末転倒ではないか。

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

#1 [cg_tools] KumoWorksを試用

以下の記事で、雲を生成できるCGソフトが公開されたと知り。

_KumoWorks v1.0 - 輪郭から簡単に雲生成!「OpenToonz」による雲生成ソフトウェアWin&Mac
_KumoWorks

興味が湧いたので試用してみたり。環境は Windows10 x64 + KumoWorks 1.0。

スゴイな…。マウスで輪郭を描くだけで、ガンガンそれっぽい雲になる…。単純に、これは楽しい…。

#2 [zatta][neta] ぶら下がりたい

先日、大河ドラマ「いだてん」を見ていたら、体育館等に設置されてる謎の木製巨大梯子っぽいもの ―― なんでも _肋木(ろくぼく) と呼ばれているものが紹介されていて。

記憶が定かじゃないけれど、子供の頃にアレに登ろうとしたら先生に怒られたような記憶があって。見るからに「さあ君達、我に登ってみたまへよ」的デザインなのに登っちゃダメとなると、一体コレは何に使うんだと子供心に結構不思議だったわけだけど。そうか…大正時代に普及した、単なるぶら下がり健康器具だったのか…。知らなかったぜ…。

劇中では、当時の頓珍漢な施策の一つとしてアレな紹介をされていたけれど。ふと、コレは今の時代にこそ必要なのではないかと思えてきたりもして。

例えば、IT関係なら、同じ姿勢でPC画面を凝視して作業するし、漫画家さんやアニメーターも、同じ姿勢でずっと作業しなければならないけれど、そんなときに肋木があれば、ちょっとは体をリフレッシュできそうだなと。「ううーん。ちょっとぶら下がってきます」「おう。いってらっしゃい」みたいな。

昔のように、体を動かして仕事をすることが当たり前だった時代なら、必要性について鑑みられることはなかったかもしれないが、同じ姿勢で延々作業することが比較的当たり前になってしまった現代こそ、ああいった器具が必要なのではないか。一時期、ぶら下がり健康器具が流行して、そのうち下火になってしまったけれど、今こそ復権の時ではあるまいか。

実際自分も、ずっとキーボード+マウス操作をしていると、時々、「ううーん。体がシンドイ。なんだかどこかにぶら下がりたい」と思えてくる時があって。もっとも、部屋の中にぶら下がられる場所なんてないので、肉体から脳に渡された「ぶら下がりたい」欲求を無視するしかないのだけれど。

例えば、同じ姿勢でずっと寝ていたら、自然と寝返りを打つわけで。同様に、同じ姿勢で作業していたら、そのうち別の姿勢をとりたくなるのは当たり前。しかし、その別姿勢が取れないというのは、まるでベッドにベルトで縛り付けられて寝返り一つ打てない状態でさあ眠れと言われてるようなもので。これは不健康極まりない。肉体が発したメッセージは、それなりに尊重せねばなるまい。「ぶら下がりたい」と肉体から言われたら、要望は極力叶えるべきである。

そもそも、我々人類は猿から進化した生物。木の枝等にぶら下がってぶらぶらすることに最適化された肉体のデザインになっている。しかし現代社会では、ぶらぶらできる場所なんて皆無。人類は、猿からアップグレードした肉体を保有していることをもっと明確に意識するべきではないのか。時にはどこかにぶら下がって、猿だった時代の原始的なアクションを再現することで肉体と脳をリフレッシュしてしっかり英気を養い、また現代社会の荒波へと身を投じて戦い続けるのだ。…みたいなことを言い出す人がどこかに居てもいいのではあるまいか。

おそらく、ぶら下がることで、脳の働きも違ってくるだろう。猿だった時代に活用していた原始的な部位を活性化するわけだから、ニューロンの間を流れる電気信号も普段とは違う部位へと流れていくはず。もしかすると会議室で椅子に座ってウンウンと唸るより、会議室で皆でぶら下がって議論したほうが妙案が次々に発生するかもしれない。いやまあソレちょっとシュールな光景なので「どんな罰ゲームだよ」「一旦なんのプレイやねん」という気もしてくるけれど。

人間は、絶えず重力に逆らって自立するために筋肉を使っているが、その動きは基本的に伸びる方向、肉体を持ち上げる方向で動いてるのではないか。しかし、ぶら下がるというアクションは、重力に引っ張られる肉体を引っ張り上げる方向、縮む方向で動くように思えたり。絶えず伸びようとする筋肉を、たまには縮める方向で働かせても悪いことにはならない気もする。どちらの方向でもバランスよく動かしてやることが、肉体にとってより快適な状態を維持できることに繋がりはしないか。

などと書いてはみたけれど、実際どういう効果があるのだろう。今の科学技術なら、ぶら下がった際の、筋肉の動き方、骨の状態の変化、脳の活動部位の変化等、そこに現れる効果のほどを、それなりに分析できそうな気もするのだけれど。

もちろん、必ずしも良い方向に働くとは限らない。人類が二足歩行を可能にした際の肉体変化の影響は大きく、もはや人類はぶらぶらできるほどのスペックを保持しておらず、予想以上に負荷ばかりかかって体を痛めるからやめましょうね、といった事実が判明してしまう可能性だって否定できない。

いや、マジに、どこかでその手の研究してないのかなー。

#3 [nitijyou] 日記をまとめてアップロードしておいた

_2019/02/10 を最後に日記をアップロードしてなかったので、少しずつアップロード開始。

2018/04/16(月) [n年前の日記]

#1 [cg_tools] Krita 4.0.1をインストールして試用

Krita 4.0.1 が公開されたらしいのでインストールして試用。

先日 4.0.0 を使った時は、以下の追加ブラシの挙動がおかしくてアレだったのだけど。

_Krita Environment Brushes by IForce73 on DeviantArt

Krita 4.0.0 に対応させたブラシも公開されたらしいので、そちらもインストールして試したり。

_Environment Brushes and Forest Vegetation 3 by IForce73 on DeviantArt

3.x と 4.x 用で、別のブラシファイルを使わないといかんあたりがアレだけど…。

上記のブラシには、いくつかの .bundle ファイルが入ってるけれど、
ENV_Brushes_Mountains_and_Structures.bundle
のみ、ファイル名が長すぎるのか、選択してもブラシプリセットが一切表示されなかった。一旦削除してから、
ENV_Brushes_Mountains_and_Structures.bundle
↓
ENV_Mountains_and_Structures.bundle
にリネームして再インストールしたところ利用できるようになった。

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

#1 [ruby][dxruby] Ruby+cairo(rcairo)を勉強し直し

矩形グラデ塗り+境界線描画を自分で書くのが面倒になってきたので、既存の描画ライブラリを使いたいなと。そこで、cairo(rcairo)はどうだろうと。

_Rubyist Magazine - cairo: 2 次元画像描画ライブラリ

一応、以前に少し触った記憶もあるのだけど。

_mieki256's diary - cairoの出力結果をファイルを作らずにDXRubyに渡せた
_mieki256's diary - DXRuby と cairo と rsvg2 で svgを描画して表示してみたり
_mieki256's diary - DXRubyとcairoでswfのシェイプを描画してみる実験

使い方をすっかり忘れてるので再度勉強し直し。

環境は Windows10 x64 + Ruby 2.2.6 p396。

rcairoのインストール。 :

Ruby 2.x を使っているなら、おそらく以下でインストールできる、ような気がする。
gem install cairo --platform=x86-mingw32

もしかすると以下も必要になるのだろうか。そのへんちょっとよく分からず。
gem install glib2
gem install gdk_pixbuf2
gem install rsvg2

使い方の基本。 :

require 'cairo'
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, 640, 480)  # フォーマット, 幅, 高さ
context = Cairo::Context.new(surface)
context.set_source_rgba(1.0, 0.0, 0.0, 1.0)   # R,G,B,A。0.0から1.0で指定
context.rectangle(0, 0, 16, 8)                # x, y, 幅, 高さ
context.fill                                  # 塗り潰し
サーフェイスを作って、コンテキストを作って、そのコンテキストを利用してアレコレ描画、という流れになるらしい。

DXRubyのImageに変換して結果を表示。 :

cairo の描画結果を DXRuby の Image に変換して、その場で表示して結果を確認したい。

cairo には png出力する機能があるし、DXRuby には png を読み込む機能があるので…。pngファイルを一旦HDDに出力して、ソレを読み込み直せばなんとかなる。けど。一々画像ファイルをHDDに書き出してまた読み込むのもなんだかアレで。

StringIOを使うと、文字列に、ファイルと似たインターフェイスを持たせることができるらしい。つまり、メモリ上にファイル(の中身)が存在してるかのような状態にできるので、その仕組みを利用する。

_cairo_helloworld_dxruby.rb
# cairo(rcairo)の描画テスト

require 'cairo'
require 'stringio'
require 'dxruby'

w, h = 640, 480

# サーフェイス作成
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, w, h)

# コンテキスト作成。コレを使って描画していく
context = Cairo::Context.new(surface)

# 背景相当を描画。サーフェイス全体を透明色で塗り潰し
context.set_source_rgba(0, 0, 0, 0)  # r, g, b, a
context.rectangle(0, 0, w, h)        # 矩形を指定
context.fill                         # 塗り潰し

# 赤丸を描画
context.set_source_rgb(1, 0, 0)  # r, g, b
radius = h / 3
context.arc(w / 2, h / 2, radius, 0, 2 * Math::PI)  # 円を指定
context.fill

# StringIOを使ってpng出力
# StringIOを使うと、文字列にファイルと同様のインターフェイスを持たせられる
# つまり、メモリ上にファイルを作成しているのと似た状態になる
temp = StringIO.new("", 'w+')
surface.write_to_png(temp)
temp.rewind                    # アクセス位置を最初に戻す

# DXRubyのImageとして読み込む
img = Image.loadFromFileInMemory(temp.read)
temp.close

# DXRubyで表示
Window.bgcolor = [64, 64, 64]
Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  Window.draw(0, 0, img)
end

cairo_helloworld_dxruby_ss.png

表示できた。

もちろん、一旦pngに変換して出力 → pngを読み込み、てな回りくどいことをしてるので、60FPSでリアルタイムに描画内容を変更して表示、みたいなことは速度的にできないだろうけど。一応、cairo で描画して DXRuby で表示するだけならできなくもない、ということで。

Ruby/Tkで使って結果を表示。 :

Ruby/Tk を使って cairo の描画結果を表示確認したい。

いやまあ、Ruby/Tk自体がキャンバスにアレコレ描画する機能を持ってるらしいので、Ruby/Tk を使うならわざわざ cairo で描かなくてもいいんじゃないのって気もしてくるけど、せっかくだから…。

これも、StringIO を使ってpng出力後、TkPhotoImage にデータを渡すやり方で表示できなくもない模様。ただし、Tk で png を読み込むためには、Tk拡張(この場合 tkimg?) が必要になるので注意。

_cairo_helloworld_tk.rb
# cairo(rcairo) + Ruby/Tk の描画テスト

require 'cairo'
require 'tk'
require "tkextlib/tkimg/png"
require 'stringio'

w, h = 640, 480

# ----------------------------------------
# cairoによる描画

# サーフェイス作成
surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, w, h)

# コンテキスト作成。コレを使って描画していく
context = Cairo::Context.new(surface)

# 背景相当を描画。サーフェイス全体を塗り潰し
context.set_source_rgba(0, 0, 0, 0)  # r, g, b, a
context.rectangle(0, 0, w, h)        # 矩形を指定
context.fill                         # 塗り潰し

# 赤丸を描画
context.set_source_rgb(1, 0, 0)  # r, g, b
radius = h / 3
context.arc(w / 2, h / 2, radius, 0, 2 * Math::PI)  # 円を指定
context.fill

# ----------------------------------------
# Tk関係の設定

# Tkでキャンバス作成
canvas = TkCanvas.new(:width => w, :height => h).pack

# フルカラー画像を扱えるクラスを生成
img = TkPhotoImage.new(width: w, height: h)

# cairoの描画結果をStringIOを使ってpng出力後、
# TkPhotoImage の data に渡す
StringIO.open { |io|
  surface.write_to_png(io)
  img.data = Tk.BinaryString(io.string)
}

x, y = w / 2, h / 2  # 画像の中心が描画位置の基準になるらしい
TkcImage.new(canvas, x, y, :image => img)

# Tkのウインドウを表示
Tk.mainloop

cairo_helloworld_tk_ss.png

一応表示できた。DXRubyのソレと比べると妙に時間がかかるけど…。

ちなみに、RMagick (Ruby から ImageMagick を扱えるライブラリ) を使って変換する事例も見かけたのだけど、Windows上では RMagick をインストールするのが大変、というか時期によってはハマるので、RMagick の利用は極力避けたいところ。

_RMagick を Windows にインストールする方法 - 君の瞳はまるでルビー - Ruby 関連まとめサイト

もっとも、Windows上では、Ruby/Tk の Tk拡張インストール作業自体が結構面倒臭いわけで…。「毒を食らわば皿まで」的に RMagick を使ってしまうのもアリだろうか…。

_Ruby/TkでTk拡張を使っているRubyスクリプトをexe化 - ござるのブログ
_mieki256's diary - Ruby/Tkで拡張Tkを使えるようにするために少し試したり

そもそも Ruby で GUI は鬼門…。Ruby本体のバージョンが上がるたびに放棄されていったGUIライブラリが死屍累々。なので、Ruby/Tk を使うという選択自体がどうなんだろうと思ったり思わなかったり。

ちなみに Python の場合は、tkinter + pycairo + PIL(Pillow) を使って、PILの ImageTk で cairo のサーフェイスを Tk で扱える状態に変換できるらしい。

_python - Cairo with tkinter? - Stack Overflow

データを取り出したい。 :

cairo の描画結果を、DXRuby なり Ruby/Tk なりで一応表示できたけど。一旦 png にしてまた読んで、てのがアレだなと…。どうせ内部ではビットマップデータを持っているに違いないのだから、ソレを取り出して変換して、とかやれたらいいよなと。

cairo のサーフェイスからデータを取り出すのは、ImageSurface#data でできるらしい。
irb(main):001:0> require 'cairo'
=> true
irb(main):002:0> surface = Cairo::ImageSurface.new(8, 8)
=> #<Cairo::ImageSurface:0x34d88a8>
irb(main):003:0> context = Cairo::Context.new(surface)
=> #<Cairo::Context:0x331fec0>
irb(main):004:0> context.set_source_rgb(0.75, 0.5, 0.25)
=> #<Cairo::Context:0x331fec0>
irb(main):005:0> context.rectangle(0, 0, 1, 1)
=> #<Cairo::Context:0x331fec0>
irb(main):006:0> context.fill
=> #<Cairo::Context:0x331fec0>
irb(main):007:0> surface.data
=> "@\x80\xBF\xFF\x00\x00\x00\x00\x00\x00\x00\x00 (中略) \x00\x00\x00\x00"
irb(main):008:0>
Windows10 x64上では、BGRA の順で並んでるように見える。が、このあたりはOSやCPUによって違う可能性もありそうな。エンディアンが関係してそうな予感…。

_バイトオーダ - ビッグエンディアン/リトルエディアン

Cairoのドキュメントを眺めてたら気になる記述が。

_Cairo: A Vector Graphics Library: Image Surfaces
CAIRO_FORMAT_ARGB32

each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then red, then green, then blue.
The 32-bit quantities are stored native-endian.
Pre-multiplied alpha is used.
(That is, 50% transparent red is 0x80800000, not 0x80ff0000.) (Since 1.0)

Cairo: A Vector Graphics Library: Image Surfaces より

32bitの上位から A,R,G,B の順で並んでいて、「native-endian」で記録されてる、と書いてあるのかな。予想は当たってた。

つまり、今回はリトルエンディアンのCPUで動かしてるから、ARGB とは逆の並び、BGRA に見えたのだろう。

一旦png出力せずにDXRubyのImageに変換。 :

上記を踏まえて、cairo のサーフェイスを DXRuby の Image に変換してみる。

_packテンプレート文字列 を眺めたところ、unpack("L*") を使えば、エンディアンに依存した32bit符号無し整数、の配列が得られそうな雰囲気。後は、32bitをARGBに分解していけば…。

_cairo_helloworld_dxruby2.rb
# cairo(rcairo) + DXRuby の描画テストその2
# サーフェイスのデータを変換してDXRubyのImageにしてみる例

require 'cairo'
require 'dxruby'

w, h = 640, 480

surface = Cairo::ImageSurface.new(Cairo::FORMAT_ARGB32, w, h)
ct = Cairo::Context.new(surface)

ct.set_source_color(Cairo::Color::RED)
radius = h / 3
ct.arc(w / 2, h / 2, radius, 0, 2 * Math::PI)
ct.fill

# DXRubyのImageに変換。StringIOを使わない版
src = surface.data.unpack("L*")  # 32bit符号無し整数の配列を得る
dst = []
(w * h).times do |i|
  argb = src[i]
  a = (argb >> 24) & 0x0ff
  r = (argb >> 16) & 0x0ff
  g = (argb >> 8) & 0x0ff
  b = argb & 0x0ff
  dst << a << r << g << b
end

# 配列からDXRubyのImageを作成
img = Image.createFromArray(w, h, dst)

# DXRubyで表示
Window.bgcolor = [64, 64, 64]
Window.loop do
  break if Input.keyPush?(K_ESCAPE)
  Window.draw(0, 0, img)
end

cairo_helloworld_dxruby2_ss.png

表示された。合っているっぽい。

さて、png出力するソレと、Rubyでループを回して変換するソレ。どちらが速度的にマシなのだろう。ベンチマークを取ってみたり。おそらく、複雑な画像を描いた場合はpng圧縮/展開で更に時間がかかるだろうから、多少は複雑さを増した描画内容に変更してみたりもして。

_cairo_helloworld_dxruby3.rb
ruby cairo_helloworld_dxruby3.rb 
                      user     system      total        real
cairo draw        0.031000   0.000000   0.031000 (  0.021152)
use StringIO      0.047000   0.000000   0.047000 (  0.048209)
not StringIO      0.235000   0.000000   0.235000 (  0.242087)

一旦png出力して読み込み直すほうが、全然速い…。ループを回して変換するソレは約5倍遅いのか…。

各ライブラリが持ってる機能はおそらくCで書かれてるから、処理に無駄があるように見えても、Rubyでゴチョゴチョやるよりは各ライブラリの機能を素直に使ったほうがまだ速い、ということかなと。しかし、まさかpng圧縮/展開してるソレに負けるとは…。今更ではあるけど、やっぱりRubyって遅いんだなあ…。

それと、予想通り、VGA程度の画像サイズですら 1/60秒 = 0.0167秒以内では処理が全然終わらないことも分かった。cairoのサーフェイスからDXRubyのImageに変換するだけでも0.5秒かかってるから…。例えばゲーム等に使ったとして、毎フレーム描画内容を変更したら、1〜2FPSになってしまう。話にならない。

そのあたりを考えると、FLASHって凄かったのだなと。ベクターデータをアンチエイリアスをかけながら描画しても、高フレームレートで動いてた印象が…。

参考ページ。 :


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

#1 [cg_tools] DrawPlus Starter Editionを試用してみたり

_DrawPlus Starter Edition という、無料で使えるWindows用のドローソフトがあるらしいので、試用してみたり。環境は Windows10 x64。

入手にはメールアドレスの登録・アカウント登録が必要。メールでダウンロードページのURLが送られてきて、該当ページにシリアル番号も書いてある。

おそらくは、 _DrawPlus X8 の体験版的位置付けなのかなと。ツールバー上のいくつかのボタンを押すと「有償版を買おうぜ!」的なウインドウがバンバン開くし。ちなみに、DrawPlus X8 のお値段は1万円前後。たぶん。

メニュー等は英語。日本語リソースは入ってないらしい。

サンプルを読み込んでみたら、ドローソフトなのに線にタッチがついていた。最近のドローソフトは凄いな…。パッと見は、ビットマップ編集ソフトで描いたような絵に見える…。

少し触ってみた感じでは、動作が軽くて結構サクサクと描ける印象。Inkscapeあたりと比べると圧倒的に軽い、ような気がする。さすが、有償ソフトとして売ってるだけのことはあるなと。

このソフトを作ってる Serif社は、Mac向けのドローソフト Affinity Designer というソフトも作っていて、なかなか評判がいいソフトらしくて。

_[捗]Adobe Illustrator代替のアプリ登場!〜Affinity Designerを試用してみました | 捗りあん
_Adobe製品キラー「Affinity Photo & Designer」のWindows版が登場、数ヶ月中にパブリックベータ版をリリース | 男子ハック

Windows版も開発中らしい。期待大。

#2 [cg_tools][opentoonz] OpenToonzで色塗りする時の塗り分け線で悩んだり

OpenToonzを使って、ベクター線描画で何かを描いて塗り分けしようとすると、以下の画像のような状態になってしまって。

opentoonz_ss3_01.png

主線の上に、塗り分け線が残ってしまう。コレ、どうしたら解決できるんだろう…。

一応、線を選択して右クリックメニューを出せば描画優先順位を変更できるので、主線を選んで一番手前に持ってくれば改善するけれど。

opentoonz_ss3_02.png

opentoonz_ss3_03.png

ただ、線が少ない絵ならともかく、それなりの絵を描いた状態で主線を一本一本チマチマと選択してソレをするとなったら、どう考えても大変だろうと。特定の色を使ってる線を一気に選択してくれる機能でもあれば話は別だけど、探してみてもそんな機能は無さそうで。

元々OpenToonz は、このあたりまで考えた状態でベクター線絡みの実装をしてるわけではなさそうでもあるなと。OpenToonz がスキャナソフトと一緒に公開されているあたり、おそらくは動画を紙で作画してスキャンして、ラスター形式で作業することが前提だろうと想像するわけで。特にジブリの中ではそういうやり方だったはずだから、ベクター線絡みの仕様を改良・改善してほしい等の要望なんて出てこなかっただろうなと。故に、ベクター線でお絵描きする限り、現状では解決策が無い可能性もありそうで。

解決策、あるのかなあ…。

FLASHの場合。 :

ちなみにFLASHの場合、塗り分けした後で、塗り分け線をダブルクリックすれば、同じ属性、かつ、繋がってる線が全て選択されるし、しかも、その線を削除しても塗り分け部分は残ってくれるので、こういう問題は起きないのですけれど。

その代り、塗り分け部分の境界の形状を変更すると、隣の塗り分け部分が追随してくれなくて隙間ができちゃう。つまりは後から形を修正することが難しいわけですが。

#3 [comic] 漫画を色々読んだ

妹が以下略。色々読ませてもらった。

「恋愛3次元デビュー 〜30歳オタク漫画家、結婚への道。〜」「嫁いでもオタクです。」(カザマアヤミ著)を読んだ。 :

とある漫画家さんの恋愛実録漫画、なのだろうか。そういう分類でいいのか悩んでしまうけど。

大変面白い漫画なのだけど、色々と、酷い…。いやはや、世の中にはこんな事例もあるのだなあ…。一部の人にとっては、読んでいて希望が湧いてくる漫画。だと思います。たぶん。

「番線 ― 本にまつわるエトセトラ」(久世番子著)を読んだ。 :

本に絡む様々な職場・場所を紹介していく内容。本の装丁、国会図書館、辞書を作る現場、校正さん等、とにかく勉強になる内容で。

個人的には、写植の機械を紹介する回がとても興味深かった。写植って光学処理で作ってたのか…。たしかに、大きさやフォント種類がバラバラだもんな…。カメラで撮影していけば、そのあたり調整できるもんな…。上手いこと考えたものだなあ…。よくぞ取材してくれたものだなあ、と。

「ずっと独身でいるつもり?」(作画:おかざき真里、原案:雨宮まみ)を読んだ。 :

さすが、おかざき真理作品、なのだろうか。キツイ内容。日本社会の現状を考えさせられる…。

「さぼリーマン 飴谷甘太朗」(漫画:アビディ井上、原作:萩原天晴)、1巻を読んだ。 :

営業畑に転職した主人公が、実は…、という内容。

主人公が感動する場面の描写が、なんというか…。シュールとでもいうか…。作画が上手いことで成立する笑い、なのかなコレ…。とにかく独特としか言いようがなく。漫画って、幅広いなあ…。

「はたらく細胞」(清水茜著)、2巻を読んだ。 :

人体内部のアレコレを擬人化してバトルしていく漫画。以前に1巻は読んだ記憶があるような。

この漫画は、「もやしもん」と合わせて、小中学校の図書館に絶対に置いておくべき、と思います。こういう漫画の存在は大事。漫画には、こういう強みがある、と思えるわけで。

「おちくぼ」(山内直実著)、1巻を読んだ。 :

_落窪物語 を少女漫画化した作品。

あの時代をライトな形で描いていくことに関しては、おそらく第一人者であろう山内直美先生の作品なので、なんだか安心して読めた。こういった作品を入り口にして、その手のアレコレに興味を持ってくれる人が出てくればいいな、と。

2015/04/16(木) [n年前の日記]

#1 [pc] Windows7機を復旧中

バックアップHDDからひたすらコピー。延々コピー。

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

#1 [anime] 昭和偉人伝、円谷英二の回を視聴

BS朝日で放送されていたので視聴。再放送らしいけど。

ゴジラからウルトラマンのあたりまで紹介されていて面白かった。東宝のお偉いさん達から特撮部門は迫害されてたとか、ゴジラ公開当時のマスコミの評は散々だった、みたいな話もあって興味深かったり。この国では、先駆者はいつだって叩かれるのかしら。

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

#1 [digital] 半球ミラーの土台を作成中。

木材を切って、穴開けて、貼り付けて、みたいな作業を黙々と。

#2 [zatta] Zライトのスタンドみたいな構造の呼び方が分からない

Zライトのスタンド部分とか、マジックハンドとか、電車のパンタグラフとか。棒が何本かあって角度が変わって動くアレを、どう呼べばいいのか分からない。

棒を組み合わせて強度を増すような構造はできないかなと関連情報を探してるのだけど、呼び方が分からないので、目的のページに辿り着けなくて。おそらく基礎的なノウハウがあると思うのだけど。

一応、 _リンク機構 という呼び方・ジャンルがあるのは分かった。 _「メカメカリンクで設計しよう」 なる記事が参考になる。けれど、コレは強度を増す方向ではなくて、動きを制限・制御する話のような気がする…。

_カム装置 なるものもあるらしい、が、コレも動きに関する話のような…。

#3 [digital] ニッケル水素充電池が使えない状態になったぽい

_SANYO HR-3UG(L) x 2本を充電しても、PowerShot A300 で使えず。「バッテリーを交換してください」と言われてしまう。テスターで電圧を測ると、1.4V前後を返してくるのだけど…。ただ、2本の電圧が0.5Vぐらい違う。差があるから使えないと言ってくるのだろうか。

昔買ったSONY製充電器にリフレッシュ機能がついていたので、試しにソレを使ってリフレッシュ中。

それにしても。当時は、「2400」「2700」等の数字が電池表面に描かれた充電池が ―― 出力電流の大きさを謳う充電池が流行ってたけど。eneloop が出てきてから、大容量充電池はあまり流行らなくなった印象が。結局、大容量化すると利便性が下がってしまって客側はウンザリしちゃってた、皆が本当に欲しかったのは気楽に使える充電池だった、ということなのだろうか。いや、各機器専用リチウムイオン電池が当たり前になったことのほうが大きいのかな。

#4 [pc][neta] エディタと他アプリを連携させるための規格、とか作れないかな

エディタでHTMLやMarkdown文書を編集したら、ソレをプレビューしたいと思ったりするわけですが。

エディタ上でショートカットキーを叩いてプレビューさせる、みたいなことは、多くのエディタで実現できているけれど。毎回、人間様が、「プレビューしろ」「プレビューしろ」と指示を出すのも実に馬鹿馬鹿しい話。ここはぜひともリアルタイムでプレビューしてほしい。今時はGHz級のCPU使ってるのだし。

しかし、そういう機能を持たせるとなると、エディタにガッチリとその機能を実装しないといけないから作るのが大変。結果、現状では、「編集機能は強いけどリアルタイムプレビューできないエディタ」と、「リアルタイムプレビューできるけど編集機能が弱いエディタ」に分かれてしまっているわけで。

各エディタが、それぞれ自前でプレビュー機能を実装してる現状も、なんだか馬鹿馬鹿しいよなと。HTMLなり、Markdownなり、何か一つビューワを作ったら、それを色んなエディタで流用・共用できたほうがありがたいのではないか、と。Emacsも、Viも、秀丸も、プレビューには同じビューワアプリを使えますよ、みたいな。

例えば。DTMの世界では、シーケンサーと音源が、MIDIその他を使って通信して処理を行ったり、みたいなことをガンガンやってるわけで。シーケンサーにベッタリなネイティブ音源も稀にあるけど、一般的には、どんなシーケンサーでも、色んなソフトウェア音源を使えるのが当たり前。

Android の文字入力では、例えば「マッシュルーム」みたいな連携機能があったりするし。

日本国内の画像ビューワアプリは、「Susieプラグイン対応」が比較的普及してたりするし。Susieプラグインにさえ対応すれば、様々な画像フォーマットも一気に表示できるようになるわけで。

そういう仕組みに似た何かがエディタ上にもあれば、便利になったりするのでは、てなことを夢想したのでした。とメモ。

たぶん、こんな感じの動作になるのだろうか…。
  1. ビューワが、エディタに向かって、「おーい、今プレビューしたいデータはあるかい?」と一定時間毎に尋ねてきて。
  2. エディタが、「いや、今は入力中だから何も無いよ」と返事をして。
  3. そのうちエディタが、「入力がxxx ms以上されてないから、今のうちにこのデータをプレビューしといてくれるかい? 行と列はxxxとyyyだよ。」と返事をして。
  4. ビューワが「分かった。プレビュー作成スタート〜」と。

いや。エディタが一定時間毎にビューワに指示を出すほうがいいのかな。ビューワアプリが起動済みならそいつに渡して。起動してなければ指定パスのアプリを起動して渡す、みたいな?

最低限、現在カーソル位置ぐらいは送ってほしいものだけど。巷のエディタのプレビュー機能って、えてして入力ウインドウ内のカーソル位置をプレビュー画面に反映してくれなくて、プレビュー画面はページのトップをずっと表示、みたいな状態が当たり前なのがなんだかもやもやするわけで。

でも、HTMLにしろ、Markdownにしろ、現在表示位置まで渡すのは難しいか…。画像や表やアレコレが入ってきたら、ページレイアウトが全然違ってくるもんな…。

どうやって表示位置を指定したらいいんだろう? 行と列を渡すだけで済むのだろうか? いや、表示位置を決めるのはビューワ側か。ビューワ側はどうやって表示位置を特定すればいいのやら。

何にしても、色々クリアしないといけない問題があるんだろうな、という気がしてきました。

2012/04/16(月) [n年前の日記]

#1 [pc] Titanium Studioなるものをインストールしてみたり

スマートフォン用のアプリをJavaScriptで作れるらしい、ので試しにインストールしてみたり。 _Titanium Studio導入〜Windows編〜 - 日本Androidの会新潟支部 を参考に作業。

インストールはできたけど。エミュレータ起動、アプリ実行まで数分かかる。Core i5-2500 + RAM 8GBでこんなにかかるとは。富豪的プログラミングにもほどがある、ような気がしたり。

なんだか自分がイメージしている「アプリ」と全然違う印象。

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

#1 [nitijyou] 親父さんの旧PCを分解

親父さんの旧PCが洋間に置きっ放しなのだけど、ミドルタワーケースなものだから部屋の中で邪魔になっているようで。いっそのこと分解して捨ててしまおうかと。ただし、HDDの中身だけはバックアップしておかないといけない。

ビデオカード(GeForec9500GT)、電源(鎌力弐550W)、DVDドライブ、FDドライブ、HDDを取り外し。裸族の頭IDE+SATAを使って取り出した2台のHDDを、親父さんの現PCに接続。1台目80GBはほとんどコピーできた。もう1台、160GBのほうもコピーしないと。

2010/04/16(金) [n年前の日記]

#1 [nitijyou] 「サンドでパンだ」を使ってみたのだけど

なかなか思ったような形にならない。どうも食パンの生地が厚過ぎたような気がする。6枚切りは厳しいですかねえ。

予想していたことではあるけれど、パンの耳が大量に余るのもどうしたものかと。ここで、パンの耳専用の調理器具などもあったりすると、「サンドでパンだ」とセット商品になるかもしれない、と思った。や、どういう調理をするのかが最も重要なんだけど。

#2 [flash] Adobe Flash CS4 Proをインストールしてみたり

Flash4と比べると随分画面レイアウトが…。

#3 [pc] そろそろLogicool M705について一言いっておきたい

省電力性能の高さ故にマラソンマウスと称されて売られているワイヤレスレーザーマウス Logicool M705。

たしかに電池は長持ちする。するのだが。各部位に対してきめ細かい省電力モードへの切り替えを行っているせいか、例えば以下のような状況が発生したりする。
  1. Webページをホイールでスクロールしていると、ホイール以外は使ってないから、ホイールを除いた部位が省電力モードに移行。
  2. リンクをクリックしようとしてカーソル移動・マウスを動かすが、センサ部位は省電力モードになってるから無反応 → 「アレ?」
  3. 省電力モードから復帰。カーソルが動く。リンク文字列にカーソルを合わせてクリックするが、(おそらく)ボタンも省電力モードになってるから無反応 → 「アレ?」
  4. 省電力モードから復帰。クリックが行われる。Webページを読み込むため若干時間がかかるが、その間マウスを使ってないから全体的に省電力モードに移行。
  5. ページが表示されたのでホイールでスクロールをするが、省電力モードだから無反応 → 「アレ?」
まあ、ボタンやホイールは反応がそれほど悪くないので、もしかするとそのあたりの部位は省電力モードにさほど移行してない可能性があるのだけど。とにかくセンサ部位があっという間に省電力モードに移行して、マウスを動かしてもカーソルが動かない、と頻繁に感じるのは間違いない。

たしかに電池は長持ちするマウスなのだが。人間の手足の動きを即座に反映することが絶えず要求されるパソコンの入力機器・ポインティングデバイスとしては、最低条件が満たせていないような気もする。

無反応になる時間が一定時間で決まっている・どんな時でも必ず一定時間遅れて反応するなら、人間は柔軟なので慣れることができるのかもしれないけれど。どうやらM705は省電力モードに段階を持たせているようで、無反応になる時間がマチマチな御様子。故に、慣れることはちと難しいようにも思える。

ということで。「何を犠牲にしても構わないからとにかく電池が長持ちするワイヤレスマウスが欲しい」という方には最もお勧めできる製品です。無反応になるたびに、顔に自然と笑みが浮かぶでしょう。電池を節約できている証ですから。

普通に使えるマウスが欲しいという方には、まったくお勧めできません。ちょっと目を離すと数秒で居眠りを始める部下を持つようなものです。しかも、目が覚めている時も並の社員の働きしかしません。

手をつねって3秒後に「痛い!」と感じる人ならお勧めできます。無反応になる時間は最長でも感覚的に2秒未満です。何かが起きても3秒後に気づくような方なら、無反応になってることにも気づかないかもしれません。

…1ヶ月で電池が切れることを覚悟しながらキビキビ動くワイヤレスマウスを選ぶか、電池切れは嫌だしキビキビ動かないのも嫌だからもう諦めて有線マウスを選ぶか。なんだか2択しかない現状のような気もします。

拡張ボタンにも難あり。 :

親指側に拡張ボタンが2つついているのだけど。2つとも隙間なく配置されている上にボタン形状もほぼ同じなので、指先だけではどちらのボタンなのか判別しにくい。隙間をもう少し開けるか、どちらかにポッチ?をつけるなりしてあれば、違ったのではないかと思うのだけど。

マウスの土台部分にもボタンがあるのだけど、これも、どこを押せば働くのかがよくわからず。一応申し開き程度に印刷で印はついているけど、一々マウスを目視して使う人は居ないわけで。ここもやはり、小さなポッチでもついていれば違っただろうにと思える。

マウスもそうだしリモコンもそうだけど、基本的に目で見ながら使うものではない・指先で探り当てながら使うものだ、という意識が設計段階で欠けてしまうことがあるのかな、と想像したりもする。でもそのあたりは、チェックリストを作れば回避できそうな気もするんだけどなあ…。「画面を見たまま本体を触って、どこにどのボタンがあるか瞬時に把握できるか?」みたいなチェック項目でもあれば…。

その点、先日購入した A4tech X-718BK-JP は良く出来ている。ホイール横のオレンジのボタンも、親指側の拡張ボタンも、ブツブツポッチがついているので、指先で触れただけでどのボタンか判別できる。拡張ボタンのデザイン・成形はこうあるべきだと思います。

2009/04/16(木) [n年前の日記]

#1 [pc] マウスとUSBメモリをAmazonで注文した

ブート可能なUSBメモリが欲しいのだけど、昔のUSBメモリはともかく、今のUSBメモリはそのあたりの情報がほとんどなくて。一応、USBメモリからknoppixをブートさせる的な記事に載っていた製品を注文してはみたけれど。本当に大丈夫かな。

PCのセットアップ時その他に使うUSB接続のマウスが欲しいなと。できればワイヤレスのほうがありがたい。

#2 [pc] 旧メインPCの消費電力を測定

とりあえず、MM3500機のアイドル時37W、HDDアクセス時45W、というのを思い出しつつ測定。

旧メインPCは、AMD Sempron 3100+(1.8GHz) + GeForce 6200A + 3.5インチHDD x 1。アイドル時44W。HDDアクセスその他70Wだった。

意外と低いな…。GeForce 6200Aを外してオンボードVGAを使ったり、省電力HDDを載せたら、MM3500機と同程度にまで消費電力が少なくなるんじゃないのか、という不安(?)が。

ついでにPenIII 800MHz機も測定。 :

PenIII 800MHz + 3.5インチHDD x 2 + DVD±R/RWドライブ + ATI RAGE128 + サウンドカード + LANカード + USB2.0増設ボード、というめちゃくちゃ積んでる状態。アイドル時50W。HDDアクセスその他72W。

アレコレつけてるせいか、手元にあるPCの中では一番消費電力が高いけど。もしかすると省電力HDDを1台だけ載せて、光学ドライブを外して、USB増設ボードやサウンドカードまで外したら、MM3500機程度にはなってしまったりして…? MM3500の搭載CPU、VIA C7 1.5GHzは、おそらく性能的にPenIII 800MHzとそんなに変わらないのでは、という気もするし。実は PenIII機をサーバにするべく考えたほうが良かったのか…?

もっとも、積んでるメモリが512MBだったはずなので、MM3500機の2GBと比べ、キャッシュだかなんだかに使えるメモリ容量が少ない分、反応速度(?)は落ちるかもしれない、という気もする。いや、最初の一発目のファイルアクセスはアレだろうけど。…HDDのアクセス速度も違うから、そのへんでも差が出るだろうか。

昔のビデオカードの消費電力が知りたいのだけど。 :

手元には、ATI RAGE128(AGP)、Matrox G200(AGP)、ATI XPERT@PLAY(RAGE PRO、PCI)があるのだけど。どれが一番消費電力が少ないんだろう。検索してみても、このくらい昔のビデオカードは消費電力なんか全然気にしてない・言及してる人が誰も居ない・メーカも情報を載せてなくて。

まったく根拠のない単なる印象論では、発売時期が一番古くて、性能が一番低い、XPERT@PLAY あたりが、一番消費電力は少ないんじゃないか、という気もするけれど。でも、時代が進むにつれ、チップ製造時のプロセスだかそのへんが、と思ったりもするけどこの時期の製品はそのへんあまり関係ないかもしれないか。

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

#1 [anime] _「コードギアス 反逆のルルーシュR2」放送前の第3話がネット上に流出 - GIGAZINE

作品に登場するジャーナリストがやったんだというものまで様々な憶測が流れましたが、

「コードギアス 反逆のルルーシュR2」放送前の第3話がネット上に流出 - GIGAZINE より

笑った。なんだか夢がある話だなあ。そういうことにしてしまおう。無理か。

2007/04/16(月) [n年前の日記]

#1 [nitijyou] やっと日記をアップロード

まさか2週間もローカルに溜めてたとは思わなかった…。

#2 [nitijyou] kt関係は一段落

トップページに、BARの紹介ページへのリンクも置いたし。向こうからも「これでOK」的メールが届いたので一安心。

と思ったら、またチラシページが届いた。 :

どうしてこうも話が重なるときは重なるのか。来ないときは何も来ないのに。うーん。

電話でやり取り。 :

「ネットに繋がらなくなった」という質問電話が。Win2K はどこからネットワーク設定を設定できるんだったか…。とりあえず、ヒントになる単語をやり取りしてたら向こうで何かを弄って繋がるようになったらしい。

で、チラシページ作成が少し遅れそうと話をしたら、あちらでpdfにして渡してくれるとかで。であれば、助かるなぁ…。

#3 [iappli] なんとかゲーム部分のループは動いた、ような

しかしポンするはずのない奴がガンガンポンしてる状態…。ポンした後の牌も、どこから取ったかを示すための横向き表示がおかしくて。ソートするだけで表示位置が合うような情報の持ち方にしよう、などと考えてたけど。そのせいでなんだか面倒なことになってるような。いや、別の面倒を避けるための方針だったはずなんだけど。

流局するとアプリが落ちる。特にエラーメッセージも出さずに落ちるのはなんでだろう。…デバック用のフラグを無効にしてただけだったか。

fillArc で半透明の塗りつぶしができるのだな。 :

てっきり fillRect しかできないのかと思ってた。円状の画像をグレーアウトするのにどうしようかと思ってたけど何とかなりそう。というか、なんとかなった。いや、本来ならPalleteImage とやらを使うべきなのかもしれず。まだ勉強してないからそのへん判らんのです。ちょっと検索してみた感じではサンプルも無いみたいで。

2007/04/18追記。fillArcで半透明の塗りつぶしはできない。 :

DoJa4.0 では fillRectしかサポートしてないよ、とドキュメントに書いてあったのを発見。DoJa4.0のエミュレータで動かしたら半透明が効かなかったからおかしいなと思ったらそういうことだったか…。

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

#1 [flash] _お隣の韓国ってのはここら辺の思考が逆で「3Dやビデオを使わないのは恥、古いPlayerに対応で作るなんて時代遅れ」って風潮があるらしく

むしろ、ユーザー互換を配慮して古いバージョンでコンテンツを作ることが、新プレイヤーの普及を妨げているような気もする。

面白いのは、お隣の韓国ってのはここら辺の思考が逆で「3Dやビデオを使わないのは恥、古いPlayerに対応で作るなんて時代遅れ」って風潮があるらしく、企業のほうが率先して最新技術、リッチコンテンツを投入する。んで、ユーザーもそれを望んでるらしい。SAMSUNGのコンテンツなんてその典型。だから無駄にコッテコテのコンテンツも多くなるのだけど、それがあの国で急速にWEB系の技術力が高まってるバックボーンっぽい。

fladdict.net blog: Flashプラグインがない場合、どれだけのユーザーがアップデートするのか? より

なるほど…。ある種の「空気」が国内の技術力の伸びを抑えてしまう、ということであらうか。

#2 [cg_tools] _PingMag - 東京発 「デザイン&ものづくり」 マガジン > Archive > 10枚の「ゴッサム・シティ東京 」

露光を変えた複数の写真を合成して一枚の画像を作った例。 _HDR photo software & plugin - Tone Mapping, Exposure Blending & HDR Imaging for photography のページのソフトを使う、のかな。 _(via fladdict.net blog: 複数の写真を組み合わせてHDRな画像を作る)

#3 [web] 映像Wikipedia

_deblog - 権利者と侵害者の双方が幸せになれる、たった一つの冴えたやり方
で、アニメの海外版の場合。結局のところfansubの連中は日本から遅れるのが歯がゆいわけでしょ。だったら彼らに正式に字幕付けを委託しちゃえばいいやん。そうすれば1週間遅れ程度で公開可能だし、この際、放送前にソース渡しちゃって、日米同時公開にするんだよ。そうすればfansubも「だって見たいけど見れないんだもん」といういいわけができなくなるし、人より早くアニメが見れるとなれば、大喜びでタダでもやるんじゃない? で、そうやって安くあがった分、安く提供して欲しい。例えばネットで1話1,2ドル(レンタルと同じくらい)の値段で見れるようにする。100万人が見れば1ドルでも100万ドルでしょ? よくはわからんのだけど、悪くない数字じゃないの? Winnyの47氏が模索していたコンテンツ流通技術の開発が進めば、みんなが幸せになれるかもしれない。

deblog - 権利者と侵害者の双方が幸せになれる、たった一つの冴えたやり方 より

コレ、できたら面白いだろうなぁ。映像に対するWeb2.0の応用、みたいな。

や。Web2.0って何なのか未だにわからないけど。>自分。

この記事へのツッコミ

Re: 映像Wikipedia by けいと    2006/04/19 00:42
> 100万人が見れば1ドルでも100万ドルでしょ?

どこかで
「深夜枠のアニメでも制作費は数千万」
「メジャーなアニメになると億単位」
とか聞いた事が…

それを回収するために
DVD売らんかな、関連グッズ売らんかな、
っていう話じゃなかったっけ?
それだと100万ドルでも元取れませんな。

深夜関東ローカルクラスのアニメDVD販売だと数千枚単位だとか。
所詮マニア向けなんだなぁ、と。
DVD売り上げ+100万ドル by がんした    2006/04/22 03:08
まぁ、著作権違反取締りのイタチゴッコを続けるよりも、薄利多売しちゃって新たなビジネスモデルを提唱してんだろうけど、、、無理だわな。

誰もが「携帯の有料着メロ販売」みたく新たなビジネスモデルを模索してるが、
なかなか2匹目のドジョウは見つかりません。
Re: DVD売り上げ+100万ドル by けいと    2006/04/22 13:02
> 携帯の有料着メロ販売

あれはどちらかというと
「着メロ」に価値があるんじゃなくて
「携帯以外からアクセスできない」
 ↓
「利用者がはっきり特定できる」
「課金漏れがない」
「不正利用がない」
っていうところに価値があるんだと思います。

家庭用の据え置き機でも、
管理ががっちりできている装置なりネットワークができれば
同じビジネスモデルでいろいろな事はできそうな気が。

個人的にはつべこべ言わずに
「国民総背番号制」みたいな仕掛けを国がつけて
それをキーにサービスする仕掛けを民間開放したほうが
いいと思ったりします。
まぁ、似たような形は韓国がすでにやってたりしますが…

私が考えるのは、住基カードみたいに希望者だけ受け付ける制度にして
この番号でネット上の各種サービスを受けたり
あわよくばメールの送信認証のキーとして必須事項にするとか。

まぁ、国外に逃げちゃえば関係ない、とは思いますが、
これをキーに何かのフラグを立てて、
このフラグがないやつは全部受信拒否、とかもできるわけですし、
最近まで話題になっていた「メール問題」もおきにくい、と。

この番号も漏れたり闇で売買されるんだろうから
1年更新とか3年更新ぐらいにしたほうがいいとは思うんですけどね。
Re: DVD売り上げ+100万ドル by がんした    2006/04/23 00:09
>家庭用の据え置き機でも、
>管理ががっちりできている装置なりネットワークができれば
>同じビジネスモデルでいろいろな事はできそうな気が。

普及の鍵は、既存システムより安価で便利な事。
つまり、近所のレンタルビデオ屋会員よりもサービスが良い事が絶対条件。


>「国民総背番号制」みたいな仕掛けを国がつけて
>それをキーにサービスする仕掛けを民間開放したほうが
>いいと思ったりします。

土俵がネットワールドだけに、国民つーか60億人類に「総グローバルアドレス化」するしかねーな。
Re: DVD売り上げ+100万ドル by けいと    2006/04/27 00:01
> 近所のレンタルビデオ屋会員よりもサービスが良い事

世の中のインフラがADSLからFTTHメインになったあたりで
この辺↓
http://www.geo-ch.tv/index.html
は結構いけるようになるんじゃないかと思ってたりします。

これに携帯電話みたいな課金の仕組みが備われば良いかな、と。

コンテンツホルダー側からすると「コピーされる」って
目くじら立てるでしょうし、
レンタル利用者は「コピーできるから」っていう理由の人も
結構多いと思うし、
この辺のバランス感覚がうまかったのがiTMSっていうことだと思います。

#4 [pc] _So-net blog:ある nakagami の日記:不良社員

_SEって、仕事中にボケーっとサボってること多いよね?/Tech総研

ひどいや。 _(via del.icio.us/otsune)

#5 [zatta] _Incredible Machines - Google Video - 「ピタゴラスイッチ」で流れてるアレ

_「ピタゴラスイッチ」
_ピタゴラスイッチ - Wikipedia

素晴らしい。以前、BGVとしてTVをつけてた際、この番組を目にしてビックリしたのだけど。集めた映像として流れると壮観。素晴らしい。 _(via del.icio.us/otsune) _(via KANOU.JP: ずっと見てても飽きないIncredible Machines)

_NHK教育テレビ新番組「ピタゴラスイッチ」に佐藤研が :

9日(火)、佐藤雅彦研究室が企画と制作に関わっている、NHK教育テレビ番組「ピタゴラスイッチ」が、放送開始された。4〜6歳児を対象にした「考え方」を育てる番組で、放送時間は火曜朝9:15〜9:30、水曜10:30〜10:45(再放送)。月曜16:55〜17:00には「ミニ」という番組でダイジェスト版が放送される。番組では「“子どもにとっての「なるほど!」”を取り上げていきます。番組を見ることで頭のスイッチが入り、考え方についての考えが育つことをねらいとしています」(佐藤雅彦オフィシャルHPより)。

SFC CLIP ** MAIL MAGAZINE FOR SFC 2002 ** より

_はてな - 佐藤雅彦とは :

CMプランナーとして、数々のヒットCMを制作。現在は、SFCで佐藤雅彦研究室を主宰して教鞭を執るほか、NHK教育のテレビ番組「ピタゴラスイッチ」も手がけている。

はてな - 佐藤雅彦とは より

# I.Q.(ゲーム、ASIN:B00005OV6H※←I.Q.FINAL)
# Kino(映画、ASIN:B00005G6C6)
# だんご3兄弟(ASIN:B00000JD0Z)
# だんご3兄弟あっという間劇場(DVD:ASIN:B00008BDJ3)
# 日本のスイッチ(iモード/毎日新聞)
# うごく−ID(iモード)
# テトペッテンソン(みんなのうた、ASIN:B00009NK5X)

はてな - 佐藤雅彦とは より


_佐藤雅彦 (メディアクリエーター) - Wikipedia

_はてな - ルーブ・ゴールドバーグとは :

彼が漫画で描いた、「単純な作業を無駄に複雑に実現する装置」は、「ルーブ・ゴールドバーグマシン」と呼ばれるようになった。

はてな - ルーブ・ゴールドバーグとは より

_(via ピタゴラスイッチの「ピタゴラ装置」が海外の動画サイトで大人気! :にゅーあきばどっとこむ)
_はてな - ピタゴラ装置とは
NHK教育のテレビ番組「ピタゴラスイッチ」内で、軽快な音楽とともに、ビー玉やミニカーを使って、様々なしくみを働かせて、ピタゴラスイッチとかかれた旗を立てたり横断幕を降ろしたりするコーナー。およびその装置。

ルーブ・ゴールドバーグマシンの影響を受けていると思われる。

佐藤雅彦with慶應義塾大学佐藤雅彦研究室が手掛ける。

はてな - ピタゴラ装置とは より

ピタゴラ装置という呼称なのか。

ところでコレってDVDとして売ってたりするんだろうか。 :

環境ビデオとかそういうのに使えそうな。無理かな。

#6 [zatta] _弁償するとき目が光る : 批判するのは簡単、だけど誉めるのは難しいという謎の決めつけ

「誉めるのは簡単」と断言してる人が熱を入れて件の文を批判してるあたり、「批判するのは〜」の実証例になってるあたりが面白い。…元の文は「技あり」だろうなぁ。内容について真偽を論じようとすると肯定する以外に道がない。上手い一文を思いついたもんだなと。 _(via del.icio.us/otsune)

#7 [web] _SSMGの人の日記 - 最終行で自己否定メソッド

_naoyaグループ - naoyaの日記 - 最終行で自己否定メソッド

実は結構本気で熱い主張を繰り広げておきながら最後の最後で自分の主張内容に一抹の不安を感じて『などとバカ妄想』と書かずにいられない、みたいな話だろうかと勘違いして一瞬ヒヤヒヤドキンチョのモグタンでした。

#8 [web] _Firefox Flicks: Wheee! - Firefox の宣伝ムービー

QuickTime Plugin が必要。

あまりにくだらなくて笑ってしまった。…仙台で見たX68Kのプログラムコンテストとやらで「ルパン三世68K」を見たときの感覚を思い出したり。…ちょっと違う気もするけど。 _(via GIGAZINE - Firefoxを宣伝する30秒のCM)

#9 [zatta] _寝袋問題

時々思うんだけど。自分達の親の世代って、会社で寝袋を使わざるをえないぐらいに働いていたんだろうか。とかそんなことをぼんやりと。

プロジェクトXなんかでは、会社への泊り込みエピソードも結構描かれてたような記憶もあるな。昔からやってたことなんだろうか。

#10 [anime] _「ゲド戦記」監督日誌 - 第六十八回 「たいしたオヤジ」秘話

たとえば、私が戦艦のプラモデルを欲しがったとします。しかし、当時父は無名のアニメーターで、小遣いなんてほとんどくれません。それに不平を言うと、彼は、自分は子どもの頃、木を削っていかにおもしろく遊んだのか、ってことを実際にやってみせるわけです。そして、やってる途中から自分が夢中になってしまって、こちらにはやらせてくれない。

「ゲド戦記」監督日誌 - 第六十八回 「たいしたオヤジ」秘話 より

ある時、弟が「怪獣カードがほしい」と言い出しました。すると父は、「しょうがないなぁ」と、手近にあった紙に怪獣の絵を描きはじめたのですが、

「ゲド戦記」監督日誌 - 第六十八回 「たいしたオヤジ」秘話 より

何かを作り出す人間ってのはアクションが違うなと思ったり。

にしても。会社で寝袋に入ってたら、木を削ることも怪獣の絵を描くこともできないはずで。しかし、宮崎駿監督がスタジオに泊り込んでるエピソードをどこかで目にした記憶もあり。…どういう時間の使い方をしてたんだろう。

#11 [anime][digital] _ex - 謎のエラーコード「D-LD」 - 東芝製HDDレコーダの奇妙な表示とサポートの電話対応

相変わらず東芝のサポートはダメダメらしい。まあ、ヤクザが出てこないだけマシなのか。ってどんな会社やねん。

東芝のサイトに、開発者や濃いユーザが閲覧・書き込みできるWikiでも立ち上げて、そっちでサポートしたほうがええのでは。FAQ情報もどんどん溜まるだろうし。てなことを妄想。

#12 [anime] _Yahoo!ニュース - 河北新報 - 新作ウルトラマン、地元番組に屈す 福島・青森など

8日にテレビ放送が始まったウルトラマンシリーズ最新作「ウルトラマンメビウス」(TBS系)が、福島、青森両県などで放送されない事態になっている。誕生40周年を迎えた同シリーズで放送しない系列局が出たのは初めて。ウルトラマンの生みの親、円谷英二監督(1901―70年)の出身地福島県では放送見合わせを残念がる声が上がっている。

Yahoo!ニュース - 河北新報 - 新作ウルトラマン、地元番組に屈す 福島・青森など より

制作局の中部日本放送(CBC)によると、ウルトラマンシリーズの放送時間帯は第1作「ウルトラQ」から、前作「ウルトラマンマックス」まで、すべての系列局が放送するネット枠の扱いだったが、メビウスでは初めて各局に対応を委ねるローカル枠に移行した。このためTBS系列28局のうち、放送時間の調整がつかなかったテレビユー福島や青森テレビなど11局が放送を見合わせているという。

Yahoo!ニュース - 河北新報 - 新作ウルトラマン、地元番組に屈す 福島・青森など より

ウルトラマンメビウスは、福島県で放映されないのでありました。円谷英二監督の生誕の地で流れないってのは、なんと申しますか…。

これはアレだな。若かりし円谷英二氏が帰省した折、親戚一同が、「ろくでもない仕事につきやがって」「この恥さらしが」と氏を罵ったことの天罰、だったりして。 *1 あるいは、ゴジラの卵にどこぞのDQNが火をつけて台無しにしてしまったことへの天罰、とか。
*1: 当時は映画産業に従事する人間を不当に低く見るような風潮があったらしい。

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

#1 [anime] ネクサス、新ヒーロー2話目

科特隊員達とのやりとりがいいなぁ。先代(?)とは、こんな明るいやりとり、無かったんだろうな。

それでいて、新ヒーローにアレな過去が。そういう設定、個人的に好き。まあ、EVAというか、Vガンダムというか、Zガンダムなんだけど。

次回予告の映像で、CGウルトラマンが疾走してた。期待大。…どこまで板野氏が関わってるのか判らんけど、板野氏抜きであそこまでやれてるのだとしたら、スタッフが結構育ったと言えそうな気も。

#2 [anime] ジャスティライザー、クッキーの回

どうしたんだ! 急に! ラブラブ光線出しまくってるし、画面はフィルタ? 照明? かけまくりだし、漫画的エフェクト満載だし、敵の怪人は何故かゴミ箱になってるし、カメラはコップの中にあるし…そんなノリで丸々全編作っちゃうし。それでいて、テッカマンみたいな新ヒーローまで登場。うーむ。なんだか東映戦隊モノの不条理路線を見てるみたいな…。や。こういうのも好きですが。子供が笑って、楽しんでみてくれてたら、それこそが正解だろうと思うので。

気になってスタッフ名を見てみたら…。監督:鹿島勤。脚本:浦沢義雄。…浦沢義雄!? うわー! 道理で(笑) こりゃまた強力な脚本家を連れてきたもんだなぁ。今後も書いてもらえるのかしら。だとしたら嬉しいのだけど。…鹿島監督ってこういう路線も得意だったのかしら。知らなかった。印象が変わったです。

#3 [anime] SEED、敵娘拉致の回

やっぱり、フォウ・ムラサメなのかしら。

#4 [movie] 『CASSHERN』を見た

ずーっと気になってたんだけど、ようやく見れた。 *1

あちこちで叩かれてるさまを見て、正直、「樋口コンテ部分だけ楽しめれば御の字かな」と思ってたけど。…とんでもない。予想外。全編通して面白かった。自分の中では下手すると、感動の域にすら入ってしまったかも。こういう映画…映画じゃないか。映像だな。こういう映像は大好き。自分の望む映像・見てみたかった映像が、全部詰まってるような錯覚を覚えたぐらい。

まあ、自分は、全く映画を見ない人なんで。あてにならんですが。また、ゲーム画面とかCG作品も、最近はほとんど目にしてないので、そのへん詳しい人には首を傾げられるかもしれんけど。要するに、お腹すいてると何でも美味しく感じるわけですよ(爆) 「いいもん食ってねー」と馬鹿にしてくれて結構。色々と貧しい人間なのです。

それと、あちこちで大まかなお話・映画の方向性を見聞きしてたのが良かったのかも。世間で文句言ってる人って、「アニメ版のリメイク」「ヒーローモノ」「スカッとする娯楽作品」という前提を持って鑑賞してたっぽいし。そういう思い込みを持って鑑賞すると、たしかに怒ってしまう内容ですな。全然中身が違うもの。

話? んなのどうでもいいです。何せ自分、りんたろう監督の劇場作品を何本も目にして楽しんできたアニオタであり、金田パースを目にしただけでドキがムネムネしちゃうアニオタですので。話が面白くなきゃ楽しめないなんてくだらんことは言わないのだ。コーラにはコーラの、野菜ジュースには野菜ジュースの、緑茶には緑茶の味わい方というものがあるのです。コーラを口にして「これ、野菜ジュースじゃねえ!」なんて無粋なことは言わん。…ていうかやっぱりそのへん事前情報を入手できてたおかげだろうな。レビュー記事を書いてくれた方々に感謝なのです。

結構ベタ褒めだけど。コレを作るというニュースを聞いたときは、「絶対無理」「絶対失敗する」「できるわけねえ」と思ってたので、評価が甘いかもなぁ。「絶対無理」と思ってた自分が恥ずかしいし、情けないし、先見の明がなかった、などとどこか負い目を感じてたり。…スマン、キリキリ。君は本気だったんだな。しかも本当に作りやがった。本当に花火を打ち上げやがった。よくぞここまで。脱帽。キリキリ&スタッフは偉い。貴方達の本気汁(?)、堪能させていただきました。ありがとう。パーッと散って後には残らないかもしれんが、綺麗な花火を見せてもらいましたよ。ええもん見せてもらった。

しかし、コレが邦画のワースト3入りとはなぁ…。自分の中では下手するとベスト3に入りそうなのに。…感覚が完全にズレてるのだろうな。道理で、自分が気に入った作品は興行的にはダメダメになるはずで。まるで貧乏神。…そういや誰かが、「究極の和製カルトムービー」と称してたっけ。なるほど。そういう映画なのかもしれん。

とりあえず。自分はこの映画が気に入ってしまったです。

まあ、叩いてる人が多いから反対側に寄ってるところもあるのかも(爆) 恋愛は周囲から反対されるほど燃え上がる、とか、私だけはこの人のいいところを知ってるのよ、みたいな。

以下、細かい部分に対する感想。

映像表現の感想 :

誰かが、「押井守がおっかなびっくり越えようとしていたアニメと実写の境界を、何も考えずに躊躇せず軽々と飛び越えてしまってる」といった感じの評をしていた記憶があるけれど。まさしくそんな感じ。やっぱり、アニメばかり見て育った世代は、旧世代と感覚が違うのかしら。

フィルタだかノイズだかエフェクトだかが多くて目がチカチカするのが嫌、との評もあったけど。自分は逆に、ああいう映像は大好きで。まあ、色キチガイだしエフェクトキチガイだしポケモンショック的手法が大好きなので。エフェクト見てるだけで幸せ。殴った瞬間のレントゲンとか、剣を振ってるときのオバケとか、もう失禁しそう。<お手軽なヤツ。でもまあ、心穏やかに見れる映像でないことはたしかで、御老人にはオススメできないだろうなと。

やはり何よりバトルシーン最高。キャシャーン登場直前や、敵ロボット兵をなぎ倒すあたりのシークエンスはあまりの勢いに笑ってしまった。カッコ良さとバカバカしさの境界で微妙なバランスを取ってるあの感じが樋口コンテの魅力かしらん。それでいて、アニメ版キャシャーンの圧倒的な強さをしっかり再現してるようにも見えて、鑑賞中はニヤニヤしっぱなしでした。…自分が笑ったシーンが、本当に樋口コンテなのかは知らないけど。<オイ。

にしても、どうやって作ったのですか。こんな映像。素人の自分にはさっぱり想像できなかったり。自分達で自作PC組んでやってたとは聞いたけど、ネットワーク構築して分散レンダリングとかもやってたりしたのかしら。出来た画像を収納するサーバの容量はどのくらい確保したのか、とか。バックアップはどの程度の間隔で取ってたのか、とか。そういうところを想像するとクラクラするです。素人だから。

役者の演技について :

さすが、財前教授。それと宮迫氏。後者は結構意外だった。たしかに、宮迫完璧。

どこかで、「ここまでCGを使うなら、キャラも全部CGにすりゃ良かったのに」という意見を見かけたけど。それをやったらアレな映画になってたかもと思ったり。やっぱり、役者の演技 or 存在感で救われてるところ、あるよなぁ…。

役者の演技とは違う話だろうけど。台詞は聞き取りづらかった。ヘッドフォンで聞いてても聞き取れないところがチラホラ。紀里谷監督の次回作があるなら、そこらへんは改善必須かと。

話・展開の感想 :

話が判りづらいとの評をどこかで見かけた記憶もあるんだけど。むしろ判りやすいほうでは…。あちこちの人から文句がでるくらい、一々御丁寧に台詞で説明してたし。…まあ、自分、アニメ版キャシャーンの大まかな話・設定は知ってるし、こんな感じのアニメ作品も好きなほうだし。条件が違うのかもしれんけど。

稲妻や城は、自分も「???」だったり。でもまあ、別にそれが判らないと楽しめないわけじゃなし。どうせ制作側は設定を用意してるのだろうから、後で情報を集めて納得すりゃいいかと思って ―― まあ、『イデ』みたいなものなんだろうと思うことにして、あまり気にしなかった。話を進めるためのアイテムという認識でも実害(?)はないだろうし。にしても、アニメ版の設定(?)をあんな風に表現するとは思ってもみなかった。面白いこと考えるなぁ。あの放電?生命?エフェクトもグー。気に入った。あれだけで、設定なんかどうでもよくなってしまったり。<つくづくお手軽なヤツ。

心象風景やら、彼岸の世界やらを、現実世界と同時に描写するあたり、面白いなと。あのへん、脚本レベルで既にああなってたのだろうか。でないと作れないだろうし。

ちょっと気になるのは、脚本書いたのは誰なんだろうという点。攻殻SACの脚本をやってたという方々が実質書いてたのではないかと勝手に想像してるんだけど。実際はどういう内訳だったんだろう。

メッセージ性について :

たしかに、真っ当な戦争映画と比べたら薄いのかもしれない。でも、自分はこのくらいの濃度でいいです。これ以上濃くなったら自分のような甘ちゃんにはちとツライ。

いきなり語り出すあたりは…うーん。まあ、語り出すこと自体は、自分もそれほど好きではなかったりするんだけど。「ヤマト」「999」あたりに比べたら、それら「語り」が出てくるまでの過程を、比較的念入りに描いてるなと感じたので、許容範囲。…そもそもそういうところをあげつらって否定してしまうと、同時に、「ヤマト」「999」「1stガンダム」「イデオン」あたりも否定しなきゃいけないことになるわけで(爆) それら昔の作品を、今尚自分は好きだったりするので。まあ、別のところでお釣りが出るぐらい楽しめれば、瑣末なところは大目に見ようかなと。

時間に関して :

時間が長いとの評が気になってたけど。それほど長いとは感じなかった。各場面での人物の心情や、思想を持つまでの過程を描写するには、あの程度の時間は必要じゃないのかしら。もっとも、上映時間を伸ばさずにそのあたりを解決する手法があるなら、それを使ったほうがいいのだろうけど。自分はあまり映画を見ない人なんで、それら手法が思いつかなかったり。色んな映画を見てる人なら、「何故、あの手法を使わないのだ?」とイライラするのかしらん。

さておき。矛盾するけど、商品として見た場合、やはり2時間半近い長さはよろしくなさそうな気もする。「長い」「たるい」と文句言ってる人を、日本国内ですらちらほら見かけるのだから…仮に海外へ売り込むつもりがあるなら、ガンガン切って短くしないといかんのではなかろうか。そういやたしか、見せ場が出てくるまで何分等、ハリウッド映画はほとんどパターンが決まってるという話を聞いた記憶が。この作品は、それらのパターンから明らかに外れてるだろうな。

アニメ版との乖離具合について :

自分、アニメ版はうっすらとしか見てない人なんでアレだけど。たしかに、別物だろうなと思った。でも、「アニメ版キャシャーンが無かったら、この作品は、到底この世に生まれ出てこなかっただろう」とも感じたわけで。やはり根底には、アニメ版が持っていた方向性があるような、そんな印象。

新たに、こういった作品を生み出したいと思わせるだけの、ある種原初的なパワーというか…将来映像作家となる少年の魂を熱く突き動かし、誰もが無謀と思う企画を推し進めるその原動力となるエネルギーを作品中に内包していたという点で、やはりアニメ版は名作であったのだ、と確信したりもして。映画の内容云々ではなく、その外枠・経過 ―― この映画が作られたというその事実こそが、アニメ版の存在を、アニメ版が名作であったことを、何よりも強く肯定している、と思ったです。

見る前に予想してたことも一応メモ - 『CASSHERN』=『帰ってきたウルトラマン』? :

元々当初の企画段階では、アマチュア? 自主制作?映画として作る予定だったと、どこかで聞いた記憶も。であれば…。仮に『CASSHERN』を、紀里谷監督作品の中で ―― まだ見ぬ将来の作品も含めたうえで位置づけをするとしたら、「庵野監督が素顔で演じた『帰ってきたウルトラマン』あたりに相当する作品かしらん」と思ってたのですが。 *2 見終わって、その位置づけは、ちと違う感じがしたり。もう少し先まで行ってるかもしれんなぁ…。

『CASSHERN』=『オネアミスの翼』? :

「実績のない世代の劇場向け作品第1作目」「架空の世界そのものを作ろうとしてる」「映画という花火を打ち上げることに情熱を燃やしてる」という共通点から、『オネアミスの翼』も脳裏にあったのだけど。さて、『オネアミス』と比べると、どうなんだろう。『オネアミス』は、複数の若者達が力を合わせて、という過程だろうけど。『CASSHERN』は、一人の映像作家が音頭をとって、という過程だろうし。なんとなく、その違いが、作品内容にも反映されてるところがあるような感もあったりなかったり。

『CASSHERN』=『覚悟のススメ』? :

設定だけを見て、「『キャシャーン』と言いつつ、実は『覚悟のススメ』の実写化だったりしないか」と予想してたんだけど。あくまで設定が近いというだけで、やっぱりキャシャーン…でもないか。結構混ざってるような気も。もっとも、監督 or スタッフが、『覚悟のススメ』を見ていたかどうかは知らないんだけど。

『CASSHERN』=『ダーククリスタル』? :

以前、紀里谷監督のインタビュー記事の中で、ちと変わったコメント内容を聞いた記憶があったり。「紙芝居になってもいいから、やろうよ」「だって、こんな映画、今まで誰も作ってないんだもの」みたいな言葉を、怖気づくスタッフにかけていた、みたいな話なんだけど。

そのコメント・発想からして、異質な作品だろうなとは想像してたわけで。アニメならともかく、実写で、「紙芝居になっても〜」なんて発想はフツー出てこない。要するに、キリキリは頭がおかしい。…のではなく。前提条件がそもそも違う。これはおそらく、実写作品というカテゴリーに入る作品ではないのだろうと。例えば、人形アニメとか、立体アニメとか、CGアニメとか…そのへんに分類される作品というか。役者はあくまでアニメ映像を作るための素材でしかなくて。そこにあるものを撮ればそれで出来上がりではなく、そこから更に何かを加えないと画・商品にならない作品だろうと想像してた。仮に海外作品で喩えれば…うーん。思いつかない。…ちょっとズレるけど、ひょっとすると『ダーククリスタル』あたりの属性に近いのかしら、みたいなことを予想してたのだけど。

でも、実際に見てみたら、ちょっと予想は外れた。想像以上に役者の演技が前面に出てたので、やっぱりこれは実写作品かもと。逆に言うと、本来アニメになるはずの作品を、役者の熱演で実写の領域にまで運んでくれた、ということなのかもしれない。…キリキリは役者さんに感謝しないとダメよ。ってわざわざ言わなくても感謝してるとは思うけど。

つーかこの感想記事の長さが :

自分がどれだけこの作品を気に入ってしまったかの証明になってるような…。

しかし、悔しいなぁ。これがワースト3扱いか。制作者のスピリッツがビンビンに伝わってくる作品なのに。それが判ってもらえないのが、悔しい。…が、まあ、仕方ないか。作り手の熱情が観客に伝わることを、基本的には期待しちゃいけないってことなのかもなぁ…。

*1: 先日、レンタルビデオの会員になったのは、コレが見たかったが故で。
*2: いよいよというところで、白のジャージ姿に、ダンボールで角をつけただけの半ヘルを被った紀里谷監督が、颯爽と、「俺の名は、キャシャーン!」…みたいな。でも、億単位で予算が出ることになって「さすがにここで白ジャージで出たら関係者に殺されるカナ…」と怖気づいて真面目な内容にしてしまった、みたいな話があったら笑えるなとバカ妄想を。…コレ、誰かが書いてたネタだったかしら。かもしれん。

2004/04/16(金) [n年前の日記]

#1 [nitijyou] サイト更新作業に行ってきた

自転車で行ってきた。PM1:15〜PM5:15まで作業。

以前のpdfと、印刷所から送られてきたpdfを差し替え。一部リンクを修正・追加。

先日作成して場所を知らせたPOPについては、特に修正要求はなかった。アレでいいんだろうか。うーん。

サイトにチラシを追加してくれとの要求で、.doc→.html 化。ハマった。レイアウト崩れまくり。凝ったレイアウトのWord文書(.doc)は、html出力の際、レイアウトを再現・維持できないらしい<当たり前か。結局、FrontPageとやらで新規にhtmlを作成。画像・文章をコピペして解決。最初からコピペ多用で作り直したほうが早い。が、この作業を相手先させるのは負荷が高そう。まだ、 .doc → pdf 化でもしてサイトに置くほうが楽かも。…それにしてもFrontPageとやらは余計なタグを埋め込んでくれる嫌なツールだな。ツール→オプションで、CSSを無効にしたはずがしっかり書き込まれてるし。保存時のオプション設定周辺を弄る必要があったのかな。

今回は宿題がないので、新サーバ機候補へのOSインストールやらJava・FLASHの勉強やら某データのリドローやらに注力できるかなと期待。

#2 [nitijyou] 乙字ヶ滝まで足を伸ばした

帰り。せっかく自転車で走ってるのだし、ということで。阿武隈川沿いのサイクリングロード ―― 『みちのく自転車道』の実状を知るべく _乙字ヶ滝 まで足を伸ばした。 *1 *2

川東近辺の休憩所から乙字ヶ滝までは何の問題もなかった。岩がゴロゴロしてるプチ・ダイナミックな川の様子を眺めながら舗装された道路をスイスイ走れる。快適。休憩所も草むしりされたのかクリーンな感じ。

しかし、江持から件の休憩所までの道はマズい。
  1. 農道との交差箇所や、以前の舗装路面の残骸が多く、どれが本来のサイクリングロードなのか混乱する。
  2. 未舗装かつ距離の長目な砂利道が頻繁に出現するので、自転車のタイヤがパンクする確率が高い。
  3. 交通量の多い道路を、横断歩道も信号もないまま横切ることを強制される。リアル・フロッガー状態。何故橋の下をくぐらせないのだろう。郡山市側を自転車で走ったことないのかな?>担当者。
  4. 自転車道ながら無意味な坂があちこちに。もっとも整備が進めば全て繋がって坂では無くなる可能性もあるけど。
  5. こういった問題を放置したまま、何故か対岸を舗装してたりする。いきあたりばったり、その時のノリで舗装してるのだろうか。
整備された郡山市側とは雲泥の差。阿武隈川の名所らしい名所が存在していない郡山市側が整備をしてるのに、阿武隈川の名所の一つ、乙字ヶ滝までの道を管理してる須賀川市側の整備状況がこれでは。もったいない。

もっとも、手をつけるべき優先順位としてはかなり低い件だろうけど。自転車道を整備したところで周囲に金は落ちないし。須賀川市側は郡山市側に比べて川が蛇行してる部分が多く、洪水の度に堤防は決壊し自転車道は泥に埋まるし。色々と難しいところもあるんだろう。の割には対岸の舗装が判らん。金も時間も余裕であるってことだよな。ということは、担当者の頭の中身がないだけか。それとも対岸に自転車道を移すのだろうか。そのためには橋の整備が必須だけど。かえって大変じゃないのか。もっとも橋がきっちり整備されれば、自転車のみならず自動車・歩行者にとっても福音になるけど。

_県道372号線 須賀川二本松自転車道 :

写真をとってレポートしてる方が。トラップだらけなのによく迷わなかったなぁ。

*1: 完全ローカルな話題だなー。
*2: 何故、『みちのく自転車道』の実状が気になったかと言えば。お袋さんの同僚 ―― 最近転勤してきた自転車が趣味の人が、『みちのく自転車道』を郡山方面から走ったらしいのだけど。須賀川市内に入ったら、2箇所ほど道が途切れてて、どこに行けばいいのか判らず結局引き返したとのことで。自分も高校生の頃走ってたけど、当時はそこそこ繋がってたので、どこが切れてるのだろうと気になったり。

#3 [anime] 名探偵コナンの京都が舞台の映画を見た

バイクシーンが3DCG・セルシェーディングでちょっと驚いた。メカならともかく、キャラも3DCGとは。もっともポーズがそれほど変わらないからまだ使いやすいか。アップになると人の手による作画に切り替わるあたりにも感心。見せ方・使い方が上手いなぁ。今の技術レベルでも、シーンによっては、あるいは工夫次第で充分使えると。それにしても、浸透してきたなぁ>3DCG・セルシェーディング。もっともいつまでセル画タッチが存続できるのか疑問ではあるんだけど。

#4 [zatta] _火事で重体の漫画家・横山光輝さんが死亡

_『「鉄人28号」漫画家・横山光輝さん、自宅火災で重体』 の記事を読むと、
横山さんは、数年前から寝たきりの状態で、ベッドの周辺にはたばこの吸い殻が落ちていたという。
と書いてあった。仮に、煙草の火の不始末による出火だとしたら。漫画を描くために求められる想像力の豊かさと、生きるために必要な想像力の豊かさは、案外一致しない事を示す例かもしれないと思った。寝たきり状態で、せめて煙草ぐらいは吸いたかったのだろうけど、万が一火のついた煙草が落ちたらどうなるか等、横山先生は想像しなかったのだろうか。あれほど想像力を人々に見せてきた方なのに。…もしかするとそのあたり覚悟の上だったのか。火事になって焼け死んだとしても構わない、それでも煙草が吸いたいと。だとすれば、これは当人の望んだ結末、先生のプロットどおりの展開なのだろう。しかし、場合によっては他者を道連れにする可能性が高い危険な行為。自分、火のついた煙草の取扱いに無頓着な喫煙者達を結構憎悪してたりするので、先生が1人で逝ってくれてよかった、ある意味ではラッキーかも、という気持ちもどこかにあったりする。不謹慎・冷酷な感想だとは思いつつ。 *1

寝たきりの人の喫煙問題は現在どうなっているのだろう。寝たきりでも安全に喫煙可能な装置、寝たきりでも瞬時に消火が可能な装置等は存在していないのだろうか。…期待できるはずもないか。少し検索したけど、喫煙=寝たきり状態を促進させる云々の情報しか出てこなかった。どうやって吸うか、あるいは周囲が当人に吸わせてあげるかの情報はナサゲ。世間では、寝たきりの人は煙草なんて吸わないことになってるのだろう。たぶん。 _(via クロノス・クラウン)
*1: 実は巻き込まれた人が居て、しかし報道されてなかったとしたら嫌だな。

#5 [seiji] イラクで解放された3人はイラクに残ったほうが良さそうな気がしないでもない

日本に戻ってきてサンドバックにされるのと、イラク人から「イラクのために働いてくれる日本人」として扱われるのと、どっちが彼等にとって幸せなのか、あるいは日本にとって得なのか。進むも地獄。退くも地獄。なら、どちらがまだマシか。

それはそうと。「二度とこんな事件が起きないように彼等をビシバシ叩く」という意見を目にした。叩く事で問題が解決すると思ってる人達も、拘束された3人とはまた違ったところで考えが甘いんじゃないか。

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

#1 [pc] サーバの時間が変

自宅サーバ上で、昨日、つまり4/15に作ったファイルのタイムスタンプが4/16になってた。何故。タイマーが一日ずれてたのだろうか。すると自宅サーバ機上で動いていた各種プログラムは未来の日付で動いていた可能性が。それともkernelを入替えた事による弊害だろうか。謎。

勘違いだった :

タイムスタンプが4/16と思っていたが、よく見てみたら1/16に作成したファイルで、つまりはただの勘違い。トホホ。でもかなり焦った。勘違いで良かった。

日付表示 :

ていうかなんでVineLinuxのls表示はタイムスタンプの月の部分がJanとかAprなのだろう。数字で表示してほしい。オプションで数字表示にできないのかな。ていうかそもそもこの歳になっても未だに月の英単語すらちゃんと覚えていない自分に根本的な原因が。 *1

*1: 実を言うと曜日の英単語もわからない。

#2 [hns] URL

_こちらの方のページ を参考にして、hnsに/diary/yyyy/mm/dd.htmlの形でアクセスできるようにしてみようと試みるも「/diary/index.cgi not found」と言われて404。index.cgiと出てきてるということは一応は変換されていると言う事だろうか。mod_rewriteについて勉強しないとダメだ。

LAN内からのアクセス :

そういえば、自宅サーバへの外部からのurl(http://blawat2015.no-ip.com/)をそのままにして、LAN内のPCから自宅サーバ(http://192.168.1.x/)にアクセス・閲覧する方法はなのだろうか。仕方なく、hnsの各所、$HNS::System::MyDiaryURI を './' に書き換え、相対アドレス指定で誤魔化してるけど、apache、あるいはlinuxの設定でなんとかなりそうな気もする。が、どこから調べていけばいいのかそれすらわからず。もしかするとmod_rewrite設定が思ったように動いてくれないのはそのへんも関係しているのだろうか。

変換はされてるが :

apacheのerror_logを見たら、変換されるURLがどれもhttp.confのDocumnetRoot指定ディレクトリ下のURLに変換されているらしく。 /home/username/public_html/diary/index.cgi となってほしいのに、 /home/httpd/html/diary/index.cgi になってる。.htaccessの記述に問題があるのか、あるいはhttp.confの設定に問題があるのか。

#3 [pc] TRON

Project-XでTRONの回を見た。学生の頃にPC雑誌でよく目にしてたので懐かしいなと。しかし成功事例ではなく失敗事例を持ってくるとは随分変わった回だなと思ったり。もちろん組込分野(ITRON?)で大成功してるのは知ってるけどBTRONはメタメタだもの。成功と言えるかは微妙だと思う。ただし、あくまで現状では、とも。現在進行形・成長・発展中のプロジェクトだから将来どうなるか予想がつかない。少なくとも _シグマ とは違うし。 *1 にしてもこれだけ夢に溢れたプロジェクトを当時から打ち出していた坂村先生はやはり尊敬に値する人物かと。
*1: 比較する事自体とんでもなく失礼か。

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

#1 喫煙マナー

自分は喫煙者ですが、 _歩きタバコ禁止法案 には賛成。 _(以下略)

#2 [seiji] 喫煙マナーとフィクション

自分は喫煙者ですが、 _歩きタバコ禁止法案 には賛成。

喫煙者は大別して2種類に分けられるかと。
マナーを守り、他者に迷惑をかけない喫煙者。
マナーを守らず、他者に迷惑をかける喫煙者。
後者がいるから、喫煙者は総じて肩身の狭い思いをさせられる。
そもそも、他者に迷惑がかからないのであれば、大多数の人は、その行為をさほど気にしなくなると思うのです。

てことで。
「喫煙者だから責められる」のではなく、
「マナーを守らない喫煙者だから責められる」、
そんな風潮にならないかなと。思うのであります。



ドラゴンボールを読んだ人が、「人間も空を飛べるんだ!」とビルから飛び降りちゃったとして。
その場合、ドラゴンボールが問題なのではなく、空想と現実の分別をつけられないその人自身が問題だと思うのですが。

で、 _このニュース
世間の人は、「ドラゴンボールが問題」と言うのでしょうか。
言いそうですね。いやーん


女性の社会進出の真の敵は男性よりむしろ一部の女性達の意識だろうし、
喫煙者の真の敵は嫌煙者ではなくマナーを守らない喫煙者だし、
エロゲユーザの真の敵はどこぞの大臣というより犯罪起こすお仲間達だったりして、
敵は自分の中に居る、ってのはなんにでも当てはまるのかもしれず。

つか、お仲間と思われる事自体、とても心外。

2001/04/16(月) [n年前の日記]

#1 タイヤ交換

ようやくスタッドレスからノーマル(って呼び方でいいんでしょうか?)にタイヤ交換しました。
自分、腕力が無いんで、ボルトの締め具合が今一つ不安ですが。
一応親父さんにチェックはしてもらったから大丈夫だろう…たぶん。

お絵描き掲示板のcgi、ようやく出口が見えてきたような気がします。
あと数日中には再設置できそうな感じ。
でも見た目は全然変わってないという…なんだかなぁ。
どうせなら、レイヤーも使えるお絵描き掲示板とも合成してしまおうか。
でも時間かかりそうだし。やめとこ。

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

#1 (NoTitle) DLしたサウンドエデ...

DLしたサウンドエディタをいくつか試用してみたです。全部、Windows用。
ループサウンドの取り出し作業についてだけ、使いやすさを調べてみたです。

_SoundForgeXPのDEMO版(体験版)
CoolEdit2000の方が使いやすいかも。
範囲選択の開始位置や終了位置を、キーボードや数値で微調整できると良かったのですが。私にはマウスで大雑把に指定する方法しかわかりませんでした。実は仕様はあるのかな? どうなんだろ。
動画ファイルやACIDとの連携に関して、いくつか機能があるらしいので、そのへんを使いたい人にはいいのかもしれませんです。
一応、日本国内でパッケージ品(14000円前後)を購入できるというメリットもありますけど。ただし日本語対応したパッケージかどうかは不明です。見かけたHPでは、英語版、と表記してあるものばかりでした。
もしや、3DCGと同様、音声編集も、英語ダメダメへっぽこ人間は手を出しちゃいけない分野なのだろうか… (T_T)

_WaveEditorTWE
YAMAHAのHPでフリー配布されているツール。メニューは全部英語。
エフェクト関係の項目は少ない?
通常良くある「セレクト範囲」の他に「ループ範囲」といった概念(?)もあるので、ループサウンドを取り出すといった作業には、もしかしたら向いてるかもです。一応、数値入力で開始位置や終了位置の微調整もできるのでグー。
ボタンやキーボードでも位置調整をできれば良かったのですが、そういう仕様は無し。ちょっと残念。
あと、ループ再生中にリアルタイムに位置調整が反映されれば言うこと無しなんだけど。
まあフリー配布されてるものにそこまで望むのもアレですね。

_SoundEnigne
フリー。日本製。β版だそうです。
サウンド再生するとスペアナ(<正式名称忘れました)がリアルタイムにうねうね動く、という仕様があり、それは見ていて気持ち良いです。でもこれってメリットあるのかな。
ウインドウサイズが固定なのは良くないです。結果、妙に波形表示が小さくなってしまい、波形の確認も、範囲指定もやりづらい。
「範囲選択した部分のみ再生」といった仕様も無く。
再生すると、ファイルの頭から終わりまでをループ再生するのですが、必ず無音の部分が入って再生されるので、ループした音になってるかどうか確認できません。
どうやらエフェクト処理のほうに重きを置いているソフトらしいので、そちら方面で活用するのがいいのかな。

_波平
シェアウェア。日本製。
これでシェアウェアというのは納得いかないです。
まあ、開発時期が古いから仕方ないのでしょうけど。
つーか、作者のHP無くなってる。
どうも、既に捨てられたツールの模様。

_Gretchan!
日本製。本来シェアウェアですが、現在β版開発中とのことで、ほぼ試用制限無しで利用できます。
画面は綺麗。ループ再生ボタンもあり、そのへんはグー。
しかし、選択範囲の微調整はできず、他の一般的なソフト同様、マウスでの大雑把な指定しかできませんでした。しかもクリックすると、それまで指定していた選択範囲はリセットされてしまいます。
うーむ、使えない…

_波形くん1号
「DLLが無い」と怒ってしまい、起動してくれませんでした。
ランタイムを含むバージョンを、DLし直してみよう…


と、こんな感じでした。
なんだか、CoolEdit2000の英語レジスト説明と、真剣に格闘をしたほうが幸せになれそうな予感がする… (-_-;)
もしくはWaveEditorTWEで切り出して、エフェクトはSoundEngineでかけるとか、そういう使い方かな。ちょっと…いや、かなり面倒な作業になりそうだけど。でも、どうせ使う機会は少ないでしょうし。今のところ、FLASHでたまーにループサウンド使うぐらいですから。
…そもそも、そんなにFLASHデータ自体も作ってないしなぁ (´ー`;)

ループと言えば、MOD <そうか?
MODの場合はトラッカーで、波形表示をしながら、ループ位置を細かく設定出来るのです。そのへんはうらやましい。
FLASHでも、実はサウンドのループ位置指定は出来るのですが。
ただ、FLASHの場合、使ってない部分の波形データまで、真面目に.swfファイル(最終的に閲覧するデータ)に出力してしまうそうなのです。ですから、あらかじめ切り取っておくほうが容量削減には繋がるのですね。
FLASHの次のバージョンで、そのへん改善されると嬉しいんですが… (´ヘ`;)
その前に、容量を気にせずに済む程度に、各種回線が太くなってくれると嬉しいけど<無理かな

…待てよ。
FLASHのそういう仕様って、確かFLASH3の本の中で目にしたのでした。
もしかして4では改善されてる?
だとしたら、ここ数日の苦労は一体… (´Д`;)
…とりあえず、マニュアルを見なおしてみよう。改善済みだったら嬉しいな。

1999/04/16(金) [n年前の日記]

#1 (NoTitle)今日は朝から左官屋さ...

今日は朝から左官屋さんが家の2階の砂壁を塗り塗り。おちおち寝ていられないので茶の間のコタツに避難したらいつのまにか寝てしまいました。気がつけばPM3:00。トホ。
壁は…うーん、たしかに多少は綺麗にはなったけど想像していたほど効果的じゃなさそう。私が今いる部屋もやろうという話が親から出たけど、何とかゴネて回避しました。パソコンやら本棚やらを動かしただけのメリットが得られそうにないんで。

ICQの不具合を解消できるような情報はないかと、YAMAHAのルーター関連サイトを見て回ったのですが…どうもわからん。設定は書いてある通りにやったはず…となると、ICQ側の設定の問題だろうか。となると、英語と格闘だなコリャ。(>o<) ヒー

通販で注文していた ATI DVD Player が届きました。やったー、早速インストール…ってドライブ無いじゃん。(^_^;)> てなわけでドライブも通販で注文注文。FlipFlapでは「在庫無し」なドライブなんですが、別のお店のホムペで見つけたんで。さーて楽しみ楽しみ………アレ?何か忘れているような気がする… (・_・)??

妹に頼まれているCD-R焼きを今日もせっせとしていたのですが…時間かかるのぉ。メインマシンにCD-Rドライブを入れているため、焼いている間はメインマシンに触れないのが痛い。(インターネットはサブマシンでできるんですが。こういう時ルーターのありがたさが身に染みます。) うーん、CD焼きなんてサブマシンにさせたほうが効率いいよなぁ。でもそのためにはSCSI関連機器をまるまる移さなきゃならないし、そうするとLINUX関係の設定も…。さてはてどうしようかなぁ……なんて悩んだりするのもまた楽し。(なのか?)

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