カテゴリー

アクセスカウンター


since 1996/06/14

アクセス状況

  • 2
  • 317
  • 325
  • 5,077

法線

本題に入る前に〜…いや、DirectX(3Dゲームでよく使われるプログラムの基盤みたいなの)でプログラミングをしている訳ですが、ここまで作るのに実は一ヶ月くらいかかってるのよ。ウインドウを汎用的に表示てきるモジュールと、地面っぽいのを出すモジュール。まぁ、地面っぽいのはまだ制作途中だけど。 で、本題ですが、この地面おかしくないですか?立体なんですが、影がありません。 いろんな本とかネットで調べた結果、原因が分かりました。 こういう3D画像って「面」の集まりだけど、その一つの面に垂直な線を引きます(そういうイメージをしてみて下さい)。で、光はその面に当たると、面に垂直な線を軸にその反対側へ反射しますよね?その軸のことを「法線」って言います。

実は、この地面。その法線がすべて上を向いています。だから、どこの面に光が当たっても平らな地面と同じ反射の仕方をします。なので、陰影が無いと… … めんどくせぇな…そのくらい上手くやってよ… と、思いつつ法線計算ロジックを探しながら、一晩かけて作ってみました。 ※3Dモデリングツールとかで作れば、勝手に計算してくれるんだけどね。これは動的に地面を生成したいので、こつこつ計算して作ってます。

結果 なんか、この影嘘臭くね? 続きは明日でいいや…orz

DirectXっぽい備忘録

管理者のメモです。まぁ、興味のある人は読んでも損にはならないかも。 2007年5月時点での情報なので、鮮度にご注意を。

DirectX

Microsoftが作ったマルチメディア処理用API群。 最新はDirectX10だけど、WindowsVista以降にしか入ってないし入らない。 以下のコンポーネントを含んでいる。

DirectX Graphics…2D/3D処理。Direct3DとかDirectDrawとか言われていたものが統合されたモノ。 DirectX Audio…BGMとかSEの再生。 DirectInput…主にキーボードとマウスとジョイスティック制御。 DirectPlay…ネットワーク系。 DirectShow…動画再生とか? Managed DirectX

.NET FrameworkベースのアプリからDirectXを呼ぶ為のAPI。 今後はMicrosoft XNAに置き換わる。

Microsoft XNA

いろんなプラットホームに対応するように見せかけた、ゲーム開発用フレームワークで、WindowsとXBox360に対応している。年間一万円くらい払えばこれでXBox互換ゲームも作れる(作ってもプレイヤーも年間一万円くらい払わないと出来ない)。 開発言語はC#。 ボーンスキャニング、ネットワーク系のコンポーネントが遅れてる?

OpenGL

オープンソースのグラフィックライブラリ。マイクロソフトとは直接関係ない。 純然たるDirectX以外の最近のテクノロジーはまだまだって感じ。ある程度形がしっかりしたらいい感じになるのかな(でも今からC#なんて覚えたくない)。 開発ツールが無料になった分、マイクロソフトも成長したなぁと思う。

ゲーム検定

ゲーム検定というのがあったのでやってみました。ゲームと言っても家庭用ゲーム機中心ですな。 http://ent.nikkeibp.co.jp/cgi-bin/ent_game.cgi 100問もあるんで、ちと大変でしたが。 あなたの総合得点は57点 全国平均 52点 全国順位(5月12日 22時現在) 48647位(160403人中) −−ジャンル別得点表−−−−−−−−−−−− 0_________50____ ハードウェア ■■■■■■■■■■■■ ゲームシステム&テクニック■■■■■■■■■■■■ キャラクター ■■■■■■■■■■■■■ ビジネス ■■■■■■■■■■ 雑学 ■■■■■■■■■ −−−−−−−−−−−−−−−−−−−−−−−−−− −−講評−−−−−−−−−−−−−−−−−−−−− あなたは「ゲーム大臣」 これだけの知識があれば、たいていのゲーム好きの人間 とは楽しく会話ができるはず。しかし、この先、もっと 深く広い知識を得ることで、世界はさらに広がるだろう。 貴方がもっとも詳しいゲームのジャンル: キャラクター 貴方がもっとも詳しいゲームの年代: 80年代後半までのゲーム誕生期 −−−−−−−−−−−−−−−−−−−−−−−−−− …いろんな意味で…orz 正直わからんところはわからんって選択肢が欲しいなぁ。たぶん、正解の中の4割くらいはわかって、4割くらいはわかんなくて適当。2割くらいはなんか微妙に知ってそうな問題だった。キャラクター問題なんて特によく知らない部類だし。 つうか、これ本当に16万人もやっているのか!?

キャレット

カーソルには、マウスカーソルとワープロとかで文字を打つ場所にあるカーソルの二種類あるわけですが、文字を打つ場所にあるカーソルのことを「キャレット(caret)」って言います。 Windowsが出来る前の時代は普通にカーソルって言っていましたが、Windows時代になってキャレットって言うようになったそうな。

つうか、そんなのプログラマーくらいしか知らないよ。

で、4/29のブログにDirectXっぽいネタを書きましたが、今は3D描画では無くて、UI(ユーザインターフェース)…つまり文字とかコマンドを入力するようなところにチャレンジしています。 普通のWindowsのプログラムなら、画面上にボタンとかテキストボックスとかをペタペタ貼るだけで作れます。しかし、DirectXにはそんなものはありません。ボタンなら、ボタンの四角い枠から、ボタン上の文字、ボタンをクリックしたという処理とか、クリックした時に凹んだ画像までそういうプログラムを全部書きます。 文字入力のコピペ処理なんて、文字の選択中は選択範囲の色を反転させるとか、CTRL+Cを押すとどうのとか、考えるだけでイヤになります。 …ってのはまぁ面倒なので、DirectXのSDK(Software Development Kit:ソフトウェア開発キット)にDXUTというオマケが付いているので、今回はそれを利用。 だがしかし!うまく動きませんorz テキストボックスにメッセージを入力すると、普通はカーソル(キャレット)は右に移動しますが、移動しません(T_T DXUTのサンプルでCustomUIというのがありますが、それも同様。試しに別のパソコン(Windows2000)で試しても同じ。 う〜む。 ググってもそれっぽい情報が出てこないんだよなぁ〜。うちだけの問題なのかなぁ。 とりあえず、DXUTのソースを追ってみると、

CDXUTEditBox::Render(エディットボックスの描画処理)内にあるm_nCaretがどうもカーソルの位置を示しているっぽい。 「hr = m_Buffer.CPtoX( m_nCaret, FALSE, &nCaretX );」ってところで、m_nCaretと文字情報から、実際の相対座標をnCaretXに格納してるっぽいが、nCaretXには常にゼロが入っている。 ↑のCPtoX(CUniBuffer::CPtoX)を辿ると、「Analyse();」という関数が常にE_NOTIMPL(そんなオブジェクトねぇよ)を返している。 ↑のAnalyse(CUniBuffer::Analyse)を辿ると、_ScriptStringAnalyseが常にE_NOTIMPLを返している。

って感じ。それ以上先はわからん。ScriptStringAnalyseはusp10.dllってところで処理が動いているみたいだけど、このDLLのバージョンを変えてみたりとかしてもダメだったので、とりあえずギブ。 … あぁ〜。今日の昼に食べた寿司は旨かったなぁ…(←現実逃避) … とりあえず、m_nCaretにカーソルの位置が入っているので、その分の適当な数字をCPtoXの中でnCaretXに入れてやるとうまく動く感じ(実際には全角1文字も半角1文字と判断しているようで、全角文字を入れるとおかしくなる)。 まぁ、この辺はフォントクラスから情報を貰ってごにょごにゅすればうまくいくのかな。いい加減時間をかけるのが勿体ないので、そんな方向で逃げよう。

そういえば、マビノギ(ネットワークゲーム)でも最近のパッチで文字入力(漢字変換)がおかしくなったけど、ゲームの開発者も同じような苦悩をしているのかな。

[…]

これからのネットゲー

久々にROBINのまんがコーナーでマンガを読んだ。相変わらず面白いな〜。 私がネットワークゲームの世界にはまった原因がまさにこのマンガ(BRITANNIAの勇者達)で、UltimaOnlineを題材にしたもの。 当時のネットワークゲームは、今のみたいに制限がほとんどなく、同じサーバにいろんな国の人が居たりとか、PK(ゲーム内で他の人のキャラを殺すこと)の制限が無いとか、死ぬとそこに死体が残ってそこからアイテムを盗んだりとかが出来た。 まぁ、このマンガはそれをおもしろおかしく描いてるけど、実際にそれがゲームの中で繰り広げられていた訳。 そこで、今までのネットワークゲームを振り返ってみる。 過去にゲーセンやコンシューマ(ファミコンとかの家庭用ゲーム機)の時代があったけど、どれにしても今やネットワーク対応ゲームであることが、一つの基盤になりつつある。 所謂対戦ゲームが単にインターネットというインフラに乗っただけと言えばそれだけだけどね。ただ、UltimaOnline(UO)の時代くらいから始まったMMO(多人数参加型)ゲームは、安定期というかむしろ衰退の方向に向かっている。 UOは確かによく出来たゲームだった。リチャード・ギャリオットという人の知識と経験と資本のなせた技とも言えるけど、それ以降それを大きく超えるゲームは見あたらない。 確かに攻城戦が面白いとか、画像のクオリティが高いとかはある。だけど、MMOというゲームは開発にかかる時間と費用と、その運用コストを考えると、攻城戦「だけ」とか、風景がきれい「だけ」ではビジネスに成り立たない。それが、今の衰退の原因のような気がする。 UOの何がよかったのか? プレイ時間に差があっても、古参/新参プレイヤーが一緒に遊べる(シンプルな装備、スキル制によるもの)。 遊びの幅が広い。40を超えるスキルがあったが、ROみたいに技ごとでは無く、1つ1つが個性的なスキルだった。たとえば、剣技、魔法、採掘、裁縫、大工、乞食、楽器、牧羊、検屍、弓、鑑定などなど。 「家」が持てた。また、内装などもかなり凝れた。 プレイヤーによるサポートシステム。 経済システム(莫大な金持ちが生まれづらい)。 こういった幅の広さと、プレイヤー同士の差の狭さが一つのブームの火付け役として貢献したんではないかなぁ、と思う。 でも、そのUOも度重なるパッチでシステムが複雑になり、また他のネットワークゲームが増えてきたことから、人が離れていった。 しかし、新天地にあったのは、ただの戦闘ゲームだったり、非ネットワークゲームに比べたら全く世界感の狭いものばかり。 結果、アメリカではオンラインゲームはかなり衰退していった。韓国は「国」がオンラインゲーム発展の為に助成があるらしい。また、日本に近くて「萌え」文化が存在する。 日本は、FFXIとか、モンスターハンターとかあるけど、オンラインゲーム自体がほとんど輸入に頼っていて、代理店自体は「販売店」としてとっかえひっかえゲームを売っているので、そういったベンダーに愛を感じ無いところがある。 果たして今後のオンラインゲームはどのように進化を遂げていくんだろう。 ※画像は上からUltimaOnline、CrossGate、RagnarokOnline(β版の時なので文字化けしてる)、FinalFantasyXI、マビノギ

[…]

ネットゲー

G/W中いくつかやりたいことの一つで、3D(DirectX)のプログラミングに挑戦中。 とは言っても過去に挫折している上、今回は2週間でやっと

平らな板の表示。 光源設定。 カメラを自由に動かす。 中心位置を自由に動かす。

…ができたくらい(しかもこっそり例外エラーが出てるし)。キャラクターとか細かいものは後回しで、とりあえず頭で思い描いているモノが出来ればいいなぁ。

ウルティマオンライン蘇りし王国

しばらくやっていないUOですが、新しいクライアントの情報がでていますね。 不安定だし、キャラがキモいUO3Dクライアントはさっぱり捨てて、あたらしくきれいになりました。 あの、昔ながらのタイル張りのUO2Dクライアントも名残惜しいですが、新しいのはこれはこれでいいかと。 んで、情報がいろいろでてたので貼り貼り。 4Gamer http://www.4gamer.net/news/history/2007.04/20070424172200detail.html YouTubeにもムービーがでてます。 4Gamerの画面を見ればわかるとおり、オブジェクトがズレズレですが、まぁ細かいところを気にするのは日本人の悪い癖。こういうところはじっくり直ればいいとして、ちゃんとカスタマイズハウスも再現されているし、クリエイターは大変だったろうなぁと関心。 ただ、結局のところ変化は見た目くらいなので、既存のプライヤーを留まらせることは出来ても、離れていったプレイヤーを戻すのは厳しいんじゃないかな。 いっそうのこと、完全3Dになればよかったのにとか。

雑記

職場で美味しんぼ(マンガ)の話が出たのですが、それについて何となく調べたら「美味しんぼDSレシピ集」なんてソフトがありましたw こんなのあったんだ〜 Amazon:B000MQT3QE あと、どうでもいい話なんですが、このサイトのサムネイル画像をクリックしても、うまく大きな画像が表示されない問題がありました。fswikiの元々の機能を使ってたんだけど、どうも動きが微妙〜。 ってことで修正済みです。

デザートドラゴン

サーバの設定をいろいろ直さないとならないんだけど、面倒でゲームばっかりやってます。 今朝は、マビノギで初めてデザートドラゴンと戦いました。大型モンスターは何種類かいるんだけど、こいつは週に一度だけしかでないので、今まであったこと無かったです。 とりあえず強いとか弱い以前に、ラグい! まぁ、それでも殴ればそれなりの経験値とお金が貰えるので、なかなか美味しいモンスターでした^^。

SPAM対策

しばらくblogをさぼっちゃったけど、少し生活が落ち着いたので、ぼちぼちいろいろ再開しようかなと思うこのごろ。 まずはサーバの入れ替えを早くしないと。このサイトはメールサーバの立ち上げ方とか書いてるけど、その中でサンプルのメアドとか書いたとたんにSPAMが飛んできます。 存在しないメアドなので、Errorを送信元に返すんだけど、当然SPAMメールなんで送信元が詐称されてるので、エラーで帰ってきて管理者の私宛にエラーメールが届くのです。 本来は、送信してきた段階でUser unknownで返せばいいのに、このサーバで使っているqmailは、受信部とメアドを調べる部分が分離されてるので、仕組み上それができません。一度受信してから判断しエラーを返してます。 その辺がむかつくので、今度はpostfixにしようかなと。 最近、グローリオブザローマンエンパイアというゲームを買いました。 まだあまりやってないので、後日レポートしようと思いマスです。 添付画像はマビノギです。新しいスキルが導入されてかなり楽しいですよ。

ちょっとUOってみる

なんか、いろいろバタバタしててブログも書いてませんが、最近のネタをいくつか・・・。 ・やっと新サーバの準備ができつつあります。 今週末は、、、どうだろう。ちょっと忙しくて微妙。 ・UOのアカウントが密かに生きていたので、ログインしてみました。2アカウントのうちの一つは止まってるので、さすがに家が一軒消えてましたが、過去の思い出がほとんどそっちに入ってたので、一緒に消えてました。トホホ。まぁ、復活するつもりもほとんど無いからいいけど、、、。 ついてにUO仲間の家(があった場所)を回ってみたけど、まだ結構残ってるのね。 ・昔delta0.netってドメインだったけど、今月末で契約が切れるので、アクセスできなくなります(実は未だちゃんと転送されてるはず)。 まぁ今日はこんなところで。

未だ課金(UO)

相変わらず研修&試験勉強で忙しいので、ブログのみ更新。 といっても、今日はたいしたネタが無いけどね。 クレジットカードの明細が来てたので、見たら未だにウルティマオンラインの課金がされてたとか・・・。半年に一回引き落としだから気が付かなかったよ。 せっかくだから、後でインストールして入ってみよう。 あとは全然関係ないけど、NECのサーバが3万円切ってる。 http://club.express.nec.co.jp/store/server/index.html

いくつかゲームネタ

UltimaOnlineのグラフィックが新しくなるそうです。 ・・・とは行っても過去からのクォータビューが変わるわけではないので、「きれいになるだけ」っぽいですね。 4Gamer/GameWatch ノーマークだったんだけど、Vanguardというゲーム(MMORPG)。 詳しいところはまだ読んでないけど、いろんな動物に乗れたり、家の内装をいろいろいじれたり、操船とかできたり・・・ UOみたいにマップが家で埋まるようなことが無いように、必要に応じてマップを広げるのは簡単な設計になってるみたい。まぁ、逆に言えばゲームマスターのさじ加減でゲームの楽しみが変わるかもしれないね。 4Gamer

CAESAR4発売へ

昔好きだったゲームで、CAESAR3というシミュレーションゲームがあったんですが、「4」が出るそうです。 http://www.caesariv.com/us/index.html 基本的にシムシティ風の街づくりゲームなんですが、舞台はローマ。 農場からは食料、海岸線からは粘土を掘って陶器作り、海からは魚、岩場からは鉄鉱石を掘って武器などを生産。気候や地域によって生産できない物は、他のヨーロッパ諸国と貿易をして得たり、逆に輸出したりして町を発展させるゲームです。 また、時々敵(近隣の敵対国や蛮族)が襲ってくるので、城壁やカタパルトで町を守り、軍隊も整備できたりします。 AoEみたいに短時間で終わるタイプではなく、じっくりまったりやっているゲームですが、戦闘もあるので時々起きる緊張感もおもしろかったりします。 「4」はまだ体験版しか出てないけど、発売されるのが楽しみな一作。

釣り

マビノギのネタが出たので、ちょびっと紹介。 本当はコンテンツ増やしたいけど、研修が終わるまでは忙しいので、ブログで勘弁です。 マビは生活系も重視されたMMORPGなので、釣りとか生産スキルで物を作ったりとかできます。当然でっかいドラゴンとか出てきてみんなで死にまくったりもOK。 まぁ細かいことを挙げるとキリが無いけど、馬に二人乗りしたりとか、二刀流ができたりとか、やたら強烈な魔法で攻撃したりとかもできます。