mieki256's diary



2024/01/17(水) [n年前の日記]

#1 [prog] C/C++で設定ダイアログを表示してみたいその3

C/C++ と OpenGL を使ってWindows用のスクリーンセーバを作りたい。そのためには設定ダイアログを表示して、設定値の読み書きしないといけない。環境は Windows10 x64 22H2 + MnGW (gcc 6.3.0)。

_昨日の実験 では、リソースファイル(resource.rc)内のダイアログ設定部分に trackbar (トラックバー/スライダー/TRACKBAR_CLASS/"msctls_trackbar32") を記述しても、MinGW の windres 2.28 では syntax error になってしまってリソースをコンパイルすることができなかったので、諦めて EDITTEXT に置き換えて誤魔化していたけれど。

  CONTROL "Wait",   IDC_WAITVALUE, "msctls_trackbar32", TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP, 96,24,180,15
  CONTROL "Speed",  IDC_SPEED,     "msctls_trackbar32", TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP, 96,48,180,15
  CONTROL "Number", IDC_NUMBER,    "msctls_trackbar32", TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP, 96,72,180,15

↓

  EDITTEXT IDC_WAITVALUE, 96, 24, 100, 16, ES_AUTOHSCROLL
  EDITTEXT IDC_SPEED,     96, 48, 100, 16, ES_AUTOHSCROLL
  EDITTEXT IDC_NUMBER,    96, 72, 100, 16, ES_AUTOHSCROLL

その後色々試していたら、trackbar/sliderを記述してもエラーにならない書き方が分かった。

原因と対策 :

エラーの原因は、trackbar を記述する際、スタイルとして指定していた TBS_TOOLTIPS が未定義になっていたせいだった。

TBS_TOOLTIPS は commctrl.h の中で定義されているので、本来なら resource.rc の最初のほうで、「#include <commctrl.h>」 を書いておけばそれだけで TBS_TOOLTIPS も使えるようになるはずだけど。commctrl.h を眺めてみたところ、以下のような記述になっていた。
#if (_WIN32_IE >= 0x0300)
#define TBS_TOOLTIPS 0x0100
#define TBTS_TOP 0
#define TBTS_LEFT 1
#define TBTS_BOTTOM 2
#define TBTS_RIGHT 3
#endif

「_WIN32_IE」が 0x0300 以上の値になってないと、TBS_TOOLTIPS は未定義になってしまう…。

そんなわけで、resource.rc の最初のほうで、「_WIN32_IE」を勝手に定義して以下のように書いておけば、一応コンパイルできると分かった。「_WIN32_IE」って何なのか分かってないけど…。いや、名前からしてIE関係の何かなのだろうけど…。
/* trackbar enable */
/* trackbarを使うなら以下も記述しないと TBS_TOOLTIPS が未定義になり Syntax error が出る。 */
#define _WIN32_IE   0x0300
#include <commctrl.h>

#include <windows.h>

#include "resource.h"

// ...

ちなみに、何故かは分からんけど、windows.h を include する前に、commctrl.h を include しておかないといけない模様。順番が逆だと反映されなかった。

ソース :

そんなわけで、MinGW を使ってビルドする場合でも、trackbar を使った設定ダイアログの表示ができるようになった。サンプルソースは以下。

_resource.h
#ifndef RESOURCE_H_
#define RESOURCE_H_

#define IDC_MYICON                      2
#define IDD_DIALOGTEST01_DIALOG         102
#define IDR_MAINFRAME                   128
#define IDD_DIALOG1                     129
#define IDC_FPSDISPLAY                  2003
#define IDC_RESET                       2004
#define IDC_WAITVALUE                   2005
#define IDC_SPEED                       2006
#define IDC_NUMBER                      2007
#define IDC_STATUS1                     2008
#define IDC_STATIC                      -1

#endif

_resource.rc
/* resource */

/* trackbar enable */
/* trackbarを使うなら以下も記述しないと TBS_TOOLTIPS が未定義になり Syntax error が出る。 */
#define _WIN32_IE   0x0300
#include <commctrl.h>

#include <windows.h>

#include "resource.h"

#if 0
#define TBS_AUTOTICKS   1
#define TBS_TOOLTIPS 0x0100
#endif

/* Dialog */
IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 290, 120
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Setting"
 FONT 11, "Segoe UI"
BEGIN
  DEFPUSHBUTTON "OK",      IDOK,      172, 96, 50, 14
  PUSHBUTTON    "Cancel",  IDCANCEL,  228, 96, 50, 14
  CTEXT "ssstars GL setting", IDC_STATIC, 7, 7, 275, 8
  LTEXT "Wait (5 - 200 msec)", IDC_STATIC, 12, 24, 72, 8
  LTEXT "Speed (100 - 4000)", IDC_STATIC, 12, 48, 72, 8
  LTEXT "Number (10 - 4000)", IDC_STATIC, 12, 72, 72, 8
  AUTOCHECKBOX  "FPS display", IDC_FPSDISPLAY, 12, 96, 53, 10
  PUSHBUTTON    "Reset",   IDC_RESET, 76,  96, 50, 14
  CONTROL "", IDC_WAITVALUE, "msctls_trackbar32", TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP, 96, 24, 180, 15
  CONTROL "", IDC_SPEED,     "msctls_trackbar32", TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP, 96, 48, 180, 15
  CONTROL "", IDC_NUMBER,    "msctls_trackbar32", TBS_AUTOTICKS | TBS_TOOLTIPS | WS_TABSTOP, 96, 72, 180, 15
END

_02_dialogtest_tb.c
#include <tchar.h>
#include <wchar.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

// trackbar を使う時は commctrl.h の include が必要
// comctl32 もリンクする。(-lcomcil32)
#include <commctrl.h>

// リソースファイルを使う時は include する
#include "resource.h"

// メインウインドウ上に設置するボタンのID
#define IDC_BUTTON_OPENDLG 110

// global work グローバル変数
HINSTANCE hInst;

// static WCHAR txt[1024]; // message work
static char txt[1024]; // message work

// global paramater work
static int waitValue = 15;
static int speedValue = 1000;
static int numberValue = 1000;
static int fps_display = 1;

// ========================================
// prototype プロトタイプ宣言
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);

// ========================================
// entry point エントリーポイント。Win32 GUIアプリは最初にここが呼ばれる
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow)
{
  TCHAR szWindowClass[] = TEXT("DIALOGTEST01"); // main window class name メインウインドウクラス名
  TCHAR szTitle[] = TEXT("DialogTest01");       // title bar text タイトルバーに表示するテキスト
  WNDCLASSEX wc;
  MSG msg;

  // set window class properties (struct)
  // ウインドウクラス構造体の設定
  {
    wc.cbSize = sizeof(wc);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc; // ウインドウプロシージャを指定
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = szWindowClass;
    wc.hIcon = NULL; // 今回はアイコンを指定しない
    wc.hIconSm = NULL;
    // wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APP_ICON));
    // wc.hIconSm = LoadIcon(wc.hInstance, MAKEINTRESOURCE(IDI_SMALL));

    if (RegisterClassEx(&wc) == 0)
      return FALSE;
  }

  // create window ウインドウを作成
  {
    hInst = hInstance;

    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle, // タイトルバーのテキストを指定
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, // x, y
        512, 288,                     // width, height
        NULL, NULL, hInstance, NULL);

    if (hWnd == NULL)
      return FALSE;

    // display window ウインドウを表示
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
  }

  // main message loop メッセージループ
  {
    BOOL bRet;
    while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
    {
      if (bRet == -1)
      {
        break;
      }
      else
      {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
      }
    }
  }

  return (int)msg.wParam;
}

// ========================================
// main window procedure
// メインウインドウプロシージャ。メインウインドウ上で何かが起きるとここが呼ばれる
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  // static WCHAR txt[1024];

  switch (message)
  {
  case WM_CREATE:
    // create main window. initialize
    // メインウインドウ作成時にここに来る。初期化処理をする

    // create "Open Dialog" button ボタンを1つ設置する
    CreateWindow(
        "BUTTON", "Open Dialog", // クラス名、ボタン上に表示するテキスト
        WS_CHILD | WS_VISIBLE,   // スタイル
        20, 20, 100, 24,         // x, y, width, height
        hWnd,
        (HMENU)IDC_BUTTON_OPENDLG, // ボタンに紐づけるID
        hInst,
        NULL);
    break;

  case WM_COMMAND:
  {
    // application menu process

    int wmId = LOWORD(wParam);
    switch (wmId)
    {
    case IDC_BUTTON_OPENDLG:
    {
      // push "Open Dialog" button
      // "Open Dialog" ボタンが押されるとここに来る

      // Open dialog リソースファイル内で記述されてるダイアログを開く
      int ret;
      ret = DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc);

      // モーダルダイアログを開いているので、OK か Cancel が押されるまで処理は返ってこない

      // dialog results ダイアログが返してきた値で処理を分ける
      switch (ret)
      {
      case IDOK:
        // push "OK" button OKボタンが押された
        strcpy(txt, "IDOK");
        // wcscpy_s(txt, TEXT("IDOK"));
        break;

      case IDCANCEL:
        // push "Cancel" button Cancelボタンが押された
        strcpy(txt, "IDCANCEL");
        // wcscpy_s(txt, TEXT("IDCANCEL"));
        break;
      }
      InvalidateRect(hWnd, NULL, TRUE);
    }
    break;

    default:
      return DefWindowProc(hWnd, message, wParam, lParam);
    }
  }
  break;

  case WM_PAINT:
  {
    // draw main window メインウインドウ描画処理

    PAINTSTRUCT ps;
    HDC hdc = BeginPaint(hWnd, &ps);

    // draw message "IDOK" or "IDCANCEL" のメッセージを表示
    // TextOut(hdc, 20, 70, txt, lstrlen(txt));
    TextOut(hdc, 20, 70, txt, strlen(txt));

    // draw paramater value ダイアログ上で設定した値を表示
    {
      char s[256];

      sprintf(s, "wait=%d", waitValue);
      TextOut(hdc, 20, 90, s, strlen(s));

      sprintf(s, "speed=%d", speedValue);
      TextOut(hdc, 20, 110, s, strlen(s));

      sprintf(s, "number=%d", numberValue);
      TextOut(hdc, 20, 130, s, strlen(s));

      sprintf(s, "fps_display=%d", fps_display);
      TextOut(hdc, 20, 150, s, strlen(s));
    }

    EndPaint(hWnd, &ps);
  }
  break;

  case WM_DESTROY:
    // destroy window ウインドウ破棄時の処理
    PostQuitMessage(0);
    break;

  default:
    return DefWindowProc(hWnd, message, wParam, lParam);
  }
  return 0;
}

// set value to config dialog
// 設定ダイアログ上の各値を設定する
void SetvalueToDialog(HWND hDlg, int waitValue, int speedValue, int numberValue, int fps_display)
{
  // set trackbar ("msctls_trackbar32")
  // trackbarの範囲や値を設定
  {
    HWND cHwnd;

    cHwnd = GetDlgItem(hDlg, IDC_WAITVALUE);                    // get hundle
    SendMessage(cHwnd, TBM_SETRANGE, TRUE, MAKELPARAM(5, 200)); // set range
    SendMessage(cHwnd, TBM_SETTICFREQ, 5, 0);                   // set tick
    SendMessage(cHwnd, TBM_SETPOS, TRUE, (LPARAM)waitValue);    // set position

    cHwnd = GetDlgItem(hDlg, IDC_SPEED);
    SendMessage(cHwnd, TBM_SETRANGE, TRUE, MAKELPARAM(100, 4000));
    SendMessage(cHwnd, TBM_SETTICFREQ, 100, 0);
    SendMessage(cHwnd, TBM_SETPOS, TRUE, (LPARAM)speedValue);

    cHwnd = GetDlgItem(hDlg, IDC_NUMBER);
    SendMessage(cHwnd, TBM_SETRANGE, TRUE, MAKELPARAM(10, 4000));
    SendMessage(cHwnd, TBM_SETTICFREQ, 100, 0);
    SendMessage(cHwnd, TBM_SETPOS, TRUE, (LPARAM)numberValue);
  }

  // set checkbox
  // CHECKBOXの状態を初期化する
  // GetDlgItem() でコントロールのハンドルを取得できる
  // SendMessage() でコントロールの状態を変更できる
  // BM_SETCHECK で状態の変更を指示
  {
    HWND cHwnd;
    cHwnd = GetDlgItem(hDlg, IDC_FPSDISPLAY);
    SendMessage(cHwnd, BM_SETCHECK, ((fps_display == 0) ? BST_UNCHECKED : BST_CHECKED), 0);
  }
}

// get value from confgi dialog
// 設定ダイアログ上の各値を取得する
void GetValueFromDialog(HWND hDlg)
{
  // get trackbar value
  // trackbar の値を取得してグローバル変数に記録
  // GetDlgItemText() でEDITTEXTの内容(文字列)を取得
  waitValue = SendMessage(GetDlgItem(hDlg, IDC_WAITVALUE), TBM_GETPOS, 0, 0);
  speedValue = SendMessage(GetDlgItem(hDlg, IDC_SPEED), TBM_GETPOS, 0, 0);
  numberValue = SendMessage(GetDlgItem(hDlg, IDC_NUMBER), TBM_GETPOS, 0, 0);

  // get checkbox status
  // CHECKBOXの状態をグローバル変数に記録
  // IsDlgButtonChecked() で CHECKBOX の状態を取得できる
  fps_display = (IsDlgButtonChecked(hDlg, IDC_FPSDISPLAY) == BST_CHECKED) ? 1 : 0;
}

// ========================================
// dialog procedure
// ダイアログプロシージャ。ダイアログ上でボタン等が押された際に呼ばれる
INT_PTR CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message)
  {
  case WM_INITDIALOG:
  {
    // initialize dialog
    // ダイアログ初期化時の処理。GUI部品の状態を設定

    InitCommonControls(); // trackbarを使う時はどこかで一度呼んでおくらしい

    // 設定ダイアログ上の値を設定
    SetvalueToDialog(hDlg, waitValue, speedValue, numberValue, fps_display);
  }
    return TRUE;

  case WM_COMMAND:
    switch (LOWORD(wParam))
    {
    case IDOK:
      // push "OK" button "OK"ボタンが押されたらここに来る
      GetValueFromDialog(hDlg); // 設定ダイアログ上の値を取得してグローバル変数に記録
      EndDialog(hDlg, IDOK);    // ダイアログを終了
      return TRUE;

    case IDCANCEL:
      // push "Cancel" button
      EndDialog(hDlg, IDCANCEL); // ダイアログを終了
      return TRUE;

    case IDC_RESET:
    {
      // push "Reset" button "Reset"ボタンが押された

      // change status text
      // ダイアログ上のLABELのテキストを変更
      SetWindowText(GetDlgItem(hDlg, IDC_STATUS1), TEXT("Reset"));

      // ダイアログ上の値をデフォルト値に変更
      SetvalueToDialog(hDlg, 15, 1000, 1000, 1);
    }
      return TRUE;
    }
    break;
  }
  return FALSE;
}

_Makefile
PROGRAM=02_dialogtest_tb.exe

SRC=$(PROGRAM:.exe=.c)
OBJS=$(SRC:.c=.o) resource.o

.PHONY: all
all: $(PROGRAM)

$(PROGRAM): $(OBJS) Makefile
    gcc $(OBJS) -lcomctl32 -mwindows -o $@

%.o: %.c
    gcc -O3 -o $@ -c $<

resource.o: resource.rc Makefile
    windres $< -o $@

.PHONY: cleanall clean

cleanall: clean
    rm -f $(PROGRAM)

.PHONY: clean
clean:
    rm -f $(OBJS)

make と打てば 02_dialogtest_tb.exe をビルドできる。実行結果は以下。

#2 [prog] スライダー・トラックバーは単体のみで使い物になるのだろうか

スライダー/トラックバー(以下、スライダーと記述)をダイアログ上に表示する方法について、ここ数日色々調べていたけれど。はたしてスライダーだけあれば本当に便利になるのか? それは快適に使えるのか? 目的は果たせるのか? そんな疑問が湧いてしまった。

スライダーのメリットは何だろう? ざっくりとした数値指定ができることかなと…。バーをマウス操作で一気に動かせば、数値を大きく変化させることができる。また、指定可能な値の範囲のうち、今現在どのあたりの数値を指定しているのか、視覚的に分かりやすい。

ただ、数値を細かく変化させたい時は苦痛だろう…。マウスを小さく動かしたり、カーソルキーを何度か叩くことになる。そもそもスライダーの長さによっては、値を+1/-1することができないこともある。100ドットの幅しかないスライダーで、0 - 10000 の範囲を指定したら、バーを1ドット動かすだけで、数値が100ぐらい変わってしまう。

厳密な数値指定はできなくて、あくまでざっくりとした、大雑把な数値指定しかできない。そこがデメリットだろう…。

であれば、別途数値入力欄も用意しておいて、以下のような処理も書かないと、使い勝手が悪いのではないか…。
でも、そのあたりの処理を書くのは、なんだか面倒臭い。

もしかすると、無理矢理スライダーを使わずに、単に数値入力欄だけを用意しておいて、直接数値を打ち込んでもらったほうが間違いなく操作できるのではないか、という気もする…。

既存事例 :

既存のアプリでは、スライダーの扱いはどうなっているのか気になった。いくつか調べてみた。

ドットエディタ EDGE2 のカラーパレット周り。

trackbar_ss_edge2.png
  • スライダー相当の左に数値入力欄がある。
  • スライダーを動かすと、数値入力欄の表示も変わる。
  • 数値入力欄に値を打ち込むと、スライダーの状態も変化する。
  • スライダーの左右に小さなボタンがあって、このボタンをクリックすると-1/+1で数値を変化させられる。


G'MICという画像フィルタ集のUI。

trackbar_ss_gmic.png
  • スライダーの右側にスピンボックス(SpinBox、数値入力欄の右端に小さな2つのボタンがあって、値を+1/-1できる)がついている。
  • スライダーを動かすと、スピンボックスの表示も変わる。
  • スピンボックスに数値を入力すると、スライダーの状態も変わる。
  • スピンボックスの2つのボタンをクリックすると、数値を+1/-1できる。


GIMP 2.10.34 のUI。

trackbar_ss_gimp.png

スライダーに重ねる形で数値入力欄、+1/-1ができる小さな2つのボタンがついている。余談だけど、GIMP のこのUIは、数値部分を右クリックすると数値入力モードになる。


AzPainter2 のUI。

trackbar_ss_azpainter2.png

GIMPと似た感じで、スライダーに重ねる形で数値表示、+1/-1ができる小さな2つのボタンがついている。あるいは、スライダーの右にスピンボックスが並べてある。


恥ずかしながら今までこのあたり全然意識してなかったけど、どのアプリを眺めてみても、スライダーの横には数値入力欄、もしくは数値表示欄があって、かつ、値を+1/-1できるボタンがついてる場合が多い、と分かった。

つまり、スライダーだけあれば事足りる場面は、実はそんなにないのだろう…。ほとんどの場合、スライダーと一緒に以下のウィジェット(GUI部品、コントロール)も必要になってしまうのではないか。
  • スライダー + 数値入力欄 + +1/-1用の2つのボタン
  • または、スライダー + スピンボックス

最初から全部一緒になったウィジェットを用意しておいてくれれば楽なのではないかと思えてきた…。

2023/01/17(火) [n年前の日記]

#1 [pc][linux] Gateway M-2408jをメンテナンス

お袋さん用の旧ノートPC、FUJITSU LIFEBOOK AH33/J FMVA33JW1 に Ubuntu Linux 22.04 LTS をインストールして、ある程度は動くようになったので、ついでに茶の間で放置されていた Gateway M-2408j + Linux Mint 20.3 x86_64 のメンテナンスをしようと思い立った。

apt upgradeでエラー。 :

sudo apt update と sudo apt upgrade をしたら、途中で「大量のエラーが発生したため、処理が停止しました」と出てきた…。libglib2.0-0:i386 とやらがおかしなことになっているっぽい。

GUI でアップデート作業ができるアップデートマネージャを ―― おそらくは mintupdate を起動してみたところ、同様にエラーが出て処理が止まってしまった。直後、「パッケージの障害からの回復を試みます」と表示されて処理が進んでくれたように一瞬見えたけれど、やはり大量のエラーが表示されて止まってしまう。

ただ、「OSを再起動しろ」とメッセージが出ていたので、OS再起動とアップデートを繰り返していたら、そのうちアップデートが進むようになった。何故だろう…。まあ、アップデートできてるみたいだし、これでOKってことで…。

バッテリーがダメになってそう。 :

試しにバッテリーのみで起動してみたら、残り3%。慌ててACアダプタを繋いだところ、数分で99%まで増えた。おかしい。そんなに早く充電できるわけがない。これもバッテリーが死にかけているのではないだろうか。

少しググってみたけれど、やはりバッテリーの入手は絶望的。セルを交換する手もあるっぽいけど、数万円かかる模様。

ブランド名すら消滅した、古くてスペックが低いノートPCに、そんな出費はしたくない…。そもそも、バッテリーがここまでおかしくなってることに気づかないぐらい使ってなかったわけだし。

挙動がCPUスペックと釣り合わない。 :

Gateway M-2408j のCPUは AMD Athlon 64 X2 QL-60 (2C2T, 1.9GHz, L1 256KB, L2 512KB x 2, L3無し, TDP 35W)。

お袋さん用旧ノートPC FUJITSU LIFEBOOK AH33/J の Intel Celeron B820 (2C2T, 1.7GHz, L1 64KB x 2, L2 256KB x 2, L3 2MB, TDP 35W) のほうが、ベンチマーク上では1.5倍ほど速いはずなのだけど。

LIFEBOOK上で lightdm が起動するまで2分3秒かかるのに、M-2408j のほうは 1分16秒で lightdm が起動する。おかしい。どうして非力なCPUのほうが速く動くのか…。

M-2408j はメモリがデュアルチャネルだけど、LIFEBOOK はシングルチャネルだからだろうか。それとも、LIFEBOOK の HDD が遅いのだろうか…。でも、どっちも 5400rpm の HDD なんだけど…。おかしい。LIFEBOOK側は、一体何が足を引っ張っているのか。

LinuxMint 20.3 を 21 にアップグレード。 :

せっかくだから、LinuxMint 20.3 を 21.1 までアップグレードしてみた。

現状のバージョンで、sudo apt update と sudo apt upgrade をして、パッケージを全部更新してから、sudo apt install mintupgrade で mintupgrade をインストールして、sudo mintupgrade を実行。

Athlon64 X2 QL-60 + 2GB RAM + HDD で、3時間半ほどかかって LinuxMint 21 になった。その後、更に30分かけて 21.1 にアップグレード。

2022/01/17(月) [n年前の日記]

#1 [pc] チルトホイールって絶滅危惧種なんだろうか

左手でも操作できそうな、つまりはデザイン的にシンメトリーなワイヤレスマウスで、多ボタンのものが欲しくなってきた。「戻る」「進む」の拡張ボタン以外にも、更に2つほど拡張ボタンがついていると嬉しい。任意のキーを割り当てて、頻繁な操作に関しては、一々キーボードまで手を伸ばさなくてもマウスだけで操作したい。

価格comやAmazonで検索してみたのだけど、良さそうな製品が全く見当たらず。有線接続のマウスなら有りそうなのだけど、無線接続/ワイヤレスになると一気に選択肢が減ってしまう。何故だろう…。無線で多数の拡張ボタン情報を送るのは難しいのだろうか?

せめてチルトホイールがついていればなんとかなるかなと検索してみたけれど、妙なことに気が付いた。もしかして、今時のマウスって、チルトホイール機能付きの製品がほとんど存在していないのでは…? 昔に比べたらめちゃくちゃ少ないように見えるのだけど。チルトホイール付きマウスは…絶滅危惧種?

まあ、昔から、チルトホイール機能は叩かれていたわけだけど。 そういった問題があったから、やはり市場は「チルトホイールなんか要らねえ」な方向に流れていったということなのかなあ…。

それはそれで構わんけど、拡張ボタンが4つとか6つとかついてるワイヤレスマウスも販売してほしい…。いや、値段が高いマウスならあるっぽいけど、そういうのって右手用に特化したデザインだったりするから、ちょっと…。

昔は冒険心に溢れた(?)マウスをちょくちょく見かけた気がするのだけど、最近はどこのメーカーも似たような仕様の製品ばかりで…。いやまあ、購入する側の大半が冒険なんてしないから仕方ないんだろうけど…。

2021/01/17() [n年前の日記]

#1 [nitijyou] 電動自転車のバッテリーが届いたらしい

電動自転車のバッテリー、SANYO CY-EB60 (灰色ケース)の中身の交換を、親父さんが業者さんにお願いしてたのだけど、今日届いたらしい。早いな…。ついこないだ送ったばかりだった記憶が…。

日付をメモしておかないといかんなと…。どのくらいの期間で劣化するのか、ある程度は把握しておかないと。

#2 [anime] 「魔女っこ姉妹のヨヨとネネ」を視聴

BS12で放送されていたので視聴。初見。漫画を原作とするアニメ映画らしいけど、話や舞台設定はアニメオリジナルらしい。制作スタジオは、後に鬼滅の刃アニメ版を作ることになるufotable。2013年に公開された映画らしい。監督は、TVアニメ「GOD EATER」の平尾隆之監督。

フツーに面白いアニメだった。手描きアニメの動きの面白さが感じられるというか、元気一杯なドタバタぶりが感じられるというか。キャラデザ・総作監の柴田由香さんは、ガイナックスやトリガーでも活躍してた方なので、その関係もあるのかなと…。

子供さんに見せた時にどういう反応をするのか気になるアニメだなと…。とにかく見ていて楽しい感じだけど、途中で死や生が絡むシーンがあったりするので、情操教育的にはヨサゲなアニメだったりしないかなあ、とも。

2020/01/17(金) [n年前の日記]

#1 [cg_tools] LazPaintを試用

英語版 Wikipedia を眺めていたら、LazPaint なるペイントソフトがあると知り、試用してみたり。環境は Windows10 x64 1909。

_LazPaint download | SourceForge.net
_LazPaint - Wikipedia
_Comparison of raster graphics editors - Wikipedia

Windows、Linux、Mac版があるらしい。

今回は lazpaint7.0.7_win64_no_install.zip を入手。解凍して、任意のフォルダに置いて、lazpaint.exe を実行。

実行してみて驚いた。起動が圧倒的に速い…。一瞬で起動する…。今回、SSDドライブに置いてみたせいもあるだろうけど、ここまで起動が速いとは…。

機能については、ペイントソフトの基本的な機能がほぼ実装されている印象。選択範囲も作れるし、レイヤー機能もある。パレットウインドウもあるし、フィルタもそれなりの数が添付されている。何種類かのベクター図形も利用できる。

昔のバージョンは日本語フォルダ・ファイル名が扱えなかったという情報も見かけたけれど、現行版の 7.0.7 では、日本語フォルダも開けたし、日本語ファイル名の画像も開くことができた。ただ、ファイル選択ダイアログが、Windowsの一般的なソレではなく、独自のUIでちょっと使いづらい感じもした。もっとも、エクスプローラから LazPaint のウインドウ内に画像ファイルをドラッグアンドドロップすれば開けるので、特に問題にはならない気もする。

とにかく圧倒的に起動が速いので、例えば何かしらのテスト用画像を作成したい時に、さっと起動して作業して用を済ませる、みたいな使い方ができそうな予感。

もっとも、そういう用途であれば、Windows環境の場合、ペイントを起動すればいいのかな…。アレも起動が速いし…。もちろん、LazPaint のほうがペイントより機能が多いけれど…。

2019/01/17(木) [n年前の日記]

#1 [cg_tools][pc] PC-6001の写真画像を眺めているところ

自分にとって思い入れのあるレトロPCの一つに、パピコンこと、NEC PC-6001があって。ナイコン族 *1 だった頃、生まれて初めて触ったPCが、PC-6001 だったわけで。その後、MZ-731 を買ってもらえてナイコン族を脱出できたわけだけど。

ということで、せっかくだから PC-6001 のペーパークラフトも作れないものかなと、Google画像検索で関連写真画像を眺めていたり。

しかし、コレ、ちょっと、形状を再現するのが難しいな…。ケースがなんとなく丸みを帯びてる雰囲気だったりするあたりが…。

とりあえず blender で、角のポリゴン数が若干増えた感じの箱を作って、Paper Model として出力・印刷してみたけれど。切り抜いてアレコレしてみたものの、これはちょっと組み立てられないな…。もちろん、糊付けもアリにすれば作れるけれど、それはちょっと…。糊付けは面倒だからやりたくないのだよな…。
*1: PCを持ってないけど、PCに触りたくて、電器店等の店頭に置かれていたPCに群がっていた子供達のことを、当時は「ナイコン族」と呼んでいたのです。

2018/01/17(水) [n年前の日記]

#1 [anime][neta] CGは魔法の小箱じゃないんだけどな

「からかい上手の高木さん」というアニメのED映像を眺めていたら、なんだかちょっと気になるカットがあって。

高木さんなる女子中学生が自転車に乗って画面左下奥方向へ走っていくカットなのだけど。背景の木々(街路樹?)の動き、というか、見え方が珍妙で…。真横から見て、たくさんの木がずらりと並んでる一枚絵を、横長の一枚ポリゴンに貼ってパースをつけただけのように見える…。

つまり、以下の記事で悪例として紹介されてる事例そのまんまの可能性が。

_作業者をマルチプレイヤーにしたい理由 | ezBlog

だとすると、どうやらアニメ業界の中には、未だに「CGは魔法の小箱」「何かしらの素材を撮影さんに渡せば魔法でどうとでもしてくれる」と思い込んでる人が居るみたいだなと…。 *1

こういうカットは、マズいな…。「ふう。なんとかなったー。そうか、こういうカットはこういうやり方でいいんだな!」と思ってほしくないなと。なんとかなってないから。自分のような素人ですら「その動かし方は…あかんよ…」と気になってしょうがないから。そもそも、「うわ。なんやこの見た目。キモッ」と思わんのかな…。

まあ、宿題ですわな。次回は上手くやってほしいなと。どういう素材を発注したらいいのか。撮影さんにどんな指示を出せばいいのか。そもそもどういう仕組みで動かすのか…。不自然な見え方になってることは分かるけど、一体どうすれば改善するのか…。宿題ですわ。 *2

条件次第ではアリかも。 :

この手のダメなソレも、状況によってはアリかもしれん、とは思っていたり。例えば、TVアニメシリーズの本編で、ほんの一瞬だけ出てくるカットであれば、「まあそのぐらいならいいよな…どうせ一瞬だし…」と思ったりもするわけで。

自分の記憶がたしかなら…。昔、「ハイキュー!!」というTVアニメで、そういうカットを見かけた記憶が。車が田舎のお奇麗な道路を爆走してるカットだったと思うけど。道路脇の植え込み?花壇?が、一枚絵を横長ポリゴンに貼って傾けてスクロールさせてるだけ、みたいな動かし方で。

ただ、そのカットは、以下のような状態で。
  • 時々現れては奥へと消えていく街路樹が、ちゃんと3D的に動いてた。
  • 車に乗ってるキャラの表情が、いかにも切羽詰まった感じで印象が強かった。
  • 一つ二つの台詞で次のカットに切り替わった。そのぐらい、ほんの一瞬のカット。
なので、視聴者の視線は、ずっとそこに存在し続ける植え込みより、出たらすぐに消えていく街路樹に、もしくは感情が伝わるキャラの表情に誘導されるし、しかもすぐに次のカットに切り替わるから、植え込みが不自然な見え方をしていることなんてスルーするわなと。見ていて、「あっ。このカット上手いな」「こういう組み合わせなら、まず気づかんわ」と感心したもので。

本当に「ハイキュー!!」だったかな…。ちょっと自信なくなってきた。たしかそうだった、ような気がするけど。

それはさておき。となると、「高木さん」も同じ手法を使えるかもしれないなと。画面の手前側で自転車を走らせてる高木さんに、視聴者の視線がギューンと向いていく、そんな何かしらをそこに置ければ、背景がちょっとおかしな見え方をしていても気づかれない…。というわけにもいかない。それはちょっと甘い。何故なら画面の中で街路樹が占める面積は大き過ぎるから。アレだけ大きいものが不自然な見え方をしていたらやっぱり気づかれそうだなと。しかも、そのカットを結構長い時間見せてるのもよろしくない。つまり、「高木さん」のED事例は、そういう動かし方でも許される条件が足りてないように思えたり。

でもないか。やり方次第か。例えば自転車を走らせてる高木さんの服が何故かどんどん脱げていって最後は全裸になったら、そりゃもう間違いなく街路樹どころじゃないよね! …ソレ違う意味であかんわ。

ゲームの場合は仕方ないかも。 :

アニメの話とはちょっと違うけど、ゲームならそういう動かし方を見かける時もあるなと思い出してしまったり。

随分昔に、電車の中で痴漢をしまくるという実にアレな内容の3DCGエロゲーをプレイしたことがあるけれど、電車の窓の向こうに見える、流れていくビル群を、そういうアレで処理していて…。斜めから見たビルの絵が一枚ポリゴンに貼ってあって、それが電車と平行な向きで動いていくから、カメラの角度が変わると「うわああ」な見た目に…。

でもまあ、それは仕方ない。ゲームの場合はリアルタイムに描画しないといけないので、計算量はそこそこ少なく、かつ、描画面積も減らさないといかんから、ポリゴン枚数を節約しないといかんのだろう…。背景のビル群にポリゴン使うぐらいなら女性キャラの胸や尻にもっとポリゴンよこせよ!てな状況だし。商品ジャンルからして「ビル群がリアル!」と謳うより、「乳が揺れる! プルルン!」のほうが売りになるので…これはもう仕方ない。

でも、解決策は無いのかなと当時は考え込んでしまったもので。

ビル群のテクスチャを、斜めから見たビルの絵ではなく、真横からの見た目にしたら改善しないか、とか。でもそうなると、角度が変わった際に「ボク、一枚ポリゴンだよ!」と更にアピールしちゃうよなと。だったら、まだ斜めから見たビルのテクスチャを使ったほうが誤魔化せそう。

_スカイボックス の仕組みを改良して、とか。しかしアレは、かなり遠方にある風景を映し出すソレなので、変化しまくる近景・中景に使える気がしない。ていうかそんなスカイボックスを発明できたら、CG関係のイベントで発表できちゃいそう。

カメラの角度が変わらないなら、 _アウトラン方式(ビルボード) で済むけれど…。このあたり、まだ頓智が求められそう。最低限のポリゴンで、若干それらしく見せる上手い方法はないものか…。

などと書いてはみたけれど、最近はハードウェアのスペックも上がってきてるから、フツーに背景も3Dモデルにしてる場合がほとんどか。某Illusionのタイトル群も、結構背景にポリゴン使ってるし…。

それはともかく。少し前のゲーム画面って今時のアニメ制作、というかデジタル撮影だか合成だかの参考になりそうな部分がそこそこあるような気もしていたり。そもそも昔のゲーム画面は、セル+フィルム制作時代のアニメの各手法を大いに参考にしつつ、それをデジタルな画像処理に置き換えて見せていたところがあるわけで。アニメ業界に先駆けて、「アニメのアレをデジタルでやるとこうなるのだ」と実例・具体例として示してたというか。更に、少し前のゲーム画面でやれていたことは、えてして今の After Effects 上ならもっとゴージャスな形で実現できるわけで。ショボいけどシンプルなゲーム画面を眺めてデジタルの使い方の原理を知り、それを今時のツールを経由して発展させる、というのもそれほどおかしくないような。

逆に、昔のゲーム画面以下の見た目になってるアニメのカットを目にすると、かなり萎えるというか…。この演出家さんはゲーム画面すら小馬鹿にしてじっくり見たことがないんやろうな、と…。昔はアニメが実写畑から馬鹿にされてたけど、今はアニメ畑が他のアレコレを馬鹿にしてる、という状況があるのかもと邪推したり。そういう状態になると…そのジャンルはもう終わりが近いよな…。新しい血が入ってこないというか…。

*1: もっとも…。もしかすると、一旦は3D的に配置して動かしてみたけれど、コレはなんか違うぞ、まだ嘘くさい見え方のほうが感覚的にしっくりくる、と判断してあえてそういう見せ方に落ち着いたのかもしれないし。街路樹の奥の山並みもスクロールしてるから、そことどう合わせるか、それともハッキリと動きを分離しちゃのかという問題もありそうだし。あるいは、実はED映像はまだ完成してなくて、ひとまず仮でそのカットを入れてるだけかもしれないし。「これがおかしいことは分かってるけど、色々と事情があるんだよ」という状況かもしれない…。
*2: と言っても、ほとんどの演出家さんは、その宿題は解いちゃって、もっと難しい課題に果敢に取り組んでる印象も…。だから逆に、「えっ。今時こんなこと平然としちゃうスタッフがまだ居るのか。嘘だろ。信じられん。しかも、よりにもよってEDで毎週毎週見せるとか何考えてんだ。正気か」と驚いてしまったわけで。

2017/01/17(火) [n年前の日記]

#1 [cg_tools] form Z free版を試用

form Zという、建築業界向けのモデリングソフトがあるのだけど、2015年頃に _form Z free 版が公開されていたと今頃知って、少し試用してみたり。ちなみに環境は Windows10 x64。

ダウンロードにはユーザ登録(メンバー登録)が必要。本名やメールアドレスの入力を求められる。

180MBほどのセットアップファイルを入手してインストールしてみたけど…。なんだか _SketchUp に似ているUIだなと。底面を描いてから高さを指定することでオブジェクトを作っていくあたりが同じというか。

SketchUp の無償版、SketchUp Make 20xx は商用利用不可なのだけど、form Z free版は商用利用も可能らしいので、SketchUpの代替になりそうな気もしたり。

モデルを一発で展開図にしてくれる機能もあって、なんだか感動。しかものりしろまでつけてくれる。スゴイ。

ちなみに、form Z pro版の値段を調べてみたら、30万円だった…。さすが、建築業界のプロ向けソフト。

#2 [anime][neta] スパイラルスペシウム光線

寝ていたら夢の中で「スパイラルスペシウム光線」なるものをウルトラマンが発射している光景を見たわけで。スペシウム光線が螺旋状に回りながら飛んでいく、みたいなソレなのだけど。

目が覚めてから考え込んでしまったり。おそらく某STGの「スパイラルレーザー」の記憶がウルトラマンのソレと合体してそういう夢を見たのだろうけど。

まあ、昨今のウルトラマンは、たしか頭から光線を出しつつソレを鞭のようにしならせていた、そんな記憶もあって。公式でも、曲がる光線技がありそうだなと。ていうか、たぶんあったよなと。や、偽記憶かもしれないけど。

さておき。光線と呼称してるのに、光が直進せずに曲がるというのは、コレは一体どういうことなんだろうと…。

仮説その1。 :

光線と称してるけど、実は光る液体なんじゃないか。

何せウルトマランは初代からして、肉体から液体を激しく出しちゃう能力を持ってたわけで。手の先からウルトラ水流なるものを出してたよなと。であれば、色んな液体をビュービュー出していてもおかしくはない。

鞭のようにしなるのは…。例えばホースから水を激しく出しつつ、そのホースを上下に振ると、水が波のような形で出ているように見えるけど、そういう状態になっていたのだと考えることだってできなくもない、よなと。

仮説その2。 :

光線と称してるけど、実は光る触手なんじゃないか。

ナメクジは交尾をするときに頭(?)から尋常じゃない形状の触手っぽい何かを伸ばしたりするし、アゲハチョウの幼虫は危険な状態になると頭から触手っぽい何かを伸ばしたりするけれど。ウルトラマンもそういう種類の生物なのかもしれない。光線のように見える触手をビヨーンと伸ばしているのかも。

考えてみれば生物が光線を出すのもおかしな話だし。触手なら、まだ分かる。

仮説その3。 :

光は絶対に曲がらないというわけでもないのだろう。たしかブラックホールの近くでは曲がったように見える、てな話があったような…。つまり光線が曲がるということは、周囲に尋常ではない強い重力が発生してる可能性が。

考えてみればウルトラマンが「シュワッ」と言いながら空に飛んでいくあたりも怪しい。何か重力に逆らうための推進剤の類を噴出してるようには見えないし。つまり、アレもウルトラマンが重力を操作してるのではないか。ウルトラ一族は重力制御に長けた民族、という可能性が。

まとめ。 :

ということで、何故に光線技が曲がるのかと言えば。
  • 光線ではなくて、実は光る液体。
  • 光線ではなくて、実は光る触手。
  • たしかに光線なんだけど、周辺の重力を操作してる。
といった仮説が思いつくわけで。

この仮説に基づいて映像を作れば、よくあるウルトラマンの光線技も、ちょっと変わった風景になりそうな。
  • 放物線を描いて飛んでいくスペシウム光線。
  • まるでベラボーマンのようにビヨーンと伸びたと思ったらまた戻ってくるスペシウム光線。
  • ウルトラマンが「シュワッ」と叫んで空に飛びあがると同時に周辺のビルの瓦礫も一緒に空に飛んでいったり、スペシウム光線が曲がった瞬間に周囲の風景が歪んで見えたり。
なんだか妙なリアルさを感じられる映像になるのかもしれない。

などとくだらない妄想をしてみたけれど。結局は「単にそのほうがカッコイイから」で光線を曲げてるのだと思います…。

そもそもウルトラマンの「八つ裂き光輪」とか悩んでしまいますな。アレは光線技なのだろうか。どうして光があんな形になるのだろう。光線技じゃなくて、何か明らかに質量のあるものを投げてるけどソレが光って見えてるだけなのでは…。

まあ、ソレを言ったらガンダムのビームサーベルも一体どうなってるんだろうと悩んでしまいますが。もっとも、ガンダムの設定を流用すればウルトラマンのアレコレも説明がつきそうな予感もありますが。

光の巨人は何故光るのだろう。 :

そもそもウルトラマンはやたらと「光の巨人」と呼ばれてるけど。なんで光るんだろう。

ウルトラマンの色々な落とし物を分析・研究したら、液晶や有機ELよりもグッドな表示デバイスを作れる可能性が。「まさかコレとコレを組み合わせることで発光するなんて。ウルトラマン、ありがとう」みたいな展開に。

まあ、公式でも、科特隊がウルトラマンのアレコレを分析して強力な武器を作ってた記憶もありますが。実際にそういう状況があったら、「ウルトラマンのおかげでこんなに保温性の高い服が作れたよ」とか、「ウルトラマンのおかげで発電効率の良い材料が見つかった」とか、「ウルトラマンのおかげで核のゴミ問題に解決の目途がついた」とか、そういう方向で役立ちそう。

2016/01/17() [n年前の日記]

#1 [pc] 親父さんPCのM/Bを交換した

親父さんPCのM/Bを、AMD A8-3850 + GIGABYTE GA-A75M-UD2H に交換した。

ケースは IN-WIN IW-BK623 なのだけど、省スペースなので、メモリがカバーにぶつかって収まらなくて。入らなくなるのでは、仕方ない。カバーをつけることは諦めた。冷却がどうなるか不安だけど…。

SSDに入ったWindows10 x64 は、HDDで実験した時と同様にちゃんと起動してくれた。SSDで動いてるせいか、「デバイスを準備しています」の表示も、HDDに比べるとあっという間に終わった。また、ネット接続できていれば、APU用のビデオドライバもネットからDLしてインストールしてくれる模様。

ただ、予想通り、ライセンス認証はされてない状態になった。親父さんにしばらく使ってもらって、不具合が無さそうならライセンス認証を、かな…。

DVD-Rドライブが使えないと報告が。 :

USB接続のDVD-Rドライブで、DVD-Rが焼けなくなったと親父さんから報告が。

焼きミスをしたDVD-Rを見せてもらったら、読み取り面に親父さんの指紋がべったりと。そのせいじゃないかな…。読み取り面に触らないようにドライブにセットして焼いてもらったら、フツーに焼けた模様。

安心してたら、今度はCD-Rが焼けなくなったという報告が。たしかに3枚ぐらい連続で失敗し続ける。親父さんは B's Recorder GOLD9 を使ってDVDやCDを焼いてるのだけど、そのせいだろうか…。Windows10に対応してないのかな…。いや、でも、DVDは焼けたんだよな…。どうしてCD-Rがダメなんだろう…。

そのドライブを自分のメインPCに繋いで、Windows7の標準機能でCD-Rを焼いてみたけど、フツーに焼けてしまった。となると、ドライブが壊れたというわけではナサゲ。

もしかして、Windowsの標準機能でCD/DVDを焼くと成功するのだろうか…? 明日試してもらおう…。

ちなみに、Windows XPの頃はCD-Rしか焼けなかったけど、Vista からDVD-Rも標準機能で焼けるようになってたのですな。恥ずかしながら今まで知りませんでした。

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

夕方、犬の散歩から帰ってきてから、自転車で買い物に。近所のホームセンター(ホーマック)、ヨークベニマルまで。

先日ホーマックで買った、首のあたりにつける防寒具を装備して犬の散歩や買い物に行ったのだけど。最初のうちは暖かくていいなと思ったものの、なんだか不安になってきた。体はフツーに寒いはずだけど、首を暖かくしてることで感覚がおかしくなって、なんだか無理をしちゃったり、ということはないのだろうか。

#3 [anime] 昭和元禄落語心中を視聴

落語家を主人公にした漫画原作のアニメ化作品、という説明でいいのだろうか。

BS-TBSの放送では、1話目は1時間放送してたのだけど。Wikipediaを確認したらOVA版2話分が存在していたようで。もしかするとTV放送の1話=OVA版2話分、だったのだろうか。よくわかりません。

たしか1話の、若手落語家が落語を演じてたシーンで、熱気を帯びてきた体から湯気が立ち昇ったり、尻や膝のあたりが汗でびっしょりになってたり、そういう見せ方をしていたあたりで唸ってしまったり。漫画原作にそういうコマがあったのか、それとも落語をテーマにしたドラマや映画でそういうカットがあって取り込んだのか分からんけど…。

演者の背中から薄暗い観客席を捉えてるからこそ、かろうじてうっすら見えてくる空気のゆらめき。観客席側からは分からないけど、楽屋裏から見ることで気づくことができる汗のかき具合。裏にカメラを置いたことで可能になる伝え方、なのだなと。こんな見せ方によく気づいたなと感心。考えてみたら、落語家の喋りや台詞は落語を演じることで既に使ってるのだから、後は視覚情報で伝えていくしかないんだよな…。「首から上さえ描けてればいいだろ」と業界人自身が言っちゃうぐらいにアレな作りが多いアニメ業界の中で、ちゃんとこういう描写を試みるあたり、真摯に作られてる作品なのだろうと感じてしまったり。

1話では、師匠キャラを演じる石田彰氏が、師匠と呼ばれるに相応しい上手な落語を演じて見せてたのだけど。2話目・過去の回想編になると、若い頃の師匠が無残な前座を披露していて。惚れ惚れする落語と、聞くに堪えない落語の両方を、一人で見事に演じ切っているあたりに、なんだかゾクゾクしてしまった。昔、若手声優さんの中には石田氏の演技を見て衝撃を受けて声優を目指した人も居るとどこかで聞いた記憶もあるけど、たしかにコレは…凄い…。

そして直後に、師匠キャラのライバルを演じる山寺宏一氏が、豪快、大胆、天賦の才を感じさせる落語の演技を披露するわけだから…。これはとんでもないアニメだなと。声優さん達の技の凄さを再認識させられるというか。

そもそも落語は、一人の話者が、複数のキャラを演じることで成り立つわけで。そこに上乗せする形で、ベテラン時代の上手い演技と、駆け出し時代の下手な演技を、声優さんが披露しなければならないという…。2進数で考えれば、上位ビットが1ビット増えちゃった状態。単純に、演じるキャラの数が2倍になったも同然で。しかもこの後、おそらくは徐々に上達していく様子も見せていくのだろうから…。

音楽と落語の違いはあれど、「坂道のアポロン」「響け!ユーフォニアム」等がチャレンジしてた、「本物を見せれば、それだけで視聴者に十分伝わるはず」てな姿勢を感じたというか。これはかなり高度なことをしてる作品ではあるまいか。

さておき。1話も2話も熊谷脚本だったので、個人的にちょっとビックリ。SFっぽい作品が得意な脚本家さんとばかり勝手に思い込んでいたので、こういうジャンルもイケるなんて幅広く書ける方なんだなと…。この調子でゆくゆくはプリキュアを…いや、なんでもないです。

2015/01/17() [n年前の日記]

#1 [cg_tools] DraftingCAD体験版を試用

ドローソフトと2D-CADの中間っぽい使い方ができるソフトらしい。前からちょっと気になってたので、体験版をDLして少し触ってみたり。

LibreOffice Draw、AR-CAD、DrawGraphic 2、Inkscape との比較になるけど、操作性や機能面に関して、格別に優れている点は見当たらなかった。 そんな感じであまり印象はよろしくなかったけど、今は亡き G.CREW の代替ソフトとして選ぶのもアリと言えばアリかもと思えてきたり。Windowsアプリの流儀にある程度従いつつ、気軽に使えそうなドローソフトとなると、選択肢が少ないわけで。もっとも、最終的にビットマップ形式で保存さえできれば何でもいいよということなら、DrawGraphic 2 でいいかもな、という気も。

#2 [anime] ローニャ、戦争の回を視聴

山賊達の笑顔と明るいBGM。ローニャがワクワクしながら城に入ってみると、てなあたりに感心。ゴロー監督、黒いぜ! いや、おそらくは原作通りの展開だろうし、だとすればあの見せ方が正解だと思うわけで。ローニャのワクワク気分を視聴者のちびっ子達にも味わってもらっておくことで、その後の展開のインパクトが増すのだから、あの演出は正しい。落とすためには一旦持ち上げて、持ち上げるためには一旦落として、みたいな。考えてみれば、Aパートでローニャと少年の平和な一コマも、その後の展開のための下準備、でもあったのかなと。もっともそのあたりも原作通りなのかなという気もするけれど。

後編、ローニャ飛翔のシーンは名シーンのような気がしたり。ローニャの内面世界を数カット見せて、当人の閃きを表現していたあたりがなんだか上手いなと。このアニメ、時々映像面で詩的な表現が挿入されるので侮れない、ような気がします。

ローニャの父親の表情がなかなかイイ感じ。見ているうちに、3DCGで作られてることをすっかり忘れてしまったり。

2014/01/17(金) [n年前の日記]

#1 [dxruby] STGサンプルを弄ってたり

STGサンプルをちょこちょこ弄っているところ。

シーン管理部分を追加中。 :

ゲームオーバーの仕様を入れるためには、少なくともタイトル画面ぐらいは必須。なので、シーン管理を追加したり。

「えっ? どうしてゲームオーバーを入れるために、タイトル画面が必要なの?」と思う人も居るかもしれない…。

ゲームオーバーになったら、次はどんな画面になるか、思い出すべし。えてして、ランキング入力画面か、タイトル画面に戻ってきますよね。

これがもし、タイトル画面すらないプログラムでは、ゲームオーバー仕様も存在できない。「区切り」が一切無かったら、ゲームオーバーと言う区切りも、あり得ない。

故に、ゲームオーバー仕様を入れるためには、タイトル画面ぐらいは必須。そしてタイトル画面を出すためには、シーン管理が必要。つまり、ゲームオーバー仕様を入れるためには、シーン管理を実装しないといかんわけで。

さておき、シーン管理の中身だけど。自分は頭が悪いので、switch〜case で ―― Rubyなら case〜when でやってしまうのですが。オブジェクト指向とやらを意識した場合は、これは望ましくないのだろうなと。まあ、そのあたりは今後の課題ってことで。

ファイルを分割中。 :

今まで、一つのファイルにずらずらと書いていたけど、さすがに見通しが悪くなってきたので、各クラスを別ファイルにする作業もし始めたり。

しかし、ちょっと悩んでしまう部分が。グローバル変数の扱いをどうすべきか、みたいな。

その手のゲームにおいては、グローバル変数ってどうしても必要になりそうな気がしていて。

例えば、敵がプレイヤーを狙って弾を撃つ、てな場合。敵は、プレイヤー座標を見て、角度を決めて、弾クラスのインスタンス生成時して、どこかに登録する、という処理をするのだけど。プレイヤー座標にしろ、オブジェクトを登録する何かにしろ、グローバル変数に近い状態になってないと、処理ができないわけで。

「自分の座標とプレイヤー座標から角度を返す」メソッドや、「発生座標や角度を与えると弾を生成・登録してくれる」メソッドを用意すればいいだろう、と言われそうだけど。そのメソッドは、色んな種類の敵から呼ばれるので、結局、変数がグローバルだったあたりが、メソッドがグローバル(?)相当になりましたよ、ぐらいの違いしか無いだろうと。

こういう場合は、どういう書き方、まとめ方をするのが、ベターなんだろう…? _Singleton を使うとか?

2013/01/17(木) [n年前の日記]

#1 [pc] EACをインストールし直し

_Exact Audio Copy を起動したらバージョンが 0.99b5で。最新は 1.0b3 みたいだから更新しようかと。しかし、1.0b3 が、動かない。起動すると応答なしになってしまう。Windows7 x64 上で動かすには何か工夫が必要なのだろうか。

仕方ないので、0.99b5 に戻した。ドライブ設定等やり直すのが面倒臭い。

ついでだから動作確認も兼ねて、何枚かCDを取り込んで FLAC に変換したり。…FLAC への変換時、コマンドプロンプトウインドウが開くのが気になる。表示を無効にできないのかな。いや、無効にしたら変換過程で何か問題が出そうな気もするけれど。どうなんだろう。

2012/01/17(火) [n年前の日記]

#1 [nitijyou] 風邪を引いた気がする

喉の奥が痛い。たぶん風邪。煙草を吸ってたらズキッときて気付いた。

#2 [ruby] まだストップウォッチもどきを作成中

動作中の画面をキャプチャして(スクリーンショットを撮って)、連番画像として出力する機能をつけてみた。

VGA=640x480ドットのbmp画像を24コマ/秒で保存するつもりだったけど。計算してみたら、1分30秒で数GByteになってしまう。仕方ないのでjpgで保存。

DXRuby の Window.getScreenShot( filename[, format] ) で、pngの指定や、jpgの圧縮率を指定できないものだろうかと…。

連番画像は出力できたのでaviに変換。 :

jpg2avi で変換してみたが、音声ファイルを追加する方法が分からず。

Corel VideoStduio 12 で作業。 _Ulead Video Studio 12 (ビデオスタジオ12)での連番形式ファイルの読み込み を参考にさせてもらって、連番画像を読み込む。ビデオの読み込み→*.uisを選択→オプション、らしい。が、最後に avi を出力する段階で、VideoStudio 12 がフリーズしてしまう。

Aviutl も連番画像を開いてavi出力ができそう。無圧縮で出力してみたら、やっぱり3GBぐらいになった。 _aviutl_h264 - ニコニコ動画まとめwiki を参考にして、MP4(H.264?)とやらで出力してみたところ、3.4MByte程度に。

2011/01/17(月) [n年前の日記]

#1 [nitijyou] 雪が積もってる

昨日も結構降ってたけど、今日も朝まで降っていた。

買い出しに行ってきた :

途中まで自転車で走ったけど。道路が凍っていて危険だなと思えたので、引き返して歩きで。しかしそれでも何度も転びそうになった。雪が積もってるところはまだ安全。溶けているところが凍っていてヤバイ。特に交差点や横断歩道のあたりは確実に凍っていて危なかった。

ケーズデンキ、ダイソー、リオンドールで色々買ってきた。

ケーズデンキで以下を購入。
  • センサ付きLEDライト。ELPA PM-L255。LED2灯。単三乾電池x3本使用。乾電池950円。
  • 節電タップ。OHM HS-T1123W。個別スイッチ付き。6個口。756円。
  • 蛍光灯32型 TOSHIBA メロウZ BRIDE 昼光色。1,388円。
以前、センサ付きLEDライトを買って非常に便利に使えているので、もう少しあちこちにつけたいなと。でも、安売りされてた品だから、もしかするとあまり明るくない可能性も。

ダイソーで、携帯電話のボタンに張り付けるシールを買ってきた。コレをPCのキーボードにつけてもう少し使いやすくしたい。木工用ボンドでポッチを作るより確実だろうし。他にはアイマスクだのゴミ袋だの雑貨を。…何も着色されてない木製ピンチが入荷しているのに気付いてガックリ。こないだ妹が、東京に遊びに行った際、東急ハンズで袋詰めになったソレをわざわざ買ってきてくれて部屋に袋一杯あるわけで。どうしてその前に入荷してくれなかったのか…。タイミングが合わないなあ…。

リオンドールで夜食だの煙草だのを購入。

#2 [pc] Amazonからキーボードが届いた

CHERRY製 G85-23100JAAESF。サイズからストリームホワイトとして販売されている品。フルキーボード。USB有線接続。パンタグラフ。3,340円。

今まで BUFFALO BSKBW03WH を使っていたのだけど。Excelで作業する時や、プログラムソースを書いている時、やはり Home,Endキーが独立していないのはかなり厳しく。NumLockをOFFにしてテンキー側のソレを使ったりはしていたのだけど、NumLockがOFFなのにうっかり数値を入力しようとしてミスをしたり等、どうにも慣れることが出来ず。一時的に、サンワサプライ SKB-WL12BK に戻してみたりしたものの、SKB-WL12BK はスペースキーが「ガシャッ」と煩く夜中に作業してるとちとツライ。また、感触的に、やはりパンタグラフのほうがいいなと。

ということで前述のキーボードを購入。SHOP Uのレビューに「音が静か」と書いてあったのも気になったわけで。できれば無線キーボードが欲しかったけど、パンタグラフで無線でフルキーボードとなると、ENERMAX ACRYLUX KB009W ぐらしかなく、8,000円ぐらいする。しかしこれがまた微妙にキーの配置が怪しい感じで。

使用感については…。 BSKBW03WH のキー配置に微妙に慣れてしまったようで、Altやカーソルキーを押すときにミスが多発。自分、本来は標準的なキー配置に慣れているはずなのだけど。

2010/01/17() [n年前の日記]

#1 [pc] TSUKUMOからHDDが届いた

Western Digital WD10EADS-R。SATA接続、5400rpm、1TB。WD Caviar Green と銘打たれた、低消費電力を謳う製品。7,170円。

新自宅サーバ用のHDDに何を選ぶか、500GB程度で、とにかく消費電力が少ないものを、と、ずっと悩んでいたのだけど。色々検索してみたら、500GBや750GBより1TBのほうが、微妙に消費電力が少なそうだったので、この際ドーンと。

TSUKUMOで注文したはずなのだけど、届いた箱の中に入っていた納品書には、株式会社ProjectWhiteなる会社名が。何故に。

_Project Whiteとは - はてなキーワード

…なるほど。

それと、レシートに相当するもの ―― 金額が書かれた文書が入ってなかった。なんてこった。注文するときに領収書を発行するかどうかの項目があったけど、てっきりレシートっぽいものは入ってるんだろうと勝手に想像してチェックを入れなかった。失敗した。

一般的には WD10EADS という型番なのだけど、今回注文した品は、WD10EADS-R。最後に「-R」がつく。一体どんな意味があるのか、さては故障した製品を再生して販売してるのか、等の話があるけれど。どうもシネックス(SYNNEX japan)なる会社で販売してる製品を、他と区別するために「-R」とつけてある、という説が一番それっぽいなと。今回届いた箱にも、シネックス云々の紙が一枚入ってたし。

#2 [pc][d945gsejt] 新自宅サーバにする予定のPCを組んでみた

構成は以下の通り。 M/Bは一応ファンレスなのだけど、ケースファン等で風を当てなきゃ実用にはならないだろう、と思われる。VIA C7搭載M/Bも風をあてないと厳しいし。

そういや、メモリが届いた時期をメモするのを忘れてた。Amazonで購入。領収書を見る限り、2010/01/09頃に発送されたらしい。3,680円。

ACアダプタについては、FAST ES-1100W に付属していたACアダプタを流用する予定。調べた限りでは、内径2.5mm、外形5.5mm、のはず。使えるはず。たぶん。

とりあえずPCケースに入れてみたけど。SST-SG05W って、M/Bを入れられる状態に持っていくまでが、ずいぶん面倒な印象。外していく部分がちと多い。まあ、自分が理想とする形状なので、このくらいで評価は落とさないけど。そもそも、Mini-ITXなんだから、入れるのは面倒で当たり前という気もするし。

M/Bに付属してきたバックプレート?(背面端子の周りをカバーしてくれる金属の板。アレはなんて呼ぶんだろう。)が、入ってくれない。1時間ぐらい試行錯誤。結局、最後まできっちりと入ってくれなかった。おかげでM/Bの取り付けが大変。なんだか力仕事の様相に。

とりあえず、組んだ。動作確認せねば。PCデスクの下から中古液晶ディスプレイを発掘して接続。USBキーボードやら、USB接続ミニトラボやらも接続。段ボール箱から、ACアダプタも発掘。

問題発生。ACアダプタのコネクタが、M/Bのコネクタに刺さりません… orz

力を入れれば刺さるかなと思ったけど甘かった。やっぱりコネクタの寸法が合わないようで。なんてこったい。ここまで来て。…対応してるACアダプタを探さないといかんなあ。出費も更にかかりそうな予感。こんなことなら一般的な電源を使える NF94-270-LF にしておけばよかった。ACアダプタ込みで考えると、NF94-270-LF のほうが出費も少なくて済んだかもしれない。失敗したかな…。

使えなかったACアダプタについてメモ。 :

張ってあるシールの記述をこの際メモ。
  • LI SHIN INTERNATIONAL ENTERPRISE CORP.
  • MODEL: 0218B1260
  • INPUT: 100-240V〜、50/60Hz 1.5A
  • OUTPUT MAX: 12V 6.67A
  • 端子は外がマイナスで中がプラス。
  • 別途シールで、12099-B702、と張ってある。
検索してみたら、どうも内径が2.1mmの製品が存在するような気もしてきた。そっちだったのかな、コレ。

SST-SG05Wの電源についてメモ。 :

FSP FSP300-60GLS、という電源だった。…アレ? コレってメインPCの電源と同じじゃないのか。…日記を検索してみたら、同じ型番だった。でも、当時調べた際には、高効率75%の電源、だったはずだけど…。SST-SG05Wの箱には80PLUSが印刷されてる。どういうことなんだろう。

シールには、12V1+12V2で22Aまで出るよ、と書いてあるようにも見える。…それが本当なら、9600GTGEぐらいは動かせるのだろうか?

ATX電源を繋いでひとまず動かしてみた。 :

D945GSEJT には田の字型のコネクタがM/Bについていて、そのコネクタに、ATX電源の田の字型コネクタの12Vを差してやれば一応動かせる。が、ATX電源は20ピン or 24ピンコネクタのとあるピンをショートすることで電源が入るという仕様なので、件の12Vをそのまま繋いだだけでは電源が入らない。

幸い、裸族のマンションについている基板を使えば、ATX電源を単独でオンにできるので、裸族のマンションを引っ張り出してきて掃除して、ATX電源を、裸族のマンションの基板とD945GSEJTに接続。…電源が入ってくれた。一応動いてはいるみたい。

MEMTEST86が動かない。 :

まずはメモリが壊れてないかチェックしないと。USB接続外付けDVDドライブに、memtestT86+の入ってる KNOPPIX 5.x を入れて起動してみたり。しかし、memtest86+ の画面が表示されたところでフリーズ。さてはバージョンが古くてダメなのかと思い、以下のバージョンを試すも、やはりフリーズ。
  • memtest86+ 4.0 ... 単独でDLしてFreeDOSをブートできるようにしたUSBメモリに入れて実行した。
  • memtest86 3.5 ... DLした KNOPPIX 6.2 DVD に入ってた。

memtest86 は、BIOS で USB Legacy Support が Enable になっているとエラーを出す時がある、という話を思い出して、D945GSEJT の BIOS で件の項目を Disable に。…USBメモリからも、USB接続外付けDVDドライブからも、起動できなくなった。それどころか、USB接続キーボードも無反応になった。考えてみれば、件の項目はUSBキーボードを使うときには Enable にしておかないといけなかったような。しかも、D945GSEJT には、PS/2端子は無いので、必ずUSBキーボードを繋がないといけない。つまりBIOSに入って設定を元に戻すことができない。途方に暮れる。

結局、M/B上のピンスイッチ?を弄って、BIOS設定を初期化。

しかし困った。メモリチェックができないのでは、安心してOSインストールもできやしない。どうしたものか。

少なくとも、KNOPPIX はフツーに起動して使えるので、メモリその他が完全に何もかもおかしいわけではないだろうと思える。また、メモリが壊れていれば、memtest86 実行時、途中でガンガンエラーを出す感じの動作になるだろうから、この動作・フリーズの仕方は、根本的に memtest86 が動いてないだけの状態と思われる。何か簡易でいいからざっくりとメモリチェックできる別のツールがないものか…。

2009/01/17() [n年前の日記]

#1 [windows][prog] 自環境のActivePerlやActiveTclやImageMagickを更新

それぞれ、 をDL。

一旦、ImageMagick、ActiveTcl、ActivePerl の順でアンインストール後、ActivePerl、ActiveTcl、ImageMagick の順で新版をインストールした。

Perl/Tkも使えるようにTkモジュールもインストール。 :

ActivePerl の少し前の版 (5.8.x) の頃は、Tkモジュールが最初からインストールされていたらしいのだけど。5.10.x は、標準でインストールされなくなったのだとか。

ActivePerl 5.8.8まで標準だった Tk は ActivePerl 5.10.0 から含まれなくなった。したがって、ActivePerl 5.10.0 場合、Perl/Tk を使うにはコマンドラインから「ppm install Tk」などとしてインストールする必要がある。

Perl/Tkで日本語(Win32:ActivePerl 5.8.x/5.10.0) ハードなソフトの話/ウェブリブログ より


ということで、Perl Package Manager を起動して、Tkモジュールをインストール。ついでに、Jcodeモジュールもインストール。

#2 [windows] タブ型ファイラーを試用

iアプリ用のテーブルデータを作成してるのだけど、3つ以上のフォルダを行き来して作業しなければならないので、あふでは作業が辛くて。かといってエクスプローラを大量に開いて作業するのも何かしっくりこない。ので、タブ型ファイラーを試しにいくつか導入。

MDIE、UltraExplorer、X-finder、Egg Explorer をインストール。しばらく使ってみようかと。

#3 [iappli] テーブルデータ作成中

メールでデータの書き方を少し指南してもらえたので、リストファイル2つほどを全般的に修正。

2008/01/17(木) [n年前の日記]

#1 [neta] 差別を完全になくせた世界を描くことで笑いを描けないかな

_ビートたけし「差別発言でみんな笑う、そう、差別が笑いになるんだよ」 という記事?を読んでるうちに、なんとなく。差別を完全になくせた世界が実現したものの、それはどうにも見ていて笑えてしまう世界になってしまった、てな感じの映画なり漫画なりを作れたら面白いかもしれないな、とかそんなバカ妄想を。

誰かが何か善行(?)をしようとすると、別の誰かが「それは差別だ!」と叫び、「差別は良くないよね。では別の方法を」と言ってるうちに八方ふさがり・皆が身動きとれなくなってしまって、事態がどんどん悪化していくその滑稽さを。…といったことをぼんやり考えたけどそういう笑いに繋げていける具体的エピソード・妄想が何も浮かばないあたりが自分の頭の凡人っぽさであります。

「ちびくろサンボは黒人差別だ」的主張に皆が従って、黒人に関係する様々なコンテンツを世の中から消去してるうちに、この世界には黒人など存在していないのだ的共通認識になっていったり…ってそれじゃ笑いにはならんな。うーむ。

#2 [comic] アニメーターさんに漫画描かせてはいかんよな

弟が帰省した際に置いていった漫画単行本を、少しずつ消化してるのだけど。中に、アニメーターさんが描いている漫画単行本が結構あって。読んでいるうちに、アニメーターさんに漫画を描かせてはいかんのだな、という気持ちに。

絵は綺麗、というか、線が整理されていてめちゃくちゃ上手いんだけど。ストーリー構成がどうも厳しい。まあ、その点は、原作をつければ改善されるように思えるのだけど。実際、アニメーターさんが描いてても、原作つきの漫画とそうでない漫画では、出来に結構な差があるように思える。が、しかし、コンテ・レイアウトも厳しい傾向があるあたりが、なんというか。1コマの中のレイアウトの良し悪しと、ページ1枚の中のレイアウトの良し悪しは、違うものがあるんだろうな。

元アニメーターでありながら漫画家としてそれなりに成功してる人もたしかに存在するのだけど。一般的にアニメーターは、絵を描く専門家として起用したほうがいいような気もする。原作はもちろん、コンテを描く人も用意して、各コマの中身だけをきっちり描くことに専念させてあげたほうが、良い結果を生みそうな。

とはいっても、キャンディキャンディの事例もあるし。原作と作画の間ですらえてして仲が悪くなるのだから、そこにコンテを描く人が入ってきたらさらに面倒なことになりそうな。そもそもアニメーターが漫画を描くというのは、自分で全てをコントロールしたいという欲求があって転向する場合が多いのかなという予感も。そういう欲求を持ってる作家に、原作やコンテをつけたらトラブルになるのは必須だろうし。

絵が上手いだけにもったいない気もするのだけど、このへん仕方ないのかな。

#3 [iappli] ImageMapのドキュメントを眺めてたのだけど

ImageMapという、セルを組み合わせて大きな背景を用意することのできるクラスがDoJaにはあるのだけど。DoJa3.5のソレは、マップデータをbyte配列で用意するために、128種類しか登録できないらしい。128種類という制限は、厳しいな…。

最近のDoJaならそのあたりの制限は緩くなったらしい。DoJa4.0から、byte配列ではなくint配列になっているように見える。

2007/01/17(水) [n年前の日記]

#1 [iappli] 操作方法というか画面の流れを示した説明文書を送った

画像一覧については、昨日作ったスクリプトを使って出力したものを修正して作成。朝のうちに送っておいた。が、操作方法を説明する資料とやらが昼頃までかかってしまった…。

_iアプリキャプチャ でエミュレータの画面をキャプチャさせてもらったり。ありがたや。ソフトキー部分まで含めたキャプチャを行う場合、(x,y,w,h) = (30,51,240,273)を指定すればキャプチャできる模様。ということをメモ。

OpenOfficeで作成してWord形式で保存して送ればいいや、と考えていたけれど。色々問題が。しかも、作業する際、Word にD&Dして開いたために、新規文書として開かれてしまったようで。保存を忘れて、2時間の作業がパーになるという事態も。アホや。>自分。何はともあれ開いたら別名保存しておく癖をつけないといかんなぁ。つーかOffice関係のアプリって、起動するたびに新規文書を作ってある状態だったりするのがちょっと混乱を招くような気がしないでもないんだけど。MSの人達は、WordやExcelを起動したら必ず新規文書を作成する状況にでもあるんか。そんなに文書ばっかり作ってるのか。

#2 [pc] OpenOfficeは使えないなぁ…

iアプリの仕様云々をWord文書にする必要が出てきたので、OpenOffice Writer で作業したのだけど。保存した .doc を Word Viewer で開いたら、レイアウトがグチャグチャな上に、フォントがめちゃ荒いのなんの。仕方なくかなり昔のWordを引っ張り出してきて作業。

「MS P明朝」と指定すべきところが、「MS P明朝」になってるような気がするんだけど…。>OpenOffice。それとも自分が、インストール時の各種設定を間違えてしまったのだろうか。

OpenOfficeだけで完結する作業であれば実用上問題はないのかもしれないけれど。Wordの代わりに使おう、なんてことになると細かいところで問題が。やはりお仕事云々が絡むと、MS-Office を購入しなければならないのか…。読むだけであれば PDF 等にすればいいのだろうけど、後で誰か別の人が編集可能な状態にしなければならない、かつ、図入りで、となると…。

OpenOfficeってちょっと使いづらいところがあるような。 :

大量に図を挿入して、それらの折り返し設定をまとめて変更しようとしたときに困ってしまった。複数の図の選択ってどうやればいいんだ…? Word なら、Shiftキーを押しながらクリックしていけば、複数選択できる・一気に指定できる属性だけを変更可能なのだけど。

図を挿入するときに、あらかじめ好みの属性を設定しておくのも、どうやればいいのやら。

Writer ではないけれど、OpenOffice Calc で、セルに値を打ち込んだ後、どちらの方向にカーソルを動かすかを容易に切り換えられないのも面倒。オプションの中を辿っていかないといけない。いや、ショートカットキーとか割り当てられてるのかしら。ヘルプを眺めた限りではそれらしい項目は見当たらなかったけど。

単に自分が、OpenOffice 独自の操作方法を知らないだけだろうか。それとも本当に気が利かないソフトなだけだろうか。どっちなんだか今一つ自信がない。

OpenOffice 2.1.0 独自ビルド版をインストールした。 :

独自ビルド版なら、「MS P明朝」になってるらしいとどこかで見かけたので。後で検証してみやう。

#3 [windows] MS-Officeの値段を調べてみたけど高いなぁ

5万円か…。自分の生活の中では絡んでこないアプリなんで、どうも今一つ「購入したいぜ!」的モチベーションが出てこない。お仕事絡みでイヤイヤ買わされる代表アプリ、みたいな印象で。

バージョンがよくわからない。Ofiice 2007 ってのが今度出るの? 1/30あたりに。今までは何? Office 2003 が最新だったのかな。その前は何だ。Ofiice XPとやらか。Word 2002 や Excel 2002 ってのがあるのか。その前は何だ。Office 2000 か。何で途中で XP なんてものを入れてるんだ。わけわからん。とりあえず並べてみると、 という順番で、上のほうが新しいのか。

OEM版だかDSP版だか、安く入手できるものもあるらしい。が、MSのサポートを受けられないとか。MSのサポートって具体的には何だ? パッチすら当てられないとか? それはないとしても、アップグレードはできないとかそんな感じなのかしら。

_今、Office 2003 を買っても、3,000円払えば Office 2007 に出来るらしい。 :

OEM版とやらは入ってないみたいだけど。5万ぐらいする高いヤツ・箱に入ってるちゃんとしたヤツを買っとけば、ほんのちょっとでアップグレードできる。ということか。ただし期間限定なのが気になる。2007年3月までか…。

Office 2007 は新しい製品だから。インストールしたら酷い目に会う可能性も否定できない。その点、一つ前の版は、一応枯れていて多少は安定してるところがあるかもしれない。と思ったが、Corel のソフトみたいに、「古い版に起きてた不具合は、解消できそうにないス。新しい版ならちっとは良くなってるのでそっちを買ってくれ」という事例もあるから油断できない。…まあ、古い版も手元にあったほうが問題に遭遇しても回避できる可能性が出てくるから、今のうちに入手しておくのも手かもしれないなぁ…。

_Office 2003 Editions/Office 2003 Programs アップグレード対象 :

古い版を入手してアップグレードしたほうが安くならないか。と思って眺めたり検索したが、特に安くなる感じはなく。パッケージ正規版はどれも高いなぁ。

2006/01/17(火) [n年前の日記]

#1 [linux] knoppix の memtest86 って随分バージョンが古いな、と思ったら

よくよく画面を見てみると、「memtest86+」となってる。検索してみたら、どうやら「memtest86」とは違うものらしい。

_コンピュータ系blog: Memtest86+
メモリ検査ツールのmemtest86の改良版ようです。

コンピュータ系blog: Memtest86+ より

Memtest86は、2003/05/22にv3.0が出て以来暫くバージョンアップがされませんでした。 (2004/03/11にMemtest86 v3.1aが出ているようです。) Memtest86+は、未対応の(バグ持ち含む?)チップセットに対応したり、有益な情報を表示できるようになっているようです。

コンピュータ系blog: Memtest86+ より

なるほど。そういうことだったのか。

ちなみに、knoppix 3.7 に入ってるのは、memtest86+ v1.20。 _Memtest86+ の配布サイト を見ると、現在の最新版は 1.65 かしら。10/01/2005 が更新日。…まあ、knoppix 3.7 自体もバージョン古いのですが。今は、 _KNOPPIX 4.0 が出てるみたいだし。

_Memtest86 のほうは、最新版 = v3.2、かしら。11/Nov/2004 が更新日。…たしかに、memtest86+ のほうが、メンテナンスされているらしい。

_Memtest86/メモリ診断ページ - KOBUN :

テスト内容の解説がありがたいのであります。

全然関係ないけどどうして knoppix jp サイトの news って日付が書いてないんだろう。 :

どれが最新情報なのか、いつそれがなされたのか、news の項を見てもわからない。

ていうか、なんだか読みづらい。どういう CSS になってるんだろう。と疑問に思ってソースを表示して驚いた。もしかして、ホームページビルダーで作ってるのだろうか。 *1 あのソフトには、自分の知らない優れた機能があるのだろうか。多国語対応が楽とか。…いやまあソレはどうでもいいんだけど。若干、ソースの中身がスゴイことに。「</FONT></FONT></FONT></FONT></FONT></FONT></FONT>」とか。何故。 _WYSIWYG の弊害が見える。まあ、仮にソースが綺麗だったとしてもそれが何なのだという話も。そんなことより優先して作業すべきことがあるわけだし。にしても読みづらい。

色んな環境から閲覧されることを考えて、あえて css は使ってないのだろうか。今尚、Netscape Navigator 4.x しかブラウザが存在しない OS とかもありそうだし。

*1: いや、おそらくは、もっと高機能・色々詰まった上位パッケージ(?)を使ってそうな予感も。たしか業務用パッケージもあったような記憶もあるし。

#2 [linux] knoppix 4.0.2 CD版をDLしてCD-Rに焼いたけど testdisk が動かなくてガックリ

やはり最新版を使ったほうがいいのだろうと思ったので、サーバ機(Vine Linux)上で、knoppix_v4.0.2CD_20050923-20051116+IPAFont.iso を wget でDL。親父さんPCを借りてCD-Rに焼いた。

が、起動してみると testdisk が動かない。ライブラリがないと言われる。おそらく、CD1枚分の容量に収めようとしているうちに、動作に必要なものも削ってしまったのかもしれん。どうやら、復旧作業に適したバージョンを探しておいたほうがヨサゲ。

ついでだからDVD版も落として焼いてみようとしたのだけど。 :

wget でDLしようとしたら、刻々と変化する表示値がマイナス値になってる。どうやら wget のバージョンが古いとそういうことにもなるらしい。 *1 Vine Linux 3.0 に入ってるのは古いバージョンということであらうか。 *2 さて、どうしたもんか。…ためしに gftp でDLしてみたり。どうせftpサーバに繋ぐのだし。

DLは、30分ぐらいでできた。焼くのは明日にしやう。

HTTP-FUSE-KNOPPIX が気になる。 :

_HTTP-FUSE-KNOPPIX
5MBのCD用iso イメージでDVD版KNOPPIX4.0 LinuxTag(3.8GB)が使えるようになりました。DVDを作成することも一気に3.8GB のダウンロードをする必要はありません。

HTTP-FUSE-KNOPPIX より

HTTP-FUSE KNOPPIX は「積み上げ型」KNOPPIXです。通常のKNOPPIXでは700MB のisoファイルを最初にダウンロードしますが、HTTP-FUSE KNOPPIXではルートファイルシステムの読み出し要求がある度に必要な部分(ピース)をHTTPからダウンロードします。ピースは手元のPCに「積み上げ」られます。HTTP-FUSE で最初に必要なものはLinuxカーネルとminiroot を含むブートローダのみで、そのサイズは6MBです。

HTTP-FUSE-KNOPPIX より

つまり、ソレが必要になった段階で、ソレをネットワークから取得するから、DVD版のようにGByte単位の巨大なファイルをDL・DVDに焼かなくてもいいと、そういう感じなのであらうか。

ネットワークが使えない・帯域が細い環境では何もできないけど、ネットワークが使える・帯域がある環境であれば快適というわけですかな。

*1: 2ch の knoppix スレでそういう話を見かけたような朧ろげな記憶も。
*2: wget -V してみたら、1.9.1 と出てきた。

#3 [pc] _WYSIWYG - Wikipedia

覚えられないんですよ。この用語。What You See Is What You Get。「What You See」と「What You Get」を「Is」でくっつけてあると。…こうしてメモしても忘れそうな予感。

#4 [linux] sambaの転送速度が遅いので設定を変更してみたり

/etc/samba/smb.conf の該当行を以下のように変更。
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=4096
変化はあるだろうか。さて。

knoppix DVD版の.isoを、samba の共有ディレクトリに転送しようとしたら「容量制限を超えたので転送できない」と言われた :

samba にもファイル制限があるのか。制限値はどのくらいなのだろう。

_「ファイルサイズが2GBを越えない限り、Linuxでは問題とはなりません。」 とある。すると上限は2GBか。

ああっ。すると、knoppix DVD版 3.8GB は、Windows機に転送できないのでは。どうしたもんか。

LAN内の転送なのだから、FTP転送すればいいのかな。

#5 [pc][linux][windows] メインPCのダメHDDを新HDDにコピー

以下のページを参考にさせてもらいつつ。

_void GraphicWizardsLair( void ); // H原外付けHDDの復旧作業
_2002/11/07 自宅(1) 「復活の日: FreeBSD ディスククラッシュ事件総括」
_2004/01/22 三田(2) 「ディスクが BIOS から認識しなくても諦めるな!」

  1. knoppix 3.7 を「knoppix noswap」で起動。
  2. root shell を開く。
  3. dmesg | grep hda で、HDD の CHS(シリンダ/ヘッダ/セクタ) をメモ。
  4. CHS を掛算しておく。
  5. hdparm で HDD の DMA を変更。入力側は DMA off。出力側は DMA on にした。どちらも off の場合より、半分の時間で済むらしい。
  6. dd if=/dev/hda of=/dev/hdb bs=512 count=CHSをかけ算した数値 conv=sync,noerror でコピー開始。
さて、終わるのは何時間後だろうか。

補足 : knoppix :

knoppix の起動時に noswap をつければ、HDDにswap、つまりは書き込みをしなくて済むらしい。復旧作業時などは noswap をつけて動かしたほうが安全なのだろう。たぶん。

root shell は、画面下部ツールバー(?)のペンギンアイコンを押せばメニューの中に見える。管理者権限で操作ができる。らしい。

補足 : dmesg :

dmesg | grep hda
dmesg は、起動時のログを表示してくれるコマンド。…コマンドなのかツールなのかわからんけど。それを grep という「文字列を検索」するツールに丸々渡して、「hda」が含まれている行だけを表示する。

linux の場合、HDD は、
  • hda
  • hdb
  • hdc
  • hdd
といった感じで指定できる。

補足 : CHSの掛算 :

今回は、CHS(シリンダ/ヘッダ/セクタ) = 9964/255/63 だったので、9964 x 255 x 63 = 160071660。

補足 : HDDのDMA :

hdparm というコマンドを使えば確認・変更できる。

hdparm /dev/hda
HDDの設定状況が表示される。

hdparm -d0 /dev/hda
DMAを無効に。

hdparm -d1 /dev/hda
DMAを有効に。

壊れたHDDは、DMA on だと変なデータを返す可能性もあるとどこかで見かけたので、壊れたHDD側は DMA 無効にして作業してみたり。でも、利用時間が長いとどんどん壊れていく場面もありそうな。そういう場面では、DMA on にして、できるだけ短時間で吸い出したほうがいいのだろうか。いや、しかし、壊れたデータを吸い出しても無意味だしなぁ。

補足 : dd :

dd if=/dev/hda of=/dev/hdb bs=512 count=かけ算した数値 conv=sync,noerror

_Manpage of DD
dd はファイルを指定された入出力ブロックサイズで (デフォルトでは標準入力から標準出力へ) コピーする。

Manpage of DD より


if は、転送元。(Input)。
of は、転送先。(Output)
bs は、一度に読み書きするbyte数。

conv=sync,noerror は、下記の指定。
sync
エラーが出たところを詰めないで、代りに 0 で埋める。
noerror
読み込みエラーが出ても継続する。
壊れたHDDの場合、えてして読み込みエラーが発生するので、conv=sync,noerror をつけないと作業が途中で止まる・変な詰め方をされてしまうらしい。

conv=sync,noerror をつけると、HDDの終わりをチェックしてくれなくなるので、count=〜 で作業回数を指定しておくのだとか。回数は、HDD の CHS(シリンダ/ヘッダ/セクタ) を掛算した値。その回数分コピーをすれば、HDDを丸々コピーしたことになるはず。

ちなみに、CHSを掛算した値に、bsで指定した 512 byte を掛けてやれば、HDDの容量になってくれる、ということらしい。

#6 [tv] NHKをつけっぱなしにしてたらPM11:00からのドラマでヒビキおじさんの人が消防署の署長役(?)をやってた

なんだか火に関係する役が多い人だなぁ。

というか、主役の人よりヒビキおじさんの人のアクションのほうが気になってしまって、うーむ。

逢坂みえこ原作のドラマ化だったのか :

_火消し屋小町 - Wikipedia

あの漫画家さん、青年誌にも描いてたのか。知らなかった。少女マンガ誌・レディースコミックに描いてた頃は、単行本を集めてたっけ。>自分。絵柄・コマ割りがさっぱりしていて読みやすかった。

NHKのドラマ自体は2004年制作・放映、とある。今回の放映は再放送か。ということは、ヒビキおじさんの人のアクションも数年前のアクションということになるのでせうか。

民放とNHKの両方でドラマ化されてるというのもなんだか面白い。設定だけを見ても、かなり使えそうな原作だよなぁ。

にしても、小学館の青年誌に描いたらドラマ化可能な作品が生まれてきたあたり、集英社各誌の編集部に疑問を持ってしまう。作家の能力を生かすことができてないか、宣伝や企画力が足りないのでは。<考え過ぎ。

会社勤めしてた時期がある漫画家さんだったのね :

_逢坂氏のファンサイトでの情報 を見て、作品傾向に納得。

少女漫画出身の漫画家さんって、会社勤めしてた人と、学生から漫画家になった人では、作品の質がまったく違う印象が。後者は絵空事しか描けない傾向があるように思えたり。読み手が、「あー、そういうことあるある」と思えるようなシチュエーションの幅が圧倒的に少ないというか。学生時代のままで、キャラの造形が停滞しちゃってるというか。常人には思いもつかない絵空事を描ける能力があるなら、まだ生き残ることもできるだろうけど…。少女漫画にしろ、レディースコミックにしろ、少年・青年向け漫画作品と違って日常を舞台にした作品で占められているわけで。作家の体験量の違いが、残酷なまでに、作品に反映されてしまうのだろうなと想像。

2005/01/17(月) [n年前の日記]

#1 [zatta] 野口英世≠医聖

少し前、福島民報を読んでたら。何かのコラムで、「 _医聖 、野口英世が…」といった文があった。

観光ネタを増やしたい・盛り上げたいのはわかるけど。言い過ぎとちゃうか。「詐欺師、野口英世が…」ならともかく。

_野口英世、米国ではペテン師 :

専門家じゃないので真偽のほどはわからないし、ページがページなので信憑性はアレなんだけど。しかし、業績を検証することもなく『医聖』と称してるよりは、まだ、こっちのほうが納得がいく。

野口英世=財前五郎のモデル :

ついでなので、野口英世に絡んだ話を。野口英世は、『白い巨塔』に登場する、財前五郎のモデルになった人物です。共通点を列挙してみると…
  • 医者。
  • 田舎の、極めて貧しい農家の出身。
  • 実技能力だけが売り。(財前 : 手先の器用さ・手術の早さ = 野口 : 顕微鏡による観察作業の早さ)
  • 知名欲・権威欲の権化。
  • 自分の掴んだ地位を守るためには、事実を捻じ曲げることもいとわない。
  • 田舎に年老いた母が居る。母は息子のことを心配ばかりしているが、長い間、故郷に帰っていない。
  • 研究対象の病気で、命を落とす。
昨今放映されたTVドラマ版だけではピンとこないかもしれないけど。原作を読むと、上記の共通点が各所で際立って見えてくると思う。特に、貧しさとか、実技能力とか、そのあたり。…ついでながら。フツー、日本人の間で「野口」といえば。「ヒデヨ」じゃなくて「ゴロー」なわけで。…これはちょっと無理があるか。

さておき。そういうわけで、財前五郎、の、モデルの生家・記念館は福島県にありますのでよろしくです。財前五郎の、あの人格が、どのような過程をえて形成されたのか、野口英世の少年期を知れば納得です。…たぶん。

つーかコレ、でっちあげですが。ホントにモデルだったかどうかは知らない。でも、これだけ共通点があるのだから、少なくとも、キャラ設計時の参考資料にはなってるだろうと。偉人伝でもよく知られてる人物でもあるし。実在した色んな人物の要素を組み合わせて、財前五郎が生まれたのだろうけど。その中に、野口英世成分が結構入ってる気がするのでした。…特に、負の部分が。

#2 [windows] _俺の自爆ボタン

グッジョブ!

_どう使う? 「自爆ボタン」 :

この記事へのツッコミ

Re: 俺の自爆ボタン by けいと    2005/01/18 21:53
自爆できないうちのPCはどうすれば…TT
Re: 俺の自爆ボタン by mieki256    2005/01/20 12:35
> 自爆できないうちのPC

むむ? 終了できなかった、ということでせうか?
あるいは、MacやLinuxを使ってるとか?
Re: 俺の自爆ボタン by けいと    2005/01/20 19:12
なんででしょうね?
普通のWinXPなんですけど。
Re: 俺の自爆ボタン by mieki256    2005/01/21 17:47
自分も試してみました>自爆ボタン。

あー。ホントだ。ウチも自爆(WinXP終了)しませんでした。
一応、管理者権限を持ってるアカウントで試してるつもりなのだけどなぁ…

ひょっとすると、「Windowsが終了する」という言まで含めて
ジョークなのだろうか。<えー?
まあ、実用性ゼロのソフトだから、
実処理が行われなくても、特に問題ないような気もします(笑)

2004/01/17() [n年前の日記]

#1 [pc] _yodobashi.comでWinXP HOME UPGを注文

手数料も送料も無料なのはありがたい。明日、ローソンで代金払ってこないと。

#2 [anime] ベタだなー

プラネテス。ああいうベタな展開、結構好き。見ててニヤニヤしてしまった。それにしても各所がエロかった。

#3 [anime] 限界がきてるような

スピカ。以前、作画はどうでもいいとか書いたけど、撤回。さすがに奇形児はマズイ。最低限の作画レベルってあると思った。キャラも3DCGで描ける時代が早くこないものか。

#4 [comic] 風光る1〜15巻まで読んだ

すっかり内容を忘れてた。話が進むに従ってギャグシーンが増えてる感じがしたのは気のせいだろうか。

親父さんも読み始めた :

NHK大河ドラマの「新選組!」を楽しみにしてる親父さん。「新撰組」の漫画を持ってると言ったら、読みたいとのことで。何巻か読んだ後、清三郎は実際に居たのかと尋ねられたが、居るわけない。そのへん不安になるほど、良くできた作品ということなのだろうか。

2003/01/17(金) [n年前の日記]

#1 自宅サーバ機をひとまず階下へ

設定自体は終わったはずなので、一応、サーバ機を階下に設置。予想はしていたが、かなり動作音がウルサイ。更に、茶の間のTVのVHFチャンネルに盛大なノイズが。対策が必要。

サーバ機動作不安定の原因は引き続き調査中。自室のPCからTeraTermPro+TTSSH、あるいはVNCでサーバ機にアクセスして作業を行う。

2002/01/17(木) [n年前の日記]

#1 歯医者とパンク

歯医者行ってきました。自転車で。
走り始めて五分ぐらいで「あっ…足が…」ガクガクブルブル
運動不足です。ヤバ過ぎ。


帰り、自転車の前輪がパンク。
自転車屋さんで見てもらったら、単に空気が抜けていただけだったみたい。
でも、チューブをチェックしただけでも、千円取られちゃった。(;´Д`)ショボーン
今度から、自分でちゃんとタイヤのチェックしてから走ろう…
事故を避ける事にも繋がるし。
ていうかお金無いし(爆)


最近、コジマやヨドバシその他で買うより、近所のスーパーで買ったほうが安く買えることがわかってちょっぴり嬉しかったり>CD-R


ニュース見てて「訪パ」という単語が目に入る。
「ホパ」
なんかいい響き。

ホパを流行らせるのだホパ。
どうでホパ? いい感じじゃないホパ?
そうでもないかホパ。
あー、流行りそうに無いホパ…

なんでもいいから語尾につけると、キャラ立てるのも楽かもしれないと思ったりしたホパ。

2001/01/17(水) [n年前の日記]

#1 Linux導入挫折

自分、ここ数日、1日36時間周期になってる気が。

LinuxをメインPCにインストールしようかと考えていたけど。
HDD構成を考えると、ちと無理な感が。
Linuxのブート領域って、HDDの最初から8GBの範囲内じゃないとダメだったはず。
今のパーティションの切り方じゃ、また中身をバックアップして、パーティション切り直して…とかしないと条件を満たせない。ツライ。
かといって、別のHDDにインストール…で考えると、追加HDDの領域全部をLinux用にすることになりそう。MS-DOSの基本領域作るとドライブ構成全部変わっちゃうから。
追加分のHDD=12GByteを丸々Linux用ってどう考えても無駄だし。
導入、やめとくか。
使う必要性も最初から無いしなぁ。

2000/01/17(月) [n年前の日記]

#1 (NoTitle)どろ氏からの情報で、...

どろ氏からの情報で、昨日の日記に書いたPainterの怪しい動作は単にバグであることがわかりました。CPU、おかしくなってたわけじゃなくて良かった(笑) いや、バグがあるのは良くないんだけど。まあPainterだし(苦笑)

会長さんから送られてきたアニメビデオを鑑賞して、ようやくターンAの洗濯ネタがわかりました。見てて嬉しくなったです。なんだかこういうのいいなぁ。そして、ディアナ様萌え。

以上、25 日分です。

過去ログ表示

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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project