<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>ちょくちょくゲームネタ。</title>
<link>https://ameblo.jp/punpuku708/</link>
<atom:link href="https://rssblog.ameba.jp/punpuku708/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>不定期更新ブログだからちょくちょく。暇な時しか更新しないから暇な時に見てね。ゲームのレビューとか、プログラムのこととか。</description>
<language>ja</language>
<item>
<title>調子に載っていた自分へ</title>
<description>
<![CDATA[ 過去の自分へ送る記事である。<br><br>このタイプの記事は二度目。<br>ずいぶんと調子に乗ったこと書いていたのをまた発見したので。<br><br>この記事。<br><a href="http://ameblo.jp/punpuku708/entry-10968307212.html">ゲーム業界が </a><br><br><br>また偉そうにゲーム業界のことをお客様の視点で書いてんだけど・・・<br>もうどうしようもないよね。何も考えずに叩くユーザだよ。ゲハ板にいそうな。<br><br>消してしまおうかなとか思ったけど、己への戒めとして残しておくよ。<br><br><br>特にひどいのが最後よ。<br>任天堂がスクエニより嫌いになっちまっただってよ。<br>初めて批判を覚えた中学生かよッて感じだわ。当時18歳。<br><br><br>少しはゲーム業界に詳しくなったから今の意見を簡単に書いておこう。<br><br>任天堂はやべえ。ほぼゲームだけで世界企業になってる時点でやべえ。<br>スクエニもやべえ。グラフィック技術が特にね。世界的に見てもトップクラス。<br>後SCEもやべえ。特に今はPS4も出て更にこれからって感じ。<br><br><br>とにかく、一般人でも知ってるような企業は、全部やべえんだよ。当たり前だけど。<br>常にユーザの事一番に考え、悩んで悩んで商品を世に出してる。<br>正直、頭のおかしい連中しかいないんだろうなと思う。<br>自分もその一部になりてえな。その一歩は踏み出せそうだけどさ。<br><br><br>批判はさ、理由を付けて、相手に納得させないと何も価値がないってことを専門学校で知ったよ。そういう議論は楽しいとも知ったよ。<br><br>そんなわけで、過去の自分へのメッセージでした。<br>この記事も、後で読み返したらｳﾜｱｱｱｱｱｱｱｱｱｱってなるんだろうね。<br><br><br>次はいつになるかな。
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11820365293.html</link>
<pubDate>Sat, 12 Apr 2014 08:56:12 +0900</pubDate>
</item>
<item>
<title>DirectXMathを扱う際の注意点</title>
<description>
<![CDATA[ 前回の記事でDirectXMathなるものがあることを書いた。<br><br>これは数学的な処理をまとめたもので、例えばベクトルや行列を構造体として定義していたり、<br>内積や外積を求めたり、逆行列を求めたりする関数が宣言されている。<br><br><br>DirectXなので、当然ゲームに使えそうなものしかないが、これはかなり重宝するものだ。<br>D3DX系にもこういったものがあった。<br>が、前回書いたように、D3DXは使えない。(使おうと思えば使える)<br><br>で、DirectXMathについて調べていたら、これを扱うには注意点があるようだ。<br><br><br>何も考えずに使うと、特定のCPU上では、これが動かない可能性があるというのだ。<br>何も考えずといったのは、本来動かない環境でも、動かす方法はあるということだ。<br><br>具体的には、<br>SSE/SSE2に対応していないCPU<br>また、ARMアーキテクチャのCPUでは、ARM-NEONに対応していないCPU<br>の2つである。<br><br>？？？？？<br>である。<br><br><br>今まで自分のCPUが速いのか遅いのかでしか考えなかった俺には、全くわからない。<br>が、それではプログラマ失格。逃げてはいけない。そのうち取り上げるかも。<br><br>とにかく、自分のCPUではどうなのか調べてみた。<br><br>DirectXMath自体に調べる関数があった。<br>XMVerifyCPUSupport()である。戻り値はBOOL。<br><br>で、自分は対応していたので安心。このライブラリを使える。<br>が、もしも対応していなかった時は、_XM_NO_INTRINSICS_を#defineで宣言してやればいい。<br><br><br>すぐ気づくだろうが、これがめんどくさい。#defineはプリプロセッサである。<br>つまりコンパイル時に解決されるため、例えば、アプリ起動時にCPUを調べ、<br>それに合わせて処理を切り替える・・・ということが簡単にできないのだ。<br>これに対応するくらいなら、アプリ終了させたほうが楽。<br><br>やるとしても、別の数学系ライブラリをリンクさせて、使い分けるくらいかな・・・？<br>おすすめは出来ないな。<br><br><br>といっても、先述した条件に当てはまってしまうCPUは、今の時代では殆ど無いと思う。<br>(完全に個人的な意見)<br>理由としては、SSEが初めて登場したのが1999年だから。SSE2も2000年である。<br><br>ので、それ以前の古いCPUの載ったPCは使ってる人なんてかなり少ないと思う。<br>まあ、だからって今のCPU全部がSSEに対応してるかって言われると・・・わからん。<br><br><br>とりあえず、アプリ実行時に調べることくらいはしてあげたほうが、ユーザには優しいかも。
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11820332095.html</link>
<pubDate>Sat, 12 Apr 2014 07:53:22 +0900</pubDate>
</item>
<item>
<title>D3DXはもう古い？(DirectX11.1の話):メモ</title>
<description>
<![CDATA[ 自分用のメモなので、かなり雑多に書く。<br><br>Windows8にはD3DX系が無い。<br>代用として、DirectXTexやDirectXMath、DirectXTKがある。<br>要ダウンロード。<br><br><br>それを使う際、プリプロセッサに以下の文字列を追加すること。<br>それによりターゲットにするOSが変わる。<br><br><br> _WIN32_WINNT=0x0600<br><br>デフォルト値は0x0602で、これはWindows8を表す。<br>7にしたいなら0x0601、Vistaなら0x0600を設定。<br><br>おそらく、下位のOSで設定しても、上位のOSでは動くと思う。<br>(まだテストしてない。そのうちしないと)<br>プリプロセッサだから、あくまでコンパイル時だけの話なのかな？<br><br><br>参考：<br><a href="http://www44.atwiki.jp/bokuyo/pages/190.html">http://www44.atwiki.jp/bokuyo/pages/190.html</a><br><a href="http://d.hatena.ne.jp/poyonon/20121106/1352152645">http://d.hatena.ne.jp/poyonon/20121106/1352152645</a>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11817561729.html</link>
<pubDate>Wed, 09 Apr 2014 02:23:47 +0900</pubDate>
</item>
<item>
<title>PCでPS3のコントローラ使いたーい</title>
<description>
<![CDATA[ ツールを使わずに・・・。と思ったのだが、無理だった。<br><br>結局、MotionJoyというツールに頼ってしまった。それはいいとして。<br>わざわざ記事にしたのだから、もう少し突っ込んでお話を。<br><br><br><br>PS3のコントローラは、13ボタン、十字キー、スティック2本で構成されている。<br>入力系統はDirectInputを使って処理するのだが、このボタン達が、DirectInputではどのように処理されるのかについてだ。<br><br>ここに関しては軽くキレそうになったので、今回記事にした。<br><br><br>言わずもがな、PS3のコントローラはXboxのものとは違い、PCでの使用はそんなに考慮していない。<br>しかし結構DirectInputさんで問題なく処理できるので、使おうと思えば普通に使える。<br><br>DirectInputでジョイスティックを使えるようにする流れは別のサイトさんを参考にしてほしい。<br>ここで書くのはだるいので。<br><br>PS3のボタン配置はこうなっている。<br><br>△ボタン・・・ボタン１<br>○ボタン・・・ボタン２<br>ｘボタン　・・・ボタン３<br>□ボタン・・・ボタン４<br>L2ボタン・・・ボタン５<br>R2ボタン・・・ボタン６<br>L1ボタン ・・・ボタン７<br>R1ボタン・・・ボタン８<br>SELECT・・・ボタン９<br>START・・・ボタン１０<br>L3　　 　・・・ボタン１１<br>R3　　　・・・ボタン１２<br>PSボタン・・・ボタン１３<br><br>だ。すぐに調べられることだけど、参考になるかもだからどうぞ。<br><br>で、ゲームパッドにも当然種類がある。やっかいなのは、それによって十字キーやアナログスティックの処理の仕方が異なってくることである。これだけでキレそう。せめてゲームパッドくらい合わせてくれよ各メーカーさんと思うところである。<br><br>ましてやボタンさえ違う。配置は同じなのに、中身が違う。マジおこですよ。<br>何？キーコンフィグくらいゲームで実装しやがれクソ野郎みたいな？ぶっ飛ばすぞ？おお？って感じ。<br><br><br><br>ちなみに。PS3のコントローラはツールなしではPCでは使えないようです。(俺が知るかぎりでは)<br>なぜかというと、アナログスティックの処理をDirectInputがやってくれない。情報がどこに入っているのか俺にはわからなかった。<br><br>が、MotionJoyってのを使ったら情報を取得できたってこと。<br>ボタンと十字キーの取得はMotionJoyなしでもできたんだけど・・・なんでなんだろうか・・・。<br><br>きっと方法があるんだろうけど、俺にはわからない。誰か知ってたら教えて下さいな。<br><br><br>構成がかなり適当な記事になってしまった。<br>終わり。<br><br>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11580089669.html</link>
<pubDate>Thu, 25 Jul 2013 22:36:36 +0900</pubDate>
</item>
<item>
<title>HRESULT型とFAILED()の関係に騙されかける</title>
<description>
<![CDATA[ この記事一回書いたけど何故か消えてしまい、めんどうなので適当に荒く書く。<br>HRESULTには、色々な定数がある。<br><br>E_FAILとS_OKをよく使う。これはbooleanとおんなじ様なもの。<br><br>FAILED(),SUCCESSED()をif文の条件に使って分岐させると、プログラマっぽい。<br><br>で、注意しないといけないのが、S_FAILED。一見FAILED()でtrueが返ってきそうな定数だけど、<br>残念falseが返ってくるので注意。<br><br>この定数の意味は、「関数の処理自体は成功した、が、君のしたいことはできなかった」って感じの意味。つまりエラーではない。<br><br>要は、HRESULTに詳しくない人(俺とか)はS_FAILEDなんて使わないほうがいいよってことだよ。<br><br><br>ハイ終わり。<br><br>HRESULTを知らない人にとっては何言ってんだこいつと思う。<br>知ってる人でも、少し考えないと理解できないんじゃないかと思う。<br><br>それぐらいいい加減でめちゃくちゃな記事になりました。<br>自分がわかれば良い。<br><br><br>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11556226914.html</link>
<pubDate>Thu, 20 Jun 2013 00:27:51 +0900</pubDate>
</item>
<item>
<title>討鬼伝(体験版)</title>
<description>
<![CDATA[ 久しぶりのレビューである。<br>もうすぐ発売するゲームだよ。楽しみだね。<br><br><br>これです。体験版だけど。<br><a href="http://stat.ameba.jp/user_images/20130615/14/punpuku708/67/ee/j/o0300030012576405675.jpg"><img src="https://stat.ameba.jp/user_images/20130615/14/punpuku708/67/ee/j/t02200220_0300030012576405675.jpg" alt="$ちょくちょくゲームネタ。" border="0"></a><br><br><br>結果だけ言うと・・・決してモンハンとは違う。<br>確かに、別のゲーム性を追求していた。<br>と言っても、大概の人はモンハンじゃん。というだろう。<br><br><br>まあ、とりあえず、いつもどおりに。<br><br><br>良かった点<br>・普通に攻撃するだけでは、ボスにダメージを与えられない。考えて攻撃する必要あり。<br>・その考える時に、結構色んな選択を迫られる。その選択が縛られることも少なかった。<br>・間違いなく、協力プレイが面白くなる。しかし、人がいないだろう。<br><br>悪かった点<br>・根幹はやはりモンハンである。パクリと言われてもしょうがない。<br>・演出のクオリティが全体的に低かった(特に音関係)。もっと作り込めたはず。<br>・最初に期待していたのが、太刀の納刀による攻撃なのだが、期待を裏切られるカッコ悪さ。やればわかる。<br><br><br>このゲームで大事になるのは、「部位破壊」である。<br>モンハンにとっては、部位破壊は尻尾を除き、戦闘には大きな影響を与えなかった。<br>が、このゲームは部位破壊を考えなくては効率がガクリと落ちる。<br><br>詳しくは説明がめんどくさいので、体験版をやってみてほしい。<br><br><br><br>一つだけ言いたいのは、なぜロックオン機能をつけたのかということである。<br>確かに、このゲームはモンハン以上に敵が動くので、ロックオン必須である。<br>しかしだ。<br><br>他の仲間が設置系の回復エリアとかを用意することが出来るのに、これはいかがなものか。<br>だって、敵にロックオンしてたら、それ見えないじゃん。<br>わざわざロックオン外せって？そんなことをユーザにやらせるのかと。<br><br><br>「わざわざ」はストレスにしかならない。それが頻繁に発生するこのゲームは・・・。<br>という感じがある。<br><br><br>まだもっと良いゲームになったのではないだろうか。<br>と、思ってしまう。<br><br>でも、やる価値はあると思う。体験版はやる価値ある。<br><br>なんだか、Vitaの人気ソフトは狩りゲーばっかりだね。<br><br><br>これぐらいで終わっておこう。<br>次はいつになるかな。<br><br>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11552804244.html</link>
<pubDate>Sat, 15 Jun 2013 13:54:55 +0900</pubDate>
</item>
<item>
<title>正射影の時の注意点</title>
<description>
<![CDATA[ 正射影。簡単にいうと、画面の奥行きの概念をなくした射影変換である。<br><br>この射影変換をすれば、普段の3Dの画面が2Dになる。そして奥行き、つまり遠近感がなくなる。<br><br><br><br>その事に関して長い間引っかかったことがあったので・・・メモる。<br><br>DirectXでは、D3DXMatrixOrthoLH()という関数を使えば、簡単に正射影変換ができる。<br><br>で、その関数の引数に、幅、高さ、ニアプレーン、ファープレーンを設定するわけなんだが・・・。<br><br>それで普通にゲームを作っていたら、何かがおかしい。<br>具体的に言うと、当たり判定がバグった。<br><br>画面の右下に行けば行くほど、当たり判定がずれていくのだ。<br><br>「なんじゃこりゃ？」と、悩むこと1週間。<br>原因はこの正射影だった。<br><br>幅と高さに、ウィンドウの幅、高さを渡していたのだ。それが間違い。<br><br>ウィンドウには、外枠が存在する。ウィンドウの名前とか、終了ボタンとかがある場所がそれだ。<br>ウィンドウの幅、高さというのは、その外枠を含めてのサイズになる。<br><br><br>つまり、<font color="#FF0000"><u>実際の画面のサイズ(クライアント領域という)とウィンドウのサイズは微妙に違うのだ。</u></font><br><br><br>それ故に、当たり判定がずれた。<br>正確には、自分の思っていた位置とは少しずれた位置に描画されていたのだ。<br><br><br>正射影をするときには、クライアント領域の幅、高さを渡してやらないといけない。<br>同じ現象にもしも悩まされている人は、ぜひとも試していてほしい。
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11551627172.html</link>
<pubDate>Thu, 13 Jun 2013 22:37:09 +0900</pubDate>
</item>
<item>
<title>D3DDEVTYPEについて</title>
<description>
<![CDATA[ DirectXについて掘り下げて学んでいると、なんだか今後重要そうなのが出てきたので、<br>メモっておく。前記事で言ったマルチスレッド関連はいつになるかわからない。<br><br>D3DDEVTYPEには2つある。D3DDEVTYPE_HAL,D3DDEVTYPE_REFだ。<br>HALだって！？なんて一瞬思ったが、全くの無関係である。<br><br><br>これはIDirect3D9::CreateDevice()の第2引数に渡す定数なんだけど、<br>この2つを切り替えるだけで、バカ見たく処理速度が変わる。<br><br>結論、速いのがHALで糞遅いのがREF。<br>どうやら、描画関係の処理全て(頂点処理除く)をGPU(ハードウェア)でやるかD3D(ソフトウェア)でやるかを切り替えるものみたい。<br><br>当然GPUの方が速い。ならば迷うことなくHALを使うべきである。<br>しかし、REFを使わなければならないタイミングは存在する。じゃなきゃこんな設定は存在しない。<br><br>それが大事かなと思ってメモしている。しばらくHALのままで行きそうだから。<br><br>REFは、いわゆるデバッグに使うことができる。<br>HALだといろんな情報をGPUに渡して計算してもらうので、GPUの中でどのように値が変化していっているか、見ることはできない。これは絶対にできない。<br>(できたらGPU作ってる会社のノウハウがダダ漏れになるってことだからかな？)<br><br>REFにしとけば、D3Dの方ですべての計算を行うので、どのように値が変化していっているかを追う事ができる。<br>つまり、デバッグができるということなのだ。<br><br>その分処理は遅くなってゲームどころではなくなるが、これは大事な機能だ。<br><br><br>覚えておくと、便利かもね。<br>終わり。<br><br><br>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11542892419.html</link>
<pubDate>Sun, 02 Jun 2013 03:30:24 +0900</pubDate>
</item>
<item>
<title>DirectX9、マルチスレッド</title>
<description>
<![CDATA[ 衝撃の事実が発覚したので、記録として残しておく。<br><br>初のゲームプログラム関連の記事がこんなものになろうとは・・・<br><br><br>現在、DirectXというSDKを使ってゲーム開発をしている。バージョンは9.0。<br><br>で、最近マルチスレッドを学んだ。<br>なんと便利！そう思っていた。<br><br>しかしマルチスレッドというのは如何せん理解しづらく、「並列で処理が走る」が故の<br>同期処理を習得するのに時間を要した。<br><br>同期処理を一つミスれば、プログラムが止まってしまう可能性があるからだ。<br><br>なんという厳しい世界。とかなんとか思っていた。<br>そして少しはできるようになったんだ。<br><br><br>そして、DirectX9を使ったプログラムに、マルチスレッドを使ったのだ。<br>するとあら不思議。一定の確率でゲームがメモリエラーを起こして止まっちゃう。<br><br>原因がマルチスレッドにあることは明白だった。しかしどう考えても同期はとれている。<br>いや、きっと凡ミスをしているに違いない・・・そういって約一週間。悩まされた。<br><br>ところが、知り合いのスーパープログラマーに聞けば衝撃の解答が。<br><br>「DirectX9はマルチスレッド推奨してないで。」<br><br><br><br>そうなのだ。調べるとすぐに出てきた。DirectXを作っているMicrosoft自体が<br><br>「推奨していません。」といっているではないか。<br><br>俺には<br>「推奨していませんｗｗｗｗｗプギャーｗｗｗｗｗ<br>　ねえ今どんな気持ち？ｗｗｗｗねえ今どんな気持ち？？？？ｗｗｗｗｗｗ」<br>と見えたが・・・。<br><br>しかし、どうやらDirectX10以降は対応しているようだ。しかしまだそこに踏み入るには・・・<br>という段階。<br><br>もう白目だね。白目。泡吹いちゃう。<br>もうマルチスレッドでゲーム作っちゃってんだよ！！！くそったれ！！！！<br><br><br>・・・ふう。<br><br><br>そんなことは良いのだ。過去のことである。<br><br>DirectX9でのマルチスレッドの使用はすっぱり諦めることにする。<br><br>しかし、マルチスレッドの知識を無駄にしてはいけない。<br>今後DX10、11とシフトしていくかもしれない。<br>他の環境でマルチスレッドを使うかもしれない。<br><br>だから忘れてはならないのだ。<br>と思ったのだ。<br><br>なので、マルチスレッドに関して自分がすぐに理解できなかった部分をメモする。<br>記事が長くなったので、次の記事で書くことにしよう。<br><br>次は、今週中に。<br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11540730286.html</link>
<pubDate>Wed, 29 May 2013 23:17:06 +0900</pubDate>
</item>
<item>
<title>メモ帳にする：エフェクト</title>
<description>
<![CDATA[ ブログ更新してないし、誰も見ないしメモ帳として使うことにした。<br>技術多すぎて忘れちゃうことも多いしね。<br><br>エフェクトを作りたいなあと思ったので、作り方をメモしておく。<br>絶対忘れる。<br><br><br>といっても、全くの初心者なのでその辺はご愛嬌。<br><br><br>メモ用なので画像も貼らず淡々と。<br><br>①図形ツールの直線で輪郭の線を引く。入り、抜きを適当にそれっぽく<br>②両端をぼかしツールで少しぼかす。<br>③新しいレイヤーで、真ん中にかなり細い線。白がいいかも。てかなくてもいい。<br>④繊維にじみツールで、細い線をガシャガシャぼかす。<br>⑤新しいレイヤーで、今度は①よりも少し細い線。色は③のと同じ。<br>⑥①と⑤のレイヤを結合、指先ツールでそれっぽくガシャガシャ。<br><br><br><br>これでできるのがこれ。<br><a href="http://stat.ameba.jp/user_images/20130527/02/punpuku708/11/0e/j/o0256025612553802511.jpg"><img src="https://stat.ameba.jp/user_images/20130527/02/punpuku708/11/0e/j/t02200220_0256025612553802511.jpg" alt="$ちょくちょくゲームネタ。" border="0"></a><br><br><br>終わり。<br><br>何に使えるかわからない。初めてってそんなもの。<br><br>
]]>
</description>
<link>https://ameblo.jp/punpuku708/entry-11538806127.html</link>
<pubDate>Mon, 27 May 2013 02:13:03 +0900</pubDate>
</item>
</channel>
</rss>
