あ、へるばれモバイル

あ、へるばれモバイル by 無頼寿あさむ

主にゲーム関連の仕事をしているフリーライターの日記。企画、ゲームシナリオ、その他文章の仕事募集中。

◆ メニュー ◆

HOME | 最新日記(10件) | プロフィール | リンク
*** PCサイト(大きい画面)はこちら ***

乱れて交わる俺と姫」 WAFFLE
祝WAFFLE様10周年のファンタジーもの。AVG+エロエロH

ノベルゲームのシナリオ作成奥義」 秀和システム
シナリオの書き方に留まらず、ライターが担当するさまざまな作業を解説。企画・プロットに始まり各種資料やフローの書き方、台本の書き方、etc。プランナーを目指す人にもお勧め

◆ 置いてけぼり日記 ◆

2009/9/4 : ドラクエというゲーム


「ポートピア」は「ドラクエ」の前フリだった 堀井雄二氏のゲーム哲学
http://www.itmedia.co.jp/news/articles/0909/03/news106.html

今でもドラクエ関連は蚊帳の外なんだけど。

ドラゴンクエストというものが登場した瞬間は知らない。
ドラクエを知ったきっかけは、学校で出てくる話題にそれまでゲームに夢中になれなかった子がプレイしていたという事実を目撃してからだ。
それまでのファミリーコンピュータのゲームは、なんだかんだいって才能がものをいうものばかりだった。そのため、ゲームが下手な子はハイレベルな話題についていけず、うまい子はヒーローになって格差が広がるという構図ができていたわけだ。

ドラクエはその格差を縮めて、下手な子でもゲームの話題に参加できるようになった。
敵に勝てないのなら、勝てる場所に行ってこつこつレベル上げして、その時に得たお金で強い武器を買えばいい――誰でもいつかはヒーローになれる。これが、当時はとんでもなく画期的だったわけだ。
ナンバリングが上がっていくにつれて減っていったけど、機械が苦手(?)な女の子でも遊べるってことで、他のゲームよりも女の子比率も高かったような気がする。通っていた学校の様子を見る限りはね。

少し前に見たNHKの教育番組では、「子どもがゲームに夢中になるのは、現代の子どもの世界で無条件に褒め称えてくれるのはゲームだけだから。今の親は自分の子どもを褒めるのが下手だ」と子育てに警告していたけど。
リアルタイムにこの番組を見ていた時はマリオ関連のゲームを想像してなるほどなと納得していたんだけど、今考え直してみるとドラクエの方がその地位に近いのかもしれない。
何しろ、時間さえかければ誰でもその世界のヒーローになれるんだから。

でもね、いちおうドラクエはやったんだよ?
ドラクエ遍歴はMSX版の1と2で終わっちゃってるけど。
初めて1をプレイしたときには既にファミコンのドラクエブームは去っていたんだが、なるほど確かにすげーわと思った。しかしどこなく物足りなさがあったので(PCゲーと比べると良い子向けな印象だった)、バーチャファイター2に出会うまでゲーム機を買ってまでゲームをやりたいと思わず過ごしてきちゃったわけでして……。
もしかしたら惜しいことしちゃった? (´・ω・`)

あ〜。ネタ元の話はまったく引用してない。まいっか。

関連タグ: ゲーム


2009/9/3 : ソニエリのスマフォ


これかなり欲しいんだが……
http://gigazine.net/index.php?/news/comments/20090903_xperia_x2/

WM6.5自体相当パワーアップしているようなので、UMPCからスマートフォンにまた帰ってきてもいいかもしれないかなとか思いつつあるんだけど。
「PC用のWindowsが走る小型端末」という魅力に取り付かれた自分にゃ、本当に帰ってこれるかどうか。

というか、現行の「WILLCOM D4+A4ノート」のバランスが結構絶妙なんだよね。
A4ノートをネットブックに変えて同じ作業環境が保てるものじゃないし、D4を現在手に入るネットブックに変えたとろこで、場所を選ばずいじり倒すにはまだまだ大きすぎる。D4をスマートフォンに変えてもいいけど、最近趣味で開発しているソフトウェアがWindows Mobileで走らないのが辛い(笑)
せめてWindows用の秀丸が走る程度のWindowsエミュレータとか搭載してくれればと思ったりするけど、それはもうスマートフォンの範疇じゃない。
テキストの打てる小型端末としてのベターは、当分変えられそうに無いようだ。

auでWM6.5搭載スマフォ出たら考えるかもしれないけどね。

関連タグ: モバイル


2009/8/3 : 最近見た映画


最近書いていなかった気がするので、まとめて書いておく。
もっかい見たい映画は「ウォッチメン」「トランスフォーマー」、早く続きを見せろ映画は「T5」「ヱヴァ」ってとこかな。

あと「BALLAD(実写版アッパレ大合戦)」の予告見たんだけど、これは見ていいのかなと思いつつある……誰か止めて ><

5月
○ウォッチメン
Dr.マウンテンの下半身がやたら気になるけどすぐに慣れるよっ!
ロールシャッハとナイトオウルにしびれた。
「正義のための暴力」が正当化されたり愛に変わったりするため、見終わった後はしばらく性格が歪むので注意。成人指定は正解かと思われる(笑)

6月
○ザ・スピリット
「シンシティ→300」という流れで期待していたんだけど、漢気溢れていたのは主人公よりもサミュエル・L・ジャクソンだった。
ストーリーとして不死と女たらしが意外なところで役に立つというどんでん返しはよかったものの、シンシティ、300を期待していた自分にゃやや不完全燃焼気味。

○トランスフォーマー/リベンジ・オブ・ザ・フォーレン
邦題の「トランスフォーマー/リベンジ」は詐欺だからやめれ。これは原題通り「フォーレンの復讐」とするべき映画。
オプティマスがしびれるの泣けるの燃えるのってそりゃもうたまらん。ジェットファイヤーが今回限りの登場なのは惜しすぎる。

7月
○ターミネーター4
T3は無かったことにしたい人が多いらしいけど、受け入れられる人ならT4は無茶苦茶面白いだろう。全シリーズ見ている人なら、「あれはあのシーンの再現なんだ」という楽しみ方もできる。
これまでと同様続きはあっても無くてもいいような結末になっているが、いくつか解決されていない要素(ジョンの子供とかね)はあるのでT5にも期待したいところ。
シュワミネーターがシュワである時間は結構短し。でも登場シーンは燃えた。

○ヱヴァンゲリヲン新劇場版:破
DVDで済ませるつもりだったんだけど、評価読んでいたらいても立ってもいられなくなり、ついかっとなって。
「『新世紀〜』だとここで〜」と思い出しているとひょいっと交わされて、「なるほどそうきたか!」とニヤニヤする映画。序と同じくラストのシンジが見どころなのかな。

○ノウイング
序盤はパニック、中盤はホラー、最後は……。
ニコラス・ケイジの父親っぷりはよろしいんだけど、見終えた直後は「彼の努力はすべてが無駄だったのでは?」と思ってしまった。
でも本当は、父親ががんばる姿を子供に見せること自体に意味があったんだろうね。
やるべきことを終えた後のニコラス・ケイジの演技は絶品モノ。

関連タグ: 映画


2009/7/19 : UMPCはエロゲでどこまで遊べるのか


UMPCというかMIDというかネットブックというか、Centrino Atom採用PC全般の話。
Atomが採用されているPCのスペックは、省電力を抑えに抑えまくった副作用? として一般的には遅いとか弱いとかいわれている。
実際問題、手元にあるWILLCOM D4なんかのスペックはこうである。

 プロセッサ Intel Atom Z520 1.33GHz
 メモリ 1GB
 ディスプレイ Graphic Media Accelerator 500
 表示解像度 1024 x 600 True Color

AtomはHyper-Threadingテクノロジが採用されており、OSからは2個CPUが搭載されているように見える。しかしながらこれは、他のHT採用CPUのように有り余るパフォーマンスを効率よく使うというものより、貧弱なパフォーマンスを無駄なく使い切るという考え方に近い。だもんだから、コア数が増えないうちはシングルスレッドで効率よく処理できるものを走らせた方が処理速度は期待できるんじゃないかと思われる。
Celeron並とかいわれているしね……。

いきなり悪い話から書いているから、ゲーム用としてはどうしようもないCPUじゃないのか? と思う人もいるだろう。事実、自分もそうだった。
しかしAtomはCPUだけのアーキテクチャーでは無い。
上のスペックにも書いてあるけど、チップセットに統合されたGPUもうまくつかっていけば、実は結構使えるものになる。
Atomのチップセットに乗っているGPUは、かつてPowerVRと呼ばれていたグラフィックチップの技術が使われており、SEGA DreamcastやiPhoneなどが採用しているテクノロジがこの中に入っている。
また専用のデコーダを内蔵しているので、Media PlayerやAdobe Flash Playerではガクガクな動画もチップ支援機能を呼び出してやれば結構スムーズに再生してくれる。
http://www33.atwiki.jp/d4matome/pages/19.html#id_f400d33c 「H.264の再生支援」
これは何をやっているかというと、コーデック部分をCPUではなくチップセットに搭載されているハードウェアコーデックを呼び出している。
つまり、CPUだけでなくハードウェアの機能もまんべんなく使っていけば、Atomは決して使えないマシンではないのだ。
GMA500アクセラもまた結構馬鹿にならないパフォーマンスも持っている。そこを使わずして、Atomは遅いと語るプログラマーはちょっと調査不足かも。

──ほんとですってば(笑)

次回、その方法にせまる! ……かも。

関連タグ: PC ゲーム


2009/6/8 : もうザクヘッドのせちゃえよ


何だか夏休みの宿題というかアサガオ観察日記の風体になってきた……。

[画像リンク]

昨日の朝見たらBパーツ上から背骨? が出ていて「グロさが増したなあ……」とか思いきや、今日になったら胴体と両腕が生えていてびっくり。
mixiでも同じ写真を掲載してザクヘッドの話をしたら、マイミクの人がコラージュでこんなのつくってくれました(笑)

 http://mixi.jp/view_diary.pl?id=1191705359&owner_id=181089
 コメントの一番上にて

日に日に画質が上がっているのは、少しずつズームを上げているからだったり。
今回のは1.5倍くらい。なんとかブレ無しでいけてます。

関連タグ: 1/1ガンダム


2009/6/5 : 下半身ガンダム


ガンペリーでの空中換装に失敗して、下半身だけ取り残されたガンダム。
なにやってんだよハヤトぉ!! という図。

[画像リンク]

以前よりシュールさが増したかもしれーん。

関連タグ: 1/1ガンダム


2009/6/4 : みな…なんとか


というもの。
http://udagawafriday.ifdef.jp/minantoka.html

[画像リンク]

うちのイメージカラーを設定するとこんな感じかな。

そいやお台場ガンダムに関する日記に専用タグを付けました。もしかしたら、ちょいちょいネタにするかもしれないので。完成した暁には飽きると思いますけど(笑)
「1/1ガンダム」タグへのリンク(6/8タグ名変えました)
今日のガンダムは久々に見た目が更新されていて、腰回り……冷却フィルムが出てくる赤いアレと四角の黄色いアレができあがっていました。
撮影できたらまたアップするぜー。


2009/6/3 : 連邦軍のV計画を目撃した


お台場の1/1ガンダムだけど、ゆりかもめからだとこんな風に見えます。

[画像リンク]

ゆりかもめから見えるのは、せいぜいデジカメで撮影できる程度の時間。
ピントを合わせる時間は無いので、ズームは等倍にして、あらかじめピントを合わせた状態で撮影に臨んでみた。
上記の写真は以下の場所から撮ったものだ。

[画像リンク]

最初の写真を拡大するとこんな風。

[画像リンク]

見ての通り、まだBパーツしかありません(笑)
しかも見えるのは数秒程度なので、ゆりかもめに乗っている人たちでこれに気付くのはほぼ皆無だったり。
まあ、腰から上もできてくれば「おや?」と思うかもしれないけどね。

関連タグ: 1/1ガンダム


2009/5/24 : 電子工作してた


「USB温度・湿度測定モジュール」というものを入手した。
http://www2.strawberry-linux.com/products/usbrh/

[画像リンク]

単に室温を知りたいだけなので、別に100円ショップで買えばよしなんだが……まあ、なんとなく。
実際に使うにはプログラムを組む必要があるのだけども、使えるAPIは結構シンプル。

[DllImport("USBMeter.dll",CharSet = CharSet.Ansi)] public static extern String FindUSB(ref long index);
[DllImport("USBMeter.dll",CharSet = CharSet.Ansi)] public static extern long GetTempHumid(String dev,ref double temp,ref double humid);

ドライバは自動認識・自動インストール、供給されているUSBMeter.dllから上の2つを呼び出せば十分なわけで、

 String USBDEV = ""; // デバイスID
 long USBNUM = 0; // デバイスの数 or インデックス
 double temp = 0; // 温度(度)
 double humid = 0; // 湿度(%)

 USBDEV = FindUSB(ref USBNUM);
 GetTempHumid(USBDEV,ref temp,ref humid);

C#だとこんだけで温度が引っ張れる。
実はサンプルにはVBの場合とVCの場合しか無かったので、あえてC#で挑戦ってことで(笑)
Cサンプルを参考にアンマネージAPIの呼び出し宣言を書いていたのだけど、一部のlongパラメータがそのまま使えずに難儀した。あれこれ試していくうちにintにすればOKってことで落ち着いたが。
諦めかけたりもしたけど、メーカーサイトにあるサンプルアプリの再現はこの通り完成。

メーカーサイトには対応OSはXPと2000と書いてあるが、この通りVistaでも動かせるようになっている。.NET Framework呼び出しも少し工夫すればOKだ。

[画像リンク]

ここまでできればあとは使いたいアプリに組み込むだけさーといいながら、実は温度計アプリ以上にネタはなかったりする(笑)
メーカーから提供される制御API「USBMeter.dll」の内部はブラックボックスであり、提供されているAPI自体もあとはテスト用ヒーターON/OFFとか、基板についているLEDのON/OFFとかしか機能は無い。本当にシンプルな回路なのだ。
以下にC#用に書いたラッパーを置いておくので、興味のある人はいじってみてほしい。もちろん、回路購入は必須です(笑)


  ■使い方
  public USBMeter usbMeter = new USBMeter(); // オブジェクトの初期化
  if(usbMeter.IsUSBMeter()){ // 回路が認識できるか?
    usbMeter.GetData(); // 値を取得
    textBox1.Text = usbMeter.Temp.ToString(); // 温度(℃)
    textBox2.Text = usbMeter.Humid.ToString(); // 湿度(%)
  }


  /// ----------------------------------------------------------------------
  /// <summary>
  /// USBMeter.dll呼び出しクラス
  /// </summary>
  /// ----------------------------------------------------------------------
  public class USBMeter {
    /// ------------------------------------------------------------------
    /// <summary>
    /// モジュールの検索
    /// </summary>
    /// <param name="index"></param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    [DllImport("USBMeter.dll",CharSet = CharSet.Ansi)]
    public static extern String FindUSB(ref long index);

    /// ------------------------------------------------------------------
    /// <summary>
    /// 温度・湿度の取得
    /// </summary>
    /// <param name="dev"></param>
    /// <param name="temp"></param>
    /// <param name="humid"></param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    [DllImport("USBMeter.dll",CharSet = CharSet.Ansi)]
    public static extern long GetTempHumid(String dev,ref double temp,ref double humid);

    /// ------------------------------------------------------------------
    /// <summary>
    /// ヒーターの制御
    /// </summary>
    /// <param name="dev"></param>
    /// <param name="val"></param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    [DllImport("USBMeter.dll",CharSet = CharSet.Ansi)]
    public static extern long SetHeater(String dev,int val);

    /// ------------------------------------------------------------------
    /// <summary>
    /// LEDの制御
    /// </summary>
    /// <param name="dev"></param>
    /// <param name="port"></param>
    /// <param name="val"></param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    [DllImport("USBMeter.dll",CharSet = CharSet.Ansi)]
    public static extern long ControlIO(String dev,int port,int val);

    /// ------------------------------------------------------------------
    /// <summary>
    /// ファームウェアバージョンの取得
    /// </summary>
    /// <param name="dev"></param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    [DllImport("USBMeter.dll",CharSet = CharSet.Ansi)]
    public static extern string GetVers(String dev);

    /// ------------------------------------------------------------------
    /// <summary>
    /// 温度・湿度の取得(2)
    /// </summary>
    /// <param name="dev"></param>
    /// <param name="temp"></param>
    /// <param name="humid"></param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    [DllImport("USBMeter.dll",CharSet = CharSet.Ansi)]
    public static extern long GetTempHumidTrue(String dev,ref double temp,ref double humid);

    /// <summary>
    /// デバイス名
    /// </summary>
    public String USBDEV = "";

    /// <summary>
    /// FindUSBで取得される数値
    /// </summary>
    public long USBNUM = 0;

    /// <summary>
    /// パラメータ
    /// </summary>
    public struct USBMETER_DATA{
      /// <summary>
      /// 温度
      /// </summary>
      public double temp;

      /// <summary>
      /// 湿度
      /// </summary>
      public double humid;
    }
    public USBMETER_DATA Data;

    public USBMeter() {
      Data.temp = Data.humid = 0;

      USBDEV = "";
      USBNUM = 0;
      try{
        USBDEV = FindUSB(ref USBNUM);
      }catch{
        USBNUM = 0;
        USBDEV = "";
      }
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// USBMeterが有効かどうかのチェック
    /// </summary>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    public bool IsUSBMeter() {
      return USBNUM > 0 && USBDEV != "";
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// 値を取得する
    /// </summary>
    /// ------------------------------------------------------------------
    public void GetData() {
      GetTempHumid(USBDEV,ref Data.temp,ref Data.humid);
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// 値を取得する(2)
    /// </summary>
    /// ------------------------------------------------------------------
    public void GetData2() {
      GetTempHumidTrue(USBDEV,ref Data.temp,ref Data.humid);
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// 温度を取得
    /// </summary>
    /// ------------------------------------------------------------------
    public double Temp {
      get {
        return Data.temp;
      }
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// 湿度を取得
    /// </summary>
    /// ------------------------------------------------------------------
    public double Humid {
      get {
        return Data.humid;
      }
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// ヒーターON/OFF
    /// </summary>
    /// <param name="b">ONならtrue</param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    public void SetHeater(bool b) {
      SetHeater(USBDEV,b ? 1 : 0);
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// LEDのON/OFF
    /// </summary>
    /// <param name="port">LEDポート 0-1</param>
    /// <param name="b">ONならtrue</param>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    public void SetLED(int port,bool b) {
      ControlIO(USBDEV,port,b ? 1 : 0);
    }

    /// ------------------------------------------------------------------
    /// <summary>
    /// ファームウェアバージョン
    /// </summary>
    /// <returns></returns>
    /// ------------------------------------------------------------------
    public string GetVersion() {
      return GetVers(USBDEV);
    }
  }



関連タグ: PC 開発


2009/5/1 : Twitterは有利?


GoogleはTwitterのランキング特別扱いしている?
http://www.sem-r.com/google09/20090430150112.html

インデックス化をしていく上でたまたま相性がよいってことなのですかね。
twitterは特定ユーザーへのリプライはリンクで結んでいくけど、会話が加熱していけば、あるコミュニティ内で網の目のようにリンクが結ばれていくわけだ。
それが同一テーマであればあるほど、内部リンクが密になればなるほど、Googleからすれば重要な内容であると判断して順位が上がっていくと……?
なんとなくだけど、そんな感じなのかな。

そういう意味では、ブログなんかも同じ環境が自然にできあがるはずなんだけど……でもほら、ブログってもうアレですし。

関連タグ: Web


◆ バックナンバー ◆

2009年09月 2009年08月 2009年07月 2009年06月 2009年05月 2009年04月 2009年03月 2009年02月 2009年01月 2008年12月 2008年11月 2008年10月 2008年09月 2008年08月 2008年07月 2008年06月 2008年05月 2008年04月 2008年03月 2008年02月


Copyright (c) 無頼寿あさむ/Powerd by Digital Cottage.Net
ご意見ご感想ネタの提供は、assem-blage@digital-cottage.netにどうぞ