以上テンプレ
たまに空気の読めない人が現れますが、触らない・相手しないこと推奨
>3
率先して弄ってる奴に言われたかない
kazukiは俺が守ってみせる
質問させてください
透過pngを重ねた画像をひとつの画像として出力は可能でしょうか?
具体的に言うとキャラクター画像の上に武器画像を重ねたもの(プレイヤーによってゲーム中で組み合わせられる)を出力して、それをプログラム中で使いたいと考えています
その合成した画像はファイルに保存するんじゃなくてゲーム中で使うだけ?
MakeScreen関数を使えば可能だよ
>前スレ最後の話題
Now Loadingの画像とか最低限の開発者ロゴとかだけ、リソースに置いてる人は見たことあるなあ。
みんなはどう?
え?前スレのやつ、dxlibのアーカイブは暗号化されてんの?
なんかバイナリでファイル連結してるだけのような気がするんだけど
リソースに含めるのはアイコンくらい。
>>9 パスワード機能ついてる
パス設定するとそれをキーに簡易的にだけど暗号化される
暗号化は自作
リソースにするとビルド時間が増える
リソースをほんのちょっといじるのに
いちいちコンパイラを入れている環境じゃないとダメというのは
意外に面倒くさい
まあ一人ならそれほどでもないか
リソースを含んだexeをVC++で開くとあら不思議
リソースが全部丸見えになっちゃいます
むしろ仕様をオープンにして「リソースを差し替えられます!」というのを売りにするのがよい
そして自分が作ったものより良い物ができあがって軽くへこむ。
むしろそれを寄付してもらうことでゲームが発展していく
まず技術のある人が興味持ってくれるレベルのゲームを作らなきゃ
>>7 ありがとうございます
参考までに聞きたいのですが、透明情報を持った画像ファイルとして保存することは可能でしょうか?
>>21 可能
SaveDrawScreenでヘッダを検索
>>22 たびたびすいません
SaveDrawScreenというのは現在の表示画面の指定範囲のスクリーンショットを撮る関数という認識でしたが
表画面で描画されていないものor表画面で背景を無視して(保存時に透明扱い)保存することもできるのですか?
>>23 MakeScreenを、第三引数(背景透過フラグ)をTRUEにして使い描画可能なグラフィックハンドルを作る
描画先をMakeScreenで作ったグラフィックハンドルに変更する
SaveDrawScreenでPNG形式で保存
これでいける
>>24 スクリーンを作るときに背景を透明に出来ることを知りませんでした…
スクリーンを作って描画対象にさえしてしまえば表画面に描画をしなくてもSaveDrawScreenが使えたのですね
勉強になりました
本当にありがとうございました
みんなはライブラリ関数を組み合わせて自作関数とか作ってる?
文章表示とかダメージ計算とかあると便利なのってベースとして作っておきたいよね
>>26 ライブラリ関数の組み合わせだけ、って意味だと無いけど、そういう意味じゃ無いなら普通は作ってると思う
どういう設計でどんな内容かによって様々だけど
DXライブラリはライブラリであってseleneみたいなフレームワークじゃないからね
あくまで画像描画・音楽再生をする関数群でしかない
この方法は誤差が多いな
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
SetGraphMode(640, 400, 32);
if (DxLib_Init() == -1) return -1;
int n = 0;
int naka = 0;
while (!ProcessMessage())
{
ClearDrawScreen();
DrawBox(0, 0, 399, 399, GetColor(255, 255, 255), TRUE);
DrawCircle(00, 399, 399, GetColor(0, 0, 255), true);
int x = GetRand(399);
int y = GetRand(399);
int Cr = GetPixel(x, y);
n++;
if (Cr == 255) naka++;
double kekka = (double)naka / n * 4.0;
DrawFormatString(400, 0, GetColor(255, 255, 0), L"%f\n", kekka);
ScreenFlip();
}
DxLib_End();
return 0;
}
Unityに浮気しようとしたけどDXライブラリのが優秀すぎて戻ってきた
Unity「物理演算もドロップシャドウも私だけで出来ますよ!」
ぼく「すげぇーー!!」
Unity「しかもマルチプラットフォーム」
ぼく「おおおおおお!!!」
Unity「ただし実行環境にはランタイムが必要です」
ぼく「まぁまぁまぁまぁ」
Unity「あとUIが少し分かりづらいです、ボタンとか色々機能が隠蔽されてます」
ぼく「ふむふむふむふむ」
Unity「あと色々したいなら有料です」
ぼく「はぁ」
DXライブラリはなんで無料なんだろうな
広告とかもないし…
金取ってるライブラリの方が珍しいわ
ていうか、商用じゃなく趣味だから
>>33 やだ、金取れるレベルじゃないから何てとても言えない
仮に有料になったら大騒ぎする癖にw
別に有料にしろとか、有料にするだけの価値があるとは言ってない。
金を取れるレベルとか有料にするだけの価値とか言い出す人間に限って物に金を払わない罠
有料にするのってかなりめんどくさいと思う
決済方法の準備とかライセンス管理とか
だったら利用条件だけ明示してフリー配布、の方が気苦労が少ない
有料のライブラリが選択肢に入らない初心者がユーザーの大半なんだから、
直接ライブラリを有料にしても購入者は増えないだろう
DXライブラリを使ってC++でゲームが作れるまでを解説した本を出したほうがまだ儲かりそう
3Dゲームは作るの難しいなしかし
基本モーションは技として用意した方がいいのかな
座る技、ジャンプする技、走る技みたいな
モーションとモーションの区切り目を動的に合成するのなんなん?
アマチュアじゃできないの?
なんなんかと言うと、そういうけいさんするの
プロとアマチュアの、アマチュアって意味なら、だれでもちしきがあれば出来るの
Armatureの、こと言ってるならそれはおぶじぇくとのたんいの事だからできるもなにもないの
モーションブレンドのことか
DxLib使えばその辺も簡単にできる
リファレンスくらい軽く目を通しておけよ
モーションブレンドって対応する二つの頂点の中間点とってるの?
は?
ボーンって知ってる?
骨ええええええええええ
>46
あんたの言っているのはブレンドシェイプ(モーフィング)に近い。
モーションブレンドとは違うもの。
あぁそうか、でもまぁ同じことをボーンでやるのでは
具体的に言うと「モーション」と呼ばれてるようなボーンの回転角の配列について、
それらの補完計算や実際のプログラムから見た扱いを知ってれば、要は行列同士の乗算って事がわかると思う。
前にDirectXやOpenGL向けにアニメーションコントロール処理書いてたので、簡単に言うとそんなかんじ
ところでDXライブラリでデストラクタって使うの?
全く必要性を感じない
なんで使う外部モジュールによってデスクトラクタの使用有無が変わると思ってるの?
さらにどうして必要性を感じないなんて考えちゃったの?
もしかして何にもわかってない人か、またはプログラミング自体した事が無い人か
DxLib_End() とかリソース解放系の関数のことを
デストラクタと呼んでいるんじゃないかとエスパーしてみる
フレームゲームでデストラクタなんて、元々使う機会少ないだろ
毎フレーム数十個くらいなら別にいいかなーって
書く必要性と言う意味の「使う」と
1フレームの間にそれが実行されるかと言う意味の「使われる」が混濁してる。
文脈から言えば普通は前者だと思うけど、なんか話が脱線してる。
GetJoypadInputState( int InputType )ってR3とかL3検出できたっけ?
ライブラリ久しぶりなんだが出来なかった気がする
あと右スティックも無理だったような?
>>58 R3とL3はPS3コントローラのアナログ入力?
GetJoypadDirectInputStateで合計6軸(8軸?)まで取得できるみたい
多分これでいける
アナログスティックをグリっと押し込むやつじゃないか
ボタンとして入力されてるはず
右スティック入力は___analoginputrightって関数があったと思う
右スティックはいろいろ隠し関数があるのか
ちょっと覗いてみる
62 :
名前は開発中のものです。:2013/11/15(金) 17:30:12.39 ID:3IvdXj9h
スレチだったらごめんなさい。
「14歳からはじめるC++わくわくゲームプログラミング教室」
アマゾンレビューを確認すると、コードにも誤植があるとかで、
購入に二の足を踏んでいるのですが、いかがなものでしょう。
当方、初心者向けC++解説書のポインタで詰んだ超初心者です。
コードに誤植程度、普通にあることだ。
本なんて読んでもわからんよ
初めて買った本がそれだった俺が言うんだから間違いない
で、俺はどうしたかっていうと本だとさっぱりだから
龍神録のコードコピペから始めて、わからないところは調べてからそこの質問掲示板で質問しまくった
超初心者っていうぐらいだから多分ポインタの有用性を理解できてないと思うから、
まずはポインタがない時の不便さを実感してみるべき
無手勝流で突っ込むのは時間の無駄
情強は少し金を掛けて高速道路をかっ飛ばす
金をかけて資料を得ても、要点は読んでる人間の経験値が柱になるので、
本さえあれば高速道路かっ飛べるとも限らないが…
ただその辺はどんな手段使っても同じ事なので、良い資料はどんだけあっても困らないかな
結局は自分で書いて発見や理解した事だけが、その人を作る。これ大事。
上の話の流れまったく見てないけどww
ほとんどの人が、真似することから、始める。
自力で出来る人々は、能力が高くて天才のような人
サンプルコードに、解説があり、検証されているのは書籍。
具体的に動作するコードを提示している書籍を読んでも、何も出来ない人はプログラムに向いてい無い。
「龍神録」確認しましたが、もっと基礎からやる必要がありそうです・・・。
まずは買ってやってみることにしました。
それで困った時は、こちらでまた質問させて頂きますね。
お答え頂いた皆様、ありがとうございました。
なんでここでやるんだよ
ポインタで詰むとか、ライブラリ関係ねえからなあ
>>58みたいな質問ならここでやってもいいんだが、
一般的なアルゴリズムとか数学の質問されてもね
マ板でやれよw
ゲームなんか作ってどうするのよ
人生は暇つぶし
2chなんか見てどうするのよ
どうしよう・・・
俺は2chに俺の生きた証しを刻む
過去ログとなってネットに、お前らのPCやスマホやタブレットに
永遠に残るのだ
磁器の寿命は5年ぐらいなんだけど
好きな画面色に変えるフェードイン・アウト関数を作りたいんだけど上手くいかない、一瞬で変わったりしちゃう・・・
どういうのがいいかな
easingとかtweenでググれ
>>79 メインループの速度(時間)に対して変化量をどのくらいの刻みで加算したらいいかってだけじゃないの
ゲームプログラミングで言うと、左端にいるキャラが一瞬で右端に行っちゃうって言ってるのと同じ事だと思うけど
それと考え方は同じ。ググるまでも無いでしょ
また、構ってあげてるのか。お前ら優しいな
>>81 それは、具体的に動作するサンプルコードを提示したのがカッコいい
void fade_screen(int Red,int Green,int Blue,float FadeSpeed){
int FadeLoop = 0;
tmpR = windowR, tmpG = windowG, tmpB = windowB; //現在の輝度を代入
tmpR = Red - tmpR, tmpG = Green - tmpG, tmpB = Blue - tmpB; //いくら動かすか計算
tmpR = ((tmpR / FadeSpeed) / 60); //1/60フレームごとに変更するR輝度計算
tmpG = ((tmpG / FadeSpeed) / 60); //1/60フレームごとに変更するG輝度計算
tmpB = ((tmpB / FadeSpeed) / 60); //1/60フレームごとに変更するB輝度計算
if(FadeLoop != FadeSpeed * 60){
FadeLoop += 1;
windowR += tmpR, windowG += tmpG, windowB += tmpB;
SetDrawBright(windowR,windowG,windowB);
}
}
ごめんこんな感じでやってるんだけど
普通のキャラ移動とかは作れるんだけどこれはどうも上手くいかない
SetDrawBright(255-R,255-G,255-B);
はい、できた!
マウスの右クリックと左クリックの機能を入れ替えるっていうゲーム
作りたいんですが、もちろんDXライブラリです。どうしたらいいですか?
普段左クリックで行う動作をオプションで右クリックに入れ替えるとかそんなの?
>>87 いや時間的にランダムに勝手に入れ替わるっていうゲーム
作りたいんです。
つ関数ポインタ
うーんそれは左と右を入れ替えるんじゃなくて呼び出す関数を入れ替えるほうが速いんじゃね
ここってプログラムの話禁止なんだ
×プログラミングの話
○算数の質問
というかDXライブラリのスレ。
C++スレもあるのに、なぜかDXライブラリと直接関係ない質問が多い。
真面目に答えたのに・・
そのアルゴリズムだけでなく関係する機能すべての何処かにdxライブラリが関与してればいいのさ
97 :
名前は開発中のものです。:2013/11/17(日) 08:22:47.77 ID:Mx4lkQGs
キーフレームアニメーションをやりたいのですが
モデルの頂点をいじるにはどうすればいいのでしょうか?
死ねばいいと思うよ
99 :
96:2013/11/17(日) 16:37:19.55 ID:Mx4lkQGs
MV1GetReferenceMeshで参照した頂点座標を上書きしてみたのですが
描画されたモデルに変化はありませんでした
参照メッシュの情報を本体(?)に渡すにはどうすればよいのかわかりません
ご教示ください
>>99 まず大前提として、メインメモリに置いたメッシュの情報は、基本的にグラボ側への一方通行。
その関数で参照出来るのはその一方通行で送り込んだコピー元の情報
=つまりそこの内容が毎回読み取られて画面に現れてる訳じゃないってのをまず踏まえて、
ただし、ここからはDXライブラリにインタフェースあるかどうかわからないが、
OpenGLやDirectXには逆に頂点情報をめCPU側のメインメモリに引っ張って来る、フェッチ関数(マップ関数)が用意されてる。
それつかえば、いわゆる「書き戻し」が出来るが基本的にこれは高コスト処理なので、
なるだけそれをしないで良い方法を考えた方がいいぜ。
それか、毎回VertexBufferから再作成とか。
これ使ってゲーム作ってもゲーム会社への就職は難しいですか?
わからん。
>>101 プログラマーや技術職としての就職は難しい
企画系ならアピールにはなる、当然結果は実力次第だが
会社ってDXライブラリとか使わないのかね
基本使わないだろう
零細なら使うかもな。
ちゃんとしたところなら独自のライブラリとかもってそうだしね。
ゲームプログラマなんざやりたい奴たくさんいる割りに雇用のパイはちょっとしかない
競争率高すぎんだよ激務なのに薄給残業代なしとかな
その上30代までしかプログラマとして働けないときている
任天堂ですら平均勤続年数10年だそれ以外のゲーム会社は10年もいられない
ゲームなんか作っててどうするのよ人生をドブに捨てる気か
この国には守られてる職業と守られてない職業がある
やりたいことで仕事を選ぶのが間違い守られてる組織に入れるかどうかを基準にするべき
ぶっちゃけ大手であればスマホゲーでもいいんだ、ネームバリューさえあれば。
大手のゲーム系のエリート大学生に勝てる気がしない
>その上30代までしかプログラマとして働けないときている
それはゲーム系に限らん。
趣味でやっとく方が賢い
職業プログラマ/SE場合によってPL、趣味も設計とプログラミングな俺がいます。
多分死ぬまでこんな感じ
>>108 ゲームとは人々に娯楽を与えることが醍醐味
人は娯楽から喜びや楽しい思いを得ることで
学校や仕事で嫌なことがあっても乗り越えられる
そんな人類にとって娯楽を提供する職業がゲームプログラマたちなんだから
別に人生をドブに捨ててるわけじゃなくて
むしろ、最高にやりがいと素晴らしさを兼ね揃えた職業だと思うよ
テレビ番組とかインターネットサービス(ニコ動とか)
音楽、アニメ、漫画、映画などなど
それらの職業も人々に人類にとって大切な娯楽を与える職業だから
俺は彼らを尊敬できるし
尊敬される側の人間も自分がやった仕事で人々に必要とされていたり
喜んでもらえたり、尊敬してもらえりゃ、やりがいのある仕事だと思う
>>108 マジレスすると、絵の描けるプログラマは最後まで引っ張りダコ
絵の描けないプログラマは村人Aなので、新人と入れ替え
そういう業界
あっそ40代でコンビニバイトで頑張れ屋
>その上30代までしかプログラマとして働けないときている
なんて言うか、良く見る↑この一文て実際に働いてない人には微妙に伝わらないニュアンスが含まれてて、
それで良く、
>>115-116 みたいな誤解をする人達が居る。
スレチだけどついでだから一応簡単に書いておくと…
他業種でも会社勤めしてる人ならピンと来ると思うが、30代定年説ってのは色んなケースをひっくるめたかなり「省略した」表現で、
「定年=もう用済み、クビ」って意味でなく、「要は上流になれ」って事。「なってないと困る」ってニュアンスを含んでる。
ちなみに上流ってのはソフト開発の世界で言う表現で、ゲームに限らず、何段階もある開発業務の内、
実際にプログラミングするもっと手前の階層にいる人々の事。
簡単に言えば、チームの管理職(マネージャ、リーダ)や設計職(全体の設計する人、コア部分のアーキ、アプリケーション固有設計など)の事。
実際に物を作るプログラマは逆に下流って言う。川の流れのイメージ。
色んなケースって意味では、派遣PGさんとかの場合のニュアンスもあったり、特に言われたままにしか物を作れない人の場合のニュアンスもあったりして、
それらの場合は上流下流って話じゃ無いんだけど、それらひっくるめて「30代定年説」って言葉に省略されてる。現職13年目のマジ話。
俺来年就活の専門学校生なんだけど(と言っても今3/4年生)
そういう上流工程のさらに一個前に、ゲームで言うなら企画って段階があると思うんだけど、
そういうところに入る前提で新卒入社って出来るの?(新卒募集の種類にプランナーとかある前提)
大卒じゃないと厳しい?専門卒ってなんか単純作業担当ってイメージがあって下流工程目当てってイメージが
>>119 ウチの場合は二次受って言う、いわゆる直接商品企画する会社じゃなくて、
製造委託や技術協力で参加する方の開発会社なのでアレだけど、
一概に言えないが、基本的に大きな所は大卒プロパーを上流へって流れがあるみたいだけど、
正直どこ卒って部分が関わるのは、ぶっちゃければ入社時の選考の時だけ。
で、企画やプランニングってのは普通経験無い段階の人をいきなり参加させるような事は無くて、
例えばいきなり新卒に任せるような事は無くて(零細は除く)、
あるとしたらブレーン参加として、「ちょっと一緒に会議出て」があるかもしれないくらい。
で、たまにあるそれだけをやってて給料出る訳じゃ無いので、役職上は普通、別の担当を振ってる。それが例えば簡単な部分のコーディングとかって事。
本当に企画だけに参加になるようになるのは、その方面の経験と具体的な知識が深い、もっと先の人だけ。
で、ちょっと考えればわかりそうな事なんだけど、その辺りのイメージを持てない、「会社入れば好きなゲームの妄想だけ書いて生活出来る」
ぐらいしか考えられない子が、大体1、2年で辞めてく。
業務で開発していて遊びじゃないって事と、製造にはお客さんの立場からは見えない事が沢山あるって事と、
ノウハウや経験が無いと何も出来ないって事と、新人に限らず能力次第って事と、好きな事してる時間以外のイメージと、それらをひっくるめて考えられれば大丈夫。
プログラマは低く見られてるってのは事実だよな。
プログラマとして経験を積んで、30代くらいにはSEなりPLにステップアップしろって事らしいんだが
そもそもプログラマとしての資質とSEやPLとしての資質は別なのに。
経験を積んだ大工が全て建築設計士になるわけではないように。
>>119 専門学校卒ってのは要は高卒だから、回される仕事は下流工程で間違いないよ。
そこからガンガンやっていけば上流にいけるかもだがスタートラインは大卒に比べて遥かに後ろ。
大卒ってのは勉強できる(自ら進んで力を身につける能力を持っている)って事だから当然周囲には期待される。
SEやPLがPGを経験しておいて欲しいというはある
なんのスレだよ
ゲ製でいきなり業界と海外の話をし出す人間は
キチガイと相場が決まっておる
くわばらくわばら
>>122-123 明らかにスレチだけど、その認識も微妙に違っていて、低く見てる訳じゃ無いって事と、
資質が別って話はどちらかと言うと付加としての考え持った方がいいよって事と、
高卒だから下流行程でってのも大分違う。
要点は
>>120-121 に書いてるので、後の細かい話は、実際に開発の現場に入れば見えてくると思う。
終わり。
最近亡くなった将棋で有名な森田氏なんか、8ビット時代から今まで現役だったぞ
PCエンジンのゲーム作ってた人で今でも現役の人もいるし、30歳定年なんてその人のスキル次第だろ
うん、だからプログラミング一筋じゃ、一般人は飯食えないだろう
ただでさえゲーム業界のプログラマは他の業界から見下されてるんだし
40代からコンビニバイト頑張れ屋
板違いの痛い人間が暴れるスレになりました。
っつーかね、多人数になれば組むこともできないプログラムが
組めるようになるんかね?単に今までできた事が時間をかけず
に出来るようになるだけじゃん。馬鹿じゃねーの。
ツール作ったんだが誰かに見てもらうような空気じゃないな…
>>129 飯食えないほど定収入なわけないだろう
こういう業界は給料が世間より多めに設定されてるから
新人でも月収18〜20万以上はいただけます
俺は能力給が上乗せされて30万ほどだった
飯食えないとは、月収が10万とかです
いい加減、板違い連中はム板かマ板かゲーハー板にでも池
135 :
名前は開発中のものです。:2013/11/19(火) 07:14:33.48 ID:BC4+GbdN
>>133 妄想プログラマの自己紹介wwwwww
頑張れよwwww
荒らしはスルーの方向で
こういう奴らが質問者を煽ってるんだろうなという良い例でした
では次の話題は
3Dモデルの読み込み拡張子ってなにでしてる?
拡張子?自前なので適当。
>>138 なぜそんな質問をしているのか解からんが
プログラミングではファイルの拡張子には
それほど意味はありません
例えばMP3ファイルは音楽ファイルの拡張子ですが
拡張子だけMMPPというオリジナル拡張子に変更したとしても
プログラム上では普通に音楽が再生されます
ただし音楽プレイヤーではそんな拡張子はサポートしていないので再生されない
DXライブラリってデフォルトでデバイスロストをある程度自動で復旧してくれるけど
みんなデバイスロストの復旧はライブラリに任せてる?
俺は貧乏性だから自分で復旧させてるんだけど
質問変えるわ
3Dモデル読み込むとき、環境光も出力したいが
xファイルは環境光の情報を持てないので別の拡張子を使いたい
自分でいじるなら自作だが、既存のobjとかだと汎用性が高く使いやすい
それとどちらにせよx,mmdのやつ以外を使う場合、どこまで自作する必要があるか、
特にDXライブラリのDrawやモデル情報をいじる関数はそのまま使っているか(使えるのか)、それらも自作してるか知りたいです
>>142 >>140 も言ってるが「拡張子」って部分に意味は無いので、多分言いたい事はファイルフォーマットの事なんだと思うけど、
そういう自分の都合で何かしたい事がある場合、自分でフォーマット作ってそれを吐いたり読んだりするんだよ。
で、たまたま既存のフォーマットでばっちり用が足りる場合や、既存フォーマットじゃないといけない事情がある場合に、
その既存フォーマット流用するって順番。
根本的な考え方、理解できてるか?
理解できてるとして進めると、何が必要かってのは、そこに納める必要がある物。
つまり、頂点納めるなら、頂点ロードしてそれを具体的にハンドリング出来る、のような事。
あと気になったので書いておくと、
>自分でいじるなら自作だが、既存のobjとかだと汎用性が高く使いやすい
「いじる」んじゃなくて、それ自体は単にファイルの読み書き書くだけの事。
で、wavefrontOBJ形式がなんでシンプルで汎用性が高いかって言うと、テキストエディタで一度でもファイル開いてみたらわかるけど、
最低限の単純な情報しか格納しないからだよ。
バッチ書いて吐ける程度のただのテキストファイルだから。
てことは、自分もその考え方応用して吐いて、それプラス、必要な物足したフォーマット作ればいいだけ。普通のプログラミングの範疇にあるものだよ。
ただし3DCG扱うプログラミングに必要な基本的な前提知識が居るってだけの事。
具体的には、DirectXやOpenGLで頂点バッファ利用したモデル描画を理解してればいいだけ。
>どこまで自作する必要があるか、
当たり前だけど、君が必要とする事全てだよ。本当に。煽りとかじゃなく。
で、全てってのは本に出てくる全てじゃなくて、
上に書いたような事柄の、必要な物全て。
お、おう
なんか俺の日本語がダメみたいだな
3Dの読み込みって自作拡張子多いみたいだしだし
どんな情報渡してるのか気になったから「俺こんなことしてるよー」な流れにしたかっただけなんだ、なんかごめん
>>145 拡張子って言わずフォーマットって言うべきだったな
自称中級者って上から目線で説教したり解説したりしたがるからなドンマイ
言葉ってムズカシイ
フォーマット=ファイル形式→中身の形式
拡張子→識別記号
でいいんだよね?
ひとつ賢くなったがこの癖は治らん気がする
HDDフォーマットの印象が強くて
拡張子っていったらあくまでもファイル名の一部
それ以外は認めない 最高裁まで争う
たとえば、C++のソースファイルはcppって拡張子つけるけど、中身はただのテキストファイル。txtと同じ。
単に区別するためにcppってしてるだけ。
たとえばBMPファイルはbmpって拡張子つけるけど、ファイル内部の先頭部分にBMPファイルって識別できるようにファイルタイプが記録されている。
拡張子を判定してファイルを判別するソフトだと、拡張子をbmp以外に変えたらBMPファイルと認めてくれないけど
ファイルタイプで判別するソフトなら、拡張子がなんであろうとBMPファイルと認めてくれる。
拡張子は、人間と一部のソフトに「何のファイルか」を判別させるためだけのもの。
自前のファイルフォーマットって
mayaとかで作ったモデルどうやって落とし込むんだよ
>>146 上から目線でも、説教でも、自称中級者でもないからちゃんと文面読んでくれ。
説明してるんだから。
>>150 mayaはわからんけど、melとかでexrorterスクリプト書けるんじゃないの?
blenderがpythonで書けるように。
その辺はソフト固有の話だから、専門スレで聞いて
objが簡単だからまずobj形式からやってみればいいよ。
骨はないけどな。骨が必要ならFBXにしておけ。
モデルデータとアニメーションデータって別ファイルがいいか、
同一ファイルがいいか、どちらでしょうか
ゲームで汎用的に使えるベストフォーマット(拡張し)を教えてください
唯一の汎用ベストフォーマットなんて無い。
何故ならみんな都合が違うから。
具体的に言うと、いらないデータを山ほど積んどきゃ色々な場面で使えるかもしれないが、いらないもんはいらない訳で、
さらにそこにあるデータ形式じゃ困る事もあるだろ?
例えばアニメーション情報にしたって全フレーム分の回転行列を細切れで持つか、キーフレーム補完にするのかで全然違うだろ?
で、補完するにしてもクォータニオンでいいのか行列の固まりがいいのか違うだろ?
前者と後者にしても、回転成分だけでいいのか移動もいるのか違うだろ?
UVの持たせ方も頂点UV式なのか面UVなのかで違うし、オブジェクトって言う概念にどこまで持たせるのかも違うので、
唯一のベストアンサーは無いって事。
強いて有名なのは、Autodeskのfbxや、SONYが言い出しっぺのCOLLADAだけど、
それであっても、いつでもこれで言い訳じゃないから、みんな意味わかりながら自分で決めるの。その時の都合で。
あといわゆるマテリアルって呼ばれる、正体はシェーダに引き渡す色計算用の係数も違うし、
テクスチャもいわゆる普通のテクスチャだけじゃなくてスカイボックスや環境反射用の物なら極座標系の使われ方を想定してるかもしれない。
正直都合のバリエーションが多すぎてキリが無い。
モーションデータとモデルデータを分けるか一緒にするかも作る内容次第なので、
一概に同梱するべきか否かは言えない。
作業中だけなら別の方が楽だけど、リリース時には一つにまとめてる俺の場合。
あ、あと、バンプマップや法線マップ用のデータも違うな。
ほんとキリが無い
DXライブラリはモデルとモーションが別々に使えないのがつらい
基本xファイルだろうし
お前らどれくらいのクオリティのもの作ってるの?
緑のオマージュ少女剣士の3dゲームの動画アップロードされてるけどあれぐらいはみんなポンポン作ってるの?
一概には言えない。ポンポンつくれるときとつくれないときがある
ゲームとしてのクオリティと、単に基本的な技術の話はあんま関係無いな
今で出先なんですが
LoadDivGraphってa[10]を用意、[1]と[2]にLoadGraphを入れた状態で使うとどうなりますか?
エラーかな
日本語で書いてくれ
エスパーすると、
a[10]を用意した上で、a[1]とa[2]にLoadGraphで取得したグラフィックハンドルを入れている状態で
配列aにグラフィックハンドルを確保するとどうなるかってことだろう
答えはどうにもならない
普通にグラフィックハンドルが作られ、a[10]にはそれぞれのグラフィックハンドルが代入される
しかし元から入っていた[1]と[2]のグラフィックハンドルは上書きされるため消失する
だからメモリには元の画像が読み込まれたまま、アクセスする方法がなくなる
a[0]が可哀想
確かLoadGraphで生成するグラフィックハンドルはポインタだったかな
つまり、&aでもOKだったか
>>164 的確です、ありがとう
上書きされるんですか…
グラフィックハンドルに使うっつっても、aは結局ただのint型変数だしね。
ついでにロードした画像は終了するまでメモリの闇に消えるのか?
170 :
名前は開発中のものです。:2013/11/22(金) 19:10:07.04 ID:CObsm9Te
>>169 DxLib_EndとかInitGraphとか使えば消えるはずだけど画像を使う方法は無くなるな
171 :
sage:2013/11/22(金) 21:39:11.12 ID:RQPM2xtc
int i,j;
for(i=0 ; i <=640; i++){
for(j=0; j <=480; j++){
DrawPixel(i,j,GetRand(255),GetRand(255),GetRand(255));
}
}
これwhile文で回したら、テレビのアレと一緒だったという驚き。
タブが使えん。
いや驚きも何もまんまやないかい
だってあれ色信号がランダムで送られてるだけだもの
ちなみに実際にゲームの演出で使うときはそのやり方じゃ遅すぎて使えない
砂嵐画像を1枚だけ用意しておいて,
上下左右に反転(実質4パターン)させてループ表示するのが良い感じ。
もちろん、ゲーム開始時などのタイミングで自動生成させるのもアリ。
自動生成するにしても、
>>171 みたいに1pixあたり3回の乱数計算なんて普通しないけどなww
今気づいた。GetRand(n)って0〜nのn+1パターン生成だったのか
???
そこがDXlibの余計な親切なとこw
普通は 0 〜 n-1 の n パターン生成だよな。
俺も最初勘違いしてて、想定とずれる理由が判らなかった。
お前は何を言っているんだ
乱数の話でしょ
配列と同じじゃないってことか?
普通は、個数を表す意味でRand(100)と指定されたら0〜99までの100種類の結果を返す
でもDXライブラリではGetRand(100)で0〜100までの101通りの結果を返しちまうんだ!
なので混乱しやすい
実際に使うときはラップするから問題ないんだけどな
int MyRand(int n){
return GetRand(n-1);
}
みたく
馬鹿が快適に使えるように作られたライブラリだからしょうがない
>>182 なんでもなんでも再ラップして、わざわざ余計な関数呼び出し増やさなくてもその程度ならマクロでいいんじゃないの?
ランダム生成はさすがに自作
x = a*x + b
同じ数字にループするまでの寿命を長くするにはa,bをどう選べばよいのか
無理数にしたら?
188 :
176:2013/11/24(日) 15:35:31.29 ID:cU6Z2kSj
本格乱数ならknuthとかパークとか
簡単のなら(1229×x+3517502)%1664501%Mとか
3Dゲーの目の動きってテクスチャーをずらしてるのかな?
そんな関数ある?
これっぽいな
MV1SetFrameTextureAddressTransform();
使ったことある人いるんだろうか
俺、ポリゴン化させてる目の場合ボーンでやったり、遠景が主体の場合はシェーダで動かすか、逆に見てわからないほどの距離なら動かさない。
サウンドハンドルについて質問があります
グローバル変数としてint bgmを用意して一度だけ
bgm=LoadSoundMem("pass");
とすれば全体(他のクラスのループ中)で
PlaySoundMem( BGM, 省略);
だけで音楽を再生するということは可能でしょうか?
どこで読み込んでもハンドル(=ポインタ)さえ分かれば再生してくれる
なんでDXLIBのハンドルってポインタ型じゃなくてint型にキャストされてるんだ?
使用者に方を意識させたくないからかな
元々ポインタなのにそれをわざわざキャストしてるならなんか意図があるんだろうけど、
単に識別用のインデクス返してるとか。
ハンドルって、必ずポインタである必要は無い訳で。
Cのどこで初心者がつまづくかっつーたらポインタと相場が決まってるんだし
そこを意識させないのは正解でしょう。
俺がそうだし。
最初は全く理解できなかったけど、ゲーム書きはじめて半月したら突然わかるようになった
やらなきゃできるようにならんね
そんなにポインタ使いたきゃDXライブラリ以外を使えばいいんじゃね?
ポインタ使わなくて済むように配慮したライブラリに俺はわかるようになったとか言われてもコンセプト理解出来ないアホとしか思えない
DXライブラリも値の取得だとかでポインタ使ってるだろ?
てかDXライブラリのコンセプトがポインタ使わなくてすむように配慮してるライブラリってのは初耳だわ。
てか、普通プログラミングする上ではDXライブラリだけ使う事なんて無いですし
公式のリファレンス、サンプルプログラム、開発講座
外部の館、龍 にはポインタがあるが
3Dアクションサンプルには全くない
まあ、使う場所ないからと言われればそれまでだが
サンプルゲームもないんじゃね?
必要な時に自分で使うならともかく何でもポインタポインタ言い出す奴は大抵俺SUGEEやりたいだけ
管理人がポインタも分からない奴にライブラリ使えないよとか言ってる姿想像できないだろ?
遠吠えがうるさくなってきたな。またあいつが来てるのか?
なんでいきなりモメてんのよ。
>>202 > 3Dアクションサンプルには全くない
まあ、使う場所ないからと言われればそれまでだが
お前さんがたまたま見た何かでは、隠蔽されてたんだろうってだけだよそれ。
3Dアクションでは使う場所が無いって、書かれてるようにも読めるので一応言っておく。
世の中には変数すら理解出来ない人も居るんだよ
まあ、このスレには居ないかもしれんが
>>206 公式の3Dアクションサンプルな
ライブラリ自身の隠蔽の徹底さを改めて実感しただけだよ
「使う場所がない」は意訳で「もしかしたらたまたまで意図してないのかもしれないが」ってこと
俺自身はガンガン使ってるよ
何気にライブラリの方でメモリを確保する関数があるんだよな
用意する必要があったのかな
思いついたから入れといただけじゃね
実際、それはあると思う。
乱数関数にしろメモリ確保にしろ、関数呼び出し一回増えるだけの無意味な物は、
多分思い付いて入れただけだと思う。
>>213 ありがとう
でもなんで場所変わってるの?
あーいうとこってしょっちゅうサイト構成変えるし、しょうがないよ。
そっか、管理人さんも大変だろうな
影するゲームってディレクショナルライト使わずポイントライトしか使わないよね?
位置動かせるし
日本語でおk
俺は静的なゲームだからむしろ逆
よく光源が動くならポイントに統一してもいいんじゃね
3D環境で2Dぽく見せるためにカメラをキャラの上に設置したいけど、どうすればいいですか?
>>220 平行投影にしたいって事?
DXLibだと SetupCamera_Ortho 使うとか
>>221 ありがとうございます!
これでゲーム作成が進みそうです!
ネトゲってどこで当たり判定してるの?
例えばマリオ64のオンラインゲームを作りたいと思った時、
判定はクライアントでやってサーバーに結果を送信して、
その結果を他のクライアントと多数決取って、それを真として全てのクライアント通知するか
クライアントは位置情報だけ送信してサーバー側が当たり判定して、それを真として全てのクライアント通知するか
前者だと全てのオブジェクトのコリジョン判定を
全てのクライアントが負うことになるから普通に考えりゃわかるわな
オンラインゲームは全てのプレイヤーのゲーム画面で
同じタイミングで他のプレイヤーの動きの同期を取る必要があるので
サーバー上で時間調整してるんじゃないかな?
サーバーに信号を送って全プレイヤーと同期を取ってから
自分も含めた他のプレイヤーにも信号を送る
>>224 負うことになるからなに?
答えてくれたのに悪いんだけど、その理由が聞きたいんだ
サーバーの負荷が軽くなるし他のクライアントでも判断してるため何かのチートの抑止にもつながるだろうし
かわりに多数決する分通信するからサーバーが軽くなるだけで処理に時間かかるかもしれない
メリットとデメリット両方考えられるからどんな背景でそうなったのかなと
>>225 多分離れたプレイヤーの画面を全く同じにするのは無理だと思うから、
画面上のラグを覚悟で判定部分だけタイムスタンプで帳尻合わせてるのかな
そういえば、判定をサーバーでやるとしたら、
判定結果自体は受け取る必要がなくてダメージの情報を通知するだけなのかな
そうすると、クライアントの仕事は描画と座標・プレイヤーキャラクターの振る舞いの送受信だけなのかな?
ネトゲの通信量って動画より少ないって聞くし
セガのプレゼンの資料で分かりやすいのを前見た記憶があるな
4gamersだったかな
>>226 既にあるものを真似したいだけなんだから、実際に触れてみればわかる
ネトゲプレイしたことあるなら明らかに前者じゃないことはわかるはずだ
何故前者じゃダメなのかってのは、ゲームにおいて(ユーザーから見て)最も大切な部分と
それに実現するための最大のボトルネックを考えることで自然に理解できるんじゃないか
ネトゲっつっても多人数ものだけじゃないんじゃない。
>>226 >他クライアントも判断して
多数決? 廃スペが一人他低スペだった場合、すごくストレスだろうね
ユーザが他のユーザを監視って、絶対的監視がいない時点で意味がない
それなら一人にホストさせるかサバ管
普通のネトゲやったことあるなら、チート対策に
「サーバーに異常な数値が送られてきたらその数値は処理しない」ようにできてることがわかると思うが
それが他クライアントが監視する方法より劣ると思う理由はなに?
もちろんリアルタイムチックに見せるために別でクライアントごとに計算させるのはいいと思う
>>227 当たり判定どこでやってるかは、ゲーム性とかプラットフォーム(据え置きなのか、PCなのか)とかにかなり左右されるから一概には言えない。
俺が昔やってたFPSだと、大抵ホストが全部やってたと思う。ホストプレイヤーだけ露骨にエイム強くてよく切れたわ。
Fantasy Earth ZeroってTPSのオンゲは、50vs50の戦争がウリだったんだが、サーバー負荷対策のためか攻撃を受ける側のクライアントがヒット判定とってた。
おかげで当たりそうになったら回線絞って回避みたいなチートが流行ってよく切れたわ。
ネトゲの場合、まずレイテンシを考えることが重要。
国内の目安は確か20msくらいだったと思う。
何か通信するたびに、片道で60fps基準で1.2フレーム分の遅延がでるわけだ。
ヒット判定を多数決方式にしようとすると、
プレイヤー:攻撃送信
↓
サーバー:ヒット判定を各クライアントに依頼
↓
各クライアント:ヒット判定投票
↓
サーバー:ヒット確定、結果を各クライアントに送信
↓
クライアント:判定結果受信
↓1回につき20msかかるわけだから、プレイヤーが攻撃してから判定結果を受け取るまでに最速80ms。
実に4.8フレームかかる。
実際はクソな回線一杯あるだろうから、3倍以上見積もらないとダメだろね。
ヒット判定投票を何msまで待つか?とかいう問題もあるし。
流れぶった切るようでごめん
3Dのモーションってその場所で使うモーションはロード時に全部アタッチしちゃう?
それともモーション変えるたびに新しくアタッチする?
なんか後者だと重くなりそうで・・・
234 :
名前は開発中のものです。:2013/12/01(日) 18:07:22.34 ID:Go/ehMcP
ストリートファイター4のようなオンラインゲームで
遠く離れた人と対戦プレイする時は時差が生まれると問題になる
パンチボタンを押すと目の前のPCモニター画面で
それに合わせて自分のキャラがパンチを繰り出し
拳が相手の顔面にクリーンヒット!
その状況を遠く離れた対戦側のPC画面にも同時に表示するようにしないといけない
そう考えると通信速度ってのは、俺が考えている以上に高速なのだろうか
パンチボタンを押して、パンチを繰り出す時間など瞬時です
それが対戦側のPCモニターにも映る
格闘ゲームはオンラインでも由緒ある60fpsを守るためにがんばってるから好感が持てるよね
>>234 そうなのか
DXライブラリはモーションを直接適用できないのが辛いよね
わざわざベースになるモデルにモーション突っ込んでそのモーションをそれぞれに適用するっていう回りくどいやりかたで・・・
いややっぱなんでもない
忘れてくれ
3D判定関数ってなんで矩形がないんだろう
カプセルとか円だから重そうで
>>239 どう考えてもカプセルや円や珠の方がコスト低いと思うけど。
ちなみにカプセルは半径幅を持った方向ベクトル一つと距離一つの両端に半珠あるだけな。
カプセルとか円の計算が重いからAABBとかもう15年以上前の常識だろう。
今は浮動小数点演算なんて殆ど整数演算とかわらんから、カスほどの差しかでないって。
まぁパフォーマンス周りは計測もしないで重そうとか考えてると一生先に進まないぞ。ホントに。
3Dゲー最近多すぎ。3Dは甘えとか思ってる時期も僕にはありました。
3D空間に擬似2D作ると楽過ぎわろた
そうか差はないか
2Dも3Dも作れる人はマップ3Dでキャラを2Dで作ると素材的に楽ね
>>243 ちなみにそこで言ってる矩形が、もしも何かの座標系固定のAABBの事じゃなく、回転する 矩形の事なら、って前提で言ってるからな俺は。
浮動小数点はほんと速くなったよな
そういやC++では倍精度の方が単精度より速いとかいう噂があったな
コプロセッサがあったからな
コムロテツヤ
>>242 スクロールはカメラ動かすだけでいいもんな
>>248 2Dだと見えない部分を表示しないとか処理作るのめんどうだからね。
ん?
よくわからないけど2dってようは画像だろ?
なんでわざわざ画面外の描画を分けるんだ?
>>250 動作を安定させる為じゃないかな?
マップをキャラに合わせてスクロールとかめんどいから3Dに擬似2D作った方が楽。
>>248-250 まさかスクロール外のマップも全部一枚画像用意して、単にカメラ動かすだけとか思ってるのか?
どんなコードイメージ想像してるんだろうか。
3Dはやったこと無いからわからんが、
3Dなら画面外のものは勝手に省いてくれるって話?
物理描画と論理マップの切り分けが曖昧になってる話
>>252 今作ってるゲームのイメージとしては、
レイヤーを3つ用意して、上から
オブジェクト
マップ
背景
みたいに表示して、マップ画像の上なら移動できるみたいな。
カメラ外は表示しないようにするよ?
2Dだと配列操作とかめんどくさくて・・・orz
>>255 配列めんどくさいって… それ使うのは別に2Dとか3Dとか関係ないでしょ
>>257 それが面倒とかマジか。そしてそれは、表示物が3Dであるかどうかと関係無いでしょっての。
それは内部でどういうデータを相手にしてどう判断するかのロジックに依存する物であって、
表示物や見かけの処理が2D的だったり3D的である事と関係ないよ。
>>258 そうなのか。
ゲーム作り始めて分かったことは、バグがバグを呼ぶは都市伝説じゃなかったこと。
数値が0なのにグラフが−20になってるから直したら、次は数値が2分の1なのにグラフで3分の1になってたり・・・。
多分、サイトや本で見ただけの知識しか無いから
>>249 や
>>251 みたいな妙な事言うのかなと思った。
そこに書いてある物が全てと思ってしまったかのように。
とりあえず、それは狭い固有の要件なので、一般化して話すのはもっと先でいいと思う。
>>259 応援はしてる。頑張れ。
何にせよ書いてる奴は偉い
2D化3Dは一般化していて、普通に使われる。
昔と違って、今はそう
3D対応ハードウェアーならば、2Dよりも3Dが処理が速くて使いやすい。
非力なハードならば、やっと2Dビットマップが動くかもしれない。
ただ、素人が練習として始めるならば、純粋な2Dから始めるのも良い。
女しかいなさそうなスレだな
向いてないから死ね
普通の初心者「ググって先人の知恵を拝借しよう」
低能初心者「(ググった結果)面倒くさいなコレ、こんな感じにしたら組めるだろ、うーん上手くいかないから質問しよ」
写経すらできないやつが自ら実装できると思ってしまうのは何故なのか
ぼく「よし、わかんないから質問しよう」
ぼく「とりあえず要点まとめて質問文つくるか」
ぼく「あれ?これなんかめっちゃ簡単やん質問すんのやめよ」
8割ぐらいこれ
このスレの住民は、設計ができないから調べ方もわからない人と、設計ができるから調べられる人に分けられる
前者は中級者になれないが、後者は
中級レベルなら自力で解決できる
95%の初心者の質問と自称中級者の解説、5%の高度な質問と回答という割合も、妥当なものであると言える
プログラミングスレはクズ回答者が多いからしょうがないね
他スレもこんなことで荒れる
そして設計の問題をDXライブラリの問題と混同する
なんかアレだな
煽りにもレベルというか質が問われる時代なんだな
俺は本読んだり、解説サイト見たりして勉強してるけど、どうしても解らない、が根本的な部分があって、
それについて質問した事が何度かある。(このスレ以外でも)
が、まともな答えを貰えたことがない。
毎度「今のやり方でやっていけてるのならそれでいいんじゃない?」という旨の回答ばかり。
あまりにも曖昧な質問だと、そう回答するしか無い。
また、質問者の目的と方向が不明瞭ならば、
正解の幅が広すぎてひとつに絞れない、だからそう回答するしか無い。
>>273 それは解るよ。
だから何がしたいのかしっかり示した上で、場合によってはサンプルソースも挙げるのに、毎度曖昧な回答ばかり。
質問者側がどれだけ真面目に説明を尽くしてるとしても、
どういう経験があるか、どういう知識があるのか、お互いに全くわからん匿名の相手に、
しかも文字だけで説明するのは、質問する以上に難しいことも多いしな。
特に物事の根本に関わるような質問は、言葉だけで簡単に説明出来る事の方が少ないしさ。プログラムに限らずね。
だからまぁ2chとか質問サイトみたいなところが、
ググれば解るようなしょうも無い質問とか、とりあえず聞いとけって感覚がヒシヒシと伝わってくる質問で溢れかえるのも当然の現象だと思ってる。
DXライブラリやゲームの設計的なことについても
ノウハウを共有したページでも作れば、そこに誘導するってこともできるんだがな
時代錯誤も甚だしい
体系的に学べるサイトや小ネタが載ってるブログが数えきれないほどあって
Googleで適当な単語投げれば一瞬で結果が帰ってくるだろ
検索するのも調べるのも読むのもめんどくさい
プログラミングとか意味わかんないし
頭つかうのきらいだし
誰か作ってくれたら真似するよ
ぼくのゲームだから権利はぼくのだよ
>>279 RPGツクールで作れ。
全体ストーリーとゲーム性が完成しているのならば、手伝う。
それが未完成ならば、発言する資格が無い。
何も無い奴には、手を貸さない。
実際
>>279みたいなやつがゴロゴロいるんだろうね
プログラミングやゲームに興味があるんじゃなくて
俺ゲーム作れるんだぜすごいだろっていうのが欲しいだけ
それは事実だろうけど、同時にブーメランでもあるな。別の方向で。
大したプログラミング技術も、面白いゲームが作れるわけでもないのに
他人をバカにする事で自分の方が上だ、俺はこんなに凄いんだ、って主張したいだけ。
みたいに。
>279はどう見ても釣りだろ
いや、279は釣りというより「こういうヤツっているよなw」的なただの揶揄だろう。
上手に質問する人たちは、プログラムが上手であり、自己解決する能力があります。
丁寧に質問の文章を書いたならば、
その時点で要点を明確にまとめられて、
不具合についても明確になる、
その状態で一晩熟すれば解決の糸口を見つけ出せる。
これで自己解決する。
これは、丁寧な質問の文章を書けば 問題解決への近道である事を意味する。
>>285 そういう発想が出てくる時点で、プログラム書ける俺すげー
ゲーム作れる俺すげーって思ってるのがよくわかるよ
まあ、プログラムを書けない奴より書ける奴の方が凄いし、
ゲームを作れない奴よりは作れる奴の方が凄いのは確かだな。
で、それがどうかしたか?
というかまともなゲームプログラムが学べるブログなんて存在しないけど
どんな技術にしてもある程度のところまでいくと誰も教えてくれないから、
独学でやるしかないんだよな。まあ、それはそれで楽しいわけだが。
294 :
291:2013/12/06(金) 09:04:12.55 ID:8emZ0ahI
>>292 とりあえずこれだけでいいや。よろしく
ゲームにおけるシーングラフの構成
ノード間通信の仕組み
アニメーションデータの持ち方とその適応方法
データベースとの連結
シリアライズとゲームデータのセーブ/ロード
仮想ファイルシステムの作成
パーサーの作り方
よくできたGUIシステムの構築方法
>>294 なんか具体的なようで大雑把な上、
ところどころ自分の設計に依存する物が混じってる。具体的に指摘すると、
> ゲームにおけるシーングラフの構成
→ どのような詳細要件に対する物かで違うので、簡単に言えば自分が設計しないとどこにも無い物。何が知りたいのか。
> ノード間通信の仕組み
→ どのノードの事を言ってるのか主語が曖昧。分散サーバのホスト(ネットワーク通信)の事なのか、
単にソフトウェアとしてのオブジェクトどうしのやりとり手法の事を言ってるのか
> アニメーションデータの持ち方とその適応方法
→ 広い意味でのアニメーションなら時系列表現と表示物などのリソースの扱いの事だが、どんなアニメーション処理に対して何が具体的にわからないのか
> データベースとの連結
→ いわゆるDBMSの利用について知りたいのなら、特定の製品上げて聞かないと。
あるいはもっと初歩的一般的な話ならDBの基礎を、SQLに関する事なら標準と製品による方言を調べろ。
続き
> シリアライズとゲームデータのセーブ/ロード
→ 突き詰めれば単に構造体内容などを単にメモリ/ファイルに書き出すだけだが、何がわからないのか
> 仮想ファイルシステムの作成
→ どのような用途を想定した物か。どう扱いたいのか。確保領域に対して任意のアドレスとそのハンドルでも作成して、
それをやりとりして格納したデータの授受する事以上が必要なのか否か。
> パーサーの作り方
→ 何のパーザが欲しいのか。具体的にはテキストに対する、例えば boost::spirit で書くような構文解析器の事を言ってるなら、BNFでも勉強しろ。
そこまでいらないなら、単に文字列の領域検索の延長で書けばいいだけ。
> よくできたGUIシステムの構築方法
→ 突き詰めると、画面描画と領域の定義と、ユーザから受けた指示への応答だけの事なので、
「よくできた」と思える物かどうかは目の前の要件に照らして判断しろ。
初心者が理解できるかどうかなんて完全無視で指摘した。
>>297 言い訳じゃなくて答えだよ思いっきり。
さらに言うと足りない事柄への指摘だよ。
どうしても腑に落ちないなら、きちんと経験してから個別に考えてごらんよ。
シリアライズなら調べればいくらでも出そうだが
ネットで管理したいのなら知らん
参考にした URL 貼り付けてもらって
そのサイトのどこがわからんか言ってもらった方がアドバイスしやすそう
>295が>292じゃないなら
勝手にしゃしゃり出てきた余計な世話って奴だが・・・
半端者ほど教えたがるから仕方ない
勝手に出てきた余計な世話だけど、誰に聞いても足りない部分については同じだよ。
データベースとの連結
パーサーの作り方
このあたり真面目に解説してるブログあるなら俺も知りたいな
使うあてはないけど読んでて面白そう
前半と最後のこと解説してるサイトってただ胡散臭いだけじゃね
優しくは無いよな
何が問題かよく分かっていないから初心者なのであって、
それに対して質問の仕方が悪いみたいなことを言うのは
正論であっても、人の助けにはならないよね
DXライブラリ 総合スレッド その17
>>294ってサイトでほとんど事足りるし、本もいくらでも見つかるレベルの話じゃん
DXライブラリと全く関係ない一般的なことなんだから視野広げろよ
馬鹿が人並みに質問してタダで回答してもらおうって考えがおかしい
今の時代、大量の情報と検索サイトがあって馬鹿以外はそれで事足りるわけ
電気屋がtwitterやfacebookの登録・設定ができないやつから数千円取って代行してるのと同じで
馬鹿であることを自覚してきちんと対価を払えば教えてくれる奴はいくらでもいるよ
じゃあこのスレくるなよ
ぶっちゃけFacebookやTwitterを端末にセットアップするような技術商売て別にIT業界じゃ普通だよな
>>305 もうスレチなんでアレだけど、DBに関して言うと上にも書いたけど、結局とある製品を、
例えばC++からハンドリングする方法は?って話になっちゃうんだよ。
でその理由は明白で、要はアプリケーションコードから見たら結局
「とあるインタフェースに対する約束事がわかってれば、あとはそれを使って利用するだけ」であって、その具体的な物は製品によって違うって事。
例えばパッケージとして組み込むならSQLiteなんかが有名で、その場合はただのインプロセスだから、
その他のlibやDLLの何かを利用するのと動きのレイヤでも同じだし、
ネットワーク越しにDB置く場合でも、(例えばMySQL等)自分のコードから見たら結局用意されたインタフェース越しに利用するだけなんだけど、
いずれにしても「何の製品を使う場合」で大枠の考え方は同じでも実際個別。
なので知りたい場合、具体的に「何を、C/C++から使うには」で調べないといけない。
で、それとは別の前提として、そもそもDBとはどう言うものか、基本的な動作はとか知ってることが前提で、
さらにせめて標準SQLは知ってないといけない。
その後、やりたい事についてテーブルの設計も出来ないといけない。
そんなかんじ。真面目に書くとキリ無いが。
「いいサイトって少ないよね」
「どんなこと書いてあるサイト?」
「こんなこと」
「質問が大雑把だ!」
「サイトで事足りる!バカが質問するな!」
何故なのか
まあDXライブラリに関係ない一般的要素が多いしある程度見つかりそうなのは同意
以上を踏まえてDBについてまとめると、以下の異なるレイヤについての知識が必要って事。
・DBそのものの動作と立場(入門レベルの話)
・一般的な一連の動作(基礎レベルの話、オープンからクローズまでの流れと、トランザクションの考え方)
・具体的な製品を、自分が使う言語からハンドリングする方法(ヘッダやlibやdllと、公開されてる関数について)
・DBに対する問い合わせ(実習的レベル。SQLで書く内容)
・実際にやりたい事の整理とテーブル設計(応用編としての実装。論理)
細かいことはしょって大雑把にわけるとこういう事。
あと他にあるとしたら、個別の方言や事情。
>>305 あとパーザに関してはやっぱり「なんの?」が先に来るが、一般的なテキスト解釈の話として言うと、やりたい内容によってバラバラ。
ただ共通するのは、要はキーワードの検索と登場順序に関しての判定って言えて、
例えばテキスト中に登場する自分が見つけたい文字や文字列と、その前後関係を、上から順にかコールバックしながらとか探しだして、
それらの結果について評価して行く形。
で、それがたとえばC/C++言語で書かれた物のような複雑な物だったりする時、
BNF記法が応用された boost::phoenixとかのライブラリを利用することも検討するって順序。
ウチの開発グループのアーキがいる研究所でも使った例は無いけど、必要なら検討する。
>>297 お前はバカ確定だなw
何も知らないのに適当に叩こうとするから
自分の能力不足を晒すことになる
あとID変えて言い訳するなみっともない
失礼しましたとか言って負けを完全に認めた上で引く時は引け
抵抗しようとするな
>>294 DXライブラリは単なるラッパーみたいなのだから
この辺の問題をの残してるんだよなあ
とりあえずサイトではなくGameCodingCompleteとかの本を薦める
たいして役にも立たない長文読む気がしないので1つに絞って、
パラパラアニメを実装するアニメーション付きスプライトがあるとする。
この実装方法としては大きく2つある。
1. Spriteクラスを継承してAnimationSpriteクラスを作る
2. Spriteクラスにアニメーションデータを添付できるようにする
よくある実装は1だがこれは愚かな設計だ。理由は省略。
実装するとしたら2だが汎用的にアニメーションデータを添付できるようにするのは実は結構難しい
さらに実際に計算を行うAnimationControllerも欲しい。
最低ローカルの時間軸とワールドの時間軸と再生スピードと再生位置の変更は欲しい
さらに複数のアニメーションの加算合成も欲しい
・・・というような事を解説した日本語のサイトお願いします
紹介出来なかったらフルチンの画像アップして謝罪してください
なんやかんやでたまに面白い意見があるからこのスレは面白い
以前サウンドハンドルについて質問させてもらったものだけど回答くれた人ありがとう
以前音楽再生を試したときにサウンドハンドルの解放したのを残したままだった…
アニメーションって3Dかと思ったら2Dの話だったんかい
汎用アニメデータ作る時点で自作の領域なわけでそこまで一緒のことやってる解説サイトあるんかね
てかそこまでできてて何に困ってんの
スプライトに骨と親子関係、アニメに骨角度と画像の種類持たせて、時間の前後2つを内分して求めるだけでいいじゃん
2dのアニメーションってパラパラ漫画なのか切り分けた画像をアプリケーションの中で重ねるのか
どっちの方がいいんだ
なんのかんのですごく参考になる流れだ
汎用的なアニメーション定義ファイルを作って、それ読み込んで再生するってほうが楽だな。
そのアニメ定義データの設計と、読み込み動作させるライブラリ設計と
それを使ったゲームとエディタを作るというストーリーが浮かんだわ。
325 :
821:2013/12/06(金) 20:21:38.29 ID:8emZ0ahI
>>320 ちげーよ、例として出しただけ
多くのゲームエンジンやツクールではアニメーション出来るクラス/変数は固定だ。
2013年のゲームエンジンとしてこれは許せない物がある。
理想は「全てのクラス」の「全ての型のプロパティ」に対してアニメーションを設定したい。
これは結構難しい(というかC++なら無理)。
幸い俺はC#で作っているので4.0から dynamic がサポートされたのでリフレクションなどを駆使して
上記の方法で実装できたがそれでもさらにロバストにしたいと思ってる
おそらくこの方法が最適な設計&実装だと思ってるが本当のところは知らん。
で、こういう話を解説したサイトさっさと教えて下さい
無いのは知ってますが、あると言い張るキチガイがいるのでさっさとお願いします
思った以上にイタタな人だったか
別に318にケチつけるわけじゃないし、解説して欲しいというわけじゃないんだけど、
「やっちゃいけないけど、理由は面倒なので説明しない」ってのは非効率だと思うんだよな。
やっちゃいけない事ほど理由を説明すべきだと俺は思う。
よく映画とかで「やっちゃいけない」という言いつけをやぶって大被害を被ったりするけど
いつも「ちゃんと理由を説明しておけばこんなことにはならないだろうに」と思ってしまうw
C#でゲームエンジンか
そのゲームエンジンはDXライブラリ使って実装してるのか?
2Dに絞ってもまだ汎用的かつ扱いやすいアニメーションクラスは無理だろ。
ある程度用途や形式を制限される特定のゲーム向きになって、
そうなると解説とかクラスライブラリの公開をするわけにもいかなくなるんじゃないか?
>>305 シリアライズ・デシリアライズ(バイナリ、XML、データベース)なら
C#とかJavaだとぽぽいのぽいだぜ
ディンプスのランブルフィッシュがスムースモデルアニメーションだったけど
なんというか賛否両論だったね
商業レベルのゲームエンジンすらまともじゃねーなら、そら世の中の本やサイトがまともだと感じるわけねーわな
自覚してないのかも知れんがまともじゃないのはお前だぞ
2Dゲーム作ってて、今までずっとDrawGraph系関数で描画処理をしてたんだけど、
いちいち描画順考えるの面倒になってきた。
多少の修正はあるにしても、DrawGraphのところをDrawBillboard3Dに置き換えるだけでOK?
あるいは他に楽な方法ある?
3dこそ描画順序が大切なのに
次にお前は「z値を設定するのがめんどくさい」と言う!
ああ、うん、それもそうッスね…
そしてZ値の設定が面倒とか言いそうだ俺
描画登録という関数を作って、最後にZ順でソートして一気に描画する仕組みは前に作ったことがあるんだけど、
大昔に書いたソースということもあり、いろいろ不便&動作が重くてさ、せっかくなので作り直そうかなと思ったんだよね。
Z値…
zdepthをz値って呼ぶのは別におかしくないと思う
少なくともこの文脈で意味は通る
別の意味の「z値…」なのかも知れないが
>>339 システムを作ってて描画の事忘れてたから、Z値調整だるいな・・・のZ値・・・。
2DのRPG作りたい場合何から始めたらいい?
RPGツクールでも使ってろ
ウディタかRPGツクール
まあRPGツクール使っとけ
まずはどういったシステムを作りたいかにもよる
でDxLibを利用してそれらが作れるか考えてから決めればいいんじゃないか
ただ何でもいいって考えなら上2つに同意
マップエディタの作成からだな
マップ作るとき、建物の判定って全部モデルの面でやる?
アサシンクリード並みの町並みを作ると着地判定の負荷がとんでもないことになるよな
モートン順序?とか必須なのだろうか
2Dですか3Dですか?
>>343 ウディタはそれなりに使えてます
ウディタで言うところのデータベースってのは
C言語では構造体にあたるって認識で合ってますか?
C言語のスレは別にあるからそっちに行ってね
>>348 ウディタ触った事無いけど、多分大分違うと思う
>>346 俺は論理マップと、接触判定用の荒い凸包メッシュで行ってる
アクションゲームに会話の処理を入れていってるんだけど、
1文字ずつ処理する場合に、そこだけをwhileでループさせたいんだ。
プラス、会話中はプレイヤーは動かせない、他の描画はそのままにしたいっていうのは
どうやって実装すればいいだろう。
全体のループの中で、メッセージのループを入れて、
メッセージ部分だけの描画を更新することって出来る?
どうやりたいのかによるけど、
スクリーンショットとってもいいし、描画範囲をメッセージ部分だけに狭めてもいいし。
353 :
名前は開発中のものです。:2013/12/09(月) 22:54:29.89 ID:PslMchEl
状態の更新(Update)と描画(Draw)を完全に分けているならできると思う。
更新と描画は完全に分けています。
ただ、1文字ずつ表示するのは全体のループを繰り返さないと
やっぱり出来ないのかなーと思って。
main:
while(メインループ) {
// ステージの更新・描画
}
stage:
// 敵や人の更新
// プレイヤーの更新
// 敵の描画
// プレイヤーの描画
enamy:
update:
// ↑が押されたらtalkCnt
draw:
// talkCntがあればメッセージ表示処理
common
メッセージ表示処理:
DrawFormatString // ★ここだけをループして処理したい。
かなり抜粋したんですけど、メッセージ処理に文字列渡せば描画してくれることがしたいです。
>>354 全体進行を管理するクラスなり処理って設計してないの?
要点はそこだと思うけど。
つまり稼働物とそれらの統括っていう立場をちゃんと考えて、そのクラスなりなんなりの間で
状態に関する指示と判断を交わすような構成にしとけば、何も悩むことなくなると思う。
>>355 全体進行を管理するクラスは作ってなかったです。
ステージや敵を管理するクラスは作ってるんですけど。
今あるコードをベースに修正するなら、こんな感じかなあ。
余裕があれば、関数化とかクラス化とかやったほうが良いだろうけど。
while(メインループ)
{
if(会話メッセージ表示フラグが真)
{
//会話メッセージの処理(メッセージ送りとか)
}
else
{
//プレイヤーの操作とか、敵の動きとか、当たり判定とか
}
//描画はまとめて行う
//ステージ表示
//プレイヤー表示
if(会話中フラグ)
{
//会話ウィンドウ表示;
}
}
>>357 会話処理だけ別枠にしてるのね
俺はイベント処理の一つとして会話含めてる
3Dゲーだとプレイヤーのキーや敵のAIを止めつつモーションは再生しなきゃならんからそっちのがいいかな
>>357 参考にしてやってみたら、いい感じで行けました。ありがとう!
ループ再生中の音楽をフェードアウトする方法ってありますか?
ボリュームを段階的に小さくする。
音を立体的に演出するにはどうしたらいいですか?
3dキャラクターの近くを電車が通る迫力のある演出したいんですけど
DirectSound 直接使うとか
前スレ最後で少し話題になってたよ
と思ったけどバンのことしか書かれてなかった
まあDXlibだけだとそのレベルが限界
DirectX 立体音響でぐぐればなんか見つかるんじゃないの
>>362 DirectX9必携: 鎌田 茂雄 著
DiretXでのダイレクトサウンド3Dについて書かれている。
隠し関数か
隠しというわけではないけど3D系に限らず
関数リファレンスに載ってない関数はたくさんあるよ
作者さんは結構ニッチなところまでやってくれるから
公式掲示板を検索したり、dxlib.hを検索するのがオススメ
デフォルト引数なんかも多いよな。
372 :
名前は開発中のものです。:2013/12/12(木) 13:25:30.42 ID:H4wTjbYC
背景を表示するコードってメインループ内に書くしかないんですか?
使用するメモリーが半端ないと思うのですが、ループ外に書く方法を教えて下さい
373 :
名前は開発中のものです。:2013/12/12(木) 14:41:38.09 ID:/PrCIZjb
ちょっと何を言ってるかよくわからないですね
>>372 おそらくあなたのプログラムロジックが間違っている。
あなたのコードをアップロードすれば、皆が調査するだろう
毎フレーム背景画像読みこんでるのか
俺も、ロジックと言うか考え方自体が間違ってるか理解してないか何も考えてないと思う
俺の作った3dゲームがやけに重いんだけど
同じく、基本的なところで大きく勘違いしてるように思う。
>>375 あるいは画像を毎フレーム表示することで
メモリに積み重なっていくように思ってるか、そんなところか。
380 :
名前は開発中のものです。:2013/12/12(木) 16:49:58.47 ID:no4EqIs0
>>380 両方、ソースを見せたくなければ、実行ファイルだけでも良いが
とにかく、具体的でなければ、皆は助言のコメントできない
382 :
名前は開発中のものです。:2013/12/12(木) 17:09:38.49 ID:no4EqIs0
流れにのって一つ質問
Dxlibの文字描画ってコスト高いの?
1回描画とかだと何もないけど20越えた当たりからすごく重くなる
384 :
名前は開発中のものです。:2013/12/12(木) 18:38:28.92 ID:LHOSBTMF
>>378 ですから、drawscreen的な背景表示関数をループ外で書く方法は
ありませんか?と問うてるのです。お願いします。
385 :
名前は開発中のものです。:2013/12/12(木) 18:40:35.77 ID:LHOSBTMF
>>378 ですから、drawscreen的な背景表示関数をループ外で書く方法は
ありませんか?と問うてるのです。お願いします。
>使用するメモリーが半端ないと思うのですが、ループ外に書く方法を教えて下さい
つまり莫大なメモリを積んでいるから背景を全部一括でメモリに持ってみたいという話ではないのか
387 :
名前は開発中のものです。:2013/12/12(木) 18:47:31.71 ID:/PrCIZjb
やっぱり何を言ってるのかちょっとよくわからないですね
>>383 フォント重いからねえ
レンダリングは外で済ましとくほうがいいよ
389 :
名前は開発中のものです。:2013/12/12(木) 18:50:08.22 ID:LHOSBTMF
なんで遠回しなレス多いかなー
何故ダメなのか聞いてるなら、その理由を言ってほしい
ソース無いって言われた
背景をバッファに転送してフリップってやってる?
自己解決能力がない人は、一般的に国語力もないんだから
そのあたりを自覚して質問時は丁寧な文章を書くことを心がければいいのに
解決のために最善の努力を行うべき立場の人間が
「半端ない」なんてぼかし言葉使うようじゃ社会じゃ誰も相手にしてくれないよ
>>382 ソース消したのか?
プロファイルかけてやろうと思ったがないから辞めた
393 :
名前は開発中のものです。:2013/12/12(木) 19:18:00.53 ID:LHOSBTMF
>>391 背景の画像をループごとにメモリに読み込んでいたら
膨大な量になるじゃん?ってことだよ
後俺高3だからタメ口でいいよな?趣味で作ってるわけだし
画像の読み込みは一回で十分だぜ
ループにはいる前に読み込むんだぜ
>>393 ソースコードをアップロードしろ。
あなたの専門用語が未熟だから、情報不足で回答することが出来ない。
ソースないって言われて×押したら起動しり、ソースを見ようと思ったら2008じゃ開かねーよカスって言われた悲し
背景云々の人とアップしたのは別人か
俄然読む気が上がったが画像類ってバラけてても気にならんのかね
397 :
名前は開発中のものです。:2013/12/12(木) 19:40:57.02 ID:LHOSBTMF
>>394 そのやり方を教えろ
>>395 だからループ内の最後にdrawscreen(test.jpg)って言ってるだろ
>>389 何故駄目なのかってのは、つまりコンピュータで動くアプリケーション、特にウィンドウ表示されるようなGUIのあるOSでのそれは、
どうやって見た目を更新して表示してるかとか、せめてその辺の基礎知識が無いと話にならないんだよ。
そしてその辺理解してるなら、そんなとんちんかんな問いが出るはず無いので、
みんな困ってるって事。
簡単に言えば、メインループの外で描画とかデタラメもいいとこって話。
で、さらになんでそんな重いのかってのは、そもそも考え方からおかしな作りしてるんだろう、って事。
>>397 やり方も何も、普通は画像ファイルをメモリにロードして、それをDIBとかで持っておいて、ループの中で必要に応じてDrawなりBitbltするだけだよ。
400 :
名前は開発中のものです。:2013/12/12(木) 19:50:57.16 ID:LHOSBTMF
>>398 背景は見た目更新する必要ないでしょう?
一緒なんだから
デタラメとかじゃなくて俺に分かるように説明しろ
そっちは慣れてるから知ってるかもしれないがこっちはまだ2年目だから
3Dですか? 2Dですか?
402 :
名前は開発中のものです。:2013/12/12(木) 19:53:00.27 ID:LHOSBTMF
>>399 コードで頼むわ
正し10行以内
300×300の真っ白の画像を常に表示するプログラム書いてくれ
405 :
名前は開発中のものです。:2013/12/12(木) 19:59:48.61 ID:LHOSBTMF
>>403 言葉使い気を付けたほうがいいよ
そのURLは参考にするが…
でもwin32apiじゃん、俺はDXライブラリに興味があるのであって
他ライブラリは興味ないんだよ
406 :
名前は開発中のものです。:2013/12/12(木) 20:01:38.04 ID:LHOSBTMF
>>404 このDrawGraphってのだよ
これ外に書けないの?
ループの中で毎回ドローしてていいの?
ドローってさ一回だけでしょ
>>402 >>405 言葉遣いに気を付けろってのはお前が言われなきゃいけない台詞だ馬鹿者。
そしてwin32はただのライブラリじゃなくて全ての大本だから、ぐだぐだ言わすにやれ。
せめて全部読んで意味を理解しろ。そこが話の本筋だ。
windows上で動いてるものは、DXライブラリだろうとなんだろうと、もっと言えばDirectXですらこいつが基幹として関わるんだよ。
普通のライブラリじゃないの。
>>406 少なくとも初期化が出来ないと意味を成さない。
ループの外で描画しても消える。
410 :
名前は開発中のものです。:2013/12/12(木) 20:10:56.11 ID:LHOSBTMF
>>408 何で消す必要あるの?消してまたドローするって
二度手間じゃない?というかループの回数が1万回なら
1万手間じゃないの?
>>410 だーかーらーそこのレベルで何で何で言うくらいなら、
>>403 の先のリンク見ろっての。
普通は自分で考えて探して理解してくもんなのに、わざわざ貼ってもらったんだからとっとと見ろ。
特に描画関係の所を。
「ダブルバッファ」で検索してみ
簡単に言うと、
画面の一部を書き直すよりも、画面全部を消して全部を書き直した方が高速なので、リフレッシュする。
ドローとかいう自分が理解していない言葉を使うのをおよし。
416 :
名前は開発中のものです。:2013/12/12(木) 20:24:02.17 ID:LHOSBTMF
例えば音楽とかは中に書いてしまったら同じ音楽の繰り返しになるわけで
どうしてるわけ?本当にループとか謎なんだけど
13歳からはじめるゲームプログラミングとかいう本があるからそれから始めれ
>>410 お前さんがそうやって無駄な文字を書きたくる毎に
サーバーさんもPCさんもブラウザさんも数百万回の仕事してるよ
419 :
名前は開発中のものです。:2013/12/12(木) 20:33:39.35 ID:LHOSBTMF
>>414 画面の0.01%書き直すのと全部書き直すのじゃ1万倍時間の差があるじゃん
書き直さないなら無限倍時間が早くなるでしょう?
>>419 書き直さない処理って背景以外何があるの
背景ですら消す関数なんて呼ぶの面倒なのに
>>382 プレイしたけど体感ぬるぬるでもCPU微妙に使ってるね 原因は普通に重いだけなんじゃね
ただ勢いつけると画面外にマウス飛び出るのは何とかしてほしい
デスクトップに余計な操作してしまった
>>410 二度手間だけど大丈夫。
モニタのリフレッシュレートが60の場合、秒間60回しか画像を書き換えない。
画像の100枚やそこら表示したところで1/60秒もかからないから、一回の書き換え時間内で完了できる作業なら2度手間でも200度手間でも時間的には一緒。
そして、今のPCの処理速度はものすごい速いらしく、コンテナにたくさん要素を入れて1フレームで何度も検索するとかしなければそう簡単にはフレーム落ちしない。
細かいこと気にしてないで、とっとと先に進んだ方がいい。
どうしてもそのやり方がいやなら、DXライブラリから離れることになるんじゃないかな。
私はほかのやり方見たことない。
422 :
名前は開発中のものです。:2013/12/12(木) 20:45:27.82 ID:LHOSBTMF
レスで言ってることが違うwwww
>>382 実行ファイルを試してみました。
3D対応グラボーで、40〜60fps,稀に30fpsになる。
極端に遅いわけではないけど、3D未対応のノートパソコンでは辛いかもしれません。
424 :
名前は開発中のものです。:2013/12/12(木) 20:49:22.35 ID:LHOSBTMF
解像度が異常に高い画像をアップロードしようとしたら
動作遅くなりまくりますか?
横100万画素
縦80万画素
どうなる?
>>382 ガチPCの1時間放置ALT7桁でもFPS59.8以上安定してる
こいつってわざとバカを装ってるかまってちゃんかね
kazuki君に似てるな。
毎度毎度、お前らやさしいな。
>>424 3Gバイト近くある画像とか、現在のコンピュータ環境では厳しいそうだな
>>427 成長するとああなるのかもしれんが、流石に別人じゃろw
画用紙に背景の絵を描きますよね? それに人物の絵を描き加えるとしますよね?
次にその人物を違うポーズに変更しようとしますよね?
でももう背景に上書きしちゃってるので、背景から描き直さなくてはいけませんよね?
コンピューターの描画はこれの繰り返しです。
ファミコンとかのゲーム専用機には「スプライト」という、アニメでいうセル画がみたいなのがあって
描画負荷を軽くする工夫がされてましたが、今どきのPCの性能ならそんなのなくても充分なのです。
(重ねあわせる画像をスプライトと呼ぶのはその名残)
んで、同じ絵を何度も何度も描き直すのに、
毎回画像データを読み込んでたらとんでもない負荷になりますよね?
だから予め画像データをメモリ上に読み込んでおいて、
「描く」だけを何度も繰り返すのです。
一人で作ってると一番の問題はモチベーションの気がするんだ・・・。
なんでこんなクズに教えちゃうの?バカかお前ら
>>382です
シングルスレッドでcpu1コアでやってるのですが、
結局の所、3dゲームとしては妥当な負荷量なのでしょうか?
あとソースコードはvs2010です、すいません。
レビューしてくれるといってくれたひとが数人だったのでダウンロード制限5回までにしてました
亀になりますが、詳しくレビューしてくれる方がいらっしゃるならまた上げます
もうさわんなよ爆釣じゃねーか
436 :
名前は開発中のものです。:2013/12/13(金) 10:43:24.72 ID:xT5S28jk
437 :
名前は開発中のものです。:2013/12/13(金) 10:44:57.60 ID:xT5S28jk
すいません!ブラウザの進むボタン押してしまいましたすいません
8ビット時代の高三かよw
なんてこったい
結局の所重いとかどうとか、どうなったんだ
平日なのに他人のソースなんてそんなに簡単に追えんわ
ハイスペPCだからか負荷全く感じないし
無駄に描画とか計算とかしてるかライブラリの仕様かどっちか
Dxlibの3Dのコストがどんなもんなのかも知らんし
>>436 起動して自機を見ただけだけど、
オンボード(グラボなしのノートPC)で余裕で動いたぞ
敵の大群とか弾があったらどうなるかしらん。
重くなったら解像度と奥行きを抑えればどうにかなるだろ。
ソースはダウンロードできなかった。
描画距離って処理速度に影響してくるの?
描画する要素が多くなるから
ってことなら、描画してるのは天球とか機体だけだからそんなに負荷変わらないような
奥行きを設定してあまりに遠すぎるものの描画を省くってことじゃないんか?
442だけど445さんの意味だよ。
アプリの内容は知らないけど、シューティングだと思うので書いた。
水平線の遥か彼方に飛んでいったミサイルとかは描画しない、
あるいはそうならないように弾丸は5秒で消えるとかアプリの仕様を工夫するのは
基本でしょ。
もちろん全て今後の追加内容次第の話だけどね。
ソース落としたやつの返信がまるでないようだが。
プログラムスレって偉そうなこと言っておきながら具体的なソース書けない奴ばっかだもの
DLできた人何人いるのよ?
5人だろ?
>レビューしてくれるといってくれたひとが数人だったのでダウンロード制限5回までにしてました
同じ奴が5回落としてたら違うだろうけどw
うpされてたぐらいの自作ゲームって
corei3 380/4GBじゃきつい?
CPU : Celeron 1.8GHz
システムメモリ : 4GB
余裕だったぞ
今のご時世、CPUメモリよりもグラフィックボードやVRAMの方が重要な気がする
BMPだと無圧縮だから展開処理が不要で処理が早いと書いてありました
圧縮不要なくらい色数が少ない画像ならBMPを使う方が断然良いってことでしょうか?
ちなみに16色以下の4ビットBMPで保存した場合で比較してみたところ
画像によってはPNGよりもファイルサイズが小さくなることもありました
お前は何にも分かってないな
一行目と二行目の関係が解らん……。
ゲームで使う画像ファイルにはpngを使っていたんですが
キチッと色を調整して16色以下に抑えれば
bmpでもpngの時とさほどファイルサイズは変わらないようです
ということは配布する時の「ファイルサイズを小さくできる」といったpngのメリットは消えて
ゲーム実行時の「展開処理を必要とする分だけ処理が遅くなる」というデメリットだけになるのでは?ってことです
実のところどうなんでしょうか?
質問の答えじゃなくて申し訳ないが
そんなに容量きりつめなくてはいけないほど大量の画像使ってるの?
いやぁ俺の場合音楽データばっか大きくて、画像データなんてそれに比べれば微々たるものだからさ……。
画像ファイルで良く使われるのが.pngです。良いです。
.jpgもありますが、画質劣化するので使いません。透明もありません。
DirectXでは、.DDSが一番良い。 画質劣化、透明、速度に関して
>>454 ・ファイルフォーマットってのはHDDやなんかのストレージに収めておくときのファイル形式で、
展開が云々ってのは、それをロードする時の話。
・ロードする処理と、描画する処理はプログラム的に全く別物。
この辺の入門レベルの切り分けを踏まえた上で考え直して。
>>457 基本pngでいい。bmpでも構わない時だけbmpでも、いい。
20数年前の16bitマシンでも使ってるなら悩んだ方がいいが。
VRAMサイズ抑えれるんじゃないの?
PC-9801みたいに1ドットに3ビット使って8色だしてるところを
2ビットに減らして4色にしたとかいうならVRAMの節約にもなるだろうけど……
基本的に32bitカラーに展開しないと使えないから同じだろ
シェーダー内で使うならパレット形式でも使えるだろうけど処理が無駄すぎる
配布サイズなら7zでbmpのが圧縮される可能性あるけど
展開後のサイズのが気になるからpngのほうが良いかと
凹やレンズ凸レンズを通して見たような感じに画像を変形させる関数ってある?
なんでそんな固有用件の処理が汎用関数として用意されてると思ったの?
SetupCamera_Perspective( float Fov ) ;
これでFOVをセットできます。視野角です。
参考までに、35mmカメラ換算として
14mm 114度 魚眼
28mm 75度 広角
50mm 47度 標準レンズ
300mm 8度 望遠
>>467 ペイントソフトで出来るような変化をさせる関数GraphFilterがあるから
レンズ越しの変形っぽくする関数があっても不思議じゃないなーと思って
470 :
名前は開発中のものです。:2013/12/26(木) 00:22:20.27 ID:xyR7W7tq
confファイルとかiniファイル作ってみたいんですけど
DXライブラリでゲーム作るときこれらのファイルは不要ですか?
かっこつけたいから作ってみたいっていう単純な理由ですけど
あえて作る必要ないですか?exeファイルとjpgファイルだけじゃ
簡素だなーって思われるのが嫌なんですよ。
471 :
名前は開発中のものです。:2013/12/26(木) 00:31:48.63 ID:xyR7W7tq
作るゲームはhelloworldと入力したら「よく入力できました」っていう
文字を出力し、hellowolrdと打ち間違えたら「2文字間違えました!」って
指摘するゲームです。このゲームでconfファイルを作りたいです。
技術者のみなさん知恵を貸してください。
iniファイルっていうのはユーザーが自由に書き換えていいって意味のファイル
だから変更されていい内容なら使えばいい
あともう一つ
技術もないのに小手先でカッコつけようとすんな
474 :
名前は開発中のものです。:2013/12/26(木) 00:42:30.01 ID:xyR7W7tq
>>473 フォルダにconfという拡張子があれば俺はそれで構わない、何も望まない
だったらファイルをアーカイバで固めて拡張子をconfにすりゃいいじゃん
476 :
名前は開発中のものです。:2013/12/26(木) 00:46:20.79 ID:xyR7W7tq
>>475 そのconfファイルってexeファイルとどう関連してるんですか?
dxaファイルの名前がconfになっただけだからなにも変わらないが
ここで聞くなボケ
479 :
名前は開発中のものです。:2013/12/26(木) 00:56:51.32 ID:xyR7W7tq
何を言いたいのかわからん
DXライブラリに関した質問じゃないのはわかるんで、C++の質問スレにでも行って来い
質問に至るまでの流れがどう考えてもおかしいし、ただの釣りだろ
釣りなら釣りでいいけどな。
ただDXライブラリ利用者の中には、それ以前の当たり前レベル、前提レベルの知識や考え方なんかを
色々とすっ飛ばして利用しようとしてるちぐはぐな初心者を時々見かけるので、なんだかなぁと思った。
あとファイル操作関連のド基礎も含めてこれも貼っとく。
http://www.cppll.jp/cppreference/
仮に釣りでもマジレスしてくれれば他の人の参考になるしな
と言うか、上のリンクにあるような物は、DXライブラリみたいな応用編ではないもっとうんと手前にあるド基礎の話なので、
せめてテストコード継続して書くとか、なんか簡単なツール作るとかして具体的に理解深めた後で色々話して欲しいと思った。
どうせゲームなりなんなり作る段階では当たり前に使う物だし。キリが無いし。
486 :
名前は開発中のものです。:2013/12/26(木) 12:22:23.48 ID:hUAF7K9V
confファイルはconfigファイルとは違うの?
後inifファイルとconfファイルは同じ?
この二つだけ答えて欲しい。
答えてくれたらゲーム制作に戻ります。
DXライブラリの水の作り方が分からないんだけど
ググっても出ないし、みんなどうやってるの?
>>486 そのファイルの意味する所が不明ですけど、
一般的に、設定ファイルや記録ファイルとしてテキストファイルを使う。
例えば、画面の大きさ設定などをファイルに記録しておき
次に起動した時にそれを使うように。
また、ゲームの最高得点を記録として残して一覧表として
表示されるように、ファイルに記録して残したりする。
このファイルの操作は、C言語のファイルの取扱で解説してある
ので、C言語の教科書を読んでみてください。
489 :
名前は開発中のものです。:2013/12/26(木) 14:47:36.42 ID:hUAF7K9V
コンフィグファイルがconfファイルなの?
それだけが知りたいです。
流れ知らないけどconfファイルとか個人的に気持ち悪いからcfgにするわな
なぜ構ってしまうのか
>>489 お前が決めたんならそうだよ。
つまり製品によって違うってだけ。好きにしろよ。マジで。
494 :
名前は開発中のものです。:2013/12/26(木) 18:11:59.76 ID:2u/e5+2P
学校の課題で「リサージュ図形プログラム」てでたんだけどナニコレ
>>494 何故この板のこのスレで質問しようと思った?
そういう髪型があるんだよ
キャラクターのパラメータデータってプログラム内の定数として直書きする?
それとも外部ファイルから読み込む?
その場合はどんな拡張子にする?
どうせ最終的にアーカイブするんだから拡張子とか関係ないだろ?
>>497 キャラクターのAIを外部ファイル(dll)にするのは手間が掛かるから
簡単な数値設定も含めて基本的に直に書いてる。
外部ファイル。バランス調整でコンパイルするのめんどい。
拡張子はdatとか適当。
俺も外部ファイルにしてる。自分仕様のアーカイブに固めてるけど。
プログラム内の定数でいいよ
その必要性がわかるようになった時に外部ファイルに出せばいい
外部ファイルを使うってのは
自分でフォーマットを決めて格納して
プログラム外で編集とか自力でやるという前提だよ
直でいいよね
ツール作ってて、それで編集するときだけだな外部は
簡単な内容とか小さい内容とか、あるいは初心者で意味がわからないとかなら、コード上に直接並べてもいいと思う。
いずれにしても理由あって手段を決めるだけなので。
ところで髪を半透明テクスチャで表現したいんだけど、メッシュ透明度をMV1SetMeshOpacityRateで上げればテクスチャ残したまま板ポリ消えるかな?
自分も外部ファイル作って、大量のデータをそこから読んで
好きな形で表示できるようにしてる
独自形式でもファイル読み込みさえ出来れば
データ追加が楽になる
ステージクリア型のミニゲームで、
最初からゲームに含まれているステージは内部データ(配列として直書き)、
エディットモードで作成されたステージや、追加ステージ配信なんかは外部ファイルにしたことがある。
なんでそんな面倒な作りにしちゃったのか10年前の俺…
別に面倒そうな作りとは思えんが……。
俺は直書きだな。
外部ファイルにする技術と根性がなかったのが主な要因だけど
ステージ切り替えなどのたびにいちいち読み込んでテンポ壊さずに済んだのはむしろ良かった。
キャラクター固有のアクションとか持たせ用とした時、じゃあキャラクターごとにクラス作るか
って話になってそうするとこの外部ファイルはこのクラス、っていう分岐処理が必要になって
そもそもなんで外部ファイルに値を書いておくのがわからなくなる
かなり安定するまで直のほうがいい。
トップダウンで最初からファイルフォーマットとか決めても
あとで変更する手間が増える。
DXアーカイブのパスワードについてなんだけどみんなどんな風にコーディングしてる?
俺のはぶっちゃけ隠すようなもんじゃないしガチガチじゃなくてもいいんだけど、
プレイヤーのモチベのための最低限のブロックは必要かなぁって思ってるんだよね。
・キーワード(文字列@)→ハッシュ化(文字列A)
文字列Aで暗号化、文字列Aをコーディング
これくらいでいいのかな?それとも
・キーワード(文字列@)→ハッシュ化(文字列A)→ハッシュ化(文字列B)
文字列Bで暗号化、文字列Aとハッシュ関数をコーディング
これくらいやるのかな?
だーれも答えてくれねぇ…
スレチかもしれないけどゲームの設計で
1.キャラクター共通のデータを持つ定数クラス(最大HPとか経験値テーブルとか)
↓基礎パラメータに固有パラメータを加減算する(ポケモンでいう努力値)
2.そのキャラクター固有のパラメータを持つクラス(Lvとかフィジカルボーナスとか)
↓
3.実際に動くキャラクタークラス(当たり判定とかダメージ処理がある)
って感じで分けてるんだけど、合ってる(問題ない)?
3を作成する時に、if文連打でインスタンス作るクラスを線形探索する必要があるから・・・
class one_character_record{
const int CHARACTER_ID;
const int HP,MP,SP;
//レベルが上がるに連れてHPMPSPをかけてく
const float HP_RATE,MP_RATE,SP_RATE;
//コンストラクタで初期化
};
class one_character_datebase{
vector<one_character_record> character_list;
};
class two_character_info{
int character_id;
int level;
three_character_entity create_character(){
ここでif連打してクラスを線形探索してしまう
}
};
>>513 横だけど、線形探索が嫌なの?それともif連打が嫌なの?
線形探索はListをSetかMapにすればOK。
その場合、キャラID外出しのMapの方がラクそう。Setはめんどいと思う。
if連打の方はその例だとよくわからないんだけど、
「あるステージに登場する敵一覧」みたいなのは、
コーディングでも外部ファイルでも、どっかに作っておかない無理なんじゃない?
そうは言っても、struct Tuple{int id, lv;}みたいな構造体のリストが
あれば十分でif文は使わないと思うよ?
struct Data { int hp, atk, def; };
class ActorType {
Data type; // 種族の初期値
Data lv; // レベル上がったら
};
class Yusya : ActorType {}
class Mahotukai : ActorType {}
class ZakoSlime : ActorType {}
class BossGoblin : ActorType {}
class Actor {
ActorType* pType;
Data max; // 最大( const にできないけど )
Data now; // 現在
}
後はActorのインスタンスに値を渡すなり、Actorを更に継承するとかで。
516 :
515:2013/12/28(土) 01:59:56.67 ID:os0Do0OO
>>513 説明不足かもしれんから補足
Data が 1。ActorTypeが 2。Actorが 3。
if文連打ってたぶん自分がどの種族かって話だと思うけど
ActorにActorTypeを継承した勇者とかゴブリンのポインタを渡しておけばOK
>>511 複数回暗号化したらゲーム側で復号できるの?
DXライブラリのFile Read APIだとキーワードひとつしか使えないと思うけど。
サブクラスのコンストラクタの関数ポインタって、スーパークラスのコンストラクタポインタ変数に代入できる?
if文使うより綺麗にはなりそう
enum e_kind{yusya,mahou,size};
class yusya:unit{
public yusya();
}
class mahou:unit{
public mahou();
}
//あとユニットクラスのコンストラクタの関数ポインタ配列にyusya,mahouをいれて
配列のインデックスに列挙体の定数入れて呼び出す
戻り値はunit
って感じのできたらいいんだけど、
結局配列に関数ポインタいれるのてが気になるんだよなぁesp
相変わらず質問の日本語がひどいな。
const変数の初期化をしたいのかな?
仮想関数の継承はどうだ?
class Unit {
const int HP, ATK, DEF;
Unit(){
HP = getHP();
ATK = getAttack();
DEF = getDefence();
}
// 純粋仮想関数
virtual int getHP() = 0;
virtual int getAttack() = 0;
virtual int getDefence() = 0;
};
class Yusya : Unit {
virtual int getHP(){ return 100; }
virtual int getAttack(){ return 20; }
virtual int getDefence() { return 40; }
};
>>511 パスを暗号化なんてナンセンス
パス文字列を数字にして、プログラム側では数字を文字列に変換する文字列を通して渡すだけでいい
実行ファイルからパス文字列を特定するのは簡単でも、たった数バイトの数値データを特定するのは難しいからな
コミケ勢かもしれないしこの時期は気長に待てよ
>>521 おおなるほどね、たしかにint_64なら8バイトだが
それをそのまま文字列化すれば18文字くらいになるのか
たまにこのスレに相談させていただきながら作っていたゲームがようやく完成しました
アドバイスくれた方々本当にありがとうございました
エフェクトにeffekseer使ってるかたって結構いらっしゃるんですか?
さぁ、どうだか
>>530 「結構」かどうかは分からないが、確実に1人は居る
未完なのにステマがひどいアレか
あのクオリティでも未完なのか…
知ってるのはニコ動のリノ・ライトの〜ってやつ2作品と東方の3D弾幕対戦の計3作
いつの間にか3Dモデル機能無し版なんて出てたんだな
2Dしか使ってないから使ってみるかな
なんでDXライブラリ関係ないのにここで訊いてんのか。
組み合わせが良いんじゃない?
エフェクトに外部ライブラリを使うのは好かないな
見た目にしか影響しない部分は極力軽く作りたいのに、必要以上に重いのが多いし
とはいえ1こづつプログラムで作ってたらきりないしねぇ
エフェクトツールはビシャモンのほうが気になる
エフェクトにツールなんているん?
作ってるものや人によっても違うし。
必要な人には必要。必要ない人には必要ないとしか言えん。
photoshopの機能を使いこなせばそれなりの事が出来るとか
まあ、持ってはいるんだが使いこなせてないからよく分からんが
組み込みライブラリ使ってまで必要かな?とか思ってたら
自分もマップエディタをツールと読み込み用ライブラリ組み込んで使ってたわ
546 :
名前は開発中のものです。:2014/01/03(金) 11:43:41.36 ID:4cktyMT4
547 :
名前は開発中のものです。:2014/01/03(金) 14:05:19.45 ID:Lt/0Pr5R
548 :
名前は開発中のものです。:2014/01/05(日) 16:02:41.52 ID:EueQplrk
常に音を出してるオブジェクトってどうやって管理すればいい?
エンジン音とかそんなものなんだけど、
車オブジェクトが1秒毎に1秒間の音声ファイルの再生リクエストしてる感じ?
それとも管理クラスに「これループ再生しといて」って言って、
そのIDかポインタ持って車オブジェクトが加速とかしたらその加速時の音を再生するみたいな・・・
BGMのループ再生と同じ?
>>548 俺ならそうする
大抵、ワンショット再生か、ループ再生かとか指定できるようにする。
DxLibでカラーパレット変更して2Pカラーを表現できるみたいだけど
ああいうのってシェーダいじればできるの?もっと他の方法?
2P用だとバッファで変換しないとならんし力技じゃないのかね
それでふと思ったが、PixelShaderで色の置き換えしようとすると「何を、何へ」の「何へ」は書き込みだからいいとして、
「何を」の部分を受け取らないといけないが、COLORで受け取れる値ってアンチエイリアス後だったっけ。
それともフラットなマテリアル色だったっけ。
前者だった場合パレット表現しんどいなとふと思った。
ごめん、すっとぼけた事書いた。スルーで。
後の訳無い。
この流れのついでにDirect2Dについて解説してくれろ
1枚の画像を2Pカラー化する方法知りたいっす
>>555 256色とか16色のBMPを使って、カラーパレット部分を直接書き換える。
壁との当たり判定について分からないから3Dアクション基本を見てたんだけど、
「ポリゴンの法線のY成分」って当たっている面の角度ってことでいいんだよね?
イマイチこれだけだと法線の扱いが分からない
>>559 なんとなく質問がぼやっとしてるんだけど、その「ポリゴンの法線のY成分」ってのは多分、
そのポリゴン=「面」における座標空間でY軸を高さ方向とした時、それを面の方向ベクトルつまり法線としてるって前提だから、
その方向ベクトルに対して「当たりに行く側の」方向ベクトルとのなす角について計算するだけの話では。
>>560 やっていることはわりと簡単だけど、説明できない人多いよなぁ
なんだろ、文盲?
// 検出されたポリゴンが壁ポリゴン( XZ平面に垂直なポリゴン )か床ポリゴン( XZ平面に垂直ではないポリゴン )かを判断する
(略)
// XZ平面に垂直かどうかはポリゴンの法線のY成分が0に限りなく近いかどうかで判断する
たぶんソースのここの部分だと思うが
>>557 遅レスだけど助かりました
使用パレット少ない方がいいのかー
↑の法線のY成分に入ってる数値って触れたポリゴンの垂直角度を基準の0度とした状態なのかね
勉強してこないと阿寒湖
566 :
名前は開発中のものです。:2014/01/09(木) 11:59:05.66 ID:cUtmN0XS
567 :
名前は開発中のものです。:2014/01/10(金) 03:10:17.72 ID:MSpxeAqe
下らない質問で申し訳ありませんが
画像を入れ替える場合、int型のデータハンドルをそのまま代入して入れ替えればいいのですか?
あるいはポインタとか使う必要はありますか?
int a, b, temp;
a = LoadGraph( char *FileName ) ;
b = LoadGraph( char *FileName ) ;
temp = a;
a = b;
b = temp;
DrawGraph( x1, y1, a, true) ;
DrawGraph( x2, y2, b, true) ;
一応こういうのが動いてはいるのですが、マズい方法なのかなと悩んでしまって昼も眠れません
>>568 マズい事も変わった事もしてないので大丈夫
なんで入れ替える必要があるの?
描画順はともかく、ハンドル入れ替えは案外使えるテクニックかもしれん。
やるとしたら間に1つ変数を挟んで、その間の方を弄るようにするのがいいかな?
>>572 使えるテクニックも何も… バカソートでもいいからソート処理とか書いた事無いのか。
名前の付いてるアルゴリズムじゃなくてもいいから、普通に。
あ、でも一般化した場合の注意点あるとしたら、
対象が単純なポインタや管理番号としてのハンドル(例えばintのtypedef)とかじゃなく、
何かのインスタンスでかつコピー演算子がオーバロードされててかつ、コピーに対して安全じゃない面のだったら、
安直な入れ換えは出来ないけどな。言うまでもないが。
なんで>572宛のレスでソートの話が出てくるんだ? と思ったがまあいいや。
DXライブラリでのリソース系のハンドルは、基本intでしかなかった気がするな。
違ったっけ?
マップチップで描かれたマップ等の画像を縮小すると、誤差によってマップチップの間に隙間ができちゃうんですが
みなさんはどうやってこれを防ぎますか?
全体の縮小率に合わせてマップチップを少しだけ拡大(縮小率をこころもち下げる)して
ごまかす方向くらいしか思いつきません。
なるべく誤差がでないスケールにしつつ、後は自分でも言ってる通り適当にごまかすしかないんじゃね?
人間って静体視力に比べると動体視力って凄く低いらしいから、
たとえばアニメーション途中で多少ずれるくらいなら、たぶん気付かん。
チップ敷き詰め終わった絵を縮小するとか
解像度にあわせて全体の拡大縮小率を設定できる関数なかったっけ?
>>575 いやソート処理書いた事あれば、ハンドルやらポインタのリストの入れ換えとか頻繁に書くからって意味でしょ
>>576 そんなの、なんで隙間が出来るかちゃんと意味わかってたら解決する話じゃね。
つまり割った時の端数の切り捨てや四捨五入の結果な訳だから、
>>577 も言ってるが、スケール計算見直すか、あるいは別の方法として、
>>578 も言うように一枚にまとめてからスケーリングするとかじゃね。
ただ当然後者の場合は同じ理由で、その一枚画像の端に1ピクセルの隙間出来るけど。
DrawRotaGraphとかにはリファレンスに載ってないやつがたくさんある
拡大率をdouble(1.0で等倍)で指定するのではなく、
描画サイズ(int x, y, w, h)で指定できるやつを探してみ
>>580 ああ、そういうことか。
DXライブラリの画像ハンドルで使ったことはなかったから、繋がらなかったよ。
>>582 試してないけどGDIでの経験だと整数値で指定じゃ誤差分のズレは消えないと思う
GDI+だと浮動小数で指定できるからタイリングでの誤差が気にならない程度に出来てた
テトリス何も参考にせずDXライブラリの関数とC言語の関数で
作り始めて2か月経過したんですけど、ステージとかブロックを
ループ内で表示させる関数はDrawScreenでいいんですか?
描画系の関数他にもありましたよね、効率の悪い関数使ってないか
怖いんですが、これでいいですか?
DXライブラリ公式の関数リファレンス、サンプルプログラムを読んでください
587 :
576:2014/01/13(月) 10:37:58.84 ID:6VL0CxiK
皆さん色々アドバイスありがとう。
最初縮小率を工夫してなんとかしようとしたけど、DXライブラリの画像は縮小率○%で○ドットになる、ってのが結局掴めなくて断念しました。
582の言葉をヒントに、(言われてる命令がどれかはわかりませんでしたが)
今までRotaを使ってたのをModiに切り替えて、隣のチップと1ドット分重ねるようにすることで隙間がでないようになりました。
計算回数がちょっと増えたのと、計算結果を記録しておくための変数が割りと多く必要になったの以外は問題なく動いております。
MakeScreenで1つのテクスチャにまとめておくと拡縮楽よ
ただMakeScreenで作った先は透過色が無効になるからシェーダーで描画する必要があるのが面倒だけど
>>582だけど俺はDrawRectExtendGraph()ひとつで全部やってる
これが一番Direct3D9固定パイプラインのベーシックに近いと思うし
宣言 int ChangeVolumeSoundMem( int VolumePal , int SoundHandle ) ;
概略 メモリに読みこんだ音声データの再生にボリュームを設定する
これって軽ければSE再生時の関数に組み込みたいんだけどどうなの?
既にロードしてある前提で・・・
アフォの質問には答えない・・・
は?
使ってみた結果どうだったの?と聞いている
いや、聞いてないよ?
自分で試すと関数の重さが分かる関数を教えてくだちい☆
「試してみたら重かった。しかし自分の環境のせいかもしれない。書いた処理はこうで、環境はこうなってる。
どこに原因があるだろうか。これはこういう物なのか?」みたいな質問なら、ちょっとこっちの環境でもテストしてみようかって気にはなるけど。
>>587 int dx;
int dy;
dx = (int)(width * 0.9f);
dy = (int)(height * 0.9f);
int y;
int x;
for(int cy = 0; cy < h; cy++,y+=dy){
x = 0;
for(int cx = 0; cx < w; cx++,x+=dx){
DrawRectGraph(x,y,0,0,dx,dy,...);
}
}
転送先の座標を整数で計算すんのはアカン?
StretchBltを使ってどうやって今回の要件を実現するのか
ちょっと教えてくれないか
お断りします
602 :
名前は開発中のものです。:2014/01/15(水) 03:35:55.68 ID:aThJdUAV
うんこゲー祭
http://unkomatsuri.webcrow.jp/ フリゲ2013にて、「ウンコの世界」と投票して逃げたうんこヤローにブチ切れた赤松が企画する、
うんこゲームを自作して、人に喰らわせて、みんなでスッキリする祭です。
4/1(火)に一般公開するから、エイプリルフールネタとしても最適!
匿名公開だから息抜きにも最適!優勝賞品までついてくる!
さあ! フリゲ界隈をうんこ色に染めよう!
【参加要綱】
うんこをモチーフとした、自作のゲームであること
今までに発表したことがない、出したてホカホカのゲームであること
二次創作、18禁、垢BANされちゃうヤバいゲームはNG
皆さんはマップエディタは何を使ってます?
自作。まさに今自作してる(し終わった)ところ。
以前も自作のものを使ってたんだけど、それを根本から作りなおした。
プラチナエディタ。CSV出力できたから特に何も考えずに使ってる。
定期的に話題になるな。
マップエディタすら自作できない人間は
昔は自作してた
今の試作品はTiledつかってる
将来的には自作に戻るつもり
っつーか、建物とか自作したりする機能や自動マップ作成機能とかは欲しいかな?
>>606 無気力人間だな。作ろうと思えば作れるけど、メンドクサイ。
自分がやりたいのはプログラミングではなくてゲーム製作なんでね。
そのうちツールを作る方が楽しくなってくるぞ
結局ゲーム製作となると、素材作りがメインになっちゃうんだよな
ツクールのオートタイル全部実装したぜ(ドヤァ
みんな一人で大作を作ってんの?
俺はミニゲームしか作らないから素材作りよりシステム作りとか短期的なレベルデザインで自分のアイディアを試すのが好きだなあ
>>610 そうなんだよねぇ。
毎度毎度、ゲームの下地をプログラミングして、「よし次は画像を作って実際に動かせば〜」ってところでガクっと作業スピードが落ちる。
>>612 君のいう大作ってのがどの程度のものかは知らないけど
普通に自分以外の人が楽しく遊べるくらいのボリュームは作ってるつもり。
10年くらい前だったかな。
ゲーム内にエディットモードのあるゲームが作りたくて、
簡易マップエディタをDXライブラリで実装したけど、それっきりだなあ。しかも中途半端な出来だった。
俺は簡単な内容ならExcelでまとめてそれをスクリプトで整理して吐き出し、
それじゃしんどい時はゲーム本体側のモジュール再利用してエディタ別に作る感じかな。
てか、データ作るのがしんどいからエディタ作って楽するってのは普通だと思う。
>>611 オートタイルって普通にマップチップ一個表示する部分で
4個表示しないと駄目だよね?
オートタイルがわからなかったのでぐぐった。
最近のRPGツクール系にはこんな機能あるのね。
2Dゲー作ると、キャラの移動で1フレームに1.5ドットとかやりたい場合ありますよね?
今までは自分なりに工夫してなんとかやってたんですけど、
DxLib.hみると、DrawGraphとかに座標指定float版なんて見つけて、
これがあれば変な苦労する事はなかったんじゃないかと思うと同時に、
これが非公開になってるには何か理由があるんだろうかと不安で手を出すのをためらってます。
皆さんはこういうの使ってたりするんでしょうか?
描画する時はfloatからintにキャストしてるよ。
floatで座標指定しても意味無いでしょ?多分。
ドットが整数だし。
>>619 論理座標上はfloatでもなんでもいいが、描画上は最終的にpixelを相手にするんだから正の整数。
ロジックの領域でどうこう自由にする論理座標と、実描画の物理的な座標値は切り分けて考えるのが大前提だよ。
コンピュータの基礎みたいな話で悪いけど。
あー、小数にした方が滑らかに移動する
簡単さを売りにしてるとはいえ、DrawGraphFくらいは公式リファレンスに載せてくれてもいいのにな
背景の移動ならDrawGraphFは使いやすいんだけど、
キャラの移動だと微妙……ってのが個人的な印象
オートタイルはdante95からあった気がするが
遠景作ろうとするとZバッファの距離がたらないのかギザギザになるんだけど
超近距離と遠距離の描画ってみんなどうやって両立させてるの?
10.0~100000.0ぐらいでもうギザギザなんだが
カメラが絶対到達しない距離(スカイドームみたいな)はZバッファの書き込みOFFしてる
方法1)遠景はZソート
方法2)遠景は別にレンダリングする(DOFみたいに)
方法3)精度を32bitにする
PlaySoundにはSetLoopPosSoundMemでループポイント指定できるけど
PlayMusic(MIDI)には隠し関数にもループポイント存在しないの?
公式で聞いたら、ないってさ
>>633 二分割の時ってどんな場合?
あと、640*480でタイルが32*32の場合
オートタイルだとレイヤ一つで1200回も描画が必要で
三つレイヤ重ねると3600回、さらにキャラとかの描画入れると
すごく重くならない?
テクスチャをころころ変えなければたいしたことないだろ
636 :
名前は開発中のものです。:2014/01/21(火) 03:43:26.35 ID:FJKjuTvi
描画回数が気になるならオートタイルの全パターンのテクスチャを用意したらいいんじゃね?
メモリをばかすか食うことになるけど
>>634 2000の滝アニメチップとかは横方向にしかオートタイルが効かない
毎回一から描画しても重いとは感じなかったけど
最終的にはアニメーションのない部分だけ事前に描画してた
VX Aceだとタイルセット複数使えるから事前にオートタイルを用意しておくと
さすがにメモリを潤沢に使える今の環境でもメモリが足りないだろうな
軽く調べてみたが、
ツクールだと、2x3マス分の大きな画像を用意しておき、それを切り取って組み合わせるやり方で、
ウディタだと全パターン(47パターンらしい)を持っておくやりかたなんだな。
ツクール形式の場合、透過させて重ねるように使わないと素材作りが少し面倒だね。
>>640 ウディタが全パターンを事前に用意してるってどこ情報?
失敬、自分が調べたところだと、単にパターン数を全部挙げてるだけだった
ウディタ使ったこと無かったんだ、すまん
一瞬スレ間違えたと思った
こういう時ってDerivationGraph()を使えばいいのかな?
普段LodDivGraph()ばっかりで、つい戸惑うな。
ぶったぎり失礼、3Dモーションの関数なんですが
motion_now = MV1AttachAnim(~~~~~);
motion_old = motion_now;
としたとき、どうもAttachしたint変数が古い変数に入らなくて困ってるんですが、
oldにnowを入れる方法はあるんでしょうか?
ちょっと何言ってるかよくわからないですね
順番逆じゃね
武器をカスタマイズできるアクションゲーム作ってんだけど
武器ごとにキャラクターが飛び跳ねたり違う挙動するんだけど
こういうのってクラスで武器を一個一個作った方がいい?
それとも武器クラスを作って読み込んだスクリプトで振る舞いを変えた方がいい?
それDxLib関係あるの?
C++スレ行けば教えて貰えるんじゃないかな
言語系スレとかライブラリ系スレじゃなくて設計応用先読み工夫の話スレがあったらそこへ行け
画像を任意のタイミングでモノクロ化して表示したい場合の話です
意見を下さい
GraphFilter関数で出来るけど毎回それだとちょっと重いから
MakeScreenと併用してフィルターかけた画像のグラフィックハンドルをあらかじめ用意しておいて
モノクロの場合はそっちを使うように分岐させるというアイディアが浮かんだんだけど、どうかな
8bitグレースケールの画像を用意して表示するのはダメ?
モノクロ化が1フレームでいいのならそれでいいんじゃない?
リアルタイムならシェーダ通す
シェーダで計算処理書くと、後で色々やりたい事変わった場合でも楽かな個人的に。
>>653 画像を変更したり修正したりした時にいちいちモノクロ画像も修正しなければならない事態は避けたい
>>654 じわじわ変化させる予定はないです
>>654>>655 ググったりしたんだけど自分にはシェーダが理解できんかったよ
どうもありがと
だいぶ前に似たようなことやったなあ。
当時のソース手元にないんで具体的にどうやったかまでは確認できないが、
モノクロ版の画像ハンドルを自動的に用意する仕組みだった。
特定のキャラクター用の画像だけモノクロ化して、通常のカラーのキャラと、モノクロのキャラが入り交じってるゲームだったので、
今でも、描画時にモノクロ化させるのではなく先に専用のハンドルを用意したという判断は間違ってなかったと思う。
そう考えるとファミコンのパレットチェンジは処理速度も高速だし、
メモリも少なくて済むしで優秀だよなあ
処理負荷が軽く、メモリも少なくて済むように考えだされた技術なんだろうから
PC性能が上がり、メモリもじゃんじゃん使えるようになったら、必要ないとされたんだろうけど
やっぱり欲しくなるよなぁ。パレット機能。
つーかDXライブラリを使ってパレットチェンジでできねえの
パレットアニメーションとラスタースクロールはSFC世代欲しい機能ベスト4に入るレベル
BG機能もだなw
ラスタースクロールもBGも、今のDXライブラリで普通に表現できると思うんだが・・・
当時よりも遥かに楽に作れると思うぞ
パレット機能はハードウェアの機能だよ。
>>663 画像1枚をラスタースクロールさせるんだったら楽かもしれないけど
画面全体をラスタースクロールとか、手間じゃないか?
それも楽だというのならやり方を是非教えて欲しい。
あとスプライトもそうだけど、結局PC性能に頼ったフレームごとに全画像表示更新だからBG表現できるつっても負荷は高いよね。
背景をスクロールで動かすとか、スプライトを動かすならば、
3Dで作って、カメラを動かす。
2Dゲームであっても3Dで処理するのが単純
カラー→白黒変換は、画像を2種類持っておく
パレット付き画像の機能あったよね…?
もう非推奨になってるんだっけ?
>>667 ラスタースクロールはカメラじゃどうにもならんだろ
GetDrawScreenGraphで一枚の画像にしてからスクロールさせればいいんじゃないの
alpha8bitテクスチャのカラー値をu座標にする方法でパレットもどきが出来るが、
リニアフィルタはプログラムでやらないと行けないから速度的にどうだろう
ラスタースクロールを今時の技術で再現するなら
ピクセルシェーダで、テクスチャ座標のvに応じてサンプルする場所をずらす
とかだろうか
シェーダ、毛嫌いしてる人も使う必要ないって人も
何ができるのか、ぐらいは知っておいて損はないと思うんだ
シェーダといえば3D、自分が作ってるのは2Dゲームで、そもそも3Dよくわからん、
みたいな思考はあるんでね?
2Dでもシューダーをガシガシ使えばいろいろ出来るって事?
いろいろってシェーダを何だと思ってんのよ…
アセンブラもどき
ぶ!何年前の知識だよそれw
まあ、ポストエフェクトのグレースケールあたりから見てみればいいよ。
簡単だし。
シェーダ シェーダ シェーダよ さぐって旅をつづけよう
月がのぼれば 口笛吹いて つぎの冒険 夢みよう
とおもったらシンドバットだったw
>665
画像一枚も背景全部も同じだろう
1ラインずつずらして表示するだけだよ
こう言うとまた負荷がどうのこうの言い出しそうだけど、5年前のPCでも640*480のラスター背景二枚重ね+ゲーム本体が余裕で動いたぞ
あとBG表現が負荷が高いなんて言ってたら何も描画できないだろ・・・
何年前のPC使ってるんだ
2Dシェーダも覚えるとエフェクトの幅広がるよ
上で出た白黒だと今まで裏画面に出力してたのを別スクリーンにして
そのスクリーンをテクスチャにして板ポリに貼り付けてピクセルシェーダで裏画面に描画
HLSL自体は数行だしサンプルもいっぱいあるし、板ポリで2D描画は公式掲示板見れば載ってるし、重くて面倒なことするよりシェーダ覚えた方が遙かに楽
>何年前のPC使ってるんだ
マザボの発売が2004年だから10年前だな。
それはシェーダーモデル1ぐらいか?w
一枚絵をラスタスクロールするなら問題ないだろうけど、マップチップとかをやるならちょっと面倒かな。
一旦オフスクリーンにレンダリングして、その一枚絵に効果かけるのが楽だと思うけど。
シェーダー、ググってもよく分からなくて全く使ってない
使い方や概要を載せてるサイト見たことないもの…
コードだけ載ってたり、雲はシェーダで表現できます!→書き方無し、とかで困った
D3D_FEATURE_LEVEL_9_3でいいから
DirectX11にポートして欲しいな・・・
シェーダーってそれなりのグラボ積んでないと十分な処理速度で無いんじゃないの
10年前のノートPCとかでも快適動作してほしいんだけど
10年前のノートPCじゃシェーダーどころか
描画量を気にするレベルだろう
10年前のPC持ってるやつから動きませんとか遅いですとか言われても無視するわ
>>691 すみません、すみません、Windows98です。
今すぐ回線切ってそれ捨てろ
プレイヤーはゲームキャラクターじゃないんだから、他に気にすべき事あると思うよ
2003年発売の12〜13万のノートPCでも、同人ゲームならそこそこ動いたぞ
2010年頃までの同人STGなら大体動いたと思う
糞重そうなエーテルヴェイパーも普通に遊べたし(DXライブラリ製じゃないけど)
最新の高性能PCでしか動かないシェーダは利用価値皆無でFA
てかHLSLくらい書けよ。
>>687 DirectX シェーダ でググると HLSL の話が出てくるだろ。
その後、DirectX9 HLSL で MSDN を検索するとDirectXでの利用に関する記事かリファレンスが出てくるだろ。
そうしたらそこで必要な考え方について、いくつものワードが登場するだろ。
今度はそれらをピンポイントで調べるか本買ってくるだろ。
それ繰り返せば訳無い話。めんどくさがったらそこで終わり。
開発技術全般、何でもそうだけど。
>>696 ここ数年のGPUはどれもオーバースペック状態
"高性能PC"と言えるものは存在しても、"高性能PCじゃないと動かないゲーム"はまだ存在していないんだよ
シェーダ厨のウザさ
世の中は2Dゲームを求めてるというのに……
ダークおじさんここにも来てるのかw
DXライブラリの2Dゲームでシェーダを使う!
みたいなニッチな記事は意外に需要あるのか
3Dならともかく2Dでもシェーダー使ってる側からすればなんで使わないで旧い技術に拘ってるのか理解できない
3.0だって2004年の技術だぞ。拒絶反応示してる奴はどういう理由なの?
706 :
名前は開発中のものです。:2014/01/28(火) 04:12:40.89 ID:IvP/YXMv
シェーダ書くならdxライブラリも卒業するだろ
留年してごめん
つまるところ自分が使えないから利便性も必要性も感じない訳で
自分が使えるようになって初めてその価値が正しく理解(判断)できるってやつかな
ようするに食わず嫌いもしくは外見が美味しそうな食べ物に見えないって感じ
使うかどうかは別としてテストコード書いてみるというのは、みんなよくやると思うけど、
なんだかんだであれって気力を結構消耗するからなあ。
2Dでシェーダーって何に使うんだ?
>>683(レンダリング結果をテクスチャ化)とかシェーダじゃねーし、
モノクロ、セピア、フェード用の影にピクセルシェーダを書かなくても
ライブラリの標準機能やアルファチャンネルの一工夫で何とかなるだろ
素直に3D使えとか言われそうだな……w
>>710 攻撃エフェクトや爆発エフェクト等で使ってるのをちらほら見かける。
基本的には>710の言う通り標準機能やアルファチャンネルでなんとかなるんだけど、
あと少しだけ格好良くしたい、どうしてもこの演出で使いたいって時に、ピンポイントでシェーダを使ってるような印象。
2Dゲームではエフェクトと相性が良いのか、それともシェーダの入り口として便利なだけなのか、その判断は任せる
バンプマッピングとか2Dゲームで使わんとおもうが、ランプエフェクトの方かな
滅多に使わないものなら必要になってから調べても遅くないな
ラスタスクロールとか
強い光を表現するブルームエフェクトとか
衝撃波とかを表現するためのブラーとか
いわゆる「ポストエフェクト」って呼ばれる系統のエフェクトは
2Dでも使い道はあると思うんだ
実際使われてるかどうかは知らないけど
シェーダーなんてパイプラインの代わりなんだから少しの例あげて使える使えない決められるもんじゃないっしょ
素直に僕にわからない話題はスレチですって言えばいいのに
相手しない方がいいと思う。
出来ない人は心が拒否してるんだろうから、いずれにしても挫折して消えてくから。
誰がどのレスを書いた人かわからないからなんともいえないけど
ひどい知ったかぶりの虚栄さんが混じってるのはたしかだな
SaveDrawScreen(0,0,1024,768,"abc.bmp");
を使用したんですが、これどこに保存されてるんでしょうか?
ファイルが見つかりません…
たぶん実行ファイル(game.exe)から相対パスじゃないの?
>>719 VCだとデフォでプロジェクトファイルのあるとこだった気がする
カレントディレクトリからの相対パスだと思うなぁ。
相対ですか!ありがとう
でもなんか生成されないんですよね…
se_play(); //音再生
SaveDrawScreen(0,0,1024,768,"abc.bmp");
WaitTimer(3000);
これで音が鳴ってからデバッグ終了してるんですがabc.bmpなんてファイルはどこにも無かったり
SaveDrawScreenがエラー返してるんじゃないのか?
>>724 返ってくる値が0だから生成成功してるみたいです…あまり使われないからバグだったりするのかな
とりあえず報告しておきます
つまり、エラーは返ってきてないから、abc.bmpはどこかにあるはずなんだけど、
フォルダ見ても見当たらない、という話をしてるの?
VISTAだったか何かで勝手にフォルダを別のとこに作られるという話を昔聞いた事を思い出したが……。
うろ覚えなのでテキトー言っててスマン。
728 :
名前は開発中のものです。:2014/01/28(火) 22:08:52.81 ID:VKqcDAVj
2Dゲームを作ってるんですが
現在キャラクターがいる位置 - 1フレーム前にキャラクターがいた位置 = 移動量
というプログラムがうまくできません
どのように書けばよいのでしょうか?
729 :
名前は開発中のものです。:2014/01/28(火) 22:44:43.17 ID:Sln8bPVq
>>725 一回絶対パス指定してちゃんと保存されるか確認してみたら?
>>728 プログラムを上手く書く事より先に質問を上手く書く事を考えよう。
「何をしたくて」「どのようにして」「どんな結果になった」が解らないと答えるに答えられないと思うよ。
>>729 ちょっとプログラム弄ってたら上手くいきました!
どうやら描写できる画像でないと出力できないみたいです
深度値画像を出力しようとしたんですが、他と同じだと思ってました
もう一つお願いします、サンプルプログラムの 「3Dアクション基本+深度値を利用した影表現基本」をほぼそのまま移植したんですが、
影のふちがギザギザしてしまいます。これではトゲです。
サンプルそのままだと綺麗にいったような気がするんですが何が悪さしてるんでしょうか。
ステージモデルやキャラモデル描写のところにそのままマップとキャラのDraw処理突っ込んだだけなんですが…
本家掲示板の暫定ソース見るに、デプスシャドウ実装しようとしてるのかな
フィールドが広すぎる
デプスバッファの解像度が足らない
VSMでググる
CSMでググる
地平線がうまく表現できん
>>734 ありがとう、質問板とかにも全然情報載ってないけどしばらく調べてみる
dxライブラリのソース覗いてgrepしてみたらd3dx.hとかの一般にdirectxプログラミングで使うヘッダ類がインクルードされてなかったんだけど
いったいどんな仕組みになってるんだ?
本格的にdirectxプログラミングの経験がないが、通常のDLLやライブラリの呼び出しであれば
手間はかかるが自前ソースで定義したり動的にコールできるだろ。
公開ソースは一部しか公開してないよ
ほかのstatic link libraryにDX関連は全部入ってる
だからIDirect3DpTextureとかも全くでてこないし、
全部オレオレ型で置き換えられている
ただの俺様ラッパだもんな
>>739 DxLib.libのソースは全部公開されてるよ
自分でビルドすることもできる
743 :
名前は開発中のものです。:2014/02/05(水) 09:53:28.94 ID:3/32MaNa
DXArchiveで生成したdat.dxaの中にある
FindFirstFileでディレクトリを羅列したいのですが、アーカイブ化されているので探索できません。
どうしたら探索できますか?
↓こんなんです
HANDLE handle;
WIN32_FIND_DATA findFileData;
//↓dat.dxa??
handle = FindFirstFile(("dat/" + stageName + "/*").c_str(),&findFileData);
while(FindNextFile(handle,&findFileData)){
fileNameList.add(findFileData.cFileName);
}
FindClose(handle);
DWORD_PTR FileRead_findFirst(const TCHAR *FilePath, FILEINFO *Buffer ) ;
int FileRead_findNext(DWORD_PTR FindHandle, FILEINFO *Buffer ) ;
int FileRead_findClose(DWORD_PTR FindHandle ) ;
非公開関数でこんなのあるぞ
745 :
名前は開発中のものです。:2014/02/05(水) 16:32:11.22 ID:uyz92XKa
なんだって?
747 :
名前は開発中のものです。:2014/02/09(日) 11:14:47.36 ID:iZCwJZKd
カメラ外のオブジェクトを描画せずに軽量化を図りたいのですが、
今のところカメラ行列で変換した座標系で「z値が0以下の場合描画処理を施さない」という処理だけなのですが、
もうちょっと軽量化出来ないかと思い、カメラの画角を利用した円錐状に制限できないかと考えています。
が、行列の知識も付け焼き刃なもので円錐状の行列はどういうものかわからないというのと、
カメラの端っこに一部だけ見えるオブジェクトなどが突然消える影響はどうやったら目立たせずにすむか教えてください
クリッピングで弾かれた部分の描画負荷って心配するほど高くないだろ
モデルのうち視界に入った頂点だけを毎回選び出して転送してたら逆に重くなりそう
もしやりたいならモデルの頂点が全部入るAABBでも用意して
円錐型ではなく四角錐で判定すれば
>>748 以前、プレイヤー周辺だけを画面表示する仕様で、
フロア上の全オブジェクトを画面外のものも含めて、毎フレーム描画したら、
やたら重くなったぞ。
>>747 一人称視点かな?
描画対象オブジェクトに中心点と最小包含球の属性持たせて、
2次元にレンダリングする際に、画面範囲矩形と円が重なるようなら描画する、という様にするのはどうだろう。
750 :
名前は開発中のものです。:2014/02/09(日) 21:18:28.41 ID:iZCwJZKd
>>749 円錐と球の接触判定ですか、わざわざ行列にする必要も無さそうでいいかも
751 :
名前は開発中のものです。:2014/02/10(月) 00:34:44.77 ID:lY1XcxLe
数学は無理だということがわかったので
誰か円錐の頂点座標、距離ベクトル、底面の半径と、球の座標、半径でコピペコードください
プログラムは無理だということがわかったので
誰か俺の考えたゲームのアイデア完成させたコードくだしあ
DXUTとかにあったと思う
DXUTCameraかな?
だいたいのゲームエンジンにはあるから、OgreとかSharDX.Toolkitとかみたらどう
ゲームコーディングコンプリートって本にも載ってる
これのソースはGoogleCodeで公開されている
755 :
名前は開発中のものです。:2014/02/10(月) 19:57:44.38 ID:Pv0LEtBU
真空波動拳というか、レーザーが飛んで周囲に光を滲ませるのってどうやるの?
アルファブレンドでもがんばればできそうだけど、たぶんピクセルシェーダで
よく使われるパターンがあると思うんだが、やり方とか名前知ってたら教えて。
全然それらしきものが入ってなかったぞ?
>>755 状況によるけど、画像ファイルの時点で白くボヤけさせておいて加算合成とかじゃダメ?
スターウォーズの レーザーブレードのような感じにするには、
HDRを使う。High Dynamic Range imaging
>>751の母でございます。
くれぐれも「むいて洗わせる」旨、確と承りました。
今後とも、ご指導・ご鞭撻のほど、宜しくお願い致します。
ざっとリファレンス見たけどデバイス消失処理は無いのね
SetRestoreGraphCallback
あれってサウンド関係も復帰してくれてるのかね
描画デバイス用のような
こんにちは。
GraphFilterRectBltだけで一気にメイン描画先の指定した短形を処理できませんか?
あ、MakeScreen->GetDrawScreenGraph->GraphFilter->DrawGraphは出来たので重要度は低いんですが……
ちょっとループについて教えてください、VC++2008を使っているんですが、
bool GAME_END = FALSE;
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
SetAlwaysRunFlag(TRUE); //バックグラウンドでも実行
while (ProcessMessage() == 0 && GAME_END == FALSE){
ClearDrawScreen();
ループ処理
描画処理
ScreenFlip();
if(CheckHitKey(KEY_INPUT_F12) == 1)GAME_END = TRUE; //F12を押すと終了
}
DxLib_End();
return 0;
}
この処理で終了した際、もう一度デバッグをしようとすると「exeには書き込めません」と出て、
しばらくの間デバッグが出来なくなるんですが、調べたところwhileなどのループから抜けていないとダメみたいです。
しかし、whileの最後に抜けるようにしてあるので、どこがおかしいか分かりません。
もしかしたらVC2008の不具合かもしれませんが…
whileが他にもあるんじゃないか?
DxLib_End(); の左側をクリックして、赤い丸を付けるだけで解決しそう
これじゃ閉じるボタン押してもF12が押されないとウィンドウは消えても終了してないから、GAME_ENDを消してF12を押した時はbreakでいいんじゃないの
771 :
名前は開発中のものです。:2014/02/13(木) 21:46:49.41 ID:klk6cLY3
完全に透明なテクスチャも貼ってないメッシュにDXライブラリ標準のFogってきく?
めんどくさくて自分で試したくないので試してくれる人or試した人教えてください
今日試してみたらきいたよ
嘘だけど
え?昨日試したときはきかなかったぞ
嘘だけど
え?嘘同盟員??
受け狙ってるのか?
書き込んでレスを待つほうが面倒なくせにこのー
しょうがない、じゃあ俺が試してやるよ
嘘だけど
DrawPixelの描画で構成すると超重いんですがピクセルごとに何か描きたい場合、軽い方法ってありませんか?
800×600のウィンドウなんですがDrawPixelのピクセルが大半を閉めるとCPU使用率がえらいことになってしまいます。
具体的にはどういうことをやりたいんだい?
何をしたいのかわからないけど、
前フレームの画像を保存しておいて、
変化する部分だけ描くといういう方法もある
二次元配列の各変数(unsigned int)のビットが1の所にDrawPixelをかけています
画面を黒でクリアする代わりにColor1,1,1を減算してからScreenCopyを使い残像を演出しているので、変化する部分だけをというのはできません……
GraphLock関数というのを見つけたんですが、使えるんでしょうか?(引数の意味がよくわからないのでテストからして出来ませんorz)
800*600の画面のほとんどをDrawPixelで枚フレーム描画しようとか無謀でしょ。
さすがに「最近のPCは性能が高いからいける!」とか考える人もいないだろう。
上でシェーダーを頑なに否定してる奴いたけどパフォーマンス的にもコード的にもこういう状況だと有用だよな
>>上でシェーダーを頑なに否定してる奴いたけどパフォーマンス的にもコード的にもこういう状況だと有用だよな
ノートパソコンで動かない場合がある。
>>782 シェーダー使えないようなPCだとどのみちまともに動かんだろ
パレットチェンジで解決できないのかな
今時、SM3.0くらいも動かないとか。
勉強したけど全く覚えれなかったので否定派です
……どうしよう、老化なのかな、これ
2Dゲームの開発しか興味ないのに
シェーダーを学ぼうと思うと3Dの勉強をしないといけなくなるのが面倒臭い
CreateDIBSectionかDirectDrawの出番かな?
まず描画可能スクリーンが重くない?
スマホみたいに四角の内側でスルっと動くスクロールメニューとか作ろうとしたら
中身がはみ出さないようにアレ使う必要があると思うんだけど、
あらかじめプールしておかないと重いっていう
>スマホみたいに四角の内側でスルっと動くスクロールメニューとか作ろうとしたら
>中身がはみ出さないようにアレ使う必要があると思うんだけど、
どんなん?
初めまして、当方卒業制作でDXライブラリとMikuMikuDanceでゲームを作ることとなり、完成まで後一歩のところまできました。
しかし、一つ問題が発生しました。一つのモデルに攻撃モーションを3つと移動モーションを一つアタッチしようと思い、DXライブラリのリファレンスを確認しながらファイル名の設定、関数の呼び出しを行ったのですが、異常再生されている気がします。
走るモーションで足が動いて走っているのが確認できたのですが、上半身が崩れてしまいます。モーションデータとモデルデータのフォルダから攻撃モーションを除外すると正常に再生されます。
このことから、アタッチしたモーションが全て同時に再生されているのかと予想しました。
攻撃再生時と移動再生時にブレークポイントを設定しましたが、何もしていないときは移動再生でブレークするのが確認でき、攻撃再生するまではブレークされませんでした。
長々と書きましたが簡潔に言うとvmdモーションのアタッチ及び再生が同時に行われるとモーションが混ざる?ようなことはありえるのでしょうか?
コードの方でモーションブレンド失敗してるんじゃないの?
pmdは色々問題あるらしいからmv1でやってみても再現されるか試してみたら
DXライブラリはMMDのモーションに半分ぐらい対応してない
正確にはMMDのIKの仕様が公開されてないとか
にがもん式アリスで痛い目見たけど昔の話だから参考までに
別人だけど例えば走りながら銃を構えさせたい時、
走るモーション(全身)と銃を構えるモーション(上半身)があったとしてどうすればいいの?
走るモーションに銃を構えるモーションを上書きできたりするのか、
もしくは走るモーションを上半身と下半身に予め分けておくのか
でも予め分けるとなると大変そうだなぁ
出来ることならベースとなる全身モーションに
比率を指定できて部位ごとにモーションブレンドができれば最高だな
>>794 どうなればいいかは明らかだから(ボーン=回転行列、の乗算)、自分で書いた処理ならどうとでもなるんだが、
そうでないと悩むよな
796 :
名前は開発中のものです。:2014/02/26(水) 10:33:08.48 ID:ef+xzf2b
VS Express 2013(VC++)の環境で、DxLib を使いつつ fx ファイルをリソースに追加して、
ビルドの際に fxc.exe でシェーダもコンパイルする、というような使い方は出来るのでしょうか?
まだ自分でシェーダを書けないのですが、学習のために上記のような環境を作れれば、
ちょっと数字を変えてテストとか捗るのでは、と思ったので質問させて頂きました。
今は、リソースに追加してプロパティで「ビルドから除外」して、
同一プロジェクトでは管理出来ているのですが、
ビルドすると
「warning MSB8028: The intermediate directory (Debug\) contains files shared from another project
(DxLib.vcxproj). This can lead to incorrect clean and rebuild behavior.
Microsoft.CppBuild.targets」
みたいな警告が出ます(リビルド、クリーン→リビルドでも同じ)
ShaderCompiler.exe で既にコンパイルされた .vso、.pso ファイルが存在するので
実行自体は問題なく出来ていますが、もちろん fx ファイルを編集しても .vso、.pso はビルドされないので、
個別に ShaderCompiler.exe を実行する必要があります
もしご存知の方がいらっしゃいましたら教えて下さい
ドット絵って、読み込んでDrawGraphやるのと、1ピクセルごとにDrawPixelやるの
どっちが軽いんだろう。
単純に考えればDrawGraphだけど。
おかしなテトリス作ってて、約30個の色違いのブロックを作る必要があるのか、
DrawPixelをやって関数で纏めた方が良いのか分からない。
1ブロック1ドットのテトリスかよw
画像が30個程度ですむなら作れば済む問題だと思うけど、
常にキャラが1個しか動かないテトリスなら4ドット表示すればいいだけなんだし
ドットで打っても大した差はないかもな。
DrawPixelとか遅いに決まってるだろ
ああいうのは静止画をファイル出力したいような時ぐらいしか出番はない
クリエイター奨励プログラムとは?
http://commons.nicovideo.jp/cpp/about/ niconicoの投稿作品に対して奨励金をお支払いする制度です。
創作活動の支援、および二次創作文化の推進を目的としています。
作品の人気度に応じて、クリエイター奨励スコアの点数が付与されます
もし投稿作品がniconico内で二次創作されれば、さらに「子ども手当」がもらえます!
子ども手当とは?
コンテンツツリーにある子作品の人気に応じて、親作品の作者に支払われる奨励金のこと。
■貯まった点数は、ニコニコポイントや現金に交換できます。
※プレミアム会員のみ登録可能です。
>>797 テトリスではないんだけど、似たような状況で
モデルとなる画像1つだけ用意して、ゲーム開始時にバリエーションを自動生成する処理ならやったことある
課金してるわ
高画質でうpできるし、ニコニコゲームフェスに応募したときは便利だと思った
>>794 MV1SetAttachAnimBlendRateToFrame
銃を構えるモーションを適用させたいフレーム(ボーン)のレートを下げて
銃を構えるモーションからそのフレームをフレーム単位でモーションブレンド
レートは先ほど下げた数値を加算
3Dの話題が出るたびに思うんだけど、3Dゲーム作る場合は
3Dマップを作成するためのエディタとかが必要だと思うんだけど、
DXライブラリで3D作ってる人はそういうのってどうしてるんですか?
一応、ダンジョン自動生成系のゲームならプログラムだけでもイケそうな気もするけど、
UnityレベルのエディタがないとRPGとかは無理そう
同人・フリゲを幾つか見た感じ
内部的には2Dマップデータで処理してるんじゃないかな?ってのが結構あった
エディタ自体自作ですよ
動きのないステージならメタセコで作ったりもするけど
みんな立方体で判定してるのかな?
3Dの判定速度 立方体<球
2Dの判定速度 短形>円
だった気がする
短形ってなんだと思ってぐぐっても矩形が出てくる……。
矩形(くけい)だったわ
たんけいってよんでた
811 :
名前は開発中のものです。:2014/03/03(月) 08:02:38.47 ID:5W8U/HwZ
短形
方形波
>>805 Ogre3D用のBlenderエクスポータがあるぞ
シーンをBlenderで構築してXMLで出力する
当たり判定
スライディングコリジョンが無いから、MV1CollCheck_Lineを使うしか無いだろう。
上下、左右、前後の6方向のチェックする。
>>806-
>>815 みんなサンクス
もう一個気になってた点として、話題としてやたら「テクスチャで当たり判定」が
出てくるのが疑問だったんだけど、
>>815だったんだね
頭の中では
>>806のような手法で、
>>808みたいにプログラム側で判定しないと
ゲームモデル(データ・値)とビュー(見た目)とロジック(当たり判定とか)を
分離できないんじゃねと思ってたんだけど、
もうガチで3Dを作りこむとなるとそんな甘いこと言ってられないのね
3D当たり判定も条件によって、引っかかったり予想外の行動になる事があるから、
必要が無いのならば、2Dのような行動範囲を制限する方法を取った方が安全。
当たり判定をきちんと動かすにはそれなりの経験も必要。
上原テトリスってあれ、DXライブラリっぽいけれど、datファイルも何もないんだよね。
音楽ファイルとかもexeファイル内に入れる事出来るのかな
LoadGraphToResourceとかLoadSoundMemByResourceかな?
そんなのあるんだ。結構得した
ビルド時間が掛かるようになるけどな
823 :
名前は開発中のものです。:2014/03/07(金) 19:54:52.83 ID:p/ke0iDn BE:191575722-BRZ(10000)
エフェクトを一括描画すると処理の負荷が軽くなるって聞くんですが、
一括描画ってつまりどういうことですか?
Dxlib標準のモデル単位でしか描画したことないからイマイチわかんない・・・
トーンカーブ補正みたいな色調補正をリアルタイムに適用する方法って無いかなぁ
例えば全ピクセルのR値を+10、G値を+20、B値を+30とかやりたいんだけど
描画が終わってからDX_SCREEN_BACKをソフトイメージ変換して1ピクセルずつ計算じゃ遅すぎる
GraphFilterにもそういう機能は無いっぽいし
GammaControlメソッドで試したけどリアルタイムでトーンカーブ変更やると意外に負荷がでかいんだね
俺の低スペPCがグリングリン言ってる
全ピクセルにR値を+10、G値を+20、B値を+30ぐらいなら
その増減値のRGBをHSBにして
DX_GRAPH_FILTER_HSBで出来そうだけど
ガンマがRGB独立とかならシェーダーに頼る方がいいだろうけど
2Dシェーダーでパフォーマンス低下も少なく楽々だけどこのスレでシェーダー言うと荒れるんだよなあ…
MV1CollCheck_Line関数を用いて
ステージモデルとの当たり判定を行っているのですが
何故かラインがステージモデルと接触して直ぐにフラグにTRUEが代入されません
ある程度深く沈み込めば反応するのですが、何故でしょうか
シェーダーって言葉は聞いたことあったけど、3D描画に役立つものなのかなー程度の認識だった
ざっとぐぐってみただけだがピクセルシェーダってのが使えるんかな ちょっくら勉強してみよう
シェーダーはデバッグできないから昔のアセンブラで組んでるみたいになんのよねw
いつかHLSLもインタプリタみたいになってくれないかな
ピクセルシェーダーならGPUメーカーのエディタ+デバッガみたいのが無料でいろいろあったような
>831と同じようなのはPIX for Windowsで
久々にDXライブラリを最新(3.11d)に更新してみたけど音が出なくなった
なんでだ?
元に戻してみたらどうよ。
いつのバージョン使ってたのか知らないけど。
少し前に、音量関係の修正あったけど
音が大きくなったってならともかく、鳴らなくなった(あるいは小さすぎて聞こえない)だから違うか…
>>835 レスサンクス
今まで使ってたバージョンは3.10cだった
ソースコードは svn で管理してるから間違いない
3.10cに戻すと音が出る
すまない
音が出ないじゃなくて音が小さいだった
どういう経緯で音量関係を変更したか知らないけど
こういうのやめて欲しいなぁ・・・
いや前のがバグみたいなもんだったんでしょ
0から255が均等じゃないっていう
>>839 あぁそうなのか
確かに以前からちょっとボリューム調整が変だなとは思ってたけど
こんなもんかで流してた
バグだったんだね
841 :
名前は開発中のものです。:2014/03/12(水) 01:27:46.41 ID:KEnJWCWv
バグというより、使いやすいように仕様変更したんじゃない?
過去ログ探したら似たような話題を見つけた
「DXライブラリ 総合スレッド その13」のレス796あたり
>>839 ああ……ひょっとしてなんかボリュームおかしいなと思ってたのそれだったのかな。
>>839 その辺は確か、人間の耳の問題だな。
大きさが2倍くらいに聞こえるには、数字上は3倍の出力が必要とかそんなん。
おお、ボリューム比例化したのかw
これはGJだわー
人間の感覚は対数関数に従うとかいう論文があったよ
それは人間がロボットであるという前提が無いと成り立たないな
847 :
名前は開発中のものです。:2014/03/14(金) 11:25:10.11 ID:Go28KG/s
3Dでポリゴンごとにほかの物体の映り込み処理をつけたいんだが重くなるかな。
さすがに全部はむりだと思うが反射が強いのだけでもやりたいなー
もしやるならそれぞれのポリゴン面においてカメラ位置の反転した座標をとって
濃度変えてポリゴンにはっつければいいの?
848 :
名前は開発中のものです。:2014/03/14(金) 11:26:03.72 ID:Go28KG/s
って思ってたが曲線もどきの反射が汚くなるからやめよっかな
849 :
名前は開発中のものです。:2014/03/14(金) 11:28:58.40 ID:Go28KG/s
連投すまん。あとスレチかも。
DXLibってさ左右別々の音を出すのってできないかな
元からそういう音源ってわけじゃなく
できるならやり方を、あるいはできるほかのライブラリ教えてください
リファレンスにあるパンの設定で左右それぞれ音出すようにして
同時再生するって形でいいんじゃないの?
851 :
>>848:2014/03/15(土) 01:37:13.50 ID:zUIIh6OU
そんなのあったか。
右MAXと左MAXで別のファイル流せばおkか
>>848 キューブマップのサンプルに映り込みシェーダーあったけどあれでいいんじゃない?
853 :
>>848:2014/03/15(土) 12:28:35.83 ID:0KNqALXF
>>850 無事解決しました。ありがとう
>>852 情報ありがと
画像で見る限り曲面の反射はうまくいってるようだな。
これってキューブじゃない環境マップだとどうなるんだろ
検証したいけどC++のサンプルよめない。。←C#er
俺の理解力で理解にどれくらいかかるか見物だな。。
頑張ってみるは
法線にあわせてやるのはレイトレーシングっていって完璧だけど
ゲームにはむいてない。映画とかプリレンダ用
レイトレーシングがゲーム機で当たり前に使われる時代が来る、そんな風に思ってた頃もありました
当たり前じゃないけど一部タイトルで使われてるけどな
PS4位のシェーダーの自由度ならもっと増える可能性はある
PS4ってゲームPCの入門機レベルのグラフィック能力しかないじゃない。
グラボの性能はPCの方がはるかに進んでるし
PS4で一番驚いたのは当たり前のように処理落ちすること
家庭用ゲーム機って全てが同じスペックだからフレームが安定するように開発するもんだと思ってたが
いつから処理落ち上等主義になったんだ?
プログラムスレにいる者の発言には思えん
全てのシーンで処理落ちしないようにしたら相当ショボイのしかできないじゃん
日本のユーザは、処理落ちやテアリングに対して比較的厳しいんだっけ?
処理落ちはそうでもない
>>859 いやいや常時30フレーム程度な上に、そこから処理落ちしてて5フレームとかになるんだぞ
昨今のPCゲームにおける120フレーム維持できなくて90くらいに処理落ちしちゃうとかそういう次元の話じゃねーから
今時のリアルドライビングゲームとかだとそれ程処理落ちしたらクリアできないレースやイベントが多々でるな
レースのゲーム、
グラフィックは60FPSで処理落ちしてなくても
通信は100msで、10FPSとかだよ
案外雑多に作られてる
格闘ゲームが一番きびしいんじゃないかな
あれの通信対戦どうやってるのだろう
通信を話題にいれると話しがややこしくなる。
通信はオマケでしょリアルドライビングゲームは
オフでタイムを競うのが多分一番重要
そんなに処理落ちしたらタイムどころかコース内まともに走れないよ
アーケードな奴でもそこまで落ちたら無理
昔ボロいPCでやってたからわかるわ
ホンマ面白くないしストレスにしかならんよ
>>857 ここはその性能をフルに使えないライブラリのスレだぞ
シェーダー含む処理ではその入門機レベルのグラフィック能力にすら負ける
とりあえず過去の開発ノウハウが引き継げるPCと
新機種の度にノウハウの積み重ね直しになるゲーム機を単純に比較したらあかん
納期は怖いんや無理に伸ばしたら首ちょん切れるで
>家庭用ゲーム機って全てが同じスペックだから
だが開発環境と実機が同スペックとは限らない
特にプレステはスペックがちょくちょく変わるので有名だからな
地球防衛軍5とか出たら大変なことになりそう
あれこそPC向けのタイトルだと思うんだけどなー
GCやWiiなんかの古いゲーム機や、DSレベルのしょぼい携帯機ですら
いきなりカクカクになってゲームにならないなんてことは起きたことがないからなぁ
グラフィックよりもまともな動作が大前提だと思ってたが最近はそうでもないのか
次世代機の割にはグラフィックの荒も結構目に付く(草の影が描画されてないとか)
これは普段PCゲーやらない人はまったく気にならない部分だろうけどね
動画の音量って変更できないかなー
音ゲーのPVでさ
曲を聴くモードと演奏するモード分けたいんだけど
音入った動画と無音動画用意すんのもバカバカしいし
無音動画と音楽ファイルに分けるしかないんかなー。。。
わけるしかないとおもう
ここの人達って完成したゲームをDXライブラリの制作作品紹介に乗せてる?
のせてない
SetMovieVolumeToGraphとかChangeMovieVolumeToGraphは?
エフェクトってどうやって作ってる?
剣の軌跡とかどうやるんだ、エフェクトのモデルファイルを読み込んでるわけじゃないよね?
photoshopで描いたエフェクトテクスチャを板ポリに貼り付ける
剣の軌跡っても結構種類あるけどな
DMCみたいに歪ませたりテイルズみたいにモーションに合わせて板ポリエフェクトだけ再生したり
無双みたいに武器の位置に定期的にエフェクト出したり
今気付いたけどMIDIを保存しておく関数って無いんだな
直接再生のみか・・・
ナニしに要るんだ?
mp3からMIDIコードを生成すんのか?
MP3の関数が読み込みと再生に分かれてるからMIDIでも流用できるかなと思っただけよ
まぁどうにでもなるかぁ
882 :
名前は開発中のものです。:2014/03/24(月) 18:56:32.70 ID:IvM97gw5
SetUseTextureToShader()で設定できるテクスチャ数ってどれぐらいまでいけたっけ?
すまんageちゃった
久し振りの復帰で勝手が分からなくなってるぜ
>>881 そういや、PlayMusic(ファイル名, ...) はあるけど、PlayMusicFromMemory(ポインタ, ...)みたいのって無いよな。
あればファイルのR/Wは自分でやりゃいいから自由に出来るんだが。
非公開関数をチェックしろよ。
非公開関数のチェックのやり方を教えて
非公開関数は公式サイトの隠しページみないとわからない
ヘッダファイル見ろ
ラッパーを作ったりカスタマイズする過程で、大なり小なりDXライブラリの内部に直接手を付けてる人って結構いると思うけど
アップデートのたびに修正してる?
モデルやMIDIはともかくテクスチャあるからよくわからんな
97kbで済むもんなのか
効果音も
日本人だけ英語じゃなく日本語でコメしてるんだが
こういうのって荒らしにしか見えん
マルチバイト文字は糞ですよ