スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

駅のホームで起こった一瞬の出来事。 (気を付けて下さい)

先日、駅で電車から降りる人を待っていた時の事です。
(全員降りた後、自分が電車にのろうとしていた。)


【参考画像】
電車1

上記のように、
最後の女性が降りる途中だったのですが、次の瞬間・・

【参考画像】
電車2


・・・えぇっ!?

なんと、女性がホームと電車のすき間に落下していきました。
(携帯電話に集中していたのか、 えらく無言で落下。


で、その後 なんかこんな状態になっていたので↓


【参考画像】
電車3


一番 近くに居た男性の方々が 僅か数秒で助けてました。

いや、ビックリしました。

駅によっては、
駅とホームの間に数十センチすき間が開いている事もあるので
気をつけないといけないですね。
(地下鉄は、そんなに隙間が開かないような構造になっていたような気がする)
スポンサーサイト

テーマ : 日記 - ジャンル : 日記

福岡ゲームフェスティバルに行って来た

福岡ゲームフェスティバルに行って来ました!(`・ω・´)

で、現場の雰囲気についてですが、「フェスティバル」と名前がついているものの、
別に「わっしょい!わっしょい!」みたいな お祭りの感じは 無かったです。


なんというかアレですね。

ゲーム販売店の中には、
店の片隅にテレビが1~2台 置いてあって、 ゲームの試しプレイが出来るコーナーを設けてる所
あるじゃないですか。
(プレイヤーは淡々と試しプレイをしている。

まさに、その試しプレイコーナーの様な雰囲気でした。
・・・もっと、熱狂しててもいいと思う!

司会とかが居ないから、「適当に眺めて行ってね」みたいな感じになるのではなかろうか。
入場料も無料ですし、会場自体が別に仕切られてる訳でもないので尚更。

例えるならば、歩行者にチラ見されて 興味を持ってもらえず そのまま通り過ぎ去られる
ストリートミュージシャンみたいな状態である。


まぁ、雰囲気の話は置いておいて いろいろとコーナーを見てきました。
まずゲームの原画を見ました。

キャラクターの横、正面、斜め上など、
様々な角度から見た場合の図が描かれてました。

実際に絵をカメラで撮って、この記事に添付した方が分かりやすいとは思うのですが、
『撮影禁止』との警告があったので断念。
(直前までその注意書きに気付かず、撮影する準備をしてました。危なかった。)


次に見に行ったのは企業のPRコーナー。
そこでは企業の簡単な説明と、企業が制作したゲームのタイトルなどが
パネル一枚に纏められてました。

自分は、「入社を希望する際には、 ・・・」みたいな
職ごとの 必要な能力やアドバイスなどもあるのかな? と想像していたのですが、
そんなものは無かったです。
(んー、残念・・・!)


その後は、新作のゲームが展示されているコーナーへ。
とりあえず、 "レイトン教授"をプレイしている6歳くらいの男の子が居たので
その様子を眺めてました。

よくある川渡りゲームをクリア出来なくて、
なんか 物凄く考え込んでいました。

※川渡りゲーム
一度に船に乗れるのは2匹。
オオカミとニワトリだけ取り残されると、オオカミがニワトリを食べてしまい・・
・・・みたいな条件をクリアし、最終的に全員を川の向こう岸に渡らせるゲーム。
(色んな亜種が存在します)
【参考URL】オオカミと羊とキャベツ
【参考URL】危ない家族、川を渡る

テーマ : 日記 - ジャンル : 日記

これで "2次元と3次元の世界を行き来" できるぞ!

【リンク】 ◆解説系TOP◆

今日は、2次元と3次元の座標の相互変換についてのお話です。

別の次元(2←―→3)へ座標を変換する方法を紹介します。
別に、自分がアニメの世界に入り込んだり、アニメのキャラクターが現実の世界に出てくる、
という様な意味ではありませぬ。


では、まずコレをご覧下さい。

【参考画像】
メタセコイア

メタセコイアです。

メタセコイアでは、普通にカーソルでモデルの表面を選択する事が出来るんですが、
(写ってないですが、黄色くなっている部分がカーソルで指されています

よく考えたら、謎ですね。
x軸とy軸しかないウィンドウ(2次元の世界)から、
x、y、z軸の3次元の世界を選択できています。

一体どうやっているのか?
今日は、この謎の部分を解説します。
(まぁ、先に結論を言ってしまうと、行列で2次元と3次元の座標を変換してます。

では、下記の様な順で書いていこうかな、と。
-----------------------------------------
【1】3次元→2次元への変換
【2】2次元→3次元への変換

-----------------------------------------



まず【1】について。
普段 意識しないかもしれませんが、3Dモデルをウィンドウに表示している時点で、
3次元→2次元の、次元を超える変換が行われてます。

・・・で、
そもそも、DirectXでは どのような過程を経て3Dモデルが描画されるのか。
実は、下記の様なややこしそうな計算を経て描画されてます。

ウィンドウ上の座標 = モデルの座標×ワールド変換行列×ビュー行列×射影行列×ビューポート行列


ワールド変換行列 ・・・ 拡大、回転、オフセットなどで、3次元世界の座標系に変換する行列です。
ビュー行列 ・・・ DirectXではカメラを設定します。そのカメラを基準とした座標系に変換する行列です。
射影行列 ・・・ 視錐台を立方体に変換する行列。(カメラ近くの物体は大きく、遠くの物体は小さく見えるように変換。遠近感が生まれる。)
ビューポート行列 ・・・ 射影座標系から、スクリーン座標系に変換する行列。(これでウィンドウ上の座標になる!)


図で説明すると、こんな感じ。
【参考画像】
3次元→2次元


で、ワールド変換行列は何をしたいかによって色々と変わる(回転、スケール変換など)
のですが、
------------------------------------------
・ビュー行列
・射影行列
・ビューポート行列

------------------------------------------
これは求め方が決まっています。

とりあえず、 ビュー行列射影行列は、DirectXに自動的に生成してくれる関数があるので、
それを使えば問題ないでしょう。


ビュー行列の生成
D3DXVECTOR3 vEyePt( -0.0f, 0.0f,-3.0f);    //カメラの位置
D3DXVECTOR3 vLookatPt( -0.0f, 0.0f, 0.0f ); //カメラの注視点の位置
D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f ); //カメラの上方向の位置
D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
Device->SetTransform( D3DTS_VIEW, &matView );


射影行列の生成
D3DXMatrixPerspectiveFovLH( &matProj, D3DXToRadian(90.0f), (float)640/480, 1.0f, 100.0f );
Device->SetTransform( D3DTS_PROJECTION, &matProj );

※関数の詳細や、行列の要素の詳細はこちらに書いてあります↓
【参考URL】D3DXMatrixLookAtLH 関数
【参考URL】D3DXMatrixPerspectiveFovLH 関数

そして、最後のビューポート行列の要素はこのようになってます。

【参考画像】
ViewPort_mat.jpg

また、自分のウィンドウは640×480にしているので、
その場合の ビューポート行列はこうなります。
320     0    0    0
 0 -240 0 0
 0 0 1 0
320 240 0 1


では、全ての行列の説明をし終わったので、
実際に 3次元→2次元の変換が出来ているか調べてみましょう。

※ワールド変換行列は、単位行列、
ビュー行列と射影行列は、ヘルパー関数が生成したものを利用します。


ひとまず、左上の頂点が(-2 2 0)のポリゴンを表示してみたところ、
ウィンドウの座標上では(160 80)になりました。

【参考画像】
実験

計算があっていれば、

(-2 2 0)××ビュー×射影×ポート = (160 80)
となる筈です。
※長すぎるので、各 行列名は省略してます。

では、実際に計算して見ます。

【参考画像】
3次元→2次元2


見事、 結果が一致しました。
3次元から2次元へ変換する際は、こんなややこしい事をやっていた訳ですね。


では次に【2】について。
(2次元→3次元の変換)

これは、ちょっと行列に関する知識が必要となります。

-----------------------------------------------------------------------
・行列A × 逆行列A = 単位行列
・行列A × 単位行列 × 単位行列 ・・・ = 行列A

-----------------------------------------------------------------------
行列に逆行列をかけると単位行列になる、という性質と、
行列と掛け算すると単位行列になるような行列が逆行列、とも言える)

何回 行列に単位行列をかけても、行列の要素は変化しないという性質です。

この性質を用いれば、先ほどの式を下記の様に変形できます。
3次元座標×ワ×ビュー×射影×ポート = 2次元座標
3次元座標×ワ×ビュー×射影×ポート×逆ポート = 2次元座標×逆ポート
3次元座標×ワ×ビュー×射影×単位行列 = 2次元座標×逆ポート
3次元座標×ワ×ビュー×射影 = 2次元座標×逆ポート
3次元座標×ワ×ビュー×射影×逆射影行列 = 2次元座標×逆ポート×逆射影行列
3次元座標×ワ×ビュー×単位行列 = 2次元座標×逆ポート×逆射影行列
3次元座標×ワ×ビュー = 2次元座標×逆ポート×逆射影行列
3次元座標×ワ×ビュー×逆ビュー行列 = 2次元座標×逆ポート×逆射影行列×逆ビュー行列
3次元座標×ワ×単位行列 = 2次元座標×逆ポート×逆射影行列×逆ビュー行列

3次元座標×ワ = 2次元座標×逆ポート×逆射影行列×逆ビュー行列

※ややこしく見えますが、逆行列をどんどん右側からかけてるだけです。


で、最後の式を見てください。
この式を使えば、下記の様にして
(160 80)×逆ポート×逆射影行列×逆ビュー行列 = (-2 2)

2次元から3次元上の座標へ戻せます。
※但し、z座標は分かりません。 2次元へ変換した際にz座標の存在が消えてしまうからです。
(不定積分みたいな感じですね)

つまり、xとyは分かるが、奥行きが不明という状態。


しかし、メタセコイアでは、zが不明でも 3次元上の物体を指すことが出来ます。
これは、何故か?

実は、レーザーのような感じで当たり判定を行ってます。
z座標が分からなくても、
(-2 2 0)
(-2 2 1)
(-2 2 2)
(-2 2 3)
(-2 2 4)

みたいに、 z方面へずっと伸びて行くレーザーだと考えれば、
3次元上にある物体に当たる可能性があるわけです。

この当たり判定に関してはまた次回!
ではでは(`・ω・´)ノシ

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

"ゲームフェスティバル"に行くぞ(`・ω・´)

えと、 2月27日(土)ゲームフェスティバルに行こうと思ってます!


※2月27日(土) ~ 2月28日(日)の期間で福岡ゲームフェスティバルというものが
開催されるとの事です。
-----------------------------------------------------------
●主催:福岡コンテンツ産業拠点推進会議
●期間:2月27~28日
●場所:イムズ
●時間:10時~20時
●参加:無料
※"なりきり!ゲームマスター"のみ事前申し込みが必要。
-----------------------------------------------------------


で、 具体的な催し物は このようなものとなっている模様。↓
--------------------------------------------------------------------------------
(1)ゲームグラフィック・ミュージアム
福岡で活躍するゲームクリエーターの方が描いたゲームの原画を展示。


(2)ゲームソフト体験コーナー
福岡のゲーム会社が作ったゲームソフトで遊べるコーナー。

・「レイトン教授と魔神の笛」(株式会社レベルファイブ)
・「NARUTO-ナルト- ナルティメットストーム」(株式会社サイバーコネクトツー)
・「ワンピース アンリミテッドクルーズ」(株式会社ガンバリオン)

等、6タイトル予定。


(3)福岡ゲーム産業コーナー
福岡で活躍するゲーム会社のPRコーナー。


(4)キャラクターデザイン体験コーナー
ゲーム開発機材を使って、ゲームに登場するキャラクターの色つけができるコーナー


(5)なりきり!ゲームマスター
自分でゲームのオリジナルキャラクターを作り、
"レイトン教授"のゲームの中で動かす
体験が出来るコーナー。
--------------------------------------------------------------------------------

個人的に興味があるのは、(3)の企業のPRコーナーです。
(どんな企業からのメッセージがあるのかなー、とか思ってます。)


ともかく、 自分はこの催し物に行って来ようと思います!
ついでに、近くにあるジュンク堂書店にも寄って行こうかな。
(参考書などを探してみるのである)

テーマ : ゲーム - ジャンル : ゲーム

物凄く不思議な曲・・・!! (すごい)

Youtubeで、とても不思議ですごい曲を見つけました。

色々と調べてみたところ、その曲をリリースしたのは、
"Sound Horizon"という音楽ユニットの方々だそうです。
Revoというサウンドクリエイターの方を中心として活動。


かなり前から活動をしていたようなのですが、今まで知りませんでした。
知っていたら、容赦なくCDを買っていたと思います。
(もう、廃盤になっているらしい・・・(´・ω・`))


とりあえず、ウィキペディアとRevoさんの公式サイト。
【参考URL】Sound Horizon - Wiki
【参考URL】sound-horizon.net


そして、視聴した曲。  (いっぱいあります)

⊿ 1st Story Renewal CDChronicle_2nd.jpg
Chronicle 2nd 黒の預言書
Chronicle 2nd 沈んだ歌姫
Chronicle 2nd 海の魔女
Chronicle 2nd 書の魔獣
Chronicle 2nd キミが生まれてくる世界

⊿ 3rd Story CD
Lost.jpg
Lost 魔法使いサラバント
Lost 檻の中の遊戯
Lost 白の幻影 (White Illution)
Lost ゆりかご


※まだまだありますが、あとは"関連動画"から見た方が手っ取り早いかもしれません。
というわけで以下略!

ともかく、個性的で印象に残る曲ばかりでした。

テーマ : 日記 - ジャンル : 日記

ジャンプ12号感想

●ワンピース
やはり、 エースはお亡くなりになりました。
"ビブルカード"やサブタイトルでも、死んだという事が表現されてましたし、
間違いないでしょう。

ところで、マルコ隊長の 不死鳥の能力って何なんでしょうか?
今のところ、体が火になったり 空を飛んだりはしているのですが、
『不死』という事に関する能力が無いんですよ。

生き返らせたりとか、転生したりとか、そんな能力は無いのでしょうか?
『不死』関連の能力が無いと、そこら辺の鳥と変わらぬ!

"不死鳥"を出したからには、 絶対 何か意味があると思うんですけども・・・。
(エースは確かに死にました。そして生き返りました。 みたいな展開とか)

※追記※
マルコ隊長自身が、ダメージを受けても再生できるというのが
『不死』の能力にあたるっぽいです。
普通にマルコ隊長は、死にそうになっていたので
不死身というイメージが消えてしまったのかもしれない。
(不死といっても、海楼石なんかで能力を封じられれば死んでしまうようですね。
スターを取って無敵のマリオでも崖から落下したら死ぬみたいな感じ。)


で、エース死亡により ルフィは精神崩壊
怒った白ひげは"覇気"を使ってサカヅキ大将に物凄いダメージを与えてます。
(ロギア系でも、"覇気"でダメージを与えられる様子。)

そんな事が起きている間に 黒ひげが登場。
(裏切ったシリュウさんも居ますね)

うわーここで出てくるとは(´・ω・`)
黒ひげが白ひげを倒して、良いとこだけ持って行く気でしょうか。
(しかし、その後 それはバギーさんの手柄になるのである。恐らく。)

もしそうなったら、 オンラインゲームで
LAだけを取ってアイテムの取得権を得るプレイヤー並みに いまいましい。
※LA・・・ラストアタック。 要するにトドメ。

ティーチにはあまり良い印象を持って無い んですよね。 色々と。
もう、タルに詰め込まれてどこかへ飛ばされてしまえばいいのに。


●ロックオン
新連載です。

主人公がヴィジョン・アイだか何だか知りませんが、
不思議な目を持っている様子。
そのうちグラスパー・アイに進化するかもしれませんね。

とりあえず 思ったのが、表紙の
レンズに写ってる人物と 写真の人物が同じに見えない。
どちらも ヤコ ニコという人ですよね?

特に写真の方が、なんか御年を召したような感じ。
( 目と頬と口紅あたりが原因だろうか)

あと、漫画全体が白い
(背景的な意味で)

時々思い出したかのように背景が描かれているのですが、
気を抜くと もう白い。 背景が消えている。
(もっと背景があったほうがいいと思う。)

最後に、話をどう展開させていくのかが気がかり。


●ハンターハンター
四肢をもがれつつ、ネテロ会長が最後の切り札を出しました。
百式観音『零の手』。

文字通り、手を使った攻撃は一切無く、口から破壊光線が発射されます。
その時の、技 及び ネテロ会長の様子は圧巻でした。

しかし、 それでも王は死なない。 ちょっと怪我をした程度。
それに対し、ネテロ会長は シワシワになりました。
↓こんな感じ。
犬

こ、これは勝てそうに無い気がする・・・。
次週は、ネテロ会長が人間の意地を見せるらしいのですが、どうなるのか・・・?

※追記
------------------------------------------------
・あえて、時間を取る 祈りの動作をする理由
・最初から『零』を使わなかった理由

------------------------------------------------
これらの理由が気になったのですが、
これは 確実に『零』を決めるためですね。

「四肢をもいだ時点で、終わりだと思ってんだろ・・・?」みたいな事も言ってましたし、
「もう攻撃は出来ないだろう」、と油断した王に不意打ちを仕掛ける作戦だった、と。


●めだかボックス
ニコニコ笑ってはいるものの、なんだか古賀さん怖いですね。
しかし、この漫画の中で 笑ってるけど怖そうなのは断トツで半袖さんです。
(何処からともなく "ぽきゅるぽきゅる" と効果音が鳴る人。)


今週の話と関係ありませんが半袖さんについて。
彼女は人の心を読める可能性があります。
そして人の心を読めるあまり、人を信用しなくなった(出来なくなった)のかもしれません。

・心を読める可能性についての根拠
「あたしはあなたが嫌いだし、 そしてあなたも私が嫌いです」という様な事を
めだかさんに対して言っていた。めだかさんの心の内を断言している。

・人を信用していない、という事についての根拠
「あたしもあたしが大好き」
「友達なんて居ない、 友達なんて要らない」 という発言などから。

心の中の声を聴ける、という超能力的な能力でなくとも
発言、行動、仕草などから、 心の内を計る "読心術"に長けている可能性はあります。


●ぬらりひょんの孫
うわー、百鬼夜行 壊滅・・・!(に近い)

土蜘蛛というのは、FF5で言うとオメガみたいなもの
倒せないから封印するしかないようです。

リクオの鏡花水月も「こざかしいわ!」とか言われながら破られます。

アレですね、 「な、何だコイツ!?」と畏れられれば無敵なんですが、
「こざかしいわ!」と思われたら敗北します。

リクオは、新しい技でも編み出して倒すしかないですね。
もしくは、「お前はもっと強くなりそうだから殺さないでおいてやる」
土蜘蛛に認めさせるかです。
(仇は討てないですが、力量的に妥当な展開かと)

最後に。
つらら頑張って。 (護衛と恋愛的な意味で)

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

ちょっと面白かったゲーム

ちょっと面白かったゲームを紹介。

【1】パーティクル崩し
パーティクル3

これは、パ-ティクル(粒子)を崩して行くというゲームです。
ブロックじゃありません。1ドットずつ壊していきます。

初めは「こんなの何時間かかるんだよ!」と思ってましたが、
数分で終わりました。

結構、早く終わります。
なぜなら欠けて落ちてくるパーティクルを打ち返して行けば、物凄いことになるからです。

↓物凄い事
パーティクル

物凄い状態になった時のどんどんパーティクルが崩れていく爽快感が良いです。
【参考URL】パーティクル崩し


【2】二次元ウォーカー
二次元ウォーカー

これは、文字を入力するとその文字を足場に出来るアクションゲームです。
アイデアが面白いですよね。

主人公の位置や、扉(ゴール地点)の位置を考えて文字を決めないとゴールできません。
なので、 結構 頭を使うかも。
【参考URL】二次元Walker
品(六辻>全へA%幻然\△●船ツ■∧

【3】Xeno Tactic
Xeno_Tactic.jpg

これは、以前ちょっと話したことがあるのですが、防衛ゲームです。
※武器などを配置して、迫り来る敵を倒すゲーム。

ルールは単純な割りに、兵器の配置の仕方だとか、迷路を作って敵を徘徊させたりだとか、
結構 戦略が練れて面白いです。

防衛ゲームの中では1番面白いと思います。


あと、誰かこのゲームのLevel6をクリアして下さい。
自分には無理です。 (´・ω・`)
【参考URL】Xeno Tactic

テーマ : ゲーム - ジャンル : ゲーム

"損をしたような気分"になれる 方法

損をしたような気分になれる方法を書いてみようと思います。
(進んで 実行しようとは思わないとは思いますが)


やり方は簡単。
カレーライスを箸で食べます。

※カレーライスは、
カレーのルーで ご飯が箸で持ち上げづらいな、という状態が良いです。
また、食べる時は 箸で持ち上げて食べるようにしてみて下さい。

で、食べ終わる頃には、損をした気分になってます。
やってみたら 分かると思います。


自分は、コレを高校生の時に食堂のスプーンが無かったので (利用者いっぱい)
実行したんですよ。 酷い目に遭いました。


その後、あまりにも酷かったので 友達にも「コレやってみて!」と薦めた所、
友達も、「うわっ コレはヤバい!」と言いながら 損をした気分になってました。

友達にも効いたので、
多分、 他の人も損をした気分になると思う。

※「本当かな?」と思う方は、挑戦してみてね!
(損をした気分にならなかったら ごめんなさい)


あと、関係ないですが、 カレーを入れる 変な器ありますよね。

【参考画像】
グレイビーボート

これ、"グレイビーボート"っていうらしいです。

自分は「カレーの器」と呼んでいたのですが、
そんなカッコいい名前があったとは知らなんだ。

テーマ : 日記 - ジャンル : 日記

COMポインタを利用してみた

とりあえず既卒で就職をどうにかすると決定し、
提出〆切りを気にしなくて良くなったので、
ひたすら出来ない事(出来なかった事)に挑戦して行こうと思います。


で、今回 挑戦したのが、COMポインタの理解、使用。
("参照数計測ポインタ"とも言う。)

COMポインタというのは、
参照数を計測しておいて、参照されなくなったら勝手に消えてくれるポインタの事です。
(テクスチャ等のリソースを、利用されなくなったら勝手に消える、という風に出来る)


なお、今回 利用した参考書はこちら。

【参考画像】
詳説C++

詳説C++。

で、この参考書に載ってるCOMポインタのソースコードを書き写してみたのですが、
-------------------------------
・例外の送出
・テンプレート
・演算子の多重定義
・入れ子クラス

-------------------------------
などが使われていて、なかなか混沌としたコードになりました。

【参考画像】
COMポインタ

(自分でコピーや、演算子をサポートしようとすると、大変になりそうである。)



ともかく、COMポインタの実装が終わった後、
試しに下記の様なコードを試してみました。

#include < iostream >
#include < vector >
#include < string >
#include"shared_ptr.h"

class Test {
std::string name;
public:
Test(std::string s): name(s) { }
~Test(){ std::cout << "消えてしまいました。 : name = " << name << std::endl; }

std::string get() { return name; }
void set( std::string s ){ this->name = s; }
void f() { std::cout << "name = " << get() << std::endl; }
};

class X {
public:
shared_ptr< Test > spa;
X(Test *ap): spa(ap){ }
};

int main(void)
{
{
X x1( new Test( "koneko.bmp" ) );
X x2( new Test( "koinu.jpg" ) );
X x3( new Test( "kotori.png" ) );

x1 = x2;

x1.spa->f();
x2.spa->f();
x3.spa->f();
}
return 0;
}
※一応、補足説明。
変数の寿命は、{ }で括って指定できたりします。
x1、x2、x3という変数の寿命は、赤いカッコの中だけの間となります。



実行結果↓
COM_コード

【解説】
最初に、x2をx1に代入しています。
この時点で、x1はkoinu.jpgを指すようになり、
誰からも指されなくなったkoneko.bmpは消えてしまいます。

その後、関数f()で、文字列を表示。
x1が、koinu.jpgに変化している事がわかります。

で、最後は赤い{ }の部分x1、x2、x3が消滅。
同様に、誰からも利用されなくなるので自動的にkotori.pngとkoinu.jpgは消えます。

参照数計測ポインタを使った場合、利用されなくなったものは消える運命なのです。


COMポインタ、なかなか面白いですね。
そして、今後の目標は 
色んな技術を身につけてゲームの基盤となる部分を改良
する事にします。
(今回のCOMポインタは、リソース管理クラスに適用しようと思います。)

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

卒業研究 発表会 終了!

今日、卒業研究の発表が終わりました。

先生方から、何か質問が飛んでくるかと思いましたが、
どうやら、自分がやった研究の分野の先生は居なかったようで
細かい内容に突っ込まれる事はありませんでした。

他のLEGOロボットの遠隔操作とか、サッカーをするロボットの制作などの発表では、
「CPUは何を使ってますか?」
「これはPICなのですか?」

と細かい事を質問されてました。
------------------------------------------------------------------------------------
※PIC・・・Peripheral Interface Controllerの略称。
自分は、PICで「7セグメントLEDで出席番号を表示させる」という事をやったりしました。

"7セグメントLED"というのは、よく時限爆弾のカウント表示などに使われてる
棒7本を光らせて0~9の数字を表示するヤツです。
| ̄|
| ̄| ←こんなの

------------------------------------------------------------------------------------

それと、今後の予定。

---------------------------------
【1】卒論を提出する
【2】図書館から借りた本を返す
【3】ゲーム制作

---------------------------------

まず【1】について。
最後に卒論(研究内容を数十枚の紙にまとめる)を書かないといけません。
卒業研究は、下記の様に 色んな資料を作らないといけないので 大変です。

・予稿    (卒研発表会で 傍聴者が概要を知る為の、卒研内容を1Pで纏めたもの)
・PowerPoint (卒研発表会で、傍聴者に説明する為のスライドショー)
・卒論    (卒研発表会で言わなかったような 細かい内容まで纏めたもの)



次に【2】。
以前、図書館から「ゲームAIプログラミング」という本を借りたのですが、
「3月5日までに返さないと卒業させないよ」みたいな警告が来ました。
これはこわい。 さっさと返さねば。


最後に【3】。
コレどうしよう。

一応、ゲーム作品の"簡易Ver"を作ってはみたのですが、
納得がいかない。
(というか、企業側も満足してくれないはず。)

現在、製作中のゲームは
変な3Dの棒人間が暴れる内容になっているのですが、
--------------------------------------
・音楽流れない
・効果音ない
・テクスチャは適当
・カメラワークは無い
・演出も無い
 (光る、星が出る、残像、などなど)
・状態遷移なし (exe起動 ⇒ メニューなど無く、突如ゲーム開始)
--------------------------------------
このように、ちょっと適当になっているなと感じられる内容です。

なので、色々考えてみたのですが

↓色々
-----------------------------------------------
1:大学院へ進む
2:あえて留年する
3:ゲーム業界ではない企業へ就職し、その後 転職
4:既卒で頑張る

-----------------------------------------------
ちょっと・・・4で行こうと思ってます。

理由
|金銭的理由で、1と2は除外。
|ゲーム制作の時間的に3を除外。

もう4しかない。

んーでも「今年は去年より更に厳しい」とか言われてるんですよね。
大学で合同説明会があったのですが、
「この説明会で今年の募集は終了します」みたいな企業もありましたよ。

んー、 一種の賭けに近いかも。
どの道 内定は無いので、4で行こうかと。

テーマ : 日記 - ジャンル : 日記

"いつか帰るところ"。

"いつか帰るところ"って良い曲ですよね。
FF9のオープニングで流れる曲。


なんだか安らぎみたいなものを感じる曲です。

よくFF9自体をプレイせずに、 曲を聴きたいがために
オープニングが流れる状態で放置してたような気がします。
(ストーリーは進めないのかよ! みたいな。)


まぁ、とりあえずURLです。
【参考URL】FF9「いつか帰るところ」を リコーダー吹きに吹かせてみた。
【参考URL】【四重奏】リコーダーでFF9『いつか帰るところ』を吹いてみた


で、FF9自体について。
FF9はFFシリーズの中でも、結構 好きなほうに入ります。
素朴というか、幻想的な雰囲気が気に入ってました。
(キャラクター、ストーリー、街 等など)

このゲームには オズマという
なんかスーパーボールみたいな敵が居るんですけど、
あれ、結局 倒せなかったですね。
(やり込めば、何とかなったような気がしなくもないですが)

※オズマの"カーズ"とかいう技で、 大体 玉砕してました。


最後にFF自体について。
FF自体は、どうなるんでしょうかね。 (自分はⅩ以降は未経験です。)

映像自体は、 もう何かとんでもない事になっているんですけども、
ゲームとしての面白さは? というと良く分かりません。

最近だと、FF13が発売されたのですが
-----------------------------------------------------
・ダンジョン等が一本道になっている
・シナリオがそれ程よろしくない
・敵を倒すだけの繰り返しが苦痛

-----------------------------------------------------
このように、 不満も結構出ているようです。


※FFは、 シリーズの後編になるにつれて、
----------------
・FF6までが良い
・FF7までが良い
・FF8は駄目
・FF8も面白い

----------------
↑こういう風に 意見が分かれてたりするんですよね。

自分はFF1 ~ FF9 ※但しFF8を除く といった感じです。
(FF8は、当時 妙なリアリティにあまり入り込めなかった記憶があります。)

聞いたところだと、FF6やFF7が好きな人は
FF8が駄目でもFF9を気に入る場合が多いとか何とか。


今後FFがどうなるかは分かりませんが、

一回 映像だけではなく、
ストーリーやキャラクター、世界観などを重視したものを
作ってみて欲しいなーと思いました。

テーマ : 日記 - ジャンル : 日記

ゲーム業界の 社長の本音

ちょっと気になる記事を見つけたので紹介。

どうやら、9月1日~9月3日にパシフィコ横浜
「CEDEC2009『ゲームのお仕事』業界研究フェア」という、
入場無料のイベントが行われてたらしいです。


確か"パシフィコ横浜"って、近くに遊園地みたいなのがありましたよね。
(一回、 とても光栄な企業の説明会で行った覚えがある。)

まぁ、とにかく そんなイベントがあったらしいです。

で、色々と興味深い内容もあったので端的にまとめてみます。


【将来に関して】
・コンシューマ機のゲーム市場は、今後 確実に縮小する。
・日本企業は、海外への展開を急いでいる。
・日本のタイトルが世界で通用しなくなりつつある。

※ただし、任天堂を除く
・パッケージ型のゲームビジネスモデルは、壊れる一歩手前。


【就活に関して】
・ブランドや伝統で、判断すべきではない。
(革新しないと、現状維持では 生存できる可能性は極めて低い)
・新しく登場するブランドを育てているか?を見てみる。
・面接では、将来に向けてどのような対策をとっているのかを聞くべき。
・「なんとなく入りたい」では、就職は厳しい。
・自分が志望する職業と、その職業で必要なスキルは何か?を把握する事。



【社長、企業の声(本音)に関して】
・求められているのは即戦力。
・1つのゲーム作品を完成させた人材を求められている。
・簡単なゲームでもいいので、自分又は自分中心のチームで作る事が重要。
・「しっかり準備が出来ている人」が採用される。

(ポートフォリオを上手く纏めたり、など。)
・コードを見ただけで、「これからどう伸びるか?」は ある程度分かってしまう。
(プログラマー)
・使用しているテクニックと制作時間で、どの程度仕事が出来る人間か分かる。
(デザイン系)
・プログラムを書けて、仕様書を書けたらもう「採用」。
(プランナー)
・逆に、技術も持って無いのにプランナー志望は 無謀。


【プログラマーに必要なスキル】
・プログラムセンス
・グループワーク
・数学、物理
・C、C++
・データ構造とアルゴリズム




大体こんな感じですね。
やっぱり、プログラマーは
ゲームを完成させた経験が無いと駄目っぽいですね。
(無くても採用の可能性はあるとは思いますが、 あった方がやはり有利かなと。)


あと、自分の弱点はプログラミングセンスや、コードの中身 でしょうか。
ゲーム関連の技術(8分木、アニメーションなど等)は理解してきているんですけども、

安全性のあるコード、メンテナンス性に跳んだコードなどを書く力が不足しています。
"とりあえず動くもの"は書けるが・・・といった感じ。)

一回、基礎的な本を見直したりする必要があるかな、と。


あ、あと今回参照した記事はコレです。↓
【参考URL】『ゲームのお仕事』業界研究フェア」レポート

もっと精進せねば(`・ω・´;)

テーマ : ゲーム - ジャンル : ゲーム

ジャンプ11号感想

●ワンピース
ウソダ・・・。


●ブリーチ
やっぱり 完全催眠でした。
そして また やられてますよ日番谷隊長。

とりあえず現状を把握するために "完全催眠"の復習。
----------------------------------------------
いつでも 相手の五感全てを支配する事が出来る。
----------------------------------------------
五感と言うのは、
視覚聴覚嗅覚味覚触覚の5つです。

要するに、敵・味方の 姿や声を改竄する事が出来ますし、
臭いや 痛みを誤魔化す事もできます。

なんでもアリですね。

で、「何時 雛森さんと入れ替わったか?」というのが気になります。
もし初めから入れ替わっていたのだとしたら、 雛森さんは
----------------------------------------------------------------------
砕蜂さんに二撃決殺を喰らって、
日番谷隊長に足を氷付けにされて、
その後 突如 影から現れた享楽隊長に刺されて、
平子さんにニヤニヤ眺められながら 日番谷隊長に刺された事になります。

----------------------------------------------------------------------
・・・あれ、 砕蜂さんの時点で雛森さん死んでないですか?
ここら辺が良く分かりませんね。


というか、コレだけ隊長の方々が意味不明な行動をしているのだから
一護は途中で止めさせて下さい。

雛森さんがボロボロになった時点で「何やってんだよ!?」
呼びかけるのは遅すぎます。

あ、もしかすると一護の声も聞こえないように錯覚させてたのかもしれませんね。
何しろ、五感を支配してれば 何でも捏造し放題ですからね。
完全催眠を解いたから、一護の声が聞こえるようになった、と。


それと、愛染様の「しまった!」みたいな心の吹き出しが意味分からないです。
催眠術でダメージを一切受けてないのなら、「しまった!」という発言はおかしいのです。

それとも 読者に対して幻術をかけてたのでしょうか?
それなら納得が行きますね。

目に見える コマ割り、心理描写や吹き出しも 全て幻覚だったのです。
( 嘘を嘘と見抜けないと(幻覚・幻術バトルを)読むのは難しい。 )


●ハンターハンター
ネテロ会長がやられた・・・!
(足をもがれた)

この漫画は「勝てるかな?」とか思っていても、
次のシーンでは容赦なく死んでたりするから怖い。

それより、ネテロ会長の 「零」はどうなったんでしょうか?
「零」が炸裂!という予告を見たような記憶があるんですけども。

とりあえず予想。
---------------------------------------------------------
【1】王に名前を教えるフリをして不意打ち。
【2】討伐をあきらめる。(名前を教え、和解を考える)
【3】死ぬまで勝負を捨てない。
【4】横槍が入る。

---------------------------------------------------------
『「零」が炸裂する』という事を前提とすると、【1】か【3】でしょうか。

んーでも この物語ではラスボスが戦おうとしてないんですよね。
「良い国を作る」みたいな事を言ってましたし。

落とし所をどうするのかが まだ良く分かりません。
(部下達の心境の変化も 重要なポイントになりそうですし)


●痩身マン
最初の変態はちょっとヤバいと思うんだ。


●ねこわっぱ
終わりました(´・ω・`)

コレは多分、テコ入れ失敗だったのでは。
あのトーナメントが始まる前の路線で良かったと思います。
(ほのぼのコメディ系)

あぁでも、それだと人気が出ないのかもしれませんね。
リリエンタールとかも、結構ヤバいですし。
(どうして人気が出ないんだろう)

それと、元々似たようなジャンルだった
リボーンはバトル化、めだかボックスもバトル化しました。

日常を淡々と描く系はバトル化するしかないのか・・・!

あ、でもスケットダンスは生き残ってる。 何故?
何が 打ち切りと連載を分けるのだろうか。

面白いギャグと、キャラクターかな?
スケットダンスと同じように みんな生き残って欲しいとは思うのですが。


-------------------------------------------
~予告~
LOCK ON!
新しく始まるらしいのですが、コレかなり前に読みきりを読んだような気がする。
"撮影"して敵を倒すという内容だったはず。 (結構 曖昧)
あと、その時に ヒロインが桂木弥子っぽいなーとか思ってました。
 

●四ツ谷先輩の怪談。
これ、読みきりのときは四ツ谷先生でしたよね 確か。
四ツ谷先生だと、ハデス先生と被ってしまうからでしょうか。
先生から先輩になってます。  あと、顔が若干 凶悪になってるような。

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

もうすぐ卒業・・・!

現在、卒業研究のプログラムも殆ど終わり、

卒業研究の内容をPowerPointでまとめて、それをプロジェクターで映しながら
説明する練習とかしてます。
(発表の時間は8分。)

多分、これで卒業は出来るでしょう!
(一時は 間に合うかどうか不明で焦ってましたが)


しかし、ちょっと気がかりなのが、発表に関して。

具体的にどうなるのか分かりませんが、
とりあえず他の研究室の先生方も発表を聞いていて
気になる事があれば、先生方から質問が飛んでくるそうです。

当然、先生方はその道に詳しいので、
結構 専門的な質問とかされたりもするらしいです。
(なにそれこわい)

桁違いに答えられないレベルの質問が飛んできたらどうしよう。
(その時は 素直に「すいません分かりません」と答えようかな。)

出来れば発表は淡々と説明して終わりたいものです。




余談ですが、過去の卒業研究の資料を見てたら、 一番最後の
『参考文献』の所に
~C言語 ゲームプログラミングの館~の文字が。
(とある、ゲーム制作関連のサイトなのです。)

自分もあそこを利用していて、
時々「あれ、コレ大学の課題と一緒だ」と思うことがあったのですが、
どうやら 実際に利用されていた模様。

同じ大学の人で利用している人が居るんだなーと実感しました。
自分も将来的には、利用されるような便利なサイトを完成させたいなと。


というか、ゲーム制作に関しての参考書類が少なすぎn(以下略

テーマ : 日記 - ジャンル : 日記

不思議な体験談

最近では、テレビとかで心霊写真の特集とかやらなくなりましたね。

多分、出したところで  「これ、 Photoshop? と思われるのがオチ
だからでしょう。
(今や信用されない!)

・Photoshop・・・画像編集ソフトウェア。結構 色んな事が出来る。


自分は、心霊現象とかの特集があると、未知の世界があるような気がして
怖いと同時に好奇心が沸いたりするんですけども。
「うわー何これー!」みたいな。

火災など、非日常的な事が起こると つい様子を見に行ったりしてしまう
            やじ馬的な心理状態。)
※勿論その時は119番もしますよ


で、まぁとにかく そういう特集があまりないので少々 寂しいな、と。
------------------------------------------------------------------------
でもですね、やっぱり何だか良く分からない現象に遭遇することもあります。
(科学的に解明できるかもしれないのですが)

今回は、その遭遇した現象について書いてみようかな、と。



【1】謎の声
高校の頃の吹奏楽部の先輩が、カセットテープを持ってたんですよ。
(表、裏で120分くらい録音できるタイプ。)

で、先輩が そのテープに録音した音楽を久しぶりに聞いたらしいんです。
そしたら、流れていた音楽が突然プツッと切れて、 数秒後に

「ぐァヴあ ぉヴォをw;おmfs」

とか、低い声で奇妙な声が録音された状態になってたそうです。

・・・というか、先輩が後日テープを持ってきてくれたので自分も実際に聞きました。

よく、テレビ番組で 元犯罪者が証言をするときに 
顔をモザイクにして変声機で低い声にしながら放送する事があるじゃないですか。
あんな感じの奇妙な声でした。

自分と先輩は、「うわぁ!何コレー!?」みたいな感じでテンションが上がってたんですが
周りから「テープが伸びたんじゃない?」と言われ、一蹴されました。


先輩は「えーそうかなー・・・?」と 若干 不満そうでした。
(テープが伸びたり 強い磁気に近づけるような事はしていない らしい)

真相は今も不明だったりします。


【2】手が・・・?
あれは中学生の頃でした。

中学校の頃の吹奏楽部の先輩が、
コピー機で手をコピーしてみよう!と提案したんですよ。
(コピーする意味は特に無く、面白半分でした。)

で、自分が右 先輩が中央、 自分と同学年 (同じく吹奏楽部) のT君が左に手を置き、
コピー機を起動させました。

【参考画像】
Hands.jpg
左から、T君、先輩、自分 です。 ※絵が至極適当なのは気にしないで下さい。


で、印刷されて出てきた紙はこんな状態でした。



【参考画像】
Hands2.jpg


・・・?
先輩の手がおかしい・・・。


先輩の手だけ何故か赤ん坊くらいのサイズになって出てきたんですよ。
その時は「え?何コレ 先輩の手が小さい(笑)」と笑って済ませたのですが、

後から考えると、 おかしいですよね。
コピー機が故障していたのか、仕様なのか。  原因は良く分かりません。


【3】スピーカーから
これは他のと比べて 一番最近の出来事です。
大学の吹奏楽団の先輩が、スピーカーをセッティングしてたんですよ。

"チューニング"と言って、曲を演奏する前に全体で
電子ピアノの音をスピーカーで大きくし、それを聞いて音程を合わせたりするのです。


で、セッティングが終わった後 先生がピアノの音を出そうとしたその時でした。
(先生が電子ピアノの音を出し、部員がそれに音程を合わせる方式。)


スピーカーから、

「××家 先祖 代々
   △△家 先祖 代々 ~
       し奉るところ・・・・」


とか、突然 お坊さんの声が聞こえてきたんですよ。
スピーカーが、全然ピアノの音を出してくれない。 スピーカーご乱心。

スピーカーをセッティングした先輩曰く、
「外部の電波を スピーカーが拾ってしまったのでは?」との事。
(詳しくは良く分からなかったんですけど、ラジオみたいな感じでしょうか。)

部員は「なんか きもちわるい!」と言って 怖がっている中、
先生は 「練習が進まないじゃないか!」 と 
練習が進まないことにお怒りになってました。  さすが 先生です。



まぁ、こんな感じで、 たまに良く分からない現象と出遭うがあります。
科学的になった現在でも 何だか良く分からない事は起こるものですね。

この記事を見て、
若干 怖くなった方は 『破ァァッ!!』 と大声で唱えましょう。
"悪い何者か"は全て吹き飛んでくれる筈です。

寺生まれのTさん がそう言ってた。
"寺生まれのTさん"・・・あらゆる心霊現象を、「破ァ!!」の一言で片付けてくれる
               スゴイ人。

テーマ : 日記 - ジャンル : 日記

"クソゲーオブザイヤー"で戦慄

友達から聞いて知ったんですけど、
クソゲーオブザイヤーというものがあるらしいですね。
※クソゲーオブザイヤー・・・その年でもっともクソなゲームを決める祭典。

で、実際にそのゲーム作品群を見てみたのですが、酷い。
本当に酷い。

ゲームで"怒り"を通り越して恐怖を感じたのは初めてである。


とりあえず箇条書きでどんな惨状なのかを紹介。

-----------------------------------------------------------------------------------
・3500人以上の武将登場!と謳われたが、有名武将以外は全部顔が同じ。

【感想】
顔が全部同じとは酷い・・!
"ぱにぽに"のクラスメイトじゃないんだから。

無理に3500名登場!と言う風にしなくて良かったと思う。


-----------------------------------------------------------------------------------
・3Dモデルが、歩行ではなくホバリングする。

【感想】
直立姿勢から、地面を滑るかのようにキャラが移動します。
その姿は実に奇妙。

あと、ふすまを開けるシーンがあるのですが、一切手を触れずに勝手に開きます。
ふすまが自動扉と化している、実に狂った世界観が繰り広げられます。


-----------------------------------------------------------------------------------
・バグの為 パッチが出たが、パッチを当てると更に壊れる。

【感想】
壊れるパッチなど聞いたことがありません。
もう、開発を全部やり直したほうがいいと思います。

というか、
開発側はパッチを配布直後、公式掲示板とホームページを閉鎖するという暴挙に。


-----------------------------------------------------------------------------------
・死んだ人物が、普通に建物の中を歩いている。(本格推理ADV)

【感想】
死んだ人物が生き返ったら、コナン君も気絶しますね。
フラグ管理が無茶苦茶になっているのではなかろうか。

あと、その人物に話しかけると「テキストがまだ無い」と喋るそうです。
絶対 デバッグ用のコメントですよね。コレ。
-----------------------------------------------------------------------------------


その他にも色々ありますが、省略。
"ニコニコ動画"の方に、まとめ動画もUPされてますので、それを見ると分かりやすいかも。

自分は、こんなに酷い状態のゲームには遭遇した事はありません。
まぁ、買う量もそんなに多くないので、遭遇する機会もあまりないのでしょう。


そういえば、畑を耕したり、動物を育てたりするゲーム(あえて名前は出さない)
フリーズするバグに遭遇した事があります。

音楽は流れるんですけど、キャラクターが動かない。背景も動かない。
何も出来ない。

ひたすら、雨の音が「シャー」と言うだけになったので
プレイするのを止めてしまいました。
(バグが一切無かったら、その後も楽しめたような気がする)


正直、内容が悲惨だったら直るまで出さない方が良いと思う。
うん、被害者を出してはいけない。

(あぁでも会社の都合で出さざるを得ないのかも・・・)

テーマ : ゲーム - ジャンル : ゲーム

階層構造 生成プログラム ~公開~

以前、XファイルのFrameの階層構造を生成するプログラムを作った
と言ったのですが、

プログラムは公開してませんでした。
プログラムに改善の余地がある、と思った為)

で、現在 プログラムを改良して以前より見やすくなったので
公開します。

-------------------------------------------------------
話がそれますが、ゲーム製作の計画・および進捗具合について。
現在は【2】の段階です。

【1】Factoryクラスの生成
【2】Xファイル読み込みクラスの改良   ←Now!
【3】3Dモデルを、境界球生成クラスと組み合わせて表示。
【4】境界球を使って、3Dモデルの当たり判定を実装。


※階層構造生成クラスも、【2】の段階に含まれています。
-------------------------------------------------------


※ヘッダファイルなどを分割すると面倒なので(アップロード的に)
全て、mein関数があるcppファイルに記述してます。
(コードは100行程度なので、問題ないでしょう。)


プログラムの概要

下記の階層構造を読み取る場合は、
FrameA {
FrameB {
FrameC {
}
FrameD {
}
}
FrameE{
}

}


プログラム中では下記のようにします。
	Hierarchy h;

h.AddFrame("FrameA");
h.AddFrame("FrameB");
h.AddFrame("FrameC");
h.AddBracket();
h.AddFrame("FrameD");
h.AddBracket();
h.AddBracket();
h.AddFrame("FrameE");
h.AddBracket();
h.AddBracket();

Frame(フレーム)があれば、  AddFrame(char* Name);
閉じカッコがあれば、 AddBracket(void);
を呼び出すようにすればOKです。

※Xファイルの階層構造を生成する場合は、Xファイル読み込みクラスも作って、
"Frame"を読みこんだらAddFrame(char* Name);を呼ぶ、 みたいにします。

今回は Xファイル読み込みクラスは省略しているので、
直接main関数に記述してます。


階層構造を表示したい場合は、 DispHierarchy(void);を呼び出します。
//前略
h.DispHierarchy();
//後略
この関数を呼べば、内部でなんやかんやして階層構造が表示されます。

【参考画像】
階層構造
↑階層構造を表示してくれている図。




需要があるのかはさっぱり分かりませんが、
vector配列で階層構造を生成したい状況であれば使ってみて下さい。

【ソースコード】text.txt
※バグ、およびその他 疑問点などがあればお知らせください。
とりあえず、テキトーな階層構造を入力した場合の動作は保証できません。


追記:一応動きますが、想定外の事にも耐えられるように改良したいと思います。

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ちゅちゅちゅーちゅちゅちゅちゅ(以下略

今日、"トッカータとフーガ二短調"が聴きたくなったので色々と探してたら、
なんか ひたすら 「ちゅちゅちゅちゅー」とか歌ってる動画がありました。

面白かったので紹介。
で、どうやら 「ちゅ」以外にも いくつかシリーズ化している模様。
※作者曰く、「怒らないで聞いてください」とのこと。
----------------------------------------------------------------
【参考URL】 初音ミク「ちゅ」で歌う「トッカータとフーガニ短調」
【参考URL】 初音ミク「にょ」でトルコ行進曲
【参考URL】 初音ミク「みゅ」でモーツァルト交響曲第40番 第1楽章
----------------------------------------------------------------

あと、上記のシリーズではないですが、
おかしな替え歌をしているものがありました。

【参考URL】 初音ミクが借金で困っているみたいです「小フーガト短調」

初音ミクが何故か借金まみれになっている様子。
一体何があったのでしょうか?

歌の最後は「楽しい 楽しい」とか言いながら
初音ミクが最終手段をとります。

テーマ : 日記 - ジャンル : 日記

"逆転裁判5"について

逆転裁判シリーズを知っているでしょうか。

簡単に説明すると裁判で逆転する(無罪判決を勝ち取る)というゲームです。
そのままですね。

ゲーム内では、大抵 罪をなすりつけて逃げようとする真犯人が居るので、
真実を暴いて真犯人を追い詰めて行ったりします。

真犯人たちは追い詰められると狂いだすので、 (色々と良い意味で)
その変化が面白かったりします。
"脳噛ネウロ"の犯人達的なノリ)
※勿論、矛盾や物語自体の方も面白いですよ


個人的なお気に入り順
-------------------------
1.逆転裁判3
2.逆転裁判 蘇
3.逆転裁判
4.逆転裁判2
5.逆転裁判4

-------------------------

で、その最新作として"逆転裁判5"を開発する予定だとは言われたんですけども、
その後の情報が今 無い状態です。

【参考URL】カプコン社長:年10%成長向け海外MA視野-人気作はシリーズ化
↑"逆転裁判5"の開発を示唆している。


どうなったんでしょうかね。
"エストポリス伝記Ⅲ"みたいな事になってないといいですけど。
エストポリス伝記Ⅲ・・・開発計画が途中で頓挫した。

-----------------------------------------------------------------------------------
まぁこれ以上 逆転裁判5の話をしようが無いので、
その他の ちょっとした事を書いてみる。


逆転裁判シリーズを知った きっかけ
実は、フラッシュゲームをやったのが知るきっかけでした。

当時はフラッシュ作品を良く見たりしていて、 (9年前ぐらい?)
その時にたまたまフラッシュの逆転裁判をやったんです。
コレ↓

【参考画像】
Sabaivan.jpg

その後、パロディ作品であり 本家の逆転裁判が別にあるという事を知って
即座に本家のソフトを買いに行きました。

そして、
フラッシュ作品の方がパロディというか、本家そのまんまな事に驚愕。
(コレいいのかよ!みたいな。)


逆転裁判5への希望
逆転裁判4にあった"見抜く"システムは、うん・・・採用しなくてもいいと思う。

某ミントの香りの人で、悪夢を見せられました。


その代わりに、 "再現"システムがあったら面白いと思う。

犯行現場を頭の中で思い出して、(凶器や、その他の物の位置など)
その想像した世界の中で 犯人がしたと思われる行動を再現(注1)
している内に、矛盾を発見したりとか。
(もし犯人がこういう行動をしたのなら、ココに指紋が残ってないとおかしい! みたいな)
注1:再現の仕方は、"逆転検事"方式で自由に動けるような感じ。

再現上の世界なので、 物をぶん投げたり、2階から飛び降りてみたり、
意味不明なことを出来る自由度があれば面白いかなと。
(ただの想像なので、失敗したらやりなおし、と言うことで済ませられますし)

テーマ : ゲーム - ジャンル : ゲーム

ジャンプ10号感想

●ワンピース
エースがやられた・・・?

えっ ロギアだから安全だと思っていたのに。
なんじゃこりゃー(´・ω・`)


●賢い犬リリエンタール

    どうして ご む ぞ う が 元 に 戻 ら な い ! ?
ど う し て ご む ぞ う が 元 に 戻 ら な い ! ?
ど う し て ご む ぞ う が 元 に 戻 ら な い ! ?
ど う し て ご む ぞ う が 元 に 戻 ら な い ! ?
      どうして ご む ぞ う が 元 に 戻 ら な い ! ?
※大事な事なので5回言いました。

ライトニング光彦なら、 ライトニング光彦なら きっと何とかしてくれる・・・!
(ライトニング光彦さんを信じる事にしてみる。)


今回は、存在が消えかかっていた(漫画的に)マリーが活躍していて嬉しい限りです。
宇宙ネコといい、この漫画ではキャラクターが無駄になることは無さそうですね。

あと、春永 雪さんは邪心が出来た時に 頭に角が生えますね。
ただの演出かもしれませんが、漫画が漫画なので 何らかの伏線かもしれない。
"ROOM303"の住人だったりするのだろうか?)


●ハンターハンター
次回 予想
---------------------------------------------------
ウェルフィン:「動くな!撃つぞ!!」
イカルゴ:ドドドド!(乱射)
ウェルフィン:「なっ・・!?や、やめろ!」 
イカルゴ:ドドドド!(乱射)
ウェルフィン:「やめろよ! マジで殺すぞ!!」 
イカルゴ:ドドドド!(乱射)
ウェルフィン:「ちょっ マジで(略」

---------------------------------------------------
ウェルフィンさんの能力は、発動すれば"対象を必ず死に至らしめる"という能力の為、
撃つ事は出来ないのでした。
(撃って相手を殺害してしまったら、知りたい情報を得られなくなる のである。


あと、プフに「ゴンにどんな目に遭わされても構わない」と判断され、
見捨てられたピトーが不憫でした。

ピトーは 初め、得体の知れない怖い存在だったんですけど、
今は何と言うか、愛着が沸いてるキャラクターだったりします。

うん、とりあえずピトーは今のままの方がいいですよ。
(でも、ゴンにやられてしまうのかな・・?)

●トリコ
マッチさんが噴火しました。
「怒り爆発!」とかじゃないですよ。 噴火しました。

まぁ、やられるのをただ見ていることしか出来ない状態だったので仕方ないでしょう。
というか、 やられ方がエグイですね。

"たけし"の頃から、悲惨なやられ方をよく描いていると思います。
(表情と、モーション(動き)が物凄い。)

ともかく、
無事 仇を討つ事が出来たので、あとは虫の人ちいさいGTロボぐらいでしょうか。


●ブリーチ
分かった。
愛染様にはオーラが足りない。

敵が「強そう」と思われるためには、大体 下記の4つが必要だと思います。
----------------------------
・外見
・技の演出
・味方のリアクション
・威厳

----------------------------

まず外見。
例えば、 マユリさんの「足そぎ地蔵」とか、ワンピースのダイヤモンド・ジョズさんとかは、
外見だけで「なんか凄そう」、「斬撃は効かなそう」とか思えますよね。

しかし、愛染様はただの人型。 凄そうには見えません。
(人型でも、せめて百蘭さんみたいに変な光を全身から放出したりして欲しいものです。)

次に技の演出。
正直、愛染様は淡々とスパスパ斬ってるだけなので、
技がどうのと言える段階ではありません。 なので、同様に"凄み"を感じません。

(技の演出は、朽木白夜さんの"千本桜"などが良い例です。「これは凄そう!」と思えます。)


その次に味方の演出。
これは本人ではなく、対峙する相手の反応によって「強そう!」と思えたりする要素です。
例えば、あまりの霊圧の高さに相手が泡を吹いて気絶してしまうみたいな。

しかし、今のところ恐れている人が居ません。
というより、部下にまで「愛染・・!!」とか呼び捨てにされながら攻撃される始末です。
(ハリベルさんの事です)

殆ど畏れられていないので、やはり強そうには見えません。
(「"畏れられる存在"じゃないと負ける」、ってぬらりひょん達が言ってた。


最後は威厳。
これは、キャラクター自身の行動や振る舞い、発言などが 総合的に評価されます。
-----------------------------------------
良い例は、羽衣狐様。
悪い例は、末期のシックス。(脳噛ネウロ)
-----------------------------------------
これは個人差があるとは思いますが、
愛染様は喋り方も淡々としているという印象ですし、
残念ながら 足が震えたりする程恐ろしい・強い存在という風には見えません。
(それ程 強そうには見えないので、尚更 味方側がスパスパ斬られているのをみると
    「どうして愛染様の攻撃は良く効くの?」と、理不尽さを感じる。



で、本編ですが、先週 "力の定義"がどうのと言っていた割には
アッサリと愛染様はやられました。

うん、これはおかしい。
多分、来週あたり 「残念、全部 "完全催眠"だ」とか言うんじゃないでしょうか。
「今までのは・・・全部 完全催眠!?」みたいな。

※完全催眠なら、弐撃決殺が効かなかったのにも納得できます。

あとギンさん(万屋じゃないよ)は どうしているのでしょう?

あの人は、何を考えているのかイマイチ把握できないですし、
案外 愛染様を出し抜いてラスボスになったりしそう。

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

Template Factoryクラスを制作してみた

ゲームには、 テクスチャ音楽、 Xファイルなど、
様々な資源がありますよね。

で、それを管理するクラスを全て作ろうとすると、
-------------------
・TextureFactory
・SoundFactory
・XFileFactory
    :

-------------------

まぁ、こんな感じでクラスの数が増大してしまうので、
テンプレートにしようと思いました。


しかし、困ったのが資源の解放の部分。
---------------------------------------------------------------------
Factory< Texture >* pt1 = Factory< Texture >::getInstance();
Factory< XFile >* pt2 = Factory< XFile >::getInstance();
Factory< Sound >* pt3 = Factory< Sound >::getInstance();

---------------------------------------------------------------------
生成の部分はこんな感じで、××型のFactoryクラスとして生成するのですが、

プログラムが終了する際に、
何型のFactoryクラスを生成したか分からないんですよ。
TextureやSound を生成したかもしれないし、何も生成してないかもしれない)


結局、安全の為には
生成する可能性のある××型のFactoryクラスを全てDestroy()する羽目になるので、
かえって面倒くさい事になりました。
注:破棄しなかった時に待っているのはメモリリークです。
※Destroy()は、Singletonを破棄する為の 自作した関数。

-------------------------------------------------------------
Factory< Texture >* pt1 = Factory< Texture >::getInstance();
Factory< XFile >* pt2 = Factory< XFile >::getInstance();
Factory< Sound >* pt3 = Factory< Sound >::getInstance();
pt1->Destroy();
pt2->Destroy();
pt3->Destroy();

-------------------------------------------------------------
↑生成したかもしれない××型のFactoryクラスを、
 プログラムの最後に 全て破棄して行く図。

明らかに駄目です。
で、その後どうしたかというと、Factoryクラスを登録する
Factory Managerクラスを作りました。

【参考画像】
TemplateFactory.jpg

※Factoryクラスは、SingletonクラスとFactoryBaseクラスを多重継承。
あとFactoryManagerクラス内のatd::vectorstd::vectorです。 ミスりました。


FactoryManagerクラスは、
生成した××型のFactoryクラスのポインタをvector配列で所持しておき、デストラクタで
vector配列の全てのポインタに対して 破棄関数(AllDelete())を呼び出します。

よって、どんな××型のFactoryクラスを生成したとしても、
-------------------------------------------------------------
FactoryManager* pt = FactoryManager::getInstance();
pt->Destroy();

-------------------------------------------------------------
これで全て消えます。

あと、FactoryManagerクラスに Factoryクラスを登録するタイミングは
Factoryクラスのコンストラクタが呼ばれた時です。

FactoryクラスはSingletonなので、
コンストラクタが呼び出されるのは初めの1回のみです。

よって、上手い具合にFactoryManagerクラスに重複する事なく登録されます。


Factory< Texture >* pt1 = Factory< Texture >::getInstance(); //登録される
Factory< Texture >* pt2 = Factory< Texture >::getInstance(); //登録されない
Factory< XFile >* pt3 = Factory< XFile >::getInstance(); //登録される
Factory< Sound >* pt4 = Factory< Sound >::getInstance(); //登録される
Factory< Sound >* pt5 = Factory< Sound >::getInstance(); //登録されない


FactoryManagerの、fListの中身

fList[0] = Factory< Texture >*
fList[1] = Factory< XFile >*
fList[2] = Factory< Sound >*


テンプレートを使ったり、多重継承したりして なんか訳が分からなくなってますが
【参考画像】
Factory.jpg

↑複雑になってきている図

一応、コレで開発を進めていこうと思います! (`・ω・´)
(まだ、ポインタをCOMポインタにしたりなど改善の余地はあります)
COMポインタ・・・参照数計測ポインタ

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ネコが気絶した

今日、道を歩いていたところ、
ネコが物凄いスピードで前方を横切っていったんですよ。

【参考画像】
ネコ

で、塀の影に隠れていったので、「ネコはどうしてるかな?」と思い
真っ直ぐ歩いて、右側を見てみたところ、
なんか気絶してました。

【参考画像】
ネコ2

何が起こった!?
そこには、さっきまで猛スピードで走っていた筈のネコの姿が・・・!

「走っている途中で眠ってしまったのかな?」
とか思ったのですが、原因は良く分からず。

で、どうしようかなーと思っていたところ普通にネコがスッと起き上がり
そのままどこかへ行ってしまいました。

【参考画像】
ネコ3

結局 突然気絶した意味が分からなかったのですが、
元気になったので、多分 大丈夫でしょう。

テーマ : 日記 - ジャンル : 日記

ゲームの嗜好の違いについて(海外:日本)

よく
海外のゲームが日本では売れない 、
日本で売れても海外で売れるとは限らない、みたいな

日本 と 海外の嗜好の違いが取り上げられたりするんですけども、
それについて思ったこと。
(まぁ、"海外"というか、主にアメリカについてなんですけども。)

ジャンルなども 色々と違うのですが、
とりあえずキャラクターについて述べてみる。
---------------------------------------------------------------------

アメリカは、ムキムキのおじさんが多いと思います。
何というかもう、 筋肉至上主義。

下のスーパーマン的なキャラクターを見てください。

【参考画像】
ヒーロー

これを見ても、筋肉が重要視されている事が分かるでしょう。

じゃあ、何故 筋肉が重要視されるのか?
これについて考えてみます。

個人的な見解としては、"アメリカは銃社会だから"だと思います。
銃が日常的に存在する以上、

いつ撃たれてしまうか分からない、そんな殺伐とした雰囲気
を感じている可能性があります。
(当然 急所を撃たれたら死にます。)

だからこそ、
ピストルで撃たれても死なない、
              絶対的な強さを誇るような存在

受け入れられやすいのではないかと。
(撃たれても、強靭な肉体で弾き返したりとか)

まぁ、その"強さ"の象徴として"筋肉"が不可欠になってくるんじゃないのかな、と。



それに対して日本は、それほどマッスルを必要としていない
と思います。

コチラについても、理由を考えてみます。
理由は、日本はどちらかというと平和だから、ではないかと。

普段、生死を考えるような場面には それほど遭遇しないので、
「死を超越するという意味での絶対的なキャラクター」
あまり憧れの対象とならないのだと思います。
(もちろん、憧れの対象になる可能性もある)


じゃあ どんなキャラクターが広く受け入れられるのか?というと、
"異質"なキャラクターが受け入れられるのではないかと思います。

日本では、
日々の生活が、平凡&普通 過ぎて日常にマンネリ感を 感じている人
少なからず居ると思うんです。

だから、筋肉とかではなく、
-------------------------------------------------------------------------
非日常的、非現実的な存在
"平凡な現実"を忘れさせてくれる様な存在

-------------------------------------------------------------------------
が好かれるのではないのかな、と。
(面白い存在、夢を与えてくれる存在、 等など)


キャラクター
矢部野彦麿&琴姫 With 坊主ダンサーズ           阿倍さん(ウホッ!)                         初音ミク                    保坂先輩(きもちわ類ほさ科)                 ドナルド(教祖様)                     マリク(顔芸)

 
 
個人的な考察なので、実際のところは不明ですが、 端的に纏めるとこんな感じです。
------------------------------------
海外:現実的な理想
日本:現実からの逸脱

------------------------------------

この考え方の違いが、
ゲームの内容、登場キャラクターに反映されているのではないかなーと。 (多分)

テーマ : ゲーム - ジャンル : ゲーム

顧問の先生の家で 打ち上げ

今日は 顧問の先生の家へ行って、打ち上げをしました。
吹奏楽団の卒業祝い を、4年生全員と先生ですることになってました。

で、顧問の先生の家についてですが、 凄い。 もう凄い。

一言で表すと 『和』。
まず日本刀(模擬刀かも)が壁にかけてあって、 その隣の部屋には神棚がありました。

【参考画像】
神棚
↑神棚。(神道の神をまつるための棚である。)


更に、何故か"捕り物"まで置いてありました。
(使う機会はあるのだろうか)

捕り物・・・泥棒を捕まえる為の道具。 江戸時代には、様々な捕り物が作られた。
※ついでに、先生の家にあったのは確か六尺棒です。

【参考画像】
六尺棒
↑六尺棒。 泥棒などを取り押さえるのに使用する。


あと関係ないですが、"捕り物"の中で一番有名なのは 十手だと思います。

【参考画像】
十手
↑十手。 よく時代劇なんかで、犯人を追いかけたりとかする時に 手に持ってたりする。


まぁ、とにかく先生の家は 昔ながらの和という感じでした。
(こち亀で言うところの、大原部長みたいな純和風の家。


で、家の中には52インチのテレビ(デカい。)があったので、
そこで今までの定期演奏会やコンサートのDVDを鑑賞しました。

(鑑賞中に、「あぁ ここで先生の指揮棒が吹っ飛んだんだよー」とか、
色々なハプニングを言い合ったりとかもした。)


鑑賞後は、モツ鍋とおにぎりを作って一杯食べました。
美味しかったです(`・ω・´)

途中で、アルコール度数50くらいのジンを飲んでみましたが、ちょっと飲んだだけで体内が熱くなりました。

正直、アレは一気飲みしたりするとヤバイと思います。
純度100%のアンモニアの臭いを嗅ぐぐらいヤバイと思う。

余談ですが、中学校の頃の理科の先生が、
純度の高いアンモニアの臭いを嗅いで その場で気絶したことがあるらしいです。
(もうなんか、頭の中を何かが突き抜ける感じだったらしい)

何でそんな事をしたんでしょうか。理科の先生・・・!

テーマ : 日記 - ジャンル : 日記

Singletonテンプレートを作ったぞ!(`・ω・´)

テンプレートの勉強も進めているので、ちょっと練習がてら
Singletonパターンのテンプレート版を作ってみました。

【参考画像】
Book2.jpg
↑使ってる参考書


//Singleton.h
#pragma once
#define SAFE_DELETE(p) { if (p) { delete (p); (p)=0; } }

template< class T >
class Singleton{
public:
static T& getInstance(void){
static T singleton;
return singleton;
}
protected:
Singleton();
virtual ~Singleton();
private:
Singleton(const Singleton& obj);
Singleton& operator=(const Singleton& obj);
static T* singleton;
};

template< class T >
T* Singleton< T >::singleton = 0;

template< class T >
Singleton< T >::Singleton(){

}

template< class T >
Singleton< T >::~Singleton(){

}


//Test.h

#include"Singleton.h"

class Test : public Singleton< Test >{
friend Singleton< Test >;
public:
void CountUp(void);
void DispCount(void);
private:
Test();
~Test();
int count;
};


//Test.cpp
#include"Test.h"
#include< iostream >

Test::Test():count(0){

}

Test::~Test(){

}

void Test::CountUp(void){
++count;
}

void Test::DispCount(void){
std::cout << count << "です。" << "(アドレス:"<< this << ")" << std::endl;
}


//main.cpp
#include"Test.h"

int main(void){
Test& aa = Test::getInstance();
Test& bb = Test::getInstance();
Test& cc = Test::getInstance();

aa.DispCount(); aa.CountUp();
bb.DispCount(); cc.CountUp();
cc.DispCount();
return(0);
}


実行してみたところ、問題なく動きました。恐らくコレで大丈夫でしょう。

以前から、リソース管理クラスなんかを作るときに、
Singletonパターンの部分を毎回毎回コピペして冗長になってたので、
何かとてもスッキリしました。
テンプレートすごい!


さて、問題は期日までにゲーム作品が完成するかどうかです。
間に合うか、物凄い心配です。

ずっと脳内で、「ゼルダの伝説 ムジュラの仮面」の、
月が落ちてくる直前の音楽が流れてるんですけど。

【参考URL】ゼルダの伝説 ムジュラの仮面 その81
(この音楽は緊迫感が凄まじい。 あとプレイ動画なので、音楽が聞こえにくいかも)

アクションゲームのステージ構成とか考える暇が無いかもしれないので、
ちょっと格闘ゲームに近くなるかもしれない。
(大乱闘スマッシュブラザーズ的な感じ)

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

大量の 電気カーペットが届いて大変

最近は、
大量のパナソニック製 電気カーペットが届いて大変です。
※アルバイト先の話です

自分は、ベルトコンベアで荷物を運ぶアルバイトをしているんですけども、
なんか
「パナソニックでリコールが行われ始めたから、その荷物は別に分けておいて!」
とか言われて、
その後 いっぱい電気カーペットが届いてます。

【参考画像】
電気カーペット
↑こんなダンボール箱がいっぱいやってくる。

他のアルバイトしている方からも
------------------------------
「うわぁ! まだあるのか!」
「多すぎだろう」
「勘弁して」

------------------------------
みたいな、愚痴と言うか、悲鳴みたいなものが聞こえてきます。


※パナソニック製の 一部の電気カーペットは、
『コントローラ内部が加熱して焦げる恐れ』があるらしいですよ。
【参考URL】パナソニック「ホットカーペ」部品過熱で焦げる恐れ
【参考URL】商品に関する大切なお知らせ

もし購入した方は、交換してもらったほうがいいかも。

-------------------------------------------------------------------
あと、全然関係ない話ですが、
現在 境界球生成の部分のプログラムは出来たので、
今はスキンメッシュアニメーションの部分のプログラムを作ってる途中です。
3Dモデルに当たり判定用の境界球を設置 & +αの機能が実装出来たら、
また報告しようかな、と(`・ω・´)

ジャンプ09号感想

●ワンピース
今回はルフィとエースの戦闘が面白かったです!
-----------------------------------------------------
ピストル ⇒ お互いゴムと炎で効かない
刀 ⇒ ルフィはダメージを受けるので、エースが対応

-----------------------------------------------------
お互いの身体的特徴を活かして、上手く立ち回っているのが素晴らしかった。
(さすが"兄弟"です。)

で、今後は
白ひげが身代わりになり、他の全員脱出という展開になりそうなのですが、
上手く行くのか、予想外の事態になるのか、が分かりませんね。
----------------------------------------------------------
・ルフィのドーピングが切れて、倒れる
・センゴクさんが仏になる
・バギー、クロコダイル、Mr.3などが、何らかの行動を起こす

----------------------------------------------------------
いかんせんキャラクター等が多いので、予想の仕様が無いです。
とりあえず、「バギーさん が活躍する!」という予想をしてみる。

あと、センゴクさんの仏能力についてですが、
筋肉がムキムキになるということでいいんでしょうかね。

んーそれだと、あまり仏と関係ないような。
かといって"仏らしい攻撃"というのも無いんですけども。

(いきなり悟りを開かれても、
「あの人何してるの?」とか思われるだけですし。)


●トリコ
ボギーウッズさんがリタイアされました。
仙骨を真っ二つにされた時の表情が何とも切なかったです。
(なんかこう、全ての終わりを悟ったような感じ。)

※真っ二つにされる前に、
 「肉たたきヘッドぉおッ!!」で粉砕されるというパターンでも面白かっ
とりあえず、トリコ以外の戦闘は来週あたりに決着つきそうですね!


●保健室の死神
最近はアレですね。
スカートの中を盗撮(覗き見)したり、
本屋で女性と体が密着したり、
女湯に侵入したりと、

ひたすらサービスシーン的なものを連発
しています。

もしかすると、
「連載が危ういからもっと色気成分を入れるんだ!」とか言われながら、
パンチラの極意などが伝授されたりしてるのかもしれない。
(もはや必死・・・!

※自分は、以前の「逃避」とか「嫉妬」とかの話の方が好きです。

しかし、忘れてはいけない。
いくら色気成分を入れても、掲載位置が安定する訳では無いと・・・!
(Toらぶるとか、あねどきっとか、その他 色々と前例がある)


●バクマン
「"タント"って面白いの?」と思ってましたが、
今回のカラー絵を見て、「あ・なんか面白そう」と感じました。
※ちょっと連載を見てみたい気がする。

あと、今回 痩せ細った魅上 照みたいな人が出てきましたね。
魅上 照・・・デスノートの、キラの共犯者。

今後ライバルになるのか、コージーみたいに話題に上らなくなるのか、どっちだろう。

まぁ、とりあえずは 新妻エイジ&岩瀬さんが最強のライバルになるでしょう。
(新妻エイジさんは、この漫画で不動のカリスマ性を持つ存在ですし)


●賢い犬リリエンタール
リリエンタールが、 自分で気絶して能力を抑え込みました。
やはり、てつこのトラウマはそんなに簡単には消えない模様。

ずっと 辛い思いを引きずってったんだと思います。
ベッドの片隅で泣いてるコマもありましたし。

来週は「赤い階段」の話になるそうですが、
そういえば 始めに「赤い階段」の話になった時から「心の中では寂しい思いをしている」という
描写があったような気がする。
(てつこの心は 治るのだろうか・・・!?)


●銀魂
ちょっと山崎さんがまだアンパンに呪われてますよ。
いつまで 山崎 冬のパン祭り やってるんですか。
※誰か山崎さんを救って下さい

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

境界球生成プログラム ~完成版!~

【リンク】 ◆解説系TOP◆

境界球生成 後編です! \(`・ω・´)/

前回は、球の頂点の算出までやりました。

------------------------------------------
【1】頂点の順番の定義
【2】三角形の数の算出

------------------------------------------
今回は この2つを解説します。↑

まず、 頂点の順番の定義について。

円の真上と真下は、 頂点1つ と 頂点複数とのポリゴンになっています。
(真上と真下以外は、複数 対 複数の頂点とのポリゴンになっている。)

【参考画像】
頂点結びつけ

よって、真上と真下に限っては
D3DPT_TRIANGLEFANで頂点を定義した方が良いのですが、

ここはあえて、 
全てD3DPT_TRIANGLESTRIPで
行きます。


何でかと言うと、上記の球で行くと
Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,TriNum,&sphere[0],sizeof(TEST));
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriNum,&sphere[0],sizeof(TEST));
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriNum,&sphere[0],sizeof(TEST));

Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,TriNum,&sphere[0],sizeof(TEST));

こんな感じに何度もDrawPrimitiveUPをしなければならなくなるので面倒だからです。
それに、球の頂点数を変えたら
Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,TriNum,&sphere[0],sizeof(TEST));
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriNum,&sphere[0],sizeof(TEST));
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriNum,&sphere[0],sizeof(TEST));
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriNum,&sphere[0],sizeof(TEST));
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriNum,&sphere[0],sizeof(TEST));

Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,TriNum,&sphere[0],sizeof(TEST));
↑こんな風に、描画部分のコードも書き換えないといけないので面倒です。

なので、
---------------------------------------------------------------
1.全てD3DPT_TRIANGLESTRIPで統一
2.それらを縮退三角形でつなぐ

---------------------------------------------------------------
と言う風にします。
【リンク】"縮退三角形"について


では、頂点1つ 対 複数の頂点 (真上・真下)の部分から。
まず、全ての頂点情報は下記の様なvectorの2次元配列で管理されてます。

【参考画像】
頂点結びつけ3

そして、上から見ると 下記の様に頂点が並んでいる事が分かると思います。

【参考画像】
頂点結びつけ4

これらの頂点を、中心の点 + 外周の点2つで組み合わせて、
(今回は) 合計8個の三角ポリゴンで構成します。

【参考画像】
頂点結びつけ5

※頂点を重複させている部分(灰色の部分)は、三角ポリゴンを繋ぐための縮退三角形です。
また、プログラムはこのようになります。

【参考画像】
球_コード

で、プログラムを提示した直後でアレなんですが、このコードには欠陥があります。
コチラをご覧下さい。

【参考画像】
球3

何かおかしいですね。頂上付近が。
一応、色々と調べて原因は判明しました。

原因は、 この3要素のコンボです。
-------------------------------------------
・背面カリングON
・縮退三角形
・D3DPT_TRIANGLESTRIPの仕様

-------------------------------------------
※説明の前に、知っておかないといけない前提を書きます。

-------------------------------------------------------------------------------------
ポリゴンの表と裏・・・頂点を時計回りに定義⇒表、反時計回りに定義⇒裏ポリゴンとなる。
背面カリング・・・負担軽減の為に、裏面のポリゴンを描画しないモード。
D3DPT_TRIANGLESTRIP・・・表、裏、表、裏の順になっているポリゴンが、描画される。
縮退三角形・・・離れたポリゴンを繋いだ時、描画されない三角ポリゴンが、4つ増える。
-------------------------------------------------------------------------------------


で、説明に戻りますが、 普通に三角ポリゴンを縮退三角形でつないで行った場合、
D3DPT_TRIANGLESTRIPで裏ポリゴンが来なければいけない所に、
表ポリゴンが一回置きにやってくるんです。


【参考画像】
頂点結びつけ6

ですから、一回おきに表示されない三角ポリゴンが誕生してしまう、という訳です。
(上記の画像を見たら、交互に消えているのが分かると思います)

なので、三角ポリゴンを繋ぐ場合、
偶数番目は裏ポリゴン(反時計回り)にしないといけません。
それを踏まえたコードはこちら↓

【参考画像】
球_コード2

※多少 分かりづらくなりますが、下記の様にしてif文を消すことも出来ます。

【改良版】
球_コード3

次に、真上と真下以外の部分について。
コレは普通に頂点をジグザグに辿れるので、下記の様にすればOKです。
真上の部分と真下の部分よりかは 恐らく簡単でしょう。

【参考画像】
球_コード4
頂点結びつけ7

※真下の部分は、真上の部分とやり方は同じなので省略。

最後に、 三角形の数の計算方法を書きます。

int tNum = sizeof(degree) / sizeof(degree[0]);
int tP = ((tNum - 2)<<2) + 4;
TriangleNum += ((((tP - 1)<<2) + tP)<<1); //注1
TriangleNum += ((tNum - 2)<<1) * (tP<<1); //注2
TriangleNum += (((tNum - 1)<<1) - 1)<<2; //注3

以上です。

多分、意味不明だと思うので詳細。
まず、degreeが4つの要素の配列だとします。
float degree[] = {90.0f, 60.0f, 30.0f, 0.0f};

で、これらの1象限の角度を反転して円周りにいくつの頂点が出来るか?を算出します。

【参考画像】
球_点
※円周りの頂点の数 = tP です。

次に、真上と真下の部分の三角形の数を計算します。
今回は、上記の図を見ても分かるように tP = 12です。
そして、それらを縮退三角形(見えない三角形4つ)でつなぐので、
(12 - 1) * 4 個 三角形が増えます。

この式を、tPとシフト演算で置き換えると(tP - 1)<<2 となり、
合計は ((tP - 1)<<2) + tPで表されます。

最後に、真上と真下があるので、上の式を2倍(1ビットシフト)すれば三角形の数が出ます。
((((tP - 1)<<2) + tP)<<1)
↑真上と真下の合計(注1の式)


真上・真下の三角形の次に、真上・真下以外の三角形の数を求めます。
まず、真下・真上以外に何段の側面があるか?を調べます。
何段あるかは、((tNum - 2)<<1)で出せます。 (今回は4段
※上の画像の、異なるY座標にある 赤い頂点の個数を調べる、と考えると分かりやすいかも。

【参考画像】
球_点2

で、真上・真下の時と同じように円の周りの頂点の数だけ三角形が出来るので、
頂点の数(tP)だけ 掛け算をします。
ただ、真上・真下と違い、複数 対 複数 の頂点を結び付ける ので、
三角形の数が2倍になることに注意します。

【参考画像】
頂点結びつけ8
※真上・真下と比べて、2倍になっているのが分かる。
 真上・真下の場合は、普通に 円の周りの頂点数 = 三角形の数

よって、式は 真上・真下以外の段数 × (円周上の頂点の数×2)
tNum等の変数を用いると、((tNum - 2)<<1) * (tP<<1)になります。
注2の式)

最後は、段と段をつなぐ縮退三角形の数です。
今回は、下記の様な球になっています。(2つ前の画像を見ると分かりやすいかと)
-----------
真上
1段目
2段目
3段目
4段目
真下

-----------
まだ、段ごとの縮退三角形を考慮してなかったので、これを計算します。

真上縮退三角形1段目縮退三角形2段目/中略/縮退三角形真下
※↑こんな感じで、全てのポリゴンが繋がれてます。

で、段と段との間の数は(((tNum - 1)<<1) - 1)で求める事が出来るので、
あとはコレに、 (縮退三角形の数)をかければOKです。
(((tNum - 1)<<1) - 1)<<2 ←最終的な式(注3の式)

以上で三角形の出し方は終わりです。
色々と複雑な事をやりましたが、おかげで描画部分(DrawPrimitiveUP)は、
Device->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,TriangleNum,&sphere[0],sizeof(TEST));
この一行で済みます。

更に、degreeを下記の様に変更するだけで、表示される球の滑らかさを変えられます。
-------------------------------------
float degree[] = {90.0f, 60.0f, 0.0f};
-------------------------------------
※角度の大きさをデタラメな順番で定義しないで下さい。 壊れます。
※第1象限 以外の角度を入れないで下さい。 壊れます。
※要素数を2つ以下にしないで下さい。 壊れます。
※変な事をして大量のvector配列がメモリリークしても責任は負いかねます。すいません。

一応、何種類かのdegree[]をコメントアウトしてあるので、それらの角度を使って下さい。

【ソースコード】
Sphere_h.txt
Sphere_cpp.txt

テーマ : ゲーム製作 関連 - ジャンル : ゲーム



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。