ノベルゲーはC#よりスクリプトがもっと楽
でもC#で書いたほうが、カッコイイ。
さすがにC++やC#で作るならシナリオプレイヤー+簡易スクリプトの形にするだろ
そりゃ既存のシナリオプレイヤー使うのが一番楽に決まってるけど
シナリオプレイヤーから作るんだったらC#は開発環境やライブラリのサポートが強いから
ヘタに一般的なスクリプト言語で作るよりは早いかもしれない
ノベルゲーはあまりプログラミング的楽しみがないというイメージ
プログラミングよりもシナリオというイメージ
まあツール使わないでもprintfとgetcharで五分くらいで作れるしな
テキストファイルから読み込むなら色々めんどくさくなってるがそんなつまらんことしてる間にツール使ったほうが全然早いし
そして、利用者は皆無ななま、エンジンばかりが増える。
ゲームエンジン作るのは楽しいよね
ゲーム作るより楽しい
DXライブラリってVisualStudio2010で使える?
12 :
名前は開発中のものです。:2010/02/26(金) 22:54:04 ID:PHlX3hrg
>>11 古いバージョンならともかく新しいバージョンで使えなくなるというのは聞いたこと無いんだけど
試しにVisualBasicでやってみたけど無難に動いた
そりゃ.NETの方はdll呼んでるだけだから問題ないに決まってるよ
windowsのみなんだからヘツダでダイナミックリンクするように作者に依頼
lib不要でコンパイラ関係なくなる
ここの住人がダイナミックリンクのヘッダ作っても良いけど
関数追加や仕様変更で作り直さないといけない
作者がやるのがいい
lib必要なスタティック用のヘッダを、DLLのみで動く様に書き換えるツール作ろうとしたが
マクロなどの解析が大変。どれか一つヘッタだけならできても
世の中の全てを書き換えるのは大変
http://www1.axfc.net/uploader/N/so/95638 pass:dxdx
かじりかけの知識とDXでゲームを作ろうと思うんだが
パネル式(?)のアクションゲーム(ボンバーマンやロックマンエグゼのような)なんだけど
3D使うんだけど、全部モノクロでドットの荒さを残して3Dっぽくないカンジでつくろうと思っている。(レトロゲームのように)
敵キャラを表示するのにビルボード(DrawBillboard3D)を使えばいいかなと思ったけど、なんか動きが変なので断念
普通に3Dで表示したら斜めっぽくなってしまう。
とても面倒だったが、遠近感とかの3Dっぽい動きを全部拡大縮小で作った。
しかし納得いかない、3Dの面をビルボードのように常に視点に合わせるにはどうすりゃいいの?
質問に答えてくれなくてもいいから、とりあえず俺の渾身(失笑)の力作コードを見て感想や罵倒を述べてくれれば嬉しい
最初のOP(仮)はAキーとかで飛ばせる。操作は矢印キー。と、シフトで加速移動
まだ何もできてないけど・・・
コード晒した心意気は買う
だが何やりたいのかはわからん
3Dの面をビルボードのように常に視点に向かせたら、それはビルボードと呼ぶのではないだろうか
3Dっぽくないカンジってことなんで、SetupCamera_Perspective(float Fov)で視野角をいろいろ変えてみると得るものがあるかも
パネル式?
本当は斜めから見てるけど斜めから見てるようにはしたくないってことかな
>>18 回答サンクス。試してみる
>>19 歩く幅とか攻撃範囲とかがマス目で表されるというかなんというか・・・
>>20 そうそうそうそう!
シレン3じゃなくてアスカ見参っぽい見た目にしたいの?
>>22 合ってるけどちょっと違うかも
敵が遠くへいったら小さく表示されて近くだったら大きく表示されるけど
3Dっぽくない。シレン3みたいに3Dっぽくないカンジでアスカ見参みたいに2D?
3Dをドットで描いてるようなカンジで表現したい。だからテクスチャのフィルタリング方式を変えてドットの荒さも残している。
ステージがフカンのアングルなのは演出。でもステージの上に乗っている奴らはビルボードで表示したい。
だけどDrawBillboard3Dだと上手くいかなかった。普通の3Dのような動きをしてくれない。
主人公は常に中央表示。視点移動でその他が動くような・・
だけど3D。ぺらぺらしたカンジというのかなんというのか・・・
http://www.uproda.net/down/uproda007981.jpg 説明下手でスマン
動画でいいから例を上げてくれるといいかも
プレゼンの時ってハッキリと「〇〇みたいなゲームです」って言うらしいし
>>24 似たようなゲームに遭遇した事がない…こんなんあったら面白いかなって。
でもありそうだけど・・・俺がゲーム知識に乏しいだけかな
プログラムは上のレスでうpしたたけど、一応動画も上げようか
ゲーム内容は、だだっぴろい盤上みたいなマスの上で上下左右動いて
雑魚を好みの武器でぶっ殺しつつボスへ・・みたいな
障害物置きつつ弾撒きつつ接近して殴りつつ…
例えるとロックマンエグゼを全パネル見渡せないぐらいパネルを増やしたカンジかな(やや違うけど)
という妄想
なんだろうなあ
自分は2D専用のラッパーとして使ってるからDXlibの3Dはさっぱりだけど、
3Dを一コマずつスクリーンキャプチャしたほうが早いようなきもする
27 :
名前は開発中のものです。:2010/03/03(水) 19:32:01 ID:Vqz5zby2
パースがかかっちゃうって話してんのかな?
>>23 >3Dをドットで描いてるようなカンジで表現したい。
3Dドットヒーローズ思い出したけど・・・絶対違うよな。
スペースハリアーとかレイフォースみたいな擬似3D表示を
ファイナルファイト系のゲームに使いたいってことじゃないの?
SFCマリカー見たいな?
>>26 スマン…わからん
>>27 むしろパースっぽくしたいのです
>>28 そういう解釈もあったかw
>>29 調べてみた。イメージとしてはかなり似てる
>>30 そうそう
>>31 これでキャラクターにもパース(遠近感)がついたらかなりそんな感じ
説明が下手なので皆さんに多種多様なイメージを抱かせてしまった気もしますが…
サンプルでは下のステージが3Dで上の雑魚が2Dなんですが(実験のため3Dの雑魚もいる、動いてないのがそれ)
この動いていない3D雑魚をビルボードにしたい…という事…かな?2Dだと後々面倒なので(一応遠近の処理を作ったけど)
(だけどまるで2Dのように、ポリゴンというより一枚絵)
>>30氏のいってるマリカーのような。
なんか色々とスミマセン
ステージが3Dでキャラクタのみ2Dのビルボードってのは一昔前のFPSでよくある手法だったね
marathonとかそこら辺
DXライブラリでウィンドウでDirectX描画部が3D(へこんでるようにみせる枠)にならないようにする方法ありませんかね?
普通にDirectX直でやってみたらああならなかったので、DXライブラリではわざわざ3D枠を指定しているようなんですが必要ないので通常通りにしたいです。
ソースから修正して使えばよくね?
windowstyle5
>>37 ソース見てみたんだけど、エントリポイントが見つからないのだが
どこにエントリポイントあるの?
>>38 SetWindowStyleMode(int);てのがあるんですね。
5で枠無しだったけど、さらに最小だけできる9もあったので助かりました。
くだらないなあと思って質問してみるか迷ったけど良かった。
ありがとうございます!
41 :
名前は開発中のものです。:2010/03/06(土) 23:45:15 ID:OtrNr78L
ロックマン2.5Dのマップはどうやって作ってるんだろう?
Half-Lifeとかのマップの作り方と一緒?
単純に奥行きを持たせるだけなら2Dをちょっと弄ればいいが角度まで変わるのを見るとやはり3Dゲーと同じようなマップ作りなんだろうな
ビルボードの問題で質問したヤツなんだけど、
ビルボード問題に関しては無事解決しそう。
ここでどんどん作業を進めたいところなんだけど、一つ疑問が浮上してきた。
作ってるゲームは64*64のマスで戦うゲームなんだけど…
敵とかのデータは構造体の変数になっていて、敵の最大数分の配列で宣言されている。
その構造体の一つに敵の種類を表す数値があって、
その数値を使って、毎ループごとに全敵をforでループして、敵が存在したら
その数値に対応する関数配列でその敵の変数を処理…という事になっているんだけど
void obj_scan(){
int i;
for(i=0;i<OBJ_MAX;i++){
if(object[i].F==1)objectFunction[object[i].no](i);
}
}
例えば(25.6)マスの座標にいる敵にミサイルが飛んできたとする(構造体には座標の情報もある。弾も敵と同じような仕組みで作られている。)
その座標に着弾した瞬間(敵の座標と弾の座標が同じになった瞬間)に、敵にダメージを加えて弾を消滅って処理をやりたいんだけど…
「どの敵がどこにいるか、どの弾がどこにあるか、着弾しているか、敵がいるからそこは歩けないか」とかの他の敵・弾の座標情報を取得しながらの処理で
どうやって座標を取得するかが問題で…
方法1.いちいちforループして、座標が一致する敵・弾があるか確認する。
方法2.全マス分(64*64いわゆる全座標分)の変数配列を用意して、その変数(座標)に「その座標にいる敵(or弾)の配列番号」を代入、どの座標に
どの敵がいるかとか、探すときにそれを使う。敵が移動したりするたびに0に戻し、移動した変数(座標)にまた番号を代入する。
どっちの方法を取ろうか悩んでいるんだ…上はもしかしたら動作が重いかもしれないと思って方法2を思いついたんだが…
なんか他に方法があったり、つっこみどころとかあったら頼みます…説明わかりづらくてスマソ
普通は前者。応用も効きやすいし。
1Fに判定する回数による
少ないならどうやってもいいし
多いなら後者じゃないと追いつかなくなる
for(200)*for(400)=80000回ループしても重くならんかな?w
ソートしろ
>>46 CPUにもよるが、秒間60Fで1Fに処理できるループ数は数百万回程度と考えておいた方がいい。
ループ処理って意外と重いのよ。簡単な演算なら数千万回は軽いんだけどね。
演算負荷を考えるなら、徹底的にループを効率化するのがいい。
数百万回か・・・それほど重い処理でもないだろうし、大丈夫かもしれない…
STLのコンテナと空間分割
51 :
名前は開発中のものです。:2010/03/07(日) 21:15:36 ID:COLPwTDN
ここは制作スレではないのか。
DXライブラリってVB.netでは使えないんでしょうか
使えるけど.NETならC#の方がいいと思う
どうせサンプルがC++ばっかりだからC系言語に慣れてる方がスムーズ
ありがとうございます
ヘタレなのでC++からVBに逃げた所存でございます
VBで作ったアプリの一部にDXライブラリを使用したエフェクトを使いたかったのです
C++かC#のほうがいいすかね。ガンバリマス。
55 :
名前は開発中のものです。:2010/03/10(水) 23:14:36 ID:TkD5VN4o
俺は仕事でVB使った事あるけどC++の方が簡単……。
いやもちろん使いこなそうとしたり、お約束を守ろうとするなら勉強が必要だけど
DXライブラリがあればBASIC的な作り方で充分ゲームになるからさ〜。
DXライブラリってなんで起動遅いんだ?
PCの情報集め処理をカットするメソッド無いの?
Log.txt生成オフにしても早くならなかった
そんなに遅かったかしら?
知らないから質問してるんだろう。
60 :
名前は開発中のものです。:2010/03/11(木) 13:55:42 ID:wbYJjsi6
DXライブラリってC++では使えるんでしょうね
知ってる奴は黙ってろ
63 :
54:2010/03/11(木) 20:06:02 ID:8OqGBpl+
お陰さまでimportsまでは出来ました
で、hellworldなんですが、うまくいきません。
フルスクリーンで表示され、キーを押して画面を切り替える瞬間に文字が一瞬描画されます。何故でしょうか
文字を一回描画するだけならループなどもいらないと思うのですが・・
Imports DxLibDLL
Module Module1
Sub Main()
DX.ChangeWindowMode(True)
DX.DxLib_Init()
Dim cr As Integer = DX.GetColor(255, 255, 255)
DX.DrawString(250, 240 - 16, "Hello C World!", cr)
DX.WaitKey()
DX.DxLib_End()
End Sub
End Module
64 :
54:2010/03/11(木) 20:07:40 ID:8OqGBpl+
フルスクリーンで真っ暗な画面が表示され、です
プロジェクトはVBのコンソールアプリケーションです。C#の方が良いんでしょうか
>>64 別にVBでも問題ない
DX.ChangeWindowMode(True) が間違ってる
DX.ChangeWindowMode(DX.TRUE) でないといけない
この関数の引数はIntegerだけど、只のTrueでは.NETのBool型の値になってしまいIntegerでは-1の値と認識してしまう
ちなみに、DX.TRUEの定数値は1(Integer)です
ウィンドウモードで正常に表示するには1を代入しないといけない
VBはBool,Short,Single,Integerのように数値に収められるものは型が違っても代入しても自動変換されてしまう
文法が少々緩いんだよね、String変数にInteger代入出来たりするし
66 :
54:2010/03/11(木) 20:58:38 ID:8OqGBpl+
>>65 ありがとうございます!とても勉強になりました
ヘルワールドに突っ込んだら負けなのか
俺は寸前で止めたぜw
DXライブラリで使ってるメモリアロケータを変更するにはどうすればいいのか
ソースいじってコンパイルとかめんどくさいぞ
>>69 プロジェクトファイルも含めて公開してくれているので,
DXlib自体を再コンパイルするのは別に面倒くさくないぞ。
Undocumented な関数の内部挙動を確かめるのに非常に助かった。
10×10の画像80×60並べるのと
800×600の画像1枚表示させるのとどっちが早い?
1枚
つーか自分で試せよ
80*60の方がメモリ消費は抑えられるかもな。少しだけ
そだな
以前マップチップ三面重ねとかやったけど、無意味に遅くなったから
重要でない背景とかデカキャラは、開き直って一枚で済ますようにしたさ。
DirectInputとかDirectSoundってMSが推奨してないみたいだけどDXライブラリがそれらの技術を使わないように置き換わることはないのかな
公式できけ
テメーで作れ
将来的にXNAを使えっていう話であって
現時点ではDirectInputに替わる技術が存在しない。
そもそもそれを言い出したらC++対応のDirectXが無くなるから
DXライブラリ自体を否定するようなもん。
わかる人向けに補足しておくがCLI自体がMS非推奨な。
WinAPIというものが存在するわけだが
DirectInputとWinAPIの機能差がわからん雑魚は黙っとけ
フヒヒ!サーセン!
84 :
名前は開発中のものです。:2010/03/15(月) 21:06:14 ID:rA6rcRLm
嫌なことでもあったのか?そんなにカリカリすんなよ
γ⌒⌒ヽ
(;:"(゚Д゚) < カリカリしてねーよ!
(:;(ノ ソつ
ヽ唐揚"ン
∪"∪
>>85 いや、お前はカリカリしすぎだ
レモンかけるぞこの野郎
32 名前:名無しさん必死だな[さ] 投稿日:2010/03/12(金) 12:25:32 ID:Ge4a2tND0
>>31 日本はプログラマー不足が深刻だけど
今の学生・若者の学習内容とスキル考えるとコンシューマは絶望的としか思えない
マジでPC(Windows)しか作れないプログラマーが急増している
MSの熱心な布教活動もあると思うが、DXライブラリなるものに平気で手をだす輩が後を絶たない
これって、オブジェクト指向要らずポインタもほとんど使わないでゲーム作れる
こんなのに頼ってたらコンシューマで1番簡単なXbox360でも作れなくなるぞ
オブジェクト指向やポインタは関係ないと思うが
そもそも何スレの話だよwww
XNAって速いの?
オブジェクト指向もポインタもわからんし
ウィンドウの生成すらわからん人間だから
DXライブラリに手を出したというのに。
>>77 DirectInput⇒XInput
DirectSound⇒XAudio
新しいAPIに置き換える必要性が無いし、Windowsが古いAPIをサポートしなくなるまでこのままじゃないだろうか。
結構最近までDirectX7だったし・・・
俺DXLIB使ってるがオブジェ施行やパインタ使ってるぞ
>>87はオブジェクト指向とイベントドリブンを間違えてしまうレベルの知識しかない人間の書き込みなんだぞ
真面目に考えるなよww
オブジェクト指向はともかく、ポインタ無しでの開発は考えられん。
ソースコードがテラカオスになっちまうぞ。
結局、これって楽をするための手段だと思うんだよなぁ。
ポインタ使わない奴は参照とか使ってんのか?
DXライブラリの解説サイトが
ポインタなしのソース公開してたりするからそのこといってんじゃね
入門向けに書いてるからそれはそれで良いと思う
そもそも、ポインタ使わなくても書けるとか
オブジェクト指向じゃなくてもいいとか
DXライブラリと関係ないよw
まあモノが完成するかどうかが重要だけどな
>>98 全部グローバル変数なんだろ
幾つか(マウスの座標取得等)の関数は&付けんといけないがこれはポインタ使うとは言えないか
二年前までポインタ何それおいしいのだったが今ではポインタが無いと生きていけない
ポインタもオブジェクト指向も、プログラミングをやりやすくするための手段だからなあ。
効率的な手法を考えたりしてると、自然とそっち方向に向かっていくものだと思う。
>>101 意味が分からず使ってる人も多いんじゃないかな。
オブジェクト指向はともかく、ポインタは分かりづらくしてる原因だと思う。
こっちはもっとシステム的な事で解決できたはずだし。
実際最近の言語じゃポインタなんてほぼ使わないし。
最近の言語ってなに?具体的に頼む
俺も知りたい。
ポインタで実現してる機能をどうやって再現するんだろう。
文字列をバイトレベルで扱うときどうすんだろ?
アセンブラでやれ
実際にはポインタだらけじゃねーか!的なコンボに繋げたいのでサマーソルトを溜めて待ってる
必要がある場面に来たら自然に調べるようになるんだから
今んとこ必要が無いなって事なら別に覚えなくても良いんだよ
将来プログラマーになったりするつもりなら必要かも知れないけど
日本でプログラマーを目指すのは多分考え直した方が良いな
>>105,106
Java、C#(unsafeでは使える)、VB、Ruby、Python、Perl、HSP、etc..
最近の言語かどうかは知らないけどポインタの代わりに参照を採用している言語は結構あるね。
>>111がポインタの概念を全く理解してない事だけはわかった
昔アセンブラをかじったから、ポインタの概念はわかるんだが、使い方がややこしくていかん。
*がついたり&がついたり
ポインタに1加算したら1バイト先が見えるのかと思いきやサイズによって違ってたり。
確かに使い方はややこしいよね。
変数は何も無しで値、&でアドレスなのに、ポインタは*で値、何も無しでアドレスってのが
慣れるまで苦労した。
他にも**やら*[]やら未だにリファレンス見ないと上手く書けない。
ダブルポインタって時点でアレなのに、トリプルポインタとか何の冗談だって感じだ。
ポインタへのポインタへのポインタって、もはやギャグでやってるようにしか見えん。
そうそう、その上に宣言が
int *p ;
なのにポインタは p とかw
これは
int* p ;
と同じ事だとの説明読んでやっと理解できたw
int* p,q;
ダブポイとかトリポイとかどういうときにないと困るの?
動的に確保された文字列を弄る時とか
>>119 多次元配列のメモリ領域を動的に確保したい時とかじゃね
困るから使うつーか、便利だから使うほうが多いんじゃね
int* p
int *p
で
int * p
みたいに真ん中にあるやつ見たときひっくり返った
125 :
名前は開発中のものです。:2010/03/17(水) 05:34:28 ID:+KoZs8u7
char *p;
p="私の名前は山田太郎です";
昔こんな使いかたしてた
ん?
なんかおかしいか?それ?
おかしくない
あるあるw俺もよくしてた
指摘されてから理解したがな
おかしいということを
それじゃ文字列リテラルを書き換えるコードが書けてしまう
書き換えた場合の動作は未定義
文字列リテラルのアドレスを保持するならconst char *p; にしないといけない
何だそんな話か
え?
え?
文字列リテラルを書き換えてないからおかしくないんじゃないの
たしかに
作法の問題
>>136 ワロタw
ポインタ宣言の*はホント紛らわしいよなー。
ついでに、宣言の&はエイリアスだったりしていい加減にしろと(こっちはあまり迷わないが)
int i=z; // 変数に変数を代入しています
int *p=&z // ポインタにアドレスを代入しています
int &a=z // エイリアスを設定しています
138 :
名前は開発中のものです。:2010/03/17(水) 20:05:22 ID:iN7a1a+g
エイリアス(別名)でなくリファレンス(参照)ね。
実害はないのかもしれんけど別の概念だよ。
ageちゃった。気をつける。
DXライブラリにはグラフやレーダー等のクラスはありますか?
あるわけねぇだろ。アホか。
なんつーか、
>>140みたいな質問を見るたびにいたたまれない気持ちになるのは俺だけ?
グラフやレーダーのクラスが何の事か判らない俺はなんともないぜ。
そもそもクラスがないし。
円グラフっぽく扇形を書く関数はあるけど。
クラスがわかる程度の知性がありつつも
そんな質問が出るアンバランスさがたまらん
VBとかC#やってる系の人じゃね
未だにあれがおかしい正しい理由が出ないとは・・・
サイズわかんね
お箸が転がること。
考えますので、ヒントだけでもいただけないでしょうか
検討すらつかないので・・・
簡単なのは色分けしといて何色か判断
高校1年くらいの数学で、まんまな計算をやった記憶があるな
画面上ではマップを表示したいので、色分けは難しいかもしれません
少しわかった気がします
色分けの方法でチャレンジしてみます
ありがとうございました
いや、デタラメな方法教えるなよ・・・
少しは捻れよ。その身体のてっぺんについてるのは飾り物か。
クリックした座標から、上下左右の辺までの距離を求めろ。
上下左右で一番近いのが進む方向だ。
画面の縦横費が1:1じゃ無かったら、その比を距離にかけろ。
>>162 おお、すばらしい
人をイラッとさせるだけのことはありますね
採用させていただきます ありがとうございました
>人をイラッとさせるだけのことはありますね
味噌汁吹いたw
warota
なんでそんなことだけ捻りが効くんだよw
中央とカーソルの角度と距離を求めて全方向アクセルスクロールの方が
使いやすいと思うがな
えっ
えっ
ええっ
>>167 中央とカーソルの角度を求めるのいいな
DXライブラリとmath.hで簡単にできる
左上の座標を (0, 0) として言うね
クリックした座標を (x, y), 境界を含めないで言うと
0 ≦ x ≦ 239 の場合は y < x だと「上」、479 - x > y > x だと「左」、y > 479 - x だと「下」
479 < x ≦ 480 の場合は y < 479 - x だと「上」、x > y > 479 - x だと「右」、y > x だと「下」
大体こんな感じだと思う
おまえら頭悪すぎてワロター
よく見たらそっちのが全然シンプルだったなw正直すまんかった
このまえ
>>17で質問したヤツです。
皆さんのおかげでビルボードにする事ができますた!有り難う!!!
しかし、問題がまた一つ…
マップに障害物として、テクスチャ一枚貼り付けた面を置いた。SetTransColorで透かしてる。
マップだけ表示すると、見事に透過色の部分は透けているのだが
別モデルのオブジェトをその面の背後に設置したところ、うまく透けてくれない。
どういった状態かというと、テクスチャの透過色は透けて背景が見えているのだが
別モデルが背後にいるのに背景が見える・・・?説明しづらい状況なので画像を用意した。
(乱筆注意)
http://www.dotup.org/uploda/www.dotup.org741198.jpg マップとオブジェクトは別ファイルだが、面倒くさいのでテクスチャは一緒。
質問ばっかですまないが、助けてくれたら嬉しい。
>>176 奥行き順にソートして、奥のモノから順番に描画するようにすれば解決
ソートは,そーっとやってね。
そうとわかれば怖いものなし
頭がソットーしそうだよッ!
>>143-144 亀だけど、DXライブラリに扇形を描く関数ってあるの?
DxLib.hで"扇"とか"Pie"で検索かけたけど何も出てこなかった
>>181 非公開関数にDrawCircleGaugeってのがある。
使ったことないからどういう挙動を取るのか知らんけど。
DXライブラリにそんな能力が…
非公開関数も動作保証無しで別ページに乗っけてくれればいいのにね
公開するって事は責任を負わされるって事だからしょうがないでしょ。
たとえ「動作保証なし」って明記してあっても、
そこを読んで使った人間が、それが原因でトラブルに遭ったとしたら
「そんなもの最初から公開するな!」って言い出すのは火を見るより明らか。
>>185 dxlib.h漁れば大抵のことは分かるよ。
公式でサポートはしないけど見たい人はヘッダファイル見てね!
というのは、なかなか賢い方法だと思う。
トラブって文句言われることよりも、
「うまく動かないんですけど」とか
「どうやって使えばいいんでしょうか?」
なんて質問に対応するのが面倒だからだと思う。
3.02
トゥーンレンダリング追加
したら吹くわw
されとるよ
なん・・・だと・・・
まだPMDは非推奨か
199 :
名前は開発中のものです。:2010/03/22(月) 18:14:21 ID:XicM9SHz
ある解像度(ウィンドウサイズ)で2Dゲームを作り、
コンフィグの設定によって、それよりも大きい別のサイズで引き伸ばして表示出来るようにしたい。
要はSetEmulation320x240の別解像度版と言ったところ。
どうやるのがスマートかな。
描画系クラスをひたすらラッパして、1つ1つ拡大処理を行わせるしかない?
SetWindowSizeChangeEnableFlag
或いはSetWindowSizeExtendRateとウィンドウサイズ変更を組み合わせる
これは?
宣言 int SetWindowSizeExtendRate( double ExRate ) ;
概略 ウインドウモードの時のウインドウの大きさと描画画面の大きさの比率を設定する
DrawExtendGraph
うおおお、知らない関数がぼろぼろ出てくる。
今まで地味になにやってたんだろう俺(笑)
トゥーンうまくいかねぇ・・・
>>201が答えだな。
まぁ描画クラスをラッピングしてもいけるけど。
しかしそのやり方だと拡大縮小時に画像に補完がかかるので2Dのゲームだと画像が汚くなるのだ。
拡大縮小時のアルゴリズムを設定するAPIがあるけどその設定も無視される。
従って俺様が正解。
DrawExtendGraphだろうがSetWindowSizeExtendRateだろうがBILINEARにすれば一緒じゃねえの?
2Dであえてバイリニアにするかな普通
ニアレストネイバーなんてガタガタで使い物にならんだろ
どんな2Dゲーム作ってるの
>>209 整数倍なら普通に存在するし常套手段。
ただし
>>199の言うとおり複数パターンの解像度があるなら、ニアレストネイバーだと酷い見た目になる
やっぱ整数倍じゃないとツラいかー。
他人様に見せるレベルじゃないとは言え、一応ドット絵だからなあ。
ちなみに512x384という変則サイズでゲームを作って、それを640x480か800x600に引き伸ばしたいと思ってた。
いっそのこと2倍にしてしまおうか。
>ちなみに512x384という変則サイズでゲームを作って、それを640x480か800x600に引き伸ばしたいと思ってた。
そりゃやめた方がいい。見栄えがとてもアレなことになるw
つーか、なんでわざわざそんな半端な解像度で作るんだ。ツクールVXの関係か?
素材はちゃんと想定解像度で揃えた方がいいよ。クオリティが全然変わってくる。
拡大縮小機能はあくまでオマケとして考えること。
1024は流石にやめたほうがいい
別にバイリニアでいいんじゃね そこまでおかしくなることもない
DrawPrimitive2Dってのが追加されてるけど使い方わからねぇ
・512x384の解像度で綺麗に表示される
・フルスクリーンにも対応できる
この2つの条件を満たしたいのよね。
フルスクリーンにするには、画面を標準的なサイズ(640x480や800x600など)に変更する以くらいしか思いつかない。
前にやったときは、2つの解像度で画面配置とか色々変えてやってみたんだけど、
さすがにこれは労力がかかりすぎた。
640*480で作って、いらない部分に枠をつける
>>216 フルスクリーンにするなら512×384も640×480もあんま変わらん。
512×384のままフルスクリーンにしてしまえばいい。
まあ、今時のディスプレイドライバが対応してるかは知らんが。
>>217 一番最初に考えて、ひどいなと思ってやめたw
>>218 少なくともウチの環境じゃ対応してなかったからなー。
さすがに確認できないのは色々と面倒くさい。
>>219 そもそもなんでそんなレガシーな解像度で作ってるんだ?
件の解像度でぐぐってみた
枠をつける以外ないと思うが
ニコニコ動画でくっきり見せるため,とか?
だとしたらしょーもない理由だな・・・
質問させてください
画像を縮小してメモリに保持する方法って無いですか
>>225 事前に縮小した画像を読み込まない理由はなんなの?
こっちこそ、それが知りたい
利用目的によって解決方法は様々だから
そうしたい理由を述べた方がいいよ
1ドットづつ読み込んでsoftImageに書き込んでいけばいい
縮小アルゴリズムは適当にネットで探す
ニコニコは宣伝料の節約にはもってこいじゃん
それだけでニコ動の解像度に合わせるのは十分ありだと思うぞ
ねーよw
640×480で製作したのを512×384に変換しても、
そもそもニコニコの画質がたかが知れてるから気にするほどの劣化は無い。
あと、有象無象の自作ゲームをアップしたところで宣伝効果はたかが知れてる。
閲覧数4桁行かんよ。
512*384で作ったゲームを640*480に拡大表示させるより
撮影した動画を512*384に縮小するほうが明らかに良いと思うが
宣伝のためにゲーム本体を劣化させるとか、どんだけ本末転倒だよ・・・
なにいってんだ、どの業界でも宣伝>品質なのは常識だろ
品質>宣伝になってるのはほんと一握りのメーカーだけだよ
それは宣伝を工夫することによって半ば誇大広告のようになってしまっているだけであって、
宣伝のために品質を下げることはまず無い。強いて言えば宣伝費に圧迫されることによって表に出ない潜在的な研究成果が生まれること位。
品質とか劣化とか以前の問題があるだろ
>>217わかるけど
512*384なんて解像度はドライバ側からありえない
あ、グラボじゃねーや。NVIDIAで脊髄反射してしまった。
てかこれ何の商品だ?
グラボだろ
どう見てもグラボ
ビデオカード
ワイド対応とか考えると面倒そうだ
ニコニコのために512*384ってのはないだろー
エンコでどうとでもなるし画質劣化なんてわからないぐらいに抑えられる
別の理由があると思うんだが、なぜなんだぜ?
せこいアイディア思いついて
誰にも出し抜かれないうちに実現したいんだろ。
自力で出来もしないのにケチなことには知恵が回る。
この手のガキには付き合わないほうがいいよw
あるあるw
あるのかw
俺には、その発想なかったわ。
経験者は語るってやつかな。
いや、出来もしないのにケチなことには知恵が回る、ってところねw
ホント、出来ない奴ほど自分のアイデアが素晴らしいものだと思いこんで、
つまらないことばかりするんだよ。どっかの福本も言ってたじゃないか。
もうやったなら仕方ないから、
ウィンドウ時はそのまま512*384で最大化時に640*480で枠付けたらいいと思う
そうなってるゲームあるし
今更知ったんだが、DXライブラリってオープンソースなのな
DXライブラリでゲームつくってんだけどCPUが重い訳でもないし
画像を4枚表示してるだけなのに
FPSが42〜45くらいしか出ないんだぜ・・・
30カウンントごとにGetNowCount()して
(double)(30000/経過時間)ってやってる
ググッたらVistaでそういう症状が出たとかあったけど、俺XPだし・・・
DXライブラリでFPS制御って自動でやってたりするのん?
いちいちHDDから読み込んでるかモニタのリフレッシュレートが45なんじゃね?
まぁ初心者がやりがちなのは前者だろうな。
毎フレーム画像読み込みやってんじゃない。
DXライブラリ使うと確実にCPU使用率が2桁になる
WaitTimer挟めよ
>>249 >>250 確かめてみた
モニタのリフレッシュレートは60Hzだった
なんにもしないでFPS表示するだけのプログラム組んでみたけど
やっぱり43ぐらいしか出なかった
んで、DXライブラリのバージョンを3.00fから2.24cに落としたら
なんにもしない状態だとFPSは60出たけど
なんかやたらちらつくし、やりたい処理入れるとクソ重くて
使い物にならんかった・・・
DirectXとの相性なのか・・・?
>>253 とりあえずバージョンは3.02を入れれ
LoadGraphScreenはやってないんだな?
ちらつくって裏画面使ってないの?
>>254 3.02で試してみた・・・が、やはりダメだた・・・
メインループ内の処理の内容は以下の通り
// 30カウントごとにFPSの更新を行う
// カウンター表示
// FPS表示
// ESCが押されたら終了
// カウンター加算
ScreenFlip();
ScreenFlip外すと7000FPSくらい出る
>>256 だ・か・ら・DrawGraphなのかLoadGraphScreenなのかと。
あと、裏画面設定はしてるよな?
SetDrawScreen( DX_SCREEN_BACK ) ; は関係ないか
>>257 んや、なーんもしないサンプルプログラムを
ちょっといじっただけだから
そもそも画像を描画してないんよ。
それでもFPSが45くらいまでしかでないんよ。
本来のソースでは、メインループ前に
SetDrawScreen( DX_SCREEN_BACK )してる
あるいはハードウェアアクセラレータ弄ったとか
>>256 とりあえず、そのFPSを表示するプログラムのソースをうぷればいいじゃないの
サンプルプログラムをいじっただけだったらソース晒せるよな?
ていうか
>>248で「画像を4枚表示してるだけ」と言ってるのに
「画像を描画してない」とはこれいかに。
>>262 >>253 >なんにもしないでFPS表示するだけのプログラム組んでみたけど
>やっぱり43ぐらいしか出なかった
>>262 >>248は本来のプログラムの方の話で
>>259はサンプルプログラムをいじったテスト用のヤツの話ってことっす
わかりづらくてすまん
ではソースを晒してみる
まず変数宣言とプロトタイプ宣言
// ここにサンプルプログラムをペーストしてください
// 初期状態では LoadGraphScreen のサンプルプログラムが入力されています。
#include "DxLib.h"
static int KeyState[256];
static int before; /* パフォーマンス計測用 */
static int after; /* パフォーマンス計測用 */
static int time; /* 経過時間 */
static int gSTGCounterNow = 0;
static double gSTGFps = 0.0;
/* プロトタイプ宣言 */
int MainLoop();
int GetHitKeyPadStateAll();
int CheckKeyState( unsigned char keyhandle );
double GetFps();
続き、メイン部
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE); /* ウィンドウモード */
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{return -1;}
//// BMP画像の表示
//LoadGraphScreen( 0 , 0 , "test1.bmp" , TRUE ) ;
DWORD color = GetColor(255,255,255);
/* メインループ */
while( MainLoop() == 0 ){
/* 30カウントごとにFPSの更新を行う */
if( gSTGCounterNow % 30 == 0 ){
gSTGFps = GetFps();
DrawFormatString( 0, 40, color, "GET!" );
}
DrawFormatString( 0, 0, color, "COUNT:%d", gSTGCounterNow );
DrawFormatString( 0, 20, color, "FPS:%f", gSTGFps );
if( CheckKeyState(KEY_INPUT_ESCAPE) == 1 )
break; /* ESCが押されたら終了へ */
gSTGCounterNow++;
// ScreenFlip();
}
// WaitKey() ; // キーの入力待ち((7-3)『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
うげ、タブインデントだからインデントめちゃくちゃなった・・・読みづらすぎてすまん・・・
/* 必須処理 */
int MainLoop(){
if( ProcessMessage() != 0 ) return -1; /* メッセージ処理 */
if( ClearDrawScreen() != 0 ) return -1; /* 画面をクリア */
if( GetHitKeyPadStateAll() != 0 ) return -1; /* キーの入力状態を保存 */
return 0;
}
/* キーとパッドの入力状態を取得 */
int GetHitKeyPadStateAll(){
char keybuff[256];
int i, padinput, mask = 1;
if( GetHitKeyStateAll( keybuff ) != 0 ) return -1; /* キーの状態を取得 */
for( i = 0; i < 256; i++ ){
if( keybuff[i] == 1){
KeyState[i]++;
} else {
KeyState[i] = 0;
}
}
return 0;
}
あああ、半角スペースにしたけど、そういえば省略されるんだった・・・orz
/* キーの押下状態を返す */
int CheckKeyState( unsigned char keyhandle ){
return KeyState[ keyhandle ];
}
double GetFps()
{
double fps;
after = GetNowCount();
fps = (double)(30000.0/(after - before));
before = after;
return fps;
}
以上っす
あ、ScreenFlip()コメントアウトしたままだった、ごめん
で、コメントアウト取ってやっても駄目だったのか
ゲームに合わせてDxライブラリをラップしたオレオレライブラリでやってる?それともDxライブラリ丸出し?
オレオレライブラリって何だよw
>>270 程度の差はあれ、オレオレライブラリになるんじゃないかな。
龍神録とか正常なFPSで動く?
DrawFormatStringとCheckKeyStateをコメントアウトして画像だけを表示させるとどうなる?
ていうかなんでKeyState入れてんのにCheckKeyStateで書いてるんだ
>>268 SetDrawScreen(DX_SCREEN_BACK);
入れて、ScreenFlip();のコメント外せば、60FPS出たけど
SetDrawScreen(DX_SCREEN_BACK)入れればいいだけでは
規制解除テスト
あ、連続投稿規制解除されてた。
あれから検証した結果
どうやらグラフィックドライバーが主犯らしいということがわかりました
ドライバーを削除してWindowsデフォルトのドライバで動作させたら60FPS出ました。
んで再インスコしたらまた45FPSくらいになりました
>>273 龍神録は今のドライバちゃんと動くんです・・・不思議です・・・
画面のプロパティ→設定→詳細設定→トラブルシューティング→ハードウェアアクセラレータでどうにかならんか
解決しました。
サンプルをいじった方は
SetDrawScreen(DX_SCREEN_BACK)がなかったから
本来の方はSetGraphModeをDxLib_Init()をしてからやってた
ってのが原因だったみたいです
現象がおんなじだったから原因も同じかと思ってました
色々参考になるご意見ありがとうございましたm(_ _)m
上の方でトゥーン対応したって書いてたけど、どうやってやるんだ。
DxLibModelViewerで全マテリアルをトゥーンにして表示したけど
上手く表示できない。
PGの中で全マテリアルにMV1SetMaterialTypeでDX_MATERIAL_TYPE_TOONを設定してもダメ。
DxLibModelViewerでは上手く表示出来てるのに、上手くいった人どうやった??
ちなみに、Ver3.02aです。
>>281 俺も表示がおかしくなった
でっかい陰みたいなのができる
うまくいかないならここじゃなくて公式に書け
過去ログはきちんと漁ってからな
これって一つか数個のDLL配布したほうが良くないか。
BCCやmingw分ける必要ないし。
DLLのみにして、ヘッダでダイナミックリンクするようにした方が良い。
作者に行ってきてくれよ。
お前が言えよ
いやいやお前が言えよ
別にそういう使い方も出来るだろ
自作しろ
てめえでやれ
DLL形式だったら、自分はDXライブラリ使ってなかったかもしれないなー、と思った
あ、それは俺も思った。
結論:今のままで良い
DLL一個とヘッダ一個だけで動くようにしたら、開発者は増える思うよ。
windowsのどのコンパイラでも動かせて、開発の導入難易度が下がる。
その構成を元にしてオプションで、静的な埋め込みも出来るようにする。
コンパイル時にdefineを一個追加するだけとか。
でもなぜか初心者ってファイルをまとめたがる傾向があるよね
プレイヤー側としてもファイルがごちゃごちゃあるのは邪魔だ。
ファイル構成気にするプレイヤーなんてそうはいないだろう
改造するとかでもないとショートカット以外に興味ないよ普通
興味あったとしても素人じゃセーブファイルぐらいだ
今となってはC++ゲーム開発者としてはVC++系のコンパイラで使えれば十分だろうし
プレイヤーとしてはファイル構成とかどうでもいいのが実情だろうな
>>294みたいに抽象的に書くのでは無く、どのコンパイラでこういう風に使えるから開発者が増えると具体的に書いてみたらどうだろう
3Dモデルの一部分だけを回転させたり座標変更したりするのってできます?
別に用意しなくちゃダメかな?
>>296 C#ではヘッダとDLLになってる。インポーライブラリもない。
これがC++でも目指すべき所。
「べき」ってほどでもなくね?
LoadSoundMemしてPlaySoundMemしてるんだけど
再生時間が380秒より長いと再生されない
再生できる長さに上限があったりする?
だれか情報しりませんか?リファレンスには載ってないもんで・・・
ちなみにPlaySoundFileでもダメでした
だから本家で聞けよドアホ
>>306 いや、初めて聞いたのに「だから」とか言われてもww
でも、そうします。お騒がせしました〜
ここはそういったことを聞く場じゃないの?
visual studio のExpress版より最新のstandard版の方が高速な実行ファイルがビルドされますか?
Expressは64ビットに対応してないのでその場合は速くなるかもしれない
そうでないなら変わらない
それとたぶん君の作ったものが遅いのはコンパイラのせいではない
なんだと
頭かな
いや顔だ
314 :
名前は開発中のものです。:2010/03/29(月) 22:56:10 ID:159kCcsj
今わかったんだけど、netBeans + bcc + DxLibでコード補完入力できるんだな
VC++しかできないって思ってた・・・
秀丸やatokのも付いてるが。
補完はDxLibと関係無いが
>>308 亀だがライブラリの仕様っぽい所は
ここで聞くよりあっちで聞いたほうが、
1. 答えが返ってくる確率が多い
2. 答えが返ってくる速度が速い
3. バグなら管理人がバグと言ってくれる
といいこと尽くめ
現に
>>304は誰も分からなかったし
>>316 4.気付いたら修正版がアップされている
これもよくある話
デバッグ用に別ウィンドウ開きたいんだけどDxLib単体じゃできないかな?
文字列だけじゃなくて文字列とイメージ情報でデバッグしたいんだけど・・・
DXライブラリは甘え
じゃ何だったらいいの
test
アク禁とけた
323 :
281:2010/04/01(木) 00:35:49 ID:Pt89SbMJ
管理人さんは平成のキリスト
ネラーの特徴
自分に都合のいい場合【神】【紙】
自分に都合が悪くなると【氏ね】【くそ】【クズ】
それは別にねらーだけじゃない
2ch以外だとあまり表に出ないだけで
要は日本人の本質が糞だということ
ごく一部分だけ見て、十把一絡げに言うようなヤツこそをオレは憎む
それは言い方を変えれば
どんな奴が書いたかもわからないような情報を見て
全てを知ったかぶるような奴を憎む
って事になるな。
つまり・・・どういうことだってばよ?
スレ違いって事だな
2chに書き込んでる自分を棚にあげた書き込みも(笑)なだけだし
332 :
名前は開発中のものです。:2010/04/06(火) 14:03:49 ID:EHWr46CC
でもDXライブラリの管理人は平成の職人だよなとつくづく思う
HSPのほうがいいがな
HSP(笑)
アイデアさえあればHSPでも十分なんだよね
使用言語を笑うのはロクな物を作れない証拠
いや……それは逆の立場で言う台詞だろ
HSPでも、って何?
Cに比べればメモリの管理は浅いという意味。
全体的に見ればC系列が上になるが、ゲーム作成にはほとんど関係ないでしょ
犬と猫シリーズには頭があがらんわ
そうだね。でもここで言う事じゃないよね。
>>335 HSPは使い物にならん、構造体が使えないという致命的欠点がある
アクションRPGとか凝った作品作ろうとすれば制御変数で苦しい思いする
今のPC環境ならJavaやC#がベストだと思うが
BASIC系ならDarkBasicやPureBasicとか構造体使えて便利なのもある
つか、今は管理人さんのサポートの話をしてたんじゃなかったかな。
DarkGDK
>>337 ゲーム作成にほとんど関係ないとかマジで言ってんの?
ロクな物作れないのはどっちだよ
>>339 あれ、構造体もなかったか。今時それはきついか。javaは個人的に苦手なので、個人的にオススメはC#になるかねぇ。
>>342 そうだね、一言抜けていた
「面白い」ゲーム作成にはほとんど関係ないよ
FFの最新作が面白いと思ってるような人なら、スマンカッタ。謝るわ
そうでなれければ面白いゲームを作るのに最も大切なの物は、アイデア。
ある意味愛情とも言えるね。どれだけプレイヤー視点で考えられるか。
俺自身HSP、lisp、C++と使ってきたけど、言語とか本当にどうでもいいことにやっと気づいた。今はVB.net使ってる
ついでにタブレットも使ったけど絵がヘタクソな奴はヘタだなwうまい奴はペイントでも書いてしまうんだよな
まぁ、実現不可能(もしくはその言語でゲームにならないレベルで重くなるなどの支障)なことが起こらない限り、得意な言語から乗り換える必要は無いよ
HSPで構造体がなくても使い易いと思えば使えばいい。配列を複数用意する等、いくらでもやり方はある
技術に関しては、ある程度までは磨けばなんとかなる。
だからセンスをくれ。マジで。
センスも沢山失敗して磨かないとだめだろw
センスがないんじゃなくて、観察力や分析力がないんだろ。
ようするに技術を磨く努力をしてないだけ。
やる気のない奴ほどセンスを言い訳にする。
何事にも努力が必要なのは確かだが、
複数の人間が同じだけの努力すれば、同じだけ能力が向上するなんて誰も思ってないのに、
才能やセンスの重要性を否定するのはおかしい。
才能とかセンスとか所詮結果論よ
特別な結果がでる人は、人と違う特別な努力を知らず知らずにしてるもんよ
ある何かに手をつけたとして、
それができた人は、面白くてやる気が出るから努力を続けるだろう。
だがそれが全然できない人は、当然面白くなくてやる気も出ないし努力するのが苦痛だろう。
とっかかりも結局は才能だと思う。
誰でも時間かければ勇者になれるRPG脳の弊害ですねわかります
>>347 一般的なプロ程度のセンスや技術に才能はたいして重要ではないよ
学習と努力で十分克服できるレベル
それとも、もうプロの域は超えてて天才に迫るとこまで行ってるわけ?って話だな
シッタカ乙
>>349 ↑の答えは
>>346って事なんだろうな
というか、遊びでプログラムやってるなら苦痛ならやめて他の簡単で面白い事やったらいいんじゃないの?
楽しくなければ遊びにならないでしょ?
>遊びでプログラムやってるなら苦痛ならやめて他の簡単で面白い事やったらいいんじゃないの?
これが「お前には才能が無いよ」と言ってるのと同義なんだけどな。
才能を否定してるようで才能の存在を多いに認めている。
普通の人が苦痛と感じることを楽しめるのも立派な才能
>>354 いや、キミの理解が足りないだけじゃないの?
一般的なプロ程度の人間は楽しいだけの学習なんてしていない、苦痛なのが普通だって事だよ
楽しい事以外したくないなら誰かの作ったゲームで遊んだりアニメ見たりしてるだけでいいんじゃないの?
遊びなんでしょ?
いい加減スレ違い
>>356 苦痛の乗り越えた時に達成感とかカタルシスはないの?
ゲーム業界に夢見てる連中の議論は傍から見てるとスゴク面白いなあ
>>358 苦痛があるから努力できないってレベルの話に何の関係があるの?
乗り越えられなければ苦痛しかないって事にも気付かないの?
趣味のゲーム製作で才能だの苦痛だの言い訳する奴は
もともとやる気がないだけだからやめとけって話だ。
> これが「お前には才能が無いよ」と言ってるのと同義なんだけどな。
> 才能を否定してるようで才能の存在を多いに認めている。
> 苦痛の乗り越えた時に達成感とかカタルシスはないの?
> 乗り越えられなければ苦痛しかないって事にも気付かないの?
何を言いたいのかさっぱり分からん
>>359 そうか?
>>349には夢見てるというほどの熱は無いし
一般的なプログラミングや創作の学習過程の話だよ、これは
>>361 甘えんぼさんだなぁ、単なる遊びなら簡単に乗り越えられるように設定されたゲームをやっとけばいいだろ?
キミが躓いてる小石や水溜りはよく観察して努力すれば凡人でも乗り越えられるものだよ
プログラムなどの技術力とは全く関係なく、面白いゲームを作る人は実在するわけで、
そこを不思議に感じることはあると思うのよ。
そのジャンルへの豊富な知識/経験だったり、
>346の言葉を借りるなら、1つの経験から面白さを分析する力だったりするんだろうけど。
どうやって磨けばいいのやら。
横からスマン、ゲーム作るとき素材の大きさってみんなどうやって決めてる?
367 :
名前は開発中のものです。:2010/04/10(土) 02:42:24 ID:2K/v1vST
プレイする画面の大きさを、実際に作ってみて
そこから「これくらいかな」というのをざっくり切り取って、
あとは都合のいいサイズに微調整。
特に画面が固定のゲームだと、
素材の大きさ(=画面内に置ける素材の数)は、ゲームシステムに直結するからなあ。
横7マスのぷよぷよと、横14マスのぷよぷよとでは全く別のゲームになってしまう。
371 :
名前は開発中のものです。:2010/04/10(土) 09:13:38 ID:D9AgpRz8
1人でゲーム作るのとか無理すぎる…
どんだけ時間を費やし他の時間を犠牲にするか…
少なくとも3人は必要と思った
1人で作れるゲームを作ればいい話
DXライブラリを使うのも省力化、低難易度化の方法の一つにすぎない
三人もいたらPS程度のクオリティのゲームは作れるけど
凄いね
>>372 それは正しいと思うが、手段と目的が逆転してる気がしなくも無い。
企画・システム・コーディング・グラフィック・サウンド
生産・営業・小売りなどは他の人にやってもらって
俺は2980円払ってゲーム完成
3倍作業すればいいだけだろ
それか人集めるか雇うかすればいいだけの話
日常的に顔をあわせる相当息の合った友達か、同人外注に慣れた人を雇わない限り、
一人で作ったほうが時間の節約になり完成確率も上がると思っておいたほうがいいぞ。
人員は、時間や作業量のためではなくクォリティアップのために増やすんだ・・・
ここまでの流れを読んでると、さすがDXライブラリって感じだ。
自分で作れないのはフリー素材でいいから、とりあえず完成させようぜ!
2Dに限れば、開発時に必要な最小限の画像や音楽を用意して後はプログラムに注力。
完成したら適当に公開して反応みつつゲームの調整。
その時点で足りない画像や音は協力者募れば解決するかと。
>>自分で作れないのはフリー素材
>>自分で作れない
面白いゲームが作れません
様々なゲームの知識と、
様々なゲームを遊んだ経験と、
様々なゲームを研究し尽くす努力が必要です。
どれかひとつでもやろうと思いましたか?
しようとも考えなかったのなら、あなたはゲームを作る気がありません。
単に「面白いゲームを作った」というステータスが欲しいだけです。
アイデアが入ってないとかマヌケ過ぎるぞ
基本、アイデアがすべてだと思っている
>>383 いろんな名作を研究するのは確かに良ゲー制作の助けにはなるかもしれんが、別に必須というわけではない
マリオやカービィ等、黎明期の名作は手本なんてなかった
>>384 アイデアは列挙するまでもない大前提だろう。
そのアイデアを生むための下敷として、いろんなものが必要。
ああ、ゲームの知識と経験と努力だけじゃ足りなかった。
世の中のいろんな事、いろんな物の知識と経験と努力も要るな。
ヒキコモリの世間知らずは何も産めないし、何も作れない。
>>385 その手本が無いと言う根拠は?
似たゲームが無いと言う浅慮からだとしたら、
おいおいとしか言いようが無いけれど。
まぁ最早スレ違いだし、めんどくさくなってきたのでもうやめる。
>>386 根拠も何もあの時代に手本となるゲームなんてなかっただろ…
ゆとりか?
ゲームの手本はなくてもゲーム以外の手本はありそうな気も
割りきってシンプルな素材作るかー
ゼルダは宮本茂が
少年時代に野山を探検してまわった経験が
アイデアの元だって、なんかで読んだな
てか、一般化しようとしたって難しい話題だなこれ
カービィの桜井は今でも他の作品やりまくってるわけだが
君たち青春だねェ!
392 :
名前は開発中のものです。:2010/04/12(月) 14:30:38 ID:lbDCpvbk
画面からはみ出た部分(マップや敵など)は、描画処理もされているんでしょうか?
もしされているなら条件分岐させて非描画にさせようと思うのですが、
聞いたことも無いので自動でやってくれているんでしょうか
DXlibに限った話じゃないんで恐縮ですが質問です
屋内のMAPで3Dアクションを作る場合、例えば平屋の一戸建てを
1.建物全部のモデルを作成しておいて一度に読み込ませる
2.パーツごと(壁、床など)にモデルを作成して描画位置を指定しておく
全体の作業量に差は無いんだけど作業工程が大幅に変わるので悩んでます
SouceSDKなんかではbsp形式で一括、バイオシリーズなんかでは後者の様ですが
>>395 一度に読み込ませる方がシンプルで良いんじゃない?
>バイオシリーズなんかでは後者の様ですが
これどこ情報?
397 :
395:2010/04/13(火) 18:49:13 ID:e7NonE+C
>396
早速のご意見ありがとう!
かなり前ですが、海外のバイオMODフォーラムで拾った話です
PC版初代と2のモデルを抜くツールを作っている人がいまして
その使い方解説でその様な記述があったと記憶しています
デジタルロケのサンプルでも片面ポリの部品で舞台が構成されていたので
当時はインドア3Dゲームって全部そうやって作るもんなんだとおもってました
3Dは扱ったことないからわからんが
壁とか床のモデル使いまわしたほうがゲームが軽くなるんじゃないの?
399 :
395:2010/04/13(火) 19:17:26 ID:e7NonE+C
>398
リソースはある程度軽くなると思います。単純に描画処理だけなら差は微々たるものかと
ただ一括と部品を配列配置ではグラフィックメモリ使用量がかなり違うんじゃないか?とか
見た目が単調になるのを避けるのに結局リソースが増えるんじゃないか?とかでウジウジ
質問が漠然としていて答えづらい。
リソースって言ってるものを何処に持たすかで話しが変わってくるよ。
単純にメモリなのかそれともグラフィックボード上なのかとかね。
BSPマップの描画の話しならクリッピングから調べれば?
って話しだし
ツール作成がめんどくさそ
ふと疑問に思ったんだけど、LoadGraphとかがスレッドセーフじゃないのは知ってるけど、
boostとか使ってラップすれば割と簡単にスレッドセーフにできたりしない?
みんなそういう事やってるん?
403 :
名前は開発中のものです。:2010/04/21(水) 20:48:58 ID:C4OhWkn/
RPGのタイトル画面などで、ウェイトをかけるにはどのような方法が良いでしょうか
newgame、loadgameなどを上下キーで選ぶとします
そのままだと上下を押すと一秒間に60回移動してしまいます
空のメインループを呼び出し、描画だけをするのでしょうか?
>>403 コントロールパネルのキーボードの設定項目をみて思いつかないか?
>>403 空のメインループだと、特定のタイミングでキーを押しても反応しないことがある。
実際に作ってみれば分かるが、これはかなりストレスが貯まる。
というわけで、一般的には
(1)矢印キーを押した瞬間にのみカーソルを動かす。
あらかじめ直前のフレームにおける入力状態を保存しておけば、押した瞬間を検出できる。
この検出処理自体はゲームの至る所で使用するので、タイトル画面に関わらず必ず作っておいた方が良い。
(2)ウェイト用のカウンタ変数を用意しておき、毎フレーム減らす。
カウンタが0以下の時のみ、カーソルを動かす。その後、待機するフレーム数(1秒ウェイトなら60)をカウンタに代入する。
キーを押しっぱなしで、かつカウンタが1以上なら、0になるまで毎フレーム1ずつ減らす。
キーが押されてなかったら、カウンタを0にする。
という、どちらかのパターンになると思う。
(1)はキーを連打することでカーソルを動かす、(2)は押しっぱなしでカーソルが動く。
(1)と(2)を組み合わせた方法とかもあるけど、それに関しては割愛。
>>404 キーボードじゃなくてゲームコントローラじゃね? OSによって違うかもしれないけど
直前のキーの状態の保存の処理をキーの状態に変化がなくても毎フレームやってもいいの?使うキーが多いと無駄にCPU資源を使うような
パフォーマンスチューニングで一番大切なのは細かいことを気にしないこと
キーの状態の取得なんかカスみたいなもんだからどうでもいいよ
実際にゲームとして動く段階になってそんなところがボトルネックになるなんてありえない
そんなこと気にするならキーが押されてる間、
カーソルの移動する処理と一緒にウェイトいれとけば
>>407 人間だって直前の状態から変化がなければ何もせず、
エロいことが発生すれば勃起するという判定を無意識に毎フレーム行っているが大した負荷ではない
直前のキーの状態の保存の処理程度でCPU資源気にするようじゃあゲーム自体作れないw
なんでC#用の奴は
dllファイルやcsファイルでも元の関数名のままなのに
C#で使う場合にDX.を頭に付けなきゃ使えないんだろう?
どこでこういうことが決められてるんだろう?
弄って直せないレベル?
415 :
名前は開発中のものです。:2010/04/22(木) 03:54:35 ID:ZtVLfcJh
若いころはアイデアがわくが 技術がたらない
年取ると 技術があるが 作りたいゲームのねたがわかない
(トシ トッターナ フランス画家)
>>414 public static class DX ← DxDLL.csのコレじゃない?
どこでってC#の言語仕様としか言いようがない。
自分はC++からしか使ったことがないけど、先頭の DxLib:: を強制するようにしてる。
ヘッダの一箇所いじるだけだし。
>>414 「DX.」無しに出来ないことはないが……
1. DXクラスを継承する
2. DXクラスの内部クラスにする
正直どちらも個人的にオススメできない。
DXライブラリってクラス分け無視して全部DXクラスにぶち込んでるよね
Cと同じように書きたいんだったらなんでC#なんか使ってるんだろう
そもそもC#使うんだったらDX.が面倒に感じるくらいに至るところで
DXライブラリの関数呼ぶような作りにはしたくないと考えるのが正常
>>414 DX.はあった方がC#には都合良いと思うが、コード補完機能があるわけだし
安全にDXLibの関数を呼び出せる
おまいらは、C++でDxLib::って使ってる?
VBでDxLib. ってやってる
ボーン情報を持ってないモデル同士を関連付けるにはどうすればいいですか?
軸ベクトルと原点位置は親に従うから親クラスが持ってればいいかと思うけど
移動処理を必ず親側から先にやらないと分離しちゃうよね?
427 :
426:2010/04/23(金) 16:33:55 ID:WWexJsB8
うーむ・・・例えがいまいちかな
人が歩くパターンはボーン関係なく、アニメパターン通りのポリゴン読み込ませれば済むが
歩きながらクビだけ動かしたいときに
全部の動きのアニメパターン作るわけにいかないよね
フレームやメッシュを相対的に回転させるにも、原点や軸ベクトルが別途要るよね・・・
どうやってるの?
元で頭と胴体を分けりゃいいだろ。
429 :
426:2010/04/23(金) 16:57:17 ID:WWexJsB8
>>428 分けただけでは
体が上下しながら歩いてる最中に
頭だけ平行移動する
>>430 ?
分けて同じアニメパターン再生しろと?
それで右向いたり左向いたり別のアニメパターンを用意するの?
答えにもなってない煽りほどアホっぽい
>>431 何言ってるんだ?
少しは頭使えよ……。
頭使えないからこんな阿呆な質問するんだろ
何も有益な情報は残さずに読むものを不快にさせるだけのレスをするやつは死ねばいいのにな
モーション付けするときに、体(首)の位置を変えなければいい。
頭は、体の位置から自分の位置を決める。
悩むことじゃないと思うんだけどな。
ちょっと荒れそうなところ申し訳ないんだけど
カメラの回転をしない2Dのクォータービューのマップを作るとしてさ
仮に立方体の単位ブロックを2次元的に並べると板ができるよね
この時手前にあるブロック以外のブロックは側面を隣のブロックの上面に上書きされてしまうよね
上書きされてしまう部分に書き込む位ならテクスチャのように元から上面だけのブロックを作ろうと思ったんだけど
この上面だけのブロックって結局元のブロックの側面を消しただけの代物で
ブロックの大きさをまったく変えてないんだけど効果あるのかな
極端な話
100*100のサイズの画像内で10*10を残してそれ以外を透過してしまう場合と
透過せずに使う場合とではやはり負荷は変わりませんかという質問をしようと思ったけど馬鹿にされそうだし
試した方が早いから試してくるわ!
差はないんじゃないの
もしあったとしてもゲーム全体でみるとどう考えてもそれくらい有意な差にはならない
うん、試してみたら透過面積と負荷に関係は見られなかった。
当たり前だけど画像の大きさと負荷、それと透過フラグと負荷には関連が見られた。
なんとなくでクォータービューでマップ作ったらfps60切るんだ
軽量作戦はいくつか考えてるけど結果からテクスチャ作戦はサイズ小さくしないと意味ないみたい
3Dの知識まったく無いけどつぎは新型画像表示のナントカプリミティブ作戦を試してみるわ!
ブロック画像を一つずつ別々のファイルにしてない?
まとめたら速くなるよ
別々でもメモリに読み込んじゃえば同じなんだと思ってた。
でもLoadDivGraphで配列にしてるよ!
>>435 >モーション付けするときに、体(首)の位置を変えなければいい。
なにその制約?知ったか乙
Visual Studio2010にしようと思っているんですが、
Visual Studio2010でDXライブラリは使えますか?
使えます
_beginthreadex関数でサブスレッド呼んでそっちで画像とかを読み込んでるんだけど数回に一回テクスチャの生成に失敗しましたとかログに出て死ぬんだけどなんでだろう
メインのスレッドはLoadingとか表示して待機させてる
さらに時々KERNEL_MODE_EXCEPTION_NOT_HANDLEDがnv4_disp.dllで発生して青画面になっちゃう
スレッドセーフじゃないからとか
一応サブのスレッドでLoadGraphによってアクセスする変数にはメインからは触らないようにしてる
別々のスレッドでLoadGraphとDrawGraphを同時に呼んでもどっちかが待つ仕様になってるらしい…
サブのスレッドでLoadGraphを呼んだ時にまれにテクスチャの生成に失敗してる
スレッドセーフじゃないから、動作自体が干渉するよ。そこらへん。
mutex使いな。
クリティカルセクションみたいなもんかな?勉強してくる
SetMultiThreadFlag( TRUE );使ってる?
>>450 その一行を足しただけでテクスチャ生成の失敗やブルースクリーンが全く発生しなくなった…
SetMultiThreadFlagだけじゃアクセス違反とかは完全に防げないんじゃなかったっけ。
ソースによってはエラーでたりでなかったりで運悪くでないままだと後で泣く
>>452>>453 >>447がスレッド意識した組み方してるから動いてるんじゃないの
それともSetMultiThreadFlag( TRUE )はバグってて役に立たないのか?
フルスクリーンで表示して最小化した後戻すと画面が黒画になりますどうなってますか
@SetDrawScreenしなおす
A画像読み直す
@orAを実行するタイミングはどうやって知ればいいですか
ああ勘違いスマソ
最小化じゃなくてウィンドウ化と勘違いしてたわスマソw
別に解答は間違ってないよ
タイミングは最小化から復帰したことを知らせる関数があったはず
すいません。最小化というかalt+tabでのウィンドウ切り替えです。
あとフルスクリーンで起動してGetWindowModeFlagするとウィンドウ切り替え後もいつでも0しか返ってこないんですがどうなってますか
リファレンスはちゃんと探してみた?
>>461 めんどくさいからヤダ
本家掲示板の過去ログ漁れ
公式のリファレンスには載ってないようですね。隠れ関数というやつでしょうか。
つうかなんで最小化したら設定クリア&画像読み込みし直しになる仕様になってるんだよマジめんどくせええ
>>465 うおおお。フラグを立てるだけの関数を以下にセットして
フラグが立っていたら再設定処理を走らせるようにしたら復帰できました!
int SetRestoreShredPoint( void (*ShredPoint)( void ) ) ;
あなたま神ですありがとうありがとう。
ん? それ、たしか最新版付近で対応されたぞ?
みっけた。コレコレ。
>ChangeWindowMode や SetGraphMode を行った際に描画設定やグラフィック
>ハンドルを破棄するかどうかを設定する関数
>SetChangeScreenModeGraphicsSystemResetFlag の追加。
>>468 それ使ってんだけど、リセットさせないことで何か問題ある?
現状でもデフォルトでリセットされるのは
以前の仕様でハンドル復元するように作られてるものに合わせてであって
今現在作ってるならリセットさせないのがスタンダード?
独自形式の画像ファイルを読み込む場合は、コールバックを設定しなきゃダメだったよな。
今は違うんだっけ?
その独自形式が展開前のことなら
ハンドル消えないし読み込む必要なし
>>471 そうなのか。知らない間に細かい仕様も変わってたんだなあ。
画像の一部のみを透過させることは可能?
敵が倒れるときのエフェクトで、1ドットずつポツポツと消えるような感じを再現したいのだが・・・
なかなかいいアイデアが浮かばない。
SoftImageとか
ZBufferとか
ドットアニメなら普通は全部用意する
うーん、全部用意か・・・
背景の方の、(消える動きを表現した)ドット画像を全部用意して、
敵の画像の上にそれを上書き。
上書きじゃ透過はしなくないか・・・?
そのドット画像をマスクにしたら実現できるかもな
いや、敵キャラをボツボツと消えるようにするんじゃなくて、
敵キャラの上に背景と同色の絵を置いていく事で、敵キャラが消えるように見せかけたらどうか、
と言ってみただけだ。
全種の敵の消えるアニメを用意するより、背景のアニメを用意する方が少ないんじゃないかなと。
背景絵が固定なら、だが。
480 :
473:2010/05/07(金) 02:06:16 ID:BCIttM8o
ああ、そういうことね
だが背景はいろいろ変えるからその方法だと難しいな。
みんなレスありがとう、もう少し頑張る。
481 :
名前は開発中のものです。:2010/05/08(土) 06:13:21 ID:MEyRpn+B
よくデザエモンとかでやった手法だなあw
マスクで出来そうに思える。
マスク使ったことないけど。
Visual Studio 2008で開発しているのですが、、コマンドラインでコンパイルすることはできますか。
できるよ。ツールにコマンドプロンプトあるからそこでcl
a
486 :
名前は開発中のものです。:2010/05/19(水) 18:07:16 ID:fA7Obr04
過疎ってるから上の方にあったような気がした話題をば
3Dキャラに武器を持たせたり、髪型を変えたりしたい場合は
それぞれ武器を持たせたモデル、アニメを作るんだ
髪型10種類、武器10種類なら、10*10*アニメパターンを作るだけだ
これなら読み込むモデルを変えるだけで簡単にモンハンみたいなゲームが作れる
プロが現場で使ってる最適化処理だから覚えておけよ
自信たっぷりに嘘八百を書くとレスしてもらえるメソッドを実行中ですか?
そんなわけあるかボケ。
普通はキャラクターは1体で、武器だけ差し替えられるように作る。
いやまて各部品を組み合わせた画像を自動生成するシステムを作れという意味かもしれんぞ!
>>487 なんでわかったんだよコンチクショー
DXライブラリで髪型変えたいんだがわからないんだよトウヘンボク
MV1DrawFrame使えばいけそうな気がしてきた
フレームの座標をMV1GetFrameNumで調べて、そこに指定の髪型なりをブチ込めばいいのかな?(チラッ
悪いこといわんから別のライブラリ使おうぜ
うし、出来た^^
これでHUNTER BLADEを超えるゲームを作れる
簡単だし趣味でゲームを作るくらいなら、他のライブラリとかいらんわい
はいはい
できたら来てね
>>493 なんでネガキャン野郎がこのスレにいるの?
他の使ってるなら該当スレ行きなよ。俺はDXLibで十分なだけで他のも素晴らしいよ?
HUNTER BLADEは冗談だけど(ggrばわかるよ)、作ったのはもう既に窓の杜に掲載されてるよ
お前もネガキャンやってないで何か作りなよ。反響あると楽しいよ
はいはい
できたら来てね
い い
きた
なんだ縦読みか。心の声に気付いてやりなよ
超ガンバレ!応援してるぞ!
>>494 掲載されてるソフト教えてくれまいか
興味ある
どうしてもLoadGraphってのに慣れない
LoadImageというネーミングの方があっているのではないかと
#define LoadImage LoadGraph
おすすめ
LoadImage だとWindowsAPIに似た名前のがあるからそれと区別するためじゃないか
DXライブラリは関数名気にしたら負け
SetOutApplicationLogValidFlagとかムチャクチャw
GetHitKeyAllStateとか。
意味分かりゃあいいんだよw
俺みたいなぺーぺーには逆に意味がわかりやすく感じるけどな
というかコピペするだけだし。
てか、どんなんが普通なの?
命名って結構迷うからちょっと教えて欲しい
俺も割とDXライブラリの命名とおんなじ感じだけど・・・
英語としてそれなりに正しい用法をしてるのが正しい
まあ分かればいいんだよ 全く不規則だったりローマ字付けるよりはマシ
ちなみに関数名って覚えてる?
いちいちコピペばかりだと使いこなせてる感じがしなくて・・・・・・
DrawGraphやDrawRotaGraphくらいなら覚えてる
あとはSetDrawBlendMode,SetDrawBrightくらいかな
DxLib_Initとかその周りのフラグは覚えてない
基本的に覚えるのは標準関数程度でいいよ
環境によって関数なんて増えるし、複数人で作業するなら覚えるのも馬鹿らしくなる
自分で作るときは
敵弾の発生がすごい関数名になる
検索する時にいちいちリファレンス引かなくてもいい程度には覚えてるかな。
「えーと、この機能ってどう使うんだっけ?」って時に
ソース内を「DrawFor」で検索するとか。
どうでもいいけどそれvsなら検索せずともIntellisense(Ctrl+Space)でいけるよ
>>512 すげーーーー
知らなかったけど、コレすごい便利だね
ありがとう!!
MakeGraphで作ったグラフィックに対してたくさんの絵をDrawGraphで描画して
最終的に出来上がった画面を拡大して裏画面に描画とか、
部分的に切り取って裏画面に描画とかしたいんですがどうやったらいいですか。
>>506 関数名や変数名で1番大事なのは1意にしか解釈出来ないように付けること
そうしないと未来の自分が困る
nsfファイルをゲーム内から再生したいのですがどうやったらいいですか
再生できるファイルに変換すればいいよ
例えば何に変換すればいいですか。nsfと同等のファイルサイズになるものじゃないと嫌です。
自分で解析して変換でもしてろ
それしか思いつかんな。
「嫌です」って小学生か?
人に聞くならそれ相応の態度があると思う。
まぁ2chでそんなこといっても意味ないのかもしれないが。
学問板とかで良くある手は
間違った事を偉そうに言って
上級者の教えたい欲をくすぐる作戦だな
素直にwavに変換してmp3とかoggに圧縮するか
オープンソースのnsfのライブラリやソフトなりを探して自分で調べて研究すればいいんじゃね
試しに適当に3分38秒の22050HzMonoの曲をoggでq-1.0で変換したら570KBになった。そんな感じ。
それがいやならnsfを自分で解析するか、どっかからnsf再生するライブラリとか探してくるしかない
>>522 正しい口の利き方を教えてやる欲をくすぐってしまうのとは別問題だろww
526 :
名前は開発中のものです。:2010/05/26(水) 07:48:21 ID:D+zL7oBy
未優「べ・・べつに未優はしりたくていったんじゃないから!」
みんなはバックアップってどうしてる?
というのも、先日HDDクラッシュして今までのがパーになってしまったんだ。
CDとかの媒体は信頼性がないし、WEBに上げるのはちょっと・・・
なにかいい方法があったら教えてください。
石版に刻む
dropbox使ってる
RAID1にする。
外付けHDDにバックアップ。
dropbox調べてみます。
合わせ、外付けHDD買ってみます。
ショックでスレチな内容書いてしまった。すまんこ。
みんなはこうならないようにバックアップしっかり取っておくんだぞ!
俺の場合、内蔵HDDが二つあるから、時々互いにコピーしてる。(もちろん大事なファイルだけ)
両方が同時に壊れる事は滅多にないからね。
オンラインストレージもなかなかいいぞ
軽いものだったらフリーメールに添付して下書き or 自分に送って保存
俺も内蔵2個にコピー
ただ、これだと誤操作やウイルスに弱いな
SKyDrive
USBメモリに退避してる
にゃーん
540 :
名前は開発中のものです。:2010/05/31(月) 17:21:09 ID:+X5ECrbM
作るものなかったら15ゲームだな
FF1のミニゲームのあれ
なにそれ?くわしく
正方形の 4x4 - 1 のピースをずらして揃えるアレ
あれって最初の並べ方でクリアできない問題ができたりするのかな?
確か適当に並べると半々の確率で不可能な並びになったはず
最初に正しい状態で並べておいて、そこからランダムで上下左右に何回も動かしていけば不可能な並びはできないでしょ。
そこまでは内部的に処理させておいて、プレイヤーにはそこからスタートさせるんだよ。
545の方法が一般的だね
確か、隣あってるパネルを1回交換すると、クリアできない並びになったような
547 :
名前は開発中のものです。:2010/06/01(火) 11:01:08 ID:d1wBZ0vl
お見事です。
15パズルって地味に楽しいな。
特にエロは
553 :
名前は開発中のものです。:2010/06/03(木) 05:27:29 ID:Ge5JFD2K
SetPanSoundMemとSetNextPlayPanSoundMemってどうやって使うの?
引数のPanPal(音量比率)に10000と-10000を入れても変化が分からん。
もしかするとPC環境やサウンドファイルによって変わるのかもしれないが…。
554 :
553:2010/06/03(木) 06:20:35 ID:Ge5JFD2K
>553だが、色々試してるうちに原因が分かった。
すまんかった。
>>554 何で躓いてたか書くと、他の人も助かるかも
まだ検証中だけど、たぶんこんな感じ。
DXライブラリのバージョンは3.02d。
(1) サウンドファイルによってパンが設定できない場合がある。(モノラル音声?)
(2) SetPanSoundMemとSetNextPlayPanSoundMemが、ともに直後の再生のみに有効
(1)は仕様かもしれない。
そんなに問題ないと思うけど、ユーザがサウンドファイルを指定するようなプログラムなだと不便かも。
流石に(2)はバグかなあ。
公式行くといいよ
驚くほどのスピードで対応、バグ修正してくれるから。
よし、じゃあ誰か任せた!
はあ?
冗談はともかく、もうちょっと調べたら公式に投げてみる。
ありがとう
イメージハンドルの管理ってどうしてる?
自分の場合、グローバルにするのが気持ち悪くて管理クラス作ってたりするんだけど……
シングルトンの管理クラス作ってるけど。
ハンドルなどを格納したイメージクラスを作り
各シーンクラスに持たせるってのはどう?
>>563 今組んでるのがそんな感じ
やっぱりそういうのが普通なのかな
565 :
563:2010/06/07(月) 17:14:55 ID:4KPscOCj
実装途中でめんどくさくなってシングルトンにしちゃったのは内緒だぜ
俺もシングルトンの管理クラス使ってるわ
流れをぶった切って。
(1)
例えば、青空の背景で真っ赤な炎を爆発させたいとき、どうしてる?
画像そのものの作り方次第で、ある程度は何とかなるとは思うんだけど、
通常描画やαブレンドだと味気ないし、加算合成だと紫色の炎になっちゃう。
(2)
レーザーとか稲妻などの光を、より眩しくなるように表現するコツってある?
凄く抽象的な表現で申し訳ない。
単に加算合成しても、眩しいっていう印象からは程遠いんだ。
DXライブラリというより、画像の作り方かもしれない。
シューティング製作スレでもいけば?
俺の場合は参考にならんだろうが、
1)普通にドット絵で描いてる。ブレンド等もせずにそのまま。
もちろん今風じゃないし、さほど上手い絵でもないけど、気にしない。
2)上と同じく、普通に白を使うだけ。
てかまぶしい画面効果なんて自分でやっててウザいだけなので、やろうとは思わない。
むしろ目に優しい配色とか考える方がよっぽどいい。
>>567 (2)加算合成で2回同じ画像を描画
ってのはどう?
>>567 1. 通常描画でいいんじゃね
2. 普通に描画した後にボカして加算合成
571 :
567:2010/06/07(月) 22:57:26 ID:4KPscOCj
ありがとう。参考になる。
>>568 STGは全然分からないけど、確かにそういうの詳しそうだ。
(1)は、爆発のドット絵を上手く作れば、スーファミっぽく綺麗にはなるね。
ゲームによっては下手に加算合成せずに、そっちのほうが良いかも。
(2)は、さすがに連発はしないけど、ピンポイントで使うと印象深いかなー?くらい。
>>569 やってみたけど、グラデーション部分がカクカクするだけだった(´・ω・`)
これはこれで面白いエフェクトだけど。
>>560 (2)について、ボカすっていうのが結構良さそう。
試しに画像の時点でボカしを入れてみたんだけど、結構それっぽい。
ありがとう、わかりやすいな
シングルトン使う位ならグローバル使っても大して変わらないと思うのだが
シングルトンは機能面で採用するもんじゃなく、ついいい加減に書いちゃうのを抑止する程度の物でしかないね
でもそれが目的だからそれでいいんだよ
具体的にどうシングルトンになってるの?
俺未だにその辺のデザインパターンがよく分からん。
関係する部分だけでいいからソース見せて貰えないだろうか。
シングルトン自体はわかるんだが、でも実際それをどこでどう使えばいいかってわからんのよな。
数学の何らかの公式は覚えてるし解けるが、じゃあその公式をどういう部分で使えば有効なのかってのがわからないみたいな。
それは「わかってるけど使い方がわからない」じゃなく、わかってないだけかと。
デザインパターン本には使い方なども書いてあるだろう。
そもそもオブジェクト指向的な書き方の価値が分からん
クラスとか必要なくね
みながわさん乙
>>578 なしでいけるなら、使わなくて問題ないよ
小さなソフトを作る場合、便利だと思った機能だけ使うのが賢いと思う
ポリモ便利でしょ
シングルトンはGemsや「ゲームプログラマになる前に
覚えておきたい技術」に実例と解説がなかったけ。
後者については、たしかゲーム板の参考の書籍の
過去ログで著者本人が意図を解説してくれてたような。
>クラスとか必要なくね
俺はないと無理だ。
クラスないと、複数の種類の敵とかを作っても
敵全部->Move();
敵全部->Draw();
とか一括でやりにくいし、コンストラクタやデストラクタとかないと困る。
昔のSTGみたいにオブジェクトプールと関数ポインタでタスクシステム(
この言葉の定義は別として)を、作っても似たことはできるかもしれないけど。
>>582 敵全部ってのはどうやって指定するの?
クラス使ってない自分の場合それぞれforループで敵情報の構造体の数分回して、
EnemyMove()とか関数に飛ばして基本行動取ったあと行動パターンIDのswitchで固有行動取らせてる
Drawもしかり
敵の作成と削除は専用の関数SetEnemy、DeleteEnemyを用意してあげて、
空いてる敵ナンバーを配列から検索→その番号の構造体に基本情報を代入など一括で行ってる
俺も583と同レベルの知識しか持ってないから、583と同じ疑問を持ってるなw
クラスとか、ググれば解説載ってるところはたくさんあるんだけど、
じゃあそれをゲームにどう活かすのか、となるとさっぱりなんだよね。
std::vector<Unit*> enemy;
enemy.push_back(new EnemyA() );
enemy.push_back(new EnemyB() );
enemy.push_back(new EnemyC() );
for(int i=0; i < enemy.size(); i++)
{
enemy[i].Move();
enemy[i].Draw();
}
とか、そういう。(上記だとリークしやすいから自作リスト作ってるけど)
初心者ならこういう設計でまず作ってみれば?
>>585 vector遅くね
自分だとその場合EnemyMove(i);とか指定するんだけどどうもメリットが見えてこないな
自分はActionScript2,3からプログラミング入ったタチなんでオブジェクト指向は使えることは使えるが、いまいちそれを便利に使いこなせるかというと謎
スレッドって
どうやればいいの?
>>586 vectorが遅いとかどこの組み込み(ry
コピーのオーバーヘッド防ぐ為のポインタの動的配列なんだがぬ。まあ、あくまで擬似コードだけど。
一応解説しておくと、EnemyA,B,CはUnitクラスから派生したサブクラスで動作から何からが違う。
そういうのを一括で扱えるポリモーフィズムとかが便利なんだよ。
まあ実際、ある程度の規模作らないと実感出来ないだろうけども。
>>588 つまりswitchなどしなくてもあらかじめ共有事項を継承した個別オブジェクトが作れるのでそれを実行するだけ、と
なんとなく便利な点は見えてきた ありがとう
横からトン
参考にしてみるよ
>>590 見てみたけどなかなか良いね ソースもすっきりしてるし
enemy.push_back(new EnemyA(0,0));
ここでEnemyAってのをIDで指定はできる?
敵の種類を全部IDで管理してるのでそれをそのまま使えるととても楽
まあswitchしてもいいけど
俺も横から頂きました。ありがとう、勉強させてもらいます。
ちなみに俺はswitchで全部やってるけど、キャラが増えるごとにID追加したりswitchの振り分け増やしたりと結構面倒です。
つっても2,3箇所追加する程度だし、追加忘れのバグなんてすぐ解消できるから大して問題にはならないんだけど。
vectorじゃなくてmapでやればidも設定できる。サーチ時間はO(1)だ。
STLのコンテナ使うと敵が弾を撃ったときとかにその弾の行動が1フレーム遅れない?
>>595 変な書き方をして失敗してなければ、そんなことはないと思うんだが
イテレータを使ったfor文の中で敵のオブジェクトを行動させて、
その中で弾をコンテナに詰め込もうとするとイテレータの指し先がバグってうまくいかない。
一旦弾オブジェクトを保存しといてfor文が終わった後で追加しないとうまくいかない。
>>597 それコンパイラは何?
他のコンパイラでもそんなんか、試してみたら?
コンパイラ以前に書き方が悪いだけだろ
>>590 自分も横d
なんという俺得話題。
自分も教科書的には使い方を知っていても
いまひとつ便利なのが実感できなかったから勉強になる
ユニットをクラス化する方法はクラス間の関係が複雑になると辛くなってくる。
で、結局は機能毎にクラスを作り始めるんだよな。
クラス間はマネージャクラス作って処理させるなぁ
おまえらの言ってることが半分も分からん
>>604 なるほど。それで行けそうだ、ありがとう
あともう一つだけスレチ全開で聞きたいんだが、オブジェクトの削除はどうするのが定石?
this.deleteとかやると消えるけど元のリストからは除外されないからアクセス違反になるし、
そもそもshared_ptr使うならdelete要らんはずだし
削除フラグたったら-1とか戻り値にしてmainのほうでリストから除外してあげるのかな
そらリストから消してやるだろうな
そういう設計なら、フラグチェック時にvectorとかから除外するのが普通じゃねえの。
俺は自前でユニット管理用リストクラス作ったけど。
昔は俺もオブジェクト指向?クラス?くだらね。とか思ってた。
C++はライブラリが大きすぎて組み込みでは使えません(キリ
とか、ざまみろって顔して言ってやった。
でも今じゃCだけでプログラミングとか面倒で無理。
プログラミング自体が面倒になってきたけど(´・ω・`)
もう年だな。
>>605 暫くコード書いてなかったからリハビリのつもりで書いた程度のもんだけど、
http://www1.axfc.net/uploader/Sc/so/122080 こんな方式とか。
ループ回すのがロスだと感じるなら一本化してもいいんじゃね。
たぶんリークしてないけど、チェックはしてないからメモリリーク起こってたらすまんね。
shared_ptrの関係でTR1使ってるから、VC++2010じゃないなら追加パック入れる必要あるかもね。
リーク上等で、生ポインタに書き換えても動くとおもうよ。
enemy[i].Draw(); みたいなメンバ関数持たせると、描画順の管理が難しくなるような気がするんだけど、
みんなはこの辺どうしてる?
.Draw();を実行すると、描画順位情報が更新されていって、
1回だけ呼ばれる描画で描画順位リストを参照しつつ全部を順位通りに描画したら?
関数名をDraw以外にした方がいいと思うけど
俺が昔作ったやつだと、multimap使って複数のインスタンスを同じIDで登録してたかな。
で、描画したい順でIDを分ける。
細かく分ける必要なかったし、
リストから引っ張り出したい場合も少なかったから特に問題なかった。
描画する奴はみんなDrawObjectを継承してる
描画順はそいつが持ってる
描画順の実装なんていくらでも実装方法あるんだから自分で考えれ
皆そんな細かく描画順を決めてるのか
俺は自機、自弾、敵、敵弾等とざっくりわける程度なのだが
巨大キャラとそのパーツとか、文字とかウィンドウとか、
色々自由に指定できるようにしておくと、楽だったよ。
とくに SetDrawBlendMode で描画ブレンドモードを変更して、半透明とかさせたりする時
「描画順○番から○番までの画像を半透明にする」とか簡単に実装できて。
よくあるFPSゲームのように
マウスの移動で、角度を計算して、カメラ方向をかえていたんですが
これだと
どんな方向にカメラが向いていても
x、y、zに関係なく、たとえばWを押したら、前に進めるような感じにできるか
思いつきません。
どうすればいいでしょうか
「プレイヤーキャラの向き」ベクトルを作って、カメラの向きはそれに依存させる。カメラ位置も同じように。
で前に進む時は 「プレイヤーキャラの向き」×前進スピード をキャラの位置に加算するだけ
Y軸の回転行列でベクトルを回転させる
似たようなっつーかマルチだろどう見ても
DXライブラリ使ってるゲームが完成したらここで晒していいですか
624 :
名前は開発中のものです。:2010/06/13(日) 13:01:49 ID:PKCWUybs
625 :
621:2010/06/13(日) 13:46:25 ID:iwG7ZkIG
>>620 の言うように
target.x=x*cos(atan2(m_move.x, 350.0f))-z*sin(atan2(m_move.x, 350.0f));
target.z=x*sin(atan2(m_move.x, 350.0f))+z*cos(atan2(m_move.x, 350.0f));
SetCameraPositionAndTarget_UpVecY( CameraPos, VGet(target.x ,target.y, target.z) ) ;
とやってみたんですけど
なかなかうまくいきません
なんか間違っていないでしょうか
Position hogehoge(Position pos1, Position pos2, ushort val)
{
double px, py, pz;
duoble tx, ty, tz;
double len;
Position ret;
px=pos1.x;
py=pos1.y;
pz=pos1.z;
tx=pos2.x;
ty=pos2.y;
tz=pos2.z;
len = sqrt( pow((px - tx),2) + pow((py - ty),2) + pow((pz - ty),2) );
ret.x = ((tx-px)/len)*val;
ret.y = ((ty-py)/len)*val;
ret.z = ((tz-pz)/len)*val;
return( ret );
}
moveVal = hogehoge(obj.pos, targetPos, obj.spd);
obj.pos.x += moveVal.x;
obj.pos.y += moveVal.y;
obj.pos.z += moveVal.z;
>>627 ×: len = sqrt( pow((px - tx),2) + pow((py - ty),2) + pow((pz - ty),2) );
○: len = sqrt( pow((px - tx),2) + pow((py - ty),2) + pow((pz - tz),2) );
~~
lllorz 連投スマソ
規制されたいのね
マルチスレッドがよくわからんのだけど
誰か簡単なサンプル書いてくれる心優しいお方はおりますか
・sound1.wavをロードしたいと思った時にLoadSound1()を呼ぶ
・LoadSound1は勝手に新しいスレッドを作ってsound1.wavをグローバル変数sndにロード
・メインスレッドからはLoadSound1の作業が終わったかどうか好きな時に確認できる
こんな感じのがあればとても便利なんどす
よくわからないのにマルチスレッド使ったらPCクラッシュして死ぬぞ
ソースは俺
希望の言語くらい書こうぜ
C++で
fovとカメラのZ座標から、スクリーンにどれくらいの範囲(ワールド座標系で)が映ってるか調べる計算式ってある?
すいません。2DRPGのマップチップを表示する処理を書いてるんですが、
ちょっと描画速度が遅いようなので早くしたいんですがどうしたらいいですか?
今はこうやってます。
for(全ライン描画が終わるまでループ){
for(全列描画が終わるまでループ){
int temp_graph = DerivationGraph() (マップチップ画像から1チップ分の画像を抜き出す)
DrawExtendGraph() (ウィンドウサイズはx1, x2, x3に対応している)
DeleteGraph(temp_graph)
}
}
flip()
よろしくお願いします。
int temp_graph = DerivationGraph() はその場所で何回も実行する必要あるの?
マップチップというくらいだから使い回しができそうだけど
予め1チップ分のグラフィックスとして全部切り出して保存しておくということですかね。
あとDirectXのSpriteを使うのとどっちが早いんですかね。
初めから切っておけばいいじゃん なんでわざわざ出来たてホヤホヤつかってんだ
1回1回読み込んでちゃ遅い希ガス
読み込むのは普通ゲームループ回す前じゃね?
そもそも画像の一部分を抜き出して拡大表示するAPIが用意されていないことがおかしい
アニメーションするときって画像を全部ばらしておくのが一般的なの?
一般がどうかしらんが、俺はそうする。
というかいちいち都度バラす理由なんてない。
>>645 つ DrawRectExtendGraph()。
便利な関数ほどリファレンスには載ってない気がする。
LoadDivGraph()で分割して読み込んだ時も
画像ハンドルの扱い自体はだいたい同じ。
自分は画像用のクラス作って、描画時に画像の
任意の部分(4コマ目とか)や描画位置や拡大縮小値を
引数で指定してるけど。
>アニメーション用の画像。
ゲーム製作本とか、抜き出した市販ゲームのデータを
見ると纏めてるものが多いような気はする。
あと主観だけどちっこい画像をいっぱい読むより、大きい
画像1枚にまとめた方がメモリ仕様効率が良いイメージはあるけど
テストして比較してないので実際にはわかんない。
個人での製作だとメモリ気にするほど枚数描けないので
どっちの方法でも、自分の好きなように作るのが
一番いいと思うけど。
画像ファイルは纏めておいていいよ。
使う前にあらかじめ下ごしらえを済ましておけということ。
> DrawExtendGraph() (ウィンドウサイズはx1, x2, x3に対応している)
ウィンドウサイズにあわせて適切な大きさで描画するっていうことだと思うけど
Drawされるすべての画像にいちいち同じ拡大指定するくらいなら
int SetWindowSizeExtendRate( double ExRate ) ;
を使ったほうが手っ取り早いよ
音楽mp3の読み込みで遅くてなやんでる人いない?
龍神録サンプルをメイクしたのは速いのに自作のプログラムが遅い・・・
原因はこれでした。
SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS ) ;
これが無いと三メガバイト程度の楽曲読み込みのために五秒ほど
ゲームが止まる。
いや、常識だから。
普通一つの関数使うとき関係する関数の説明読まないか?
Xboxのコントローラーで操作できる?
よゆう
そうですか
純正ドライバーで動かなかったらどうしようかなって思ってました^^
659 :
名前は開発中のものです。:2010/07/06(火) 17:11:30 ID:N9jDhzAQ
DXライブラリそのものの質問ではないんだが。
ゲームの動画を撮ろうと思ったら、なんだか上手くキャプチャ出来なかったんだ。
DxLibの3.00eは問題なく撮れてたのに、
ソースをそのまま最新版(3.02e)に差し替えると不具合が起こるんだよなあ。
同じような症状の人は居るだろうか。
どこに原因があるかまでは分からないけど、
3.00ー>3.02でそんなに大きく変わったんだろうか…。
開発&録画環境:WindowsXP SP3 (32bit)
キャプチャソフト:アマレココライト
ttp://amamaman.hp.infoseek.co.jp/
660 :
名無しさん@そうだ選挙に行こう:2010/07/10(土) 15:03:18 ID:pn5TIPf9
俺はホリ電気のPS3のコントローラを無理やりつなげてるぞwww
HORIのPS3コンは結構お勧め
何もしなくてもPCで使えるよ
振動がないけど、その分軽いのがいい
箱○のは非公式パッチあてないと十字キー認識しないのがね
663 :
名前は開発中のものです。:2010/07/14(水) 17:28:45 ID:T3KW4TY8
>>662 Xbox360コントローラはドライバをインストールすれば普通に使える筈なんだけど
DirectInputという古いAPI使っていたら正常に認識できない、XInputでないと駄目なんだっけ
DXライブラリは技術的に遅れているから古いの使ってるのだろうなぁ
誰も聞いてないです
なんかUnicode対応を進めてるみたいだな
公式のBBSに書いてあった
Unicodeの文字使いたかったから助かる
普通に画像作って張ればいい
>>668 対象の文字列が固定ではないのできついです
>>669 結構難しそうですね。WPFで簡単にいろんなエフェクト使えたからDirectX自体でも基本的なことかと思ってたけど結構高度ですね。
中身を知らずにやりたいので今回は諦めることにします。
文字を画像にして二つ用意、一つにブラーかけて染めながらDrawPolygonで加算描画
ゲーム用の素材で画像複数を一つにまとめてるの、あれどうやって作ってる?
ピクセル単位で正確にしなきゃいけんような気がして・・・・
オススメのソフトとか教えてくだしあ
作れ
photoshop
ゲーム作りたくて調べてDXライブラリにたどり着いた
一応C#はそれなりに使えるんだけど
Cは初心者、C++に関しては完全に素人
この場合C#+DXライブラリ.NETか
C++勉強しつつ普通のDXライブラリ
どっちが良いんだろうか
.NETのほうは対応してない関数が有るみたいだし
後々の事考えたらC++の方が良いのかな?
そんなこと考えてる前に作れって言われそうだけど
意見を教えて欲しいです
あ、作りたいゲームは3Dゲームです
連レスすみません
C#からC++だと、地獄の苦しみを背負う羽目になると思うけど、好きにすればいいんじゃね
C#は一応サポート程度だから、C++の方がいいのは確実だけど
>>678 C++ってそんなに難しい(めんどくさい?)んですか
解説本読んだら結構構文も近くていけるかも?と思ってたんですが気合居れた方が良いんですね
C#はサポート程度何ですね
お教えありがとうございます
うーん、やっぱり後々の事考えてC++頑張る事にします
ありがとうございました
>>673 自作
そのためにプログラミングやってるんでしょ
ゲーム作りって特別難しいから、ちょっとしたツール作りに挑戦してみると
案外簡単に作れて面白いよ
龍神録は手続き型の様相が濃すぎてJAVAから入った俺にはかなり抵抗があった
OOP脳ってやつか
龍神録はC言語だろ
そうだった
龍神録はゲームとして素晴らしい出来だがプログラムは凡庸
初心者にソース見せるならあれぐらいがいい
C++であんな感じのを書いて公開したら需要あんのかしら
凡庸なものを分かりやすく書かないと、学習用の教材としてマズイだろ
libファイルの中身を見る方法ってあるの?
どう関数作ってるのか勉強したいんだが
dllの中身は見れないようになってるよ
オープンソースのなんかは公開してるけどね
普通に公式にdllビルド出来るソースがある
は?学習用の教材?バカなの?死ぬの?
> 龍神録プログラミングの館では、誰にでも龍神録(東方のようなSTG)が作れるような解説を行っています。
> 難しい構文は使わず、初心者にもわかり易い構文のみで紹介しているので
> 基本的なC言語の知識と、DXライブラリの知識さえあれば、誰にでも龍神録は作れます!
> ゲームプログラミングの館でDXライブラリに慣れたら、今度は本格的なゲームを作ってみましょう!
696 :
名前は開発中のものです。:2010/07/17(土) 07:45:49 ID:K90PrYiA
あれをそのままパクって俺すげぇしてる自称作者の多いこと
697 :
名前は開発中のものです。:2010/07/17(土) 11:27:55 ID:1Gv3nIAa
>>696 公式のソースと背景そのまま使ってキャラ差し替えただけの物をニコ動にUPした奴が居るからなぁ
こういうのって恥ずかしい行為だよね
しかもそのうp主は散々荒らしに遭っている
知ってる人いるかな?
>>697 俺その作者に散々荒らし扱いされて(タグ一個つけただけなのに)
警察に通報するからされたく無かったら示談金出せ
って言われたよw
699 :
名前は開発中のものです。:2010/07/17(土) 11:59:00 ID:1Gv3nIAa
>>698 でもこういうのって法的にどうなんだろうね?
刑事罰の対象になるものとは思えないんだけど
むしろ金出せなんていうのが恐喝で犯罪じゃないのかな
>>699 俺が調べた限り
この作者の場合は周りの誰も法的に問題ないよ
むしろ、他人の著作物(ゲームのマップ)勝手に使ったり
勝手に荒らし扱いした人の本名晒したりしてる作者が一番やばい
ほとんどスレチだなごめん
DXlibってマルチスレッド対応してないってまじすか
>>700 当事者のお前が言ってもどうだろうな
例えば、ストーカー事件では犯人はほとんどの場合、自己正当化が「本人の中では」(笑)完結している
お前が付けたタグって何かにもよるし、タグ付けただけってのはお前の主張であってここで検証できるわけでもない
訴えるとまで言われるとは、どんなタグ付けたんだ?
あ、ID変わってるが700ね
705 :
名前は開発中のものです。:2010/07/17(土) 16:55:35 ID:1Gv3nIAa
>>703 そういえばいきなり、コミュ閉鎖したんだな
これで2つ閉鎖だよ、3つ目も荒らされるかもね
あのkazukiって野郎は実力も無い癖に口ばっかり達者だからね
新動画もまた振り出しに戻ってる(開発環境インストール)
次の動画で進歩を見せますとか平気で嘘をついたり、
>>696の言うサンプルパクリを自分の実力主張したり
作るキャラもへっぽこだ、何あの玉ねぎみたいの
あれじゃあ荒らされてもおかしくないし、荒らす人も悪くないだろう
要するに主は無能なだけだ、荒れる原因を自分で作ってる
実力あってマナーわきまえている人のコミュはまず荒れること無い
わかったから他所でやってくれ
技術の話しろおら
自由拡大してから回転して描画したいんだけど
何かいい方法ってありますか?
三角関数使って自由変形のそれぞれの座標導けば
前スレ見ろよ
SetDrawValidGraphCreateFlagみたいなできる、できないの切り分けって何のためにあるんだろ
ただのミス防止?それとも内部的に処理工程が変わるから?
書き込めるテクスチャとそうでないテクスチャは扱いが違うから
っぽい
にゃん
体感ではわからないけど、描画可能なテクスチャの方が使用するとき若干重いらしい
新バージョン出てるな
ScreenFlipの修正って、自前で垂直同期しないとティアリングが発生するって事ですか?
DxLib側の定数を名前空間に収まるようにしてもらえるとありがたいな
#defineだと混同してどれがDxLibなのかわかりづらい
DxLibは初心者向けだしC言語でも使えるように設計してるんじゃないか
C++用にラップしたDxLibとかないの?誰か作っててもよさそうだけど
自分で作ればいいんじゃね
やだよ。他にライブラリあるもの
夏休みだなぁ
3.03だと処理落ちが酷いんだけど・・・
前バージョン削除しちゃったよ・・・
どうしよう・・・
#define TRUE 1ってDXライブラリ?
前バージョン手に入らないってまるでマイクロソフトみたいだ
>>722 まず処理落ちの原因がDXライブラリのバージョン違いだと証明……とまではいかなくても
そうだと予測される理由をしっかり示して、可能ならサンプルプログラムなどを用意した後、
公式掲示板で報告。
ごめんなさい
自己解決しました
Vectorに前バージョンが置いてありました
どうせScreenFlipあたりの修正関連じゃねーの
俺も処理落ちひどくなったわ
init前にvsync待ち実行したら直ったけど
ちなみにグラボは悪名高きHD5770。
トランジションのやり方がよくわからない
サポートされてるのかされてないのかも
トランジションとかより低レベルを書くライブラリなんだから、そんぐらい自分で書け
そういえばフェードイン/アウトくらいしか実装してないな……
なんか新しいの作るか。
自前のシェーダ対応まではしなくていいけど
よく使われるようなものについてはピクセルシェーダを使った組み込みトランジションくらいはあってもいい気はする
ちょっと聞きたいんだが
SetWindowStyleMode(8);
ってどういう処理何だ?ウインドウが黒くなるんだが。かっけえ
Win32
黒くなるか? 俺はならんぞ。鋭角にはなるが。
3Dモデルの面を透明(削除?)して、ワイヤーフレームの線だけを表示させて描画したいんだが・・・
どうすればいいだろうか?教えてくらさい・・・
DxLib.hを透明で検索してみるとか
>>688 亀レスだけど、需要あると思うよ
C++をどうゲームに利用すればいいのかを初心者向けに書いたものって中々無いと思うし
>>688 需要あるよ
C++で書いてないと、ひらがなの多い本を読むみたいで苦痛
C++のゲームって名前空間的に使ってるだけの少数の巨大なクラス+小さな構造体各種
みたいなCとさほど変わらないようなものが多い気がする
どうせならそんな風にしないでJavaみたいな感覚できっちりクラス使ってほしい
自分で作れよ
>>742 例えば? C++でソース公開してるマトモなゲームってどんなのがある?
8800GTだけどV3.03いれて大丈夫?
>>742 それ興味あるから、前者と後者のクラス分け例が欲しいな。適当な例題で。
そんな風にしてほしいならJava使えばいいと思う
MV1SetMaterialType(shougai_h,0,DX_MATERIAL_TYPE_TOON);
MV1SetMaterialOutLineWidth(shougai_h,0,0.80f) ;
MV1SetMaterialOutLineColor(shougai_h,0,GetColorF( 1.0f, 1.0f, 1.0f, 1.0f )) ;
て、やってるけどトゥーンの輪郭線が表示されませぬ…
DxLibModelViewerでマテリアル→レンダータイプ→トゥーンレンダリングにして保存
輪郭線はマテリアル→トゥーン→輪郭線幅
つーか輪郭線が若干浮いた感じになるのはどうにかならないのかなあ
自作レンダ作れ
>>749 サンクス。基本的にビューワーで保存したモノを使う仕様なんだね
// 指定のマテリアルのトゥーンレンダリングで使用する輪郭線の太さを設定する( 0.0f 〜 1.0f )
ってDxLib.hに書いてあったから実質上1.0fが最大なのかな
3Dだと総ポリゴンどれくらいまでが平均的なPCの許容範囲かねぇ
ポリゴン数なんかあくまでファクターの一つに過ぎない
実際にターゲットマシンで動かして動けばいいんだよ
754 :
名前は開発中のものです。:2010/08/05(木) 08:24:28 ID:W/64pLm1
おおざっぱな目安の数値として
画面表示の全ポリゴン数は 30,000ポリゴン
メインキャラのポリゴン数は 3,000ポリゴン
ティスクスチャの大きさがCPUパワーに影響する、メモリ消費の影響大。
DirectXの制限によりモデル毎のポリゴン数に制限がある。
WindowsXpパソコンを想定している。1GHzCPU,非力なGPU,Mem500Mbyte
DirectXのポリゴン数の制限つっても1個のモデルで数千万ポリゴンとか描けるんだが・・・
あとテクスチャサイズが影響をうけるのはGPUのメモリと帯域とテクセルレートであってCPUはまったく関係ない。
全体で3万でキャラで3千ってことはキャラ2体の格闘ゲームってことかい?
じゃなきゃキャラのポリゴン数が多すぎると思うよ。
あとポリゴン数は速度において1要素に過ぎないから数百万だしても大丈夫な場合もあれば数万でダメな場合もある。
このへんはパイプラインの仕組みを理解しないとわからんからまぁ細かいことは後で考えて今は適当でいいんじゃないかな。
756 :
名前は開発中のものです。:2010/08/05(木) 11:51:10 ID:W/64pLm1
>画面表示の全ポリゴン数は 30,000ポリゴン
これは、マップ全体のポリゴン数では無い、
画面に表示されるポリゴン数、すなわちGPUに転送されるポリゴン数。
クリッピング、部屋分けなど手法は色々ある。
757 :
名前は開発中のものです。:2010/08/05(木) 11:57:53 ID:W/64pLm1
キャラクタ数は、同時表示を多くて10人くらいまで、5人くらいが適度
RTSのように多くするにはLODを使ってポリゴン数を少なくする。
単純にローポリの方が好き
聞いてません
vc++2008でDXライブラリ使ってゲーム作ってるんだが
リソースファイルに追加した画像ファイルはどうやって使うんだ?
初心者の質問でわるいな
本家ログ検索で出てこなかったっけ?
LoadGraphToResource
>>762 こんな関数があるのかthx
ただResourceIDってのが分からないんだが、これはなんなんだ?
初心者だからかなり変な質問かもしんないけど
指定3Dモデルの高さ?とか幅?とかのような値を取得する事ってできる?
つってもほとんどが面一枚のモデルなんだけど
z=0でディスプレイの刻みってことは単位はドットなのかな
モデル作るとき高さ決めとけばいいんじゃね?
普通は事前にツールでそういうデータを埋めておく。
DXライブラリはXファイル直接扱うからそういう処理に弱い。
まぁバウンディングボックスから大まかな値はとれるけど。
キャラクターが全部ピラピラなんだったらモデル使わずに自分で管理して
自分で描画するようにした方が扱いやすいと思う
>>768-770 回答ありがとう…やっぱ最初に決めてモデル毎に高さを決めて
代入しておくよ…面倒だけど
ついでに自分で描画は前やったけど無理がでてやめた
でもそれじゃ他人が作ったモデル使えなくね?
俺だったらテキスト形式でもなんでも良いからフォーマット決めて
そこにモデルのパスと高さとかの固有の値を入れとくかな
最近3D関係の話題ばっかで取り残されてる感がひどい。
>>766 exeに埋め込まない方法もあるのかthx
>>776 そうはいってもいまさら2D関係で語ることなんてあるか?
ずっと貼り付いてる人ばかりではないですから
俺も3Dには手を付けてないな
なんたーらぷりみてぃぶ2Dかんたーらの使い方
今後は3Dモデルの勉強もしなきゃなあ…
783 :
名前は開発中のものです。:2010/08/11(水) 01:03:32 ID:WE2r0C6q
CPUの負荷によってクロック数変更するソフトをつけると
処理落ちするんだが。これって俺だけ?
784 :
名前は開発中のものです。:2010/08/11(水) 13:23:46 ID:wEJldro/
画面の背景色を変更する命令は最新バージョンにはないのでしょうか?
>>784 普通にあったが
DxLib::SetBackgroundColor(255,255,255); //白にする
786 :
名前は開発中のものです。:2010/08/29(日) 21:39:51 ID:aCDr95gc
30FPSで作りたいんだがこれって60FPSでしか作れない?
ヘッダー見たけどなんか固定みたいなんだが
30分の1秒毎にメインループを回せばいいだけだろモニタのリフレッシュレートのことを言ってるなら30Hzのモニタなんかないだろ
VSyncに任せてウェイトさせると60FPSしか作れないよねー
んなこたない
一回無駄ウェイトすれば済むだけでは。
亀レスだがサンクス30FPS解決した。SetWaitVSyncFlag使って垂直同期切って
WaitTimerで30FPSになるように止めたらできた。
ただ余り安定しないんだよな
WaitTimer使うより、自前で時間を計ってウェイトかけたほうが精度は上がるんじゃないか。
自前で作ったけどSleepが1ミリ秒以下は止められないから結局安定しない
Sleepしないとかなり安定するけどCPU使用率が跳ね上がる。
何回かに一回スリープするようにしても結局妥協点を見つけることにしかならんし、もう安定しなくてもいいかな
1ミリ秒以上残す感じでSleepして最後の微調整だけ自分で止めると使用率も丁度良く抑えられるんじゃね?
なるほど!サンクス!できた!
1ミリ秒以下までピッタリ止める必要があるのか?音ゲー作ってるならともかく
確かに自己満足かもなw
DXライブラリで3Dやる本を誰か書いてくれないかな
3Dはどこからやればいいのかさっぱりだ
最近、3Dモデリングの入門書を買っちゃったぜ…
俺は人工少女2を改造して遊んでた頃に自力で学んだ3D技術で何とかやってる
エロの力はすごいわ
3Dゲー作るのに慣れてない人だとハイポリレベルのモデルを使っちゃってたりするよね
ハイポリってなんすか
ローポリの逆
ポリゴン数が多くてとてもリアルタイムで処理しきれないゲーム向きでない3Dデータ
どこまでがローポリなんかね
2,3世代前くらいなら1フレームで100万ポリゴン程度だな
なんで今じゃなくて旧世代なんだ。
GF8000以降の話だが今の世代ならユニファイドシェーダーだから
いまさらポリゴン数がどうとかいう尺度がそもそも間違っているからだろ。
ユニファイドシェーダーだからポリゴン数気にしなくていいって、意味わからん。
ポリゴンキャラの表面をなめらかにするために
昔はポリゴン数をひたすら増やす必要があった
って意味じゃないかな。
ユニファイドだとポリゴン数がどんだけ少なかろうと複雑なピクセルシェーダー回してたら重くなるぞ。
あとはポリゴン数が少なくてもバッチ数が多ければ重くなるし
ポリゴン数なんてたんなる指標の1つにしかならない。
プレステ2あたりまではポリゴン数がほぼ負荷に直結してたけど。
キャラモデルのポリゴン数が、5,000ポリゴンを越えたらアウト
でもそれって結局、ポリゴン数多ければ確実に負荷が上がるんだから、
少ないに越したことはないってことじゃね?
あぁ、気にしなくていいって話じゃなくポリゴン数だけじゃ語れないって話だったか。
ようするにシェーダの設定次第でポリゴン数が勝手に増えるからデータの方で気にしてもあんまり仕方ないとかそういうこと?
まずCPU、シェーダー、ROP、メモリ帯域が主な描画の負荷になるわけだ。
これらの中で一番時間がかかっている箇所の速度が画面の描画速度って事になる。
シェーダー自体は汎用プロセッサになっていて頂点、ピクセルの処理を負荷に応じて動的に切り替えて処理する。
その中でもポリゴン数うんぬんってのは「バーテックス」の部分への負荷になる。
ポリゴンが少なくて頂点処理をするシェーダーが余裕で動いていたとしても
ピクセル部分の処理が重いと頂点に回せるシェーダー減ってピクセルを処理するシェーダーが増える。
逆にピクセル処理が軽ければ頂点に回せるシェーダーが増える。
他にもフルHD解像度で半透明ばんばん使えばROPやメモリ帯域がネックになって処理が落ちる。
描画の呼び出しが多ければAPIコールでCPUが詰まって処理が落ちる。
まぁよほど古いGPUつかうんじゃなければそこまで神経質にならなくてもいいと思うけどね。
DXライブラリじゃ凝ったシェーダーエフェクトなんて無いからピクセルはスカスカなんだし。
開発者はパワフルPCですが、
ゲームプレイヤーは、へぼノートPCです。
if(key_buf[KEY_INPUT_W]){
car_y-10;
}
warning C4552: '-' : 演算子にプログラム上の作用がありません。作用を伴う演算子を使用してください
car_y-10; の部分を car_y--(デクリメント)にすると動くのにこれだとだめなのはどうして?
エスパーさん教えて
>>817 おまいは、-10した結果をどこに入れようとしてんだ。
car_y -= 10; または car_y = car_y - 10; だろ。
ちゃんとワーニングメッセージに書いてあるだろw
car_y-- は car_y-=1 の略
>>818-
>>820 うお指摘されて気付きました
これって基礎でしたね親切に回答していただきありがとうございましt、。
そいつあれだろ?
他人のソースと素材組み合わせて「自作しました!」みたいなこと言ってたやつだろw
824 :
名前は開発中のものです。:2010/09/12(日) 22:32:33 ID:0Miy+kSJ
>>822 またコイツか
他人の背景素材勝手に使用したり、DXライブラリの公式サイトのソースパクってニコ動にアップして自分の実力みたいにほざいてた問題児だよな
最初はDXLibに頼ってた癖に
それで周りから非難が集中して、周囲を荒らし扱いして何度もコミュニティ閉鎖した能無しハッタリ野郎だよ
その後もブログや掲示板で嘘吐いてばっかりいる
痛々しいが、とりあえずこのスレで触れるのは止めようぜ。
おもろい、おもろすぎる。
>>822のアホに大期待してるわ俺。
くっそわろた
ああ、こいつが例の闇プログラマーなのか
こんなところに降臨してたのか
最近こういう類のヤツ少なくないな。
最近いろんなゲーム見てて思ったんだけどさ
プログラムは書けてるのに、画像素材がペイントで描いたような感じでもったいないゲームって結構あるよね
ここで話すような内容じゃない気がするが、いきなりなんだ。
832 :
名前は開発中のものです。:2010/09/14(火) 20:09:10 ID:WJ31r0pz
>>822のアホKazukiのように出来ない癖にDXライブラリ否定する気は無いが
ゲーム開発の生産性や融通性においてDXライブラリの機能に疑問を感じる
RPG・モンハン系アクション・シューターとか作るのにイベント配置やレベルエディタはどうするの?って感じで
この手のゲーム作るためにはゲームプログラムだけでなく、周辺エディタとしてGUIアプリは絶対不可欠なんだけど
皆はGUIアプリどうやって作ってるの?DXライブラリにGUI作る機能無いよね
プロの現場ではC#.NETやボーランドやMFCとか使うんだろうけど
大概DXライブラリの使い手はVC++Expressが主流でC#使う人なんてほとんど居ないだろうし
どうやっているのか疑問だ
こっちのスレに飛び火して欲しくないから、せっかくその話題から話を逸らそうとしたのにw
普通にボタンの画像を貼り付けたりしてやっていけばいいんじゃないの
俺はフォトショで画面作ったあと個別に画像切り出して、自作のツールで再現した上で自動的にソースを出力できるようにしてる
Dxライブラリは、DirectX用の薄いライブラリ。
趣味プログラマーの為の2Dライブラリにオマケとして3Dが付加されてる。
コードをカリカリ書くのが好きな土日プログラマーの為に、そして
目標は、インベーダー、パックマンのような小規模なものを自作すること。
ツクールのようなツールとは種類が違う。
>>832 何を言ってるのかわからない。
イベント配置だのレベルエディタだのGUIだのって何の話?
自分でプログラムすりゃ大概の事は済むと思うんだけど
それすら面倒だからライブラリでやってくれって事?
うんれあぇんじんみたいにしろと言いたいのかな
フリーの豪華3Dライブラリなら、OGRE3Dか Irrlichtが有名。
市販品なら選ぶに困るほどある。
所詮、Dxライブラリとは住む世界が違うよ
840 :
名前は開発中のものです。:2010/09/14(火) 20:47:18 ID:QB7AcnS4
>>832 ゲーム開発用ではなくdirectxの抽象化が目的のライブラリなんだぞ
ツールすら作れないような素人はツクールでも使っとけ
そして消えろ
841 :
名前は開発中のものです。:2010/09/14(火) 20:52:18 ID:WJ31r0pz
>>837 イベント配置はRPGには絶対必要だと思うんだけど
NPCとの会話、アイテムの入手、クエストの発生など様々な事
ツクールでは2Dベースのマップエディタがあってマップ作成するだけじゃなくて、マス座標単位で様々なイベントを配置することが出来る
ツクールを使わないでプログラムでRPGを作るには、ツクールのようなエディタをGUIを別に自作しないとイベント配置は困難だと思うんだけど、コード記述で配置することも可能だけど非常に効率悪いし
テイルズシリーズやゴッドイーターのようなゲーム作るのなら自作エディタ無くして大変だ、そのためにGUIアプリを作る必要がある
DirectXならGUIのウィンドウハンドル利用してアプリに組み込むことが出来るけど、DXライブラリはどうなの?て事
それが出来ないのであればDXライブラリは大した機能じゃ無いと思う
C#でusing DxLibDLL;しよう
絵は無理
最終的に誰かに書いてもらう予定
それにしても、動くものがあれば分かりやすいし
そもそも成果物がないと、企画として信用されないから、やっぱり動くものを最初に作りたい
>>841 長文ウザい。あと、DirectXで出来る9割はDXライブラリでもできる。ラップしただけだしな。
っていうか、自作エディタなんてよく作るだろ?
DXライブラリはDirectXの機能を使いやすいようにラップしただけであって、ゲームエンジンでも何でもないんだし。
845 :
名前は開発中のものです。:2010/09/14(火) 21:05:07 ID:WJ31r0pz
>>840 プログラミング長くやってるし、3Dやるからツクールなんか使うつもりはないよ
うちはVB.NETだからGUIは沢山やってきたし、ゲームの周辺ツールも沢山作ったよ。モーションやマップエディタとか
.NETだとDirectXを簡単に使えるから
ただ、VC++EEとDXLiB使ってる人がそれだけで何が作れるのか疑問に思って質問したのです
VC++EEだとMFC使えないし
>>845 そんなのアイデア次第だろ。
マウスカーソルの位置の取得さえできればGUIなんか自分で作れるじゃんか。
とりあえず三行以内にまとめないとな
自分が欲しい機能を
自分で作らなくちゃいけないから、
DXライブラリは機能性が低い。
そこが良いところなんだろ
押しつけが無い
WinAPIみたいな感じ
850 :
名前は開発中のものです。:2010/09/14(火) 22:17:41 ID:kZNlZ8mo
初心者でよくわからないのですが、
DXライブラリ使ってswf形式のファイルって再生できますか?
構造体には引数有りコンストラクタ書いといてほしいとは思う
よくわからんがVisualC#のExpressもダウンロードして
自前でツール作ればいいだけじゃねぇの?
>>845 お前、自分では気づいてないみたいだけどKazukiと同じ種類の馬鹿だぞ。
ツールはC#で普通に作ればいいだろ。60FPSで描画でもしたいのかよw
856 :
名前は開発中のものです。:2010/09/15(水) 01:00:42 ID:ej4R++SF
>>854 せっかく回答出してくれて申し訳無いが、私はC++やる気無いしずっと.NET使うつもりですが
VC++EE/DXライブラリ使ってる人がどうやってGUIや補助アプリ作ってるのか聞きたかっただけです
やっぱりそういうの無いとゲーム開発効率良くないと思うので
Qtというのは初めて聞きます、C#.NETやMFCを使わないという人には参考になる情報なのではないでしょうか
857 :
名前は開発中のものです。:2010/09/15(水) 01:08:17 ID:/qj1fsW7
>>856 お前みたいな初心者はツクールでも使っとけ
>>859 簡単なのならC++で書いて、他人にいじらせるならC#で書いてるよ
で、
>それが出来ないのであればDXライブラリは大した機能じゃ無いと思う
とかわざわざ見当違いの事言って喧嘩売った理由は何だよ?
もったいぶらずにさっさと言えよ
まさか本当にKazukiと同じ類のバカなわけじゃないんだろ?
winampみたいに普通に画像表示して作ればいいやん
ゲーム本体はC++、内部ツールはC#、書き捨てスクリプトはPerl。
統一感なさすぎてごめんなさい。
861 :
名前は開発中のものです。:2010/09/15(水) 01:38:46 ID:ej4R++SF
>>858 答えを言うなら、DXLibの機能の中に自作したGUIやウィンドウのハンドルに連結する機能が見当たらない事
それとVC++EEでは周辺アプリを作るためのGUI機能が貧弱であることかな
XNAやSlimDXではDirectX初期化のときに、FormやPictureBoxのハンドルを渡してその中にDirectXの3D描画が出来るようになっている
この機能を使えばメタセコイアのような3Dモデリングソフトや3Dツクール風レベルエディタもC#でスムーズに作れます
ウィンドウ作成とDirectX初期化が隠蔽され一体化しているDXライブラリではこういう機能が無いのが1番残念に思う
.NET使ってる自分には関係無い話かもしれないけど、今後は自作GUIとの連結機能を付けると現ユーザーのためになるのではないかと言いたいのです
全く要らん
自分で作れるし
余計なもの入れてライブラリでかくする意味が無い
リファレンスにのってないだけ
>>861 要するにお前は、実際は.NET使いでも何でもない、単なるNEETで何もできないワナビー君なんだろ。
言ってることがKazukiなみに支離滅裂だよ。
>>861 コイツ、たぶん本気でライブラリは巨大な方がいいとか思ってるんだろうな・・・
必要最低限っていう言葉知ってるか?
866 :
名前は開発中のものです。:2010/09/15(水) 03:16:54 ID:ej4R++SF
>>865 いくらなんでも、ライブラリの肥大化は有り得ないと思うんだけど
描画先を自由に指定するための機能なら、ウィンドウハンドルを引数に持つ関数1つ増やせば済むのではないかな
もしくは、既存の初期化関数に引数追加するとか、大したコード量じゃないよ
Easy3Dも描画先を自分で指定出来るし、直DirectXのプログラミングもデバイス初期化で描画先を自分で指定する仕様になっている
>>864が上手いこと言ったつもりなのが、ちょっと悔しい(笑)
>>866 ・・・? 他のウインドウに描画する関数は存在するぞ? 何いってんだ?
869 :
名前は開発中のものです。:2010/09/15(水) 04:12:36 ID:ej4R++SF
>>869 容易に見つかるよアホ。Dxlib.hをちらっとでも覗いてから口を開け。
>このページではDXライブラリの"主な"関数の説明と簡単なサンプルプログラムを載せています。
ってリファレンスページに書いてあるだろうが
入門者向けにわざと絞ってるからな、あれ。
過去に、分かりにくいため公開関数から外された子が居た気がする。
有志による、非公開関数だのテクニックだのをまとめたWikiもあったけど、
色々あって結局、なあ…。
教科書を暗記するのは得意でも、応用を利かせて何かを作り出すのは苦手なんだろうな。
教科書に書いてある方法は全面的に信頼するけど、書いてない方法は見向きもしなかったり。
上で話題になったスレの人も同じタイプだ。
873 :
名前は開発中のものです。:2010/09/15(水) 04:49:43 ID:ej4R++SF
>>870 すまん、それどころじゃないです
.NET版ではそのSetUserWindow関数が使えないようになってる
もし使えれば、PictureBoxやLabelに表示することは可能だと思うんだけど
DLLImportで追加すれば多分使えるようになるかもしれない
>>872 アスペタイプなんだろうなー
自分が着眼した部分だけで大きいことを語りたがったり
C#でGUI作ってC++/CLIでWinAPIとDirectXを直接叩けばツール自体は簡単に作れる。
この方法ならDXがあろうが無かろうが全く関係ねぇ。
それができるのにDXライブラリ使う意味が分からない
DXライブラリの方針だからな
リファレンスが肥大化しすぎると、初学者がついていけなくなる。
そのリファレンスにある基本関数も、なるべくポインタを使わないようになってる。
>>876 ネジを作る技術を持っているからと言って、何かを組み立てるときにネジを自前で作る必要はないってこと。
描画ライブラリの何が便利かって、色んな環境で試されてる故に色んな環境での描画が保障されてること
更に表示がおかしくなる、等のバグが出たらライブラリ側に丸投げ出来るし。
DXライブラリは2Dがメインで3Dはおまけみたいなもんだよ。おまけでもそこそこ機能は充実してるんじゃないかな。モデルの向きを自動で目標に向ける命令があると便利なんだが。あとモデルをマウスでつかめるといいなあ。
Irrlichtと比べると命令がポインタを使わずほとんどintで制御できる点が珍しいが初級者に扱いやすくていいと思う。mqoに対応していることは日本人がなじみやすくていい。当たり判定が充実しているのが優れている。フリーで当たり判定がしっかりしているものは意外に少ない。
ただ凝ったものを作るのには向いていない。FPSとかクオータニオンがないとだめだが、そんなときにDxライブラリなんか使わないだろうし。
要するに3Dを2Dの感覚で扱えるところにこの手のライブラリの意義があると思うんだ。
ゲーム製作を支援するツールってMFCとかC#で作るのが主流なの?
初心者でもとっつきやすいツール製作の方法教えてくれ。
>ツール製作の方法
Excelで作って、CSVで出力。
883 :
名前は開発中のものです。:2010/09/15(水) 19:20:07 ID:RaS/B7JR
Flashアニメーションの表示とかどうやればできる?
>>882 一部はそんな感じで実装するつもり。
ただ、今横シュー作っていて敵の生成のタイミングとかをエディタで出来れば楽だなーって思ってるんだ。
>>884 単純に、定数値の数値調整だけならば、
ゲーム内にdebug-modeを作っておいて、
画面に数値を表示してキーボードから入力するだけ。
この板だとHSP(笑)って言われそうだけど、
簡単なツールならHSPはむしろ有用と聞く。
それほんとだよな。ウィンドウ表示する手間0だし
公開するツールでなければバグとかいくらでもあって構わないし
こういう場面では本当使いやすい
888 :
名前は開発中のものです。:2010/09/15(水) 20:09:59 ID:ej4R++SF
>>886 でも最近はHSPユーザーも侮れなくなってるような
Easy3Dのおかげでコンテストの作品も市販レベルの近くなってるし、3DアクションRPGやFPSも出品された
HSPも簡易なGUI作る機能あるからね、HSPで作られたパーティクルエディタもある
一番使い慣れた物使って作ればいいだけなんじゃね?
HSPは普通に便利
HSPって例えばどんな場面でどう使うと便利なんだ?
触ったことないからちょっと見て見ようかな
HSP今から覚える位なら普通にDXLIBでツール作った方が楽じゃないのか
(HSP覚えること自体は難しくないかも知れんが)
そもそもそんなにツールって必要か
俺面倒だから作らずにやってるけど
まあ大規模な奴作らんから必要ないだけかも知れんが
最初から大作作ろうとし過ぎてんじゃないのか
最初から無理な物作ろうとすると完成しないだろ
自分の身の丈にあったものを最初のうちは作ったらどうだろうか
HSPむずいよ
言語は簡単でもある程度のモノ作るのはC++なんかよりよっぽど難しい
>>892 一応DXの2Dゲーから3Dのアクション(DXじゃなくてOpenGLだが)まで10本程一通り作ってきたから、多分大丈夫だと思う。多分。
ただ、今までGUIでのツール製作関係の事を一切やらずに来たからそろそろ手をだそうかと。
MFCは若干触ったけど正直開発が面倒でクラス自動生成ツール作って放置してる。
まー別に作らなくても、面倒でも出来るなら別に無理して作る必要も無いか。
HSPはバッチ処理くらいにしか使う気がしないなw
ツールはできれば作りたくないんで、始めからDBを使うようにして
編集には既存のソフトを使えるようにしてる。
画像とかだと自作する必要がでてくるだろうけど、それほど立派なツールは作った事無いな。
ツールはC#でやってる
インテリセンスで楽できる
897 :
名前は開発中のものです。:2010/09/16(木) 07:38:25 ID:3ukuTH2d
>>893 C++より難しいは流石に言いすぎじゃね
難しいか複雑かの違いだと思う
HSP注目されてんなぁ
hsp→DXライブラリ組だが
100行以内の手軽なコード向きかな。
習得は容易だけどある程度以上の規模を作るのは難しい。
構造体やクラスはないし、デフォだと全部グローバル変数だし。
gosubで長い間組んでいたから、Cの関数という仕組みと値渡しという概念に感動した。
3.0からは関数が実装されたみたいだけど。
ツールが必要になったら頑張ってC#に手を出すつもり。
でもなんか、エクセルだけでなんとかなっちゃうかも。
本当に小規模なツールというか、プログラムはいくつかDXライブラリで作ってるけど・・
小規模のツールだったらDXライブラリでも十分だが、
ある程度の規模のを作ろうとしたらC#が一番いいと思う。
習得もC++と比べるとずっと楽だし。
なにか勘違いしてない?
C++が難しくてC#が簡単なんじゃなくてライブラリの差
誰でも必要とするようなものが一通りあらかじめ用意されてるというだけの当たり前のことなんだが
C#でツール作るのは楽だけど結局DXライブラリの機能を
C#で作ったGUIに埋め込んで動かせる訳じゃないので、
ツールによるエディットとゲームを動作させての確認
は別々に行うことになるのが難点。
DXライブラリってC#でも使えなかった?
Javaでやればいいんじゃね
C#用のもあったな。
>>903 別々でいいじゃんw
市販のゲームのエディターもたいていゲーム本体と別だろ
吐き出したデータを使ってゲーム動かすんだから別々は当たり前なのでは。
任意のタイミングでデータを読めるようにすれば、本体とツールを同時に起動してリアルタイムでチェックできるし。
ゲーム自体にエディットモードとか付けるのも楽しいよ。レトロゲームみたいで。
昔のロックマンにあったようなワープバグのような動作を実装するのが当面の目標
ゲーム本体もC#で作るんだったら、ツールとゲームで共通部分を共有するのはかなり簡単にできる
C++だといろいろ面倒なので別々に作った方が楽かもしれないが
test
912 :
新参:2010/09/17(金) 23:39:35 ID:WVTnZ2tz
んでなんか用事?
すまない激しく誤爆
ゲーム作るのは良いが、アクションとかシューティングって似たような処理書かなきゃいけない所あるじゃん?
クラスコピってちょっと中身変えれば良いのだが億劫で最近製作するモチベあがらねぇ
つ 継承
機能の拡張で継承はちょっと・・・。
億劫になるほど似たような処理書くってよっぽど設計が下手なんじゃねーの
>>918 ありがとう、参考になる。
ちょっと後で自分のクラス図晒すから、皆で叩いて欲しいな。
見てもらう機会が無いへんな方向いきそうで怖い
紹介しておいてアレだけどC++でタスクシステムを作るのは最初がちょっと面倒臭いかも。
C#だとデリゲートとジェネリックがいい感じに使えるから、楽に好みに合わせたものを作れると思う。
でもC#というのが問題かw
そういやタスクシステムのスレって落ちたのな
>>920 ちょっと読んだんだけど、
>>918の実装をする場合(自機オブジェクトのウェポンにメーターを入れる場合)を
俺がやるならば
StageSceneクラスのupdate、drawでObjManager(全てのPlayer、Enemy、itemの更新処理を行うクラス)のupdateとdrawを呼んで。
Playerが包含しているWeaponクラス(純粋仮想)に、実際のWeapon(Missileなど)を生成する。
次にメータークラスをPlayerに包含。
(Playerのupdateとdraw内では、Weapon->update 、 Weapon->drawが記述されている)
それでPlayerの持っているWeaponクラスの中がMissileだった時のみ、メータークラスの更新と描画のメソッドを呼ぶ。
こうすればPlayerが複数になった時でもオブジェクト毎にメーターを付けられて
StageSceneクラスの中身やObjManagerの中身一切の変更無く、下のクラスだけでイケると思う。
見る限りタスククラスを導入する利点とかっていまいちピンと来ないんだけど、上のやり方だと何かマズいかな?
ゲームを作る
↓
汎用的な処理の部分だけ残して全部削除
↓
それを元に別のゲームを作る
↓
汎用的な処理の部分だけ残して全部削除
↓
ちょっとだけ機能強化された俺ライブラリが出来る
↓
更にそれを元にして別のゲームを作る
そんなもんだよな。
>>922 うーん、似たような処理書くのが嫌なら、処理をクラス化すればいいじゃないと思って勧めたんだけど、微妙だったかも。
PMDってすげーちっこいんだな
これってスケールいじったほうが使いやすい?
それともカメラを近づけるほうがいいのかな?
しかし作者はマジですげーな
もう9年くらいこのサポートと更新なんだろ
今もバリバリ働いてるし。
俺これのおかげでプログラム勉強のとっかかりを掴めたから本当に感謝してる
これだけのモチベーションをライブラリ製作で維持できるのは凄いな
しかも無料だしな カンパしたいくらいだ
あといつの間にライブラリ作品紹介が自分で投稿できるようになってる
それは今日だな
おおっ!他のDXライブラリユーザーとの交流のきっかけになるかもしれんね……
モチベ上がってきた!
同人ゲームでDXライブラリ使ってるのって結構あると思うんだけど
もし皆が投稿したら凄い数になるだろうな。
もっとも、自由投稿にした事によって
ミニゲーム未満のものしか作ってなくても紹介できるようになったわけだから
カオスになる可能性が高いが……。
ふと思ったんだけど今までDXライブラリユーザーのコミュニティサイトとか全く無かったの?
非公開関数とかのWikiは知ってるんだけど、それ以外は知らないから
自由投稿機能で本家HPがコミュニティみたいになるなら歓迎したいな。
ポンがあるじゃまいか
あえて言うなら公式のBBSじゃね?一時荒れてたけれど
MIXIにあるにはあるけど過疎ってるし、
一番にぎわってて意味もあるのはここじゃないかな?
ここも賑わってるとはいえない気がする
でも、何かあっても公式行けば解決しちゃうんだよねw
昔はテクスチャ一枚出て上下左右にキー操作で動くだけでも脳汁出まくってやる気あったのに
今では何やってもやる気出なくてコーディングする気が起きない
ゲーム作りは面白いんだが、なんでだろうなぁ。
鬱の兆候
年を取るごとにゲーム自体に興味がなくなる
業務やDBにシフトしてもそのうちやることがなくなり終わる
人それぞれ
ソフトに同封したフォントファイル(ttfファイル)はプレーヤーに
コントロールパネルのフォントフォルダに入れてもらわないと
使えないんですか?
皆さんフォントかえるときどうしてます?
すまぬが飯のタネなのでな
すまぬな
これデフォだと真ん中にウィンドウ表示してくれないんだな。
厳密に見ると少し上に配置されるようになってる。
タスクバーの太さ分だけ上になるようなんだが、
タスクバーをサイドに配置しても少し上になる件。
〜になる件とか未だ存在してたのか
えっ、そこなんですか^^;
ゲーム紹介の所に登録したいけど渋ってる人いる?
トップページに表示されるのがなんか恥ずかしいなあ
DXライブラリってMMDみたいに画面の一部のウィンドウにのみ
描画するってできないでしょうか?
>>949 あんまり高度なGUI操作って出来ないと思うんだけど。
そんなの簡単に作れるだろ
MMDが何か知らんが、矩形でなら描画範囲は決められただろ。
詳しくはリファレンスを参照。
>>949 リファレンスのカメラ関数の中にそれっぽいのが有るよ。
>>954 マップチップの表示位置をずらせば良いのでは?
□□□
□□□
□□□
を
□□□
]□□□
□□□
にすれば立派なヘクス。
座標とか動きとか判定とかは自分で考えるべし。
ゲームの軸になってる大きなループ構造の中で度々使用される
、ある関数内でポインタの配列(*PNum)を動的に生成して、そこ
にLoadGraph()で用意したハンドル代入して、使い終わったら
delete [] PNum;で解放してるんだけど、このやりかただとタスク
マネージャー見るかぎり解放されるどころか、関数使うたびにどん
どんメモリ使用量が利用分だけ増えていってるんだけど、こういう
のはどうやって処理したらキチンと解放できるの?
デバッガ使ってメモリーリーク検出するやりかた探してやってみた
んだけど、これだと何も問題が起きてないことになってる。
ごめんなさい、教えてください。
DeleteGraphしろ
速レスありがとうございます。
おかげさまで修正と確認が出来ました。
本当にありがとうございました。
>>949 具体的にどのようなソフトウェアを作りたいのでしょうか?
MMDはゲームではなく完全にGUIアプリなのでウィンドウ・ボタンなどのGUIパーツを作らないといけません
返答次第によってそれなりの情報が提供できますが
ひょっとしてCreateWindowしてやればいいか
3Dモデルの場合だと、周りのモデルとのZバッファの関係があるから
画像に書き込んで反転するだけじゃ無理っぽくないか?
モーフって使える? リファ見たけどボーンアニメしかわからなかった。
967 :
名前は開発中のものです。:2010/09/28(火) 23:00:34 ID:1JAggHU2
Q様でふとおもったがクイズゲーとか作ろうぜ
クイズゲーは問題作るのが大変すぎる
何も考えずに作り始めると10問目くらいからネタが尽きるんだよなw
しかしゲームとして考えると、
100問程度ではすぐに同じ問題が出題されてしまうという。
市販のクイズゲーだと最低でも数千問はあるな
歴史とかのジャンルなら数百問くらいは意外と楽に作れそうだけど
流行とかだと正しい情報を調べるだけで大変そうだ
クイズゲーってプログラミング的楽しみが少ない気がする
どんなタイプのクイズにするかにもよるけどね
エディタ+ゲーム本体で、
クイズ自体もいろんなパターンがあるようなのだと面白そうではある
様々なエフェクトと共に
同じクイズを延々と出し続ける精神拷問系クイズ
漢字クイズとし、辞書から拾ってくるなどすれば…
twitterからテキトーに発言を拾ってきてクイズを自動生成するというネタシステム
わざわざDXライブラリでやる必要ない
C++も必要ない
通常の黒画面とは別にもう一個普通のWindowsのウィンドウを
作りたいんですがそういう場合は、別スレッドするのが普通ですか?
コンソールだったら関数あるけど
DrawPrimitive2DとDrawGraphの速度の違い調べたらなんか
結局DrawGraphよりも2倍から4倍近く時間かかったんだけど
これ賢く使わないと早くなんないのかな
Direct3Dには「APIの呼び出しを減らせ」という鉄則があって
スプライト描画するときには一枚一枚DrawPrimitiveを呼ぶよりも
バッファにいったん溜めてから多数のスプライトを一つの図形として一気にまとめて描画する方が遥かに速い。
DXも例にもれず内部でそういう処理をしてる。
なるへそ、サンクス
一度の呼び出しで出来るだけいっぱい描画しろってことか
primitiveのおかげで同じ画像ハンドル同士なら一つにまとめられそうだけど
画像ハンドルごとに分けて呼ぶって感覚慣れなさそう・・・
どうかなあ
タイル並べたマップみたいに、互いに動かないものをたくさん描画するんだったら効果あるかもしれないけど
DXライブラリのDrawGraphがやってるのと同じことを自前でやったところで変わらないんじゃないの
そうなの?
そうなるともう画像ごとにアルファブレンド設定できるところくらいしか俺にとって魅力なくなっちゃうな
アルファブレンドのためだけにでも視野に入れておこうかなぁ
ようやく描画までこじつけたわけだし。
SetLoopPosSoundMem()の不具合報告があがってたぁぁ
てっきり自分のところが原因で落ちてると思い込んで2,3日ずっと追ってたわ
俺の時間を返せ
つか、意外とDXライブラリって枯れてないんだな
開発から随分経つし利用者の数から枯れてるもんだと思って疑いもしなかったぜ
くそっ
機能追加が激しいから、バグも結構あるみたいだよ
掲示板に張られるテスト版なんかは
かなり不安定なこともある。
>>986 そうなんだ
次からは先に疑うようにしよ
でもよかった
再現率も100%じゃなかったからもうあきらめようかと思ってた
すぐに疑うのはもちろんよくないけど、
しっかり調べた上で原因を特定できなければ
質問に踏み切った方がいいだろうね。
クイズといえばMD-DOSな頃の正式名称忘れたが
5択の奴が思い出されるなあw
と思って検索したらごたくどす、か。
ゲーム画面みてみないと本当にこれだったかわからんが・・・
ようはガワだけ作って問題はユーザーで作れるようにしたらいいんじゃね。
今ならネットで何でもできるから、問題自体を投稿式にして
その投稿した問題をダウンロードというのもいい。
ジャンル別に分けて、好きな問題をダウンロードして設定すると、ってな風に。
問題はそういうの作るの好きな奴がいくらでも作ってくれるだろうよ。
流行さえすれば市販ゲームも真っ青な問題数も不可能じゃない。
スレ違い