[過去ログ] DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
416: 2018/05/07(月)19:41 ID:gUi75qwS(1) AAS
実際は苦いけどな
417: 2018/05/08(火)19:55 ID:zaHk58IC(1) AAS
ググったら本当に苦いらしいな
印象論だと思ってたわ
418: 2018/06/08(金)22:16 ID:uYJdfwFz(1) AAS
Nintendo Switch対応だそうだ
419: 2018/06/09(土)01:01 ID:fsH33aBO(1/2) AAS
まあいつも通り、素人が使う分には関係ない感じ?
420: 2018/06/09(土)21:18 ID:mBF3zINb(1) AAS
プロでこれ使ってるの見たことない
421(1): 2018/06/09(土)21:58 ID:fsH33aBO(2/2) AAS
それは流石にアンテナ低くない?
422: 2018/06/10(日)16:27 ID:qJZsL4jW(1) AAS
>>421
さあ、クソの役にも立たないゴミみたいなマウンテンゴリラレスはやめて
人の役に立つレスをしようぜ
423(1): 2018/06/11(月)13:23 ID:KAsMzLPf(1) AAS
ライブラリ公開してくれよ。
車輪の再発明は辞めたい。
勉強にはなるけど。
424: 2018/06/13(水)01:02 ID:zpWb0K6R(1) AAS
最新のハードに対応するのはいいが、
グラフィックがもう10年前くらいの旧世代なのをなんとかしてほしいな
シェーダー使えないとか、HDR対応してないとか
形だけ対応して中身がついてきてない感じだ
425: 2018/06/16(土)19:40 ID:8ewh1R16(1) AAS
>>423
DXライブラリはソース公開されてるよ
426: 2018/06/17(日)03:19 ID:z6C9dnYv(1) AAS
ええ、公開されてますね(困惑。
427: 2018/06/30(土)00:04 ID:QTwf7deE(1) AAS
ジオメトリシェーダとハルシェーダが使えないのは別に文句ないけど
technique使用不可なのは地味にイライラする
428: 2018/07/04(水)18:03 ID:GKLylxjM(1) AAS
DXライブラリのシェーダーまわりはそれだけじゃないつーか
DirectX9とDirectX11でコーディング方法が違ったり、
Android版ではそもそもシェーダー使用不可能だったり、
2Dスプライトの表示にシェーダー使えなかったりして
あれもないこれもないって感じになっちゃうなぁ。まあそういうのがいらない人向けなんだろうけど
429: 2018/08/09(木)02:58 ID:w7j+HefU(1) AAS
VRoidのVRMファイルの読込に対応しようとしたらマテリアルが物理レンダのパラメータで
DXライブラリだとVRMファイル読込むのは難しそうだ
物理レンダ対応してくんないかな
430: 2018/08/11(土)12:47 ID:RmGfKRPO(1) AAS
DxLibのシェーダーのSamplerで、テクスチャごとに違うフィルタリングモードでSamplerを作りたいんだけど無理かな?
プログラム側でSetDrawModeで設定したフィルタリングモードになっちゃうんだけど
431: 2018/08/11(土)13:37 ID:mdLblHI4(1) AAS
未だにMMDとメタセコだから
VRMファイルはナウでヤングすぎる
432: 2018/08/11(土)20:00 ID:0BvUQheC(1) AAS
DXライブラリは時代遅れすぎてどうにもならない
433: 2018/08/11(土)20:48 ID:V6BT8wZU(1) AAS
すぎてってほどではないと思う、まだ
434: 2018/08/12(日)00:15 ID:DLCHw2GI(1) AAS
時代に遅れすぎた理由は、アセットストアがないせいだな
いまだにアセットがひとつもないのは、アセットおじさんも真っ青だわ
435: 2018/08/12(日)09:49 ID:n2rCCHLV(1) AAS
お前は何を言ってるんだ
436: 2018/08/15(水)02:14 ID:I59D2OX6(1) AAS
DXライブラリでようやく地面モデルと線分の当たり判定つけられた
そこに主人公モデルの位置を同じにした
まだモーションつけてないから
主人公が棒立ちのまま移動した
坂道登れるだけで感動した(小並感
437: 2018/08/20(月)12:57 ID:HuW2CUtM(1) AAS
日記ですか
438: 2018/08/26(日)11:59 ID:Oz7phZC4(1) AAS
日記の続きまたー?
439(1): 2018/08/29(水)12:37 ID:8rKJxZI3(1) AAS
DXライブラリって世間的にはゲームエンジン扱いなのな
440: 2018/08/30(木)08:01 ID:w5Eoz0MG(1) AAS
>>439
多分そこが一番誤解されやすいとこだよな。
基本はDirectXで自前で全部作りたいけれどめんどくさい設定周りだけはやって欲しい人向けのお助けラッパーだよね。
そこにDirectX以上の機能はいらないし。今の状態で十分。
441: 2018/08/30(木)14:26 ID:83gEz2C2(1) AAS
「各種ゲーム用エンジン紹介」みたいなところで触れられる分には「そんなもんか」って感じだけど
「ゲームエンジンを使っている」カテゴリの中にDXライブラリ製ゲームが含まれるとあれ?って思う
自分でも基準がよく分からない
442(2): 2018/08/31(金)10:19 ID:MuDS6z7U(1/2) AAS
教えてほしいんですが
int fp = FileRead_open("csvファイル");
この場合、fpにはcsvがそのまま入ってるという解釈でいいですか?
つまり、ifstream ifs(fp);が可能になるのかが知りたいです。
ifstream ifs(FileRead_open("csvファイル"));は無理ですか?
なんでこんな面倒なこと考えるかというと、
archive化したファイル内のcsvを読みたいんです。
443: 2018/08/31(金)10:29 ID:MuDS6z7U(2/2) AAS
>archive化したファイル内のcsvを読みたいんです
厳密に言いますと、
ifstream ifs();で読み込んで
string buf[要素数];
while(ifs && getline(ifs,buf[line])){
line++;
}
省17
444(2): 2018/08/31(金)23:18 ID:8gsP87Iw(1) AAS
archive化したテキストファイルは改行コード\nが消えたバイナリファイル化してるから
最初にファイルサイズを計って1行ではなく全部をchar[filesize]に読み込むしかないんじゃない?
445(2): 2018/09/01(土)06:52 ID:RWsTVHZH(1) AAS
>>444
>archive化したテキストファイルは改行コード\nが消えたバイナリファイル化してるから
え、それ本当ですか?
>最初にファイルサイズを計って1行ではなく全部をchar[filesize]に読み込むしかないんじゃない?
すみません、もう少し具体的に教えてください!
446(1): 2018/09/01(土)07:02 ID:BLfEX+5a(1) AAS
>>445
ファイルサイズが1000なら
char t_data[ 1000 ] にファイルのデータを格納する
で、後は添え字で任意のデータにアクセスする
447: 2018/09/01(土)11:30 ID:ghpuXsiR(1) AAS
FileRead_scanfじゃいかんの?
448(2): 2018/09/01(土)14:32 ID:PENKT9BN(1/3) AAS
>>445
2chは長い行で書き込めないのよ
string all;
char* path = "./hello.csv";
int size = (int)FileRead_size( path ) ; // 1char = 1byte
char* buffer = new char[size];
int id = FileRead_open( path, false ) ;
省18
449: 2018/09/01(土)14:44 ID:PENKT9BN(2/3) AAS
追記
csvファイルの最後に無駄な改行がついてたりすると配列のサイズ超えたりしがちなので注意
450: 2018/09/01(土)14:53 ID:PENKT9BN(3/3) AAS
さらに追記
csvの最後ってヌル文字で終わってないだろうから自分で足したほうがいいかも
string all;
char* path = "./hello.csv";
int size = (int)FileRead_size( path ) ;
// '\0'が無い文字列char*をstringに渡すと長さ不定でまずい
char* buffer = new char[size+1];
省6
451: 2018/09/02(日)02:13 ID:qrAMxSjg(1) AAS
Cは文字列処理が弱いからCSVParserを書くのも一筋縄にはいかんよ
452: 2018/09/03(月)04:26 ID:8cSGEO2Y(1) AAS
そしてCSVの仕様を調べて、予想以上に面倒くさいことを知る
453: 2018/09/03(月)23:58 ID:JgPc/ZW2(1) AAS
「,」じゃなくてTABスペースで区切るとか
「'座標(x,y)'」みたいにシングル・ダブルクォーテーションで囲む「,」を含むセルだとか
CSVも奥が深い
454: 2018/09/04(火)02:54 ID:jVVbpFTb(1) AAS
ヘッダにコメントにセル内改行に空白セルに非固定列数に…
あれやこれや対応させると面倒なので、仕様はExcel出力版に決めうちとかしちゃう
それでいてExcel経由でもやり方によって微妙に違ったりするけど
455: 2018/09/04(火)12:16 ID:qFImTgae(1/3) AAS
Excel出力でも小数点の区切りがカンマな国とかあって地獄絵図なんだよなぁ
456: 2018/09/04(火)12:18 ID:qFImTgae(2/3) AAS
日本語がおかしかった
「小数点ががカンマ」ね
457: 2018/09/04(火)12:18 ID:qFImTgae(3/3) AAS
死にたい・・・
458: 2018/09/04(火)18:21 ID:87Ucq8PA(1) AAS
ワロタw
そもそも「小数点の区切りがカンマ」って別に変な日本語じゃないと思うけど?
459: 2018/09/05(水)02:54 ID:6fPtkJ/i(1) AAS
「(整数と)小数の区切り記号がカンマ」か
「小数点という区切り記号がカンマ」かってとこじゃない?
まあいずれにせよ通じる内容、普通に見落としちゃうレベルではある
460(1): 2018/09/05(水)23:25 ID:jdPHLPpw(1) AAS
もう>>442は投げ出しているだろうよ
461(1): 2018/09/07(金)06:49 ID:SP/YWN4v(1/13) AAS
>>460
投げ出していません。
>>448さんのせっかくのソースがちょっと複雑で、、、
言葉でなにをしなければならないのか、アドバイスほしいです。
要は、
archive化したテキストファイルは改行コード\nが消えたバイナリファイル化してるから
普通にCSVを開くプログラムを書いていると
省6
462(2): 2018/09/07(金)12:19 ID:knV8JfdB(1/3) AAS
>>461
>>でも、それだとビジュアルスタジオ上のデバッグプレイじゃ
>>バイナリ化してないcsvなんでエラーが起きますよね?
何を言っているのか分からん
デバッグモードだろうがバイナリ形式のファイルを読み込むプログラムを書けばバイナリ形式で読み込むし、
テキスト形式を読み込むプログラムを書けばテキスト形式で読み込むでしょ
463(1): 2018/09/07(金)12:41 ID:SP/YWN4v(2/13) AAS
>>462
えっと、自分の知識不足かもしれませんが
普通に数字と「,」だけが詰まったcsvファイルを用意していても
バイナリ形式で読むプログラムを書いていれば
バイナリ形式で読むってことですか?
バイナリ形式で読むプログラムを書いた場合は
用意するファイルもバイナリ形式で保存されたファイルじゃないと
省1
464: 2018/09/07(金)13:34 ID:knV8JfdB(2/3) AAS
>>463
そもそも上の方に書いてあった
「バイナリ形式は改行が削除される」っていうのが表現として適切じゃないな
改行コードを改行として認識するのがテキスト形式
改行コードをそのまま文字の羅列として認識するのがバイナリ形式
テキスト形式のファイルをバイナリ形式で読み込んだら
そのテキスト内の改行コードがそのまま文字列として読み込まれるだけ
465: 2018/09/07(金)13:46 ID:2W2TZVJf(1/4) AAS
1 複数データを一つにまとめたい(暗号化したい)
2 読み込みプログラム(csvパーサー?)は既存のものをそのまま流用したい
ってことなのかな……
>>444>>446>>448のキモは、DXアーカイブファイルを一本のchar配列に読み込む(バイナリデータとして扱う)という部分なので、
結局DXアーカイブもifstreamも関係なくて、char配列内のバイナリデータを自力で解析できるかという話になる
パソコンで使うデータは全てバイナリデータと言えるので、csvだろうが音声だろうがDXアーカイブファイルだろうが全てバイナリ形式で読み込める
466(1): 2018/09/07(金)14:40 ID:SP/YWN4v(3/13) AAS
>>462
>パソコンで使うデータは全てバイナリデータと言えるので、
>csvだろうがDXアーカイブファイルだろうが全てバイナリ形式で読み込める
その理論だとcsvや音声などの外部素材データをDXarchiveファイルにしたとしても、
archiveする前、つまりはビジュアルスタジオのプロジェクト上で
ビルドして正常に機能してるプログラムそのままでも
archive後も正常に機能するはずではないですか?
省17
467: 2018/09/07(金)15:06 ID:knV8JfdB(3/3) AAS
>>466
アーカイブは言わば「バイナリ形式」のファイルでしょ?
「テキスト形式のファイルを読み込むプログラム」でバイナリ形式のアーカイブを読み込もうとしてるからバグってるんじゃない?
123
456
789
上記のファイルがあったとして「1行読み込む」関数を使った場合
省3
468(3): 2018/09/07(金)15:15 ID:2W2TZVJf(2/4) AAS
まず、DXアーカイブファイルは全部のファイルを無理矢理合体&暗号化した完全独自形式のものなので、基本的にDXライブラリが用意した専用の関数でしか読み込めない
画像やサウンドはDXライブラリの読み込み関数を使うから、何もせずともDXアーカイブファイルから読み込めるようになってるんだよ
LoadGraph等には、内部的にFileRead_openが入ってるので、元のフォルダだろうとアーカイブだろうと読み込める
ただ、暗号化されてない場合に限り、小細工を弄すればバイナリファイルとして直接読める。(フォーマットを理解して自力でポインタ移動する必要がある) 上でみんなが説明してるのはこれ
これまでのやり取りを見る限り、バイナリファイル云々は今の君の知識で理解するのはたぶん無理なので、DXライブラリの関数使って地道にがんばったほうがいい
というかなぜFileRead_openを拒むのかがわからない……
469(4): 2018/09/07(金)15:15 ID:SP/YWN4v(4/13) AAS
AA省
470: 2018/09/07(金)15:22 ID:SP/YWN4v(5/13) AAS
行数制限のせいで見づらいソースになってますが、ご了承ください。
処理内容は引数で配列の縦と横の値と、csvファイルのパスを受け取り、
まず、bufに全部入れてから、map配列に入れていく感じです。
呼び出しはLoadData(4,4,"h/m/data.csv");みたいな感じで書きます。
archiveファイル化しなければ、これで正常に動きます。
>>468
>基本的にDXライブラリが用意した専用の関数でしか読み込めない
省9
471(3): 2018/09/07(金)15:27 ID:2W2TZVJf(3/4) AAS
だからFileRead_readやFileRead_getsで読むんだぞ
もう一度リファレンスを熟読するんだ
472: 2018/09/07(金)15:28 ID:SP/YWN4v(6/13) AAS
あ、ちなみに>>469で利用しているMap配列の要素数は決めておらず、
vector<vector<int>>Map;と宣言しており、
第一、第二引数を受け取ってから要素数を決定させています。
473(1): 2018/09/07(金)15:35 ID:SP/YWN4v(7/13) AAS
>>471
ちゃんとFileRead_readで読むプログラムに修正しました。
具体的には、
ifstream ifs(s);
while(ifs && getline(ifs,buf[line])){line++;}
の箇所を
int fh = FileRead_open(s.c_str());
省8
474: 2018/09/07(金)15:45 ID:SP/YWN4v(8/13) AAS
なぜ、FileRead_openを使ってるのに、
FileRead_openを使ってないときのバグが出るんでしょうか。
でも、archive化しなければ、FileRead_openを使ってるそれでも正常に動くのです。
引数でcsvファイルのパスを受け取っているのが問題なんでしょうか?
でも、利用するcsvファイルがいくつもあるので呼び出し命令の引数でファイルを選択してやらないと
困るんですよね。
もちろん、引数では数値を受け取り、switchで数値ごとにcsvを選択させてもいいですが、、
省8
475: 2018/09/07(金)15:48 ID:6e9JnvLB(1) AAS
それ逆じゃないのか?
476(6): 2018/09/07(金)17:09 ID:stA8I9vh(1/2) AAS
良く分からんけど、こんな感じの事がしたいの?
void LoadData( int t_Width, int t_Height, std::string t_FileName )
{
int t_FileHandle = FileRead_open( t_FileName.c_str() );
int t_FileSize = FileRead_size( t_FileName.c_str() );
std::vector< std::vector< int > > t_MapDataVec;
int t_LoadNum = 0;
省21
477(7): 2018/09/07(金)20:11 ID:stA8I9vh(2/2) AAS
>>473
int fh = FileRead_open(s.c_str());
while(fh && getline(fh,buf[line])){line++;}
ん?
FileRead_readとかのDXライブラリ関数じゃなくて
getlineが使われてる様だが?
例えばabc.csvを他のファイルと纏めて
省6
478: 2018/09/07(金)22:11 ID:SP/YWN4v(9/13) AAS
>>477
>getlineが使われてる様だが?
int fh = FileRead_open(s.c_str());
えっと、まずこれをした時点で、
ファイル内の文字がfhに入ってると思ってるんで
それをgetline(fh,buf[line]))するわけですから
問題ないかと思っているんですが、、私、なにか勘違いしてるのでしょうか、、
省11
479: 2018/09/07(金)22:15 ID:SP/YWN4v(10/13) AAS
>>477
あ、今気づきました、
自分FileRead_read使ってないですね、、、
FileRead_openとFileRead_readと一緒くたに考えてソース作ってしまってました。
FileRead_openもDXライブラリの関数でそれで開いてるから
DXライブラリArchiveしたファイルを開く問題はすでにクリアしたと。
480(2): 2018/09/07(金)22:26 ID:2W2TZVJf(4/4) AAS
薄々気づいていたけど、あまりにも基本的なことがわかってなさすぎる
勘違いですらなくて、全くわかってない
int fn はただのハンドル(識別番号)だし、ファイルオープンと読み込みは違うし、アーカイブファイルについても全くわかってないし、その知識でバイナリファイルを理解できるわけがない
あんま厳しいこと言いたくないけど、拾ってきたコピペを組み合わせて作ろうと思わず
c++の基本から勉強して、一文字ずつ自分で打ち込んだほうがいい
481(2): 2018/09/07(金)23:04 ID:SP/YWN4v(11/13) AAS
>>476
すみません、今まで使ったことない関数や表現がありますのでよかったら教えて頂けませんでしょうか、、
自分は今成長したいんで、非常に関心がありますのでぜひともお願いします。
質問1、
if( isdigit( t_Char ) != 0 )
ここの意味は、isdigitで「t_Charの(頭が)空じゃ無いなら」の認識で正解ですか?
判定関数のisdigitを利用したことないもので、、
省25
482: 2018/09/07(金)23:12 ID:SP/YWN4v(12/13) AAS
>>480
経験が浅いのは認めます、、
特に外部ファイルをいじるのと、archiveファイルについてはほんと理解度が低いです。
でも、ここでそう指摘されることも、
また私が質問させていただくことも自分が成長するひとつの事柄にはなりませんでしょうか、、
ただコピペしたいのでは無く、ソースを理解したくて>>481でも質問させて頂きました。
未熟者なのは認めます、疑問に思ったことをまず自分で検索で調べてみての質問です。
省4
483: 2018/09/07(金)23:21 ID:SP/YWN4v(13/13) AAS
>>480
C++を熟知せずとも、便利な関数のおかげで
手軽にゲームを作れる、それがDXライブラリの良さであり、
短所でもあるのだと思います。
画像を描画するのも関数ひとつです。それで表示できるので
つまずきませんでした。
でもmap情報を外部ファイルにして読むことは、つまずています。
省8
484(1): 2018/09/07(金)23:54 ID:VUsIud2k(1) AAS
長い。
【1・2】isdigitが分からないならisdigitについて調べれば?
【3】教科書の最初に載ってるはずだが「'0'」は0という文字そのものを表す
【4】適当に数字を入れて計算してみれば?
485: 2018/09/08(土)00:37 ID:DgEMMqli(1/21) AAS
>>484
【4】適当に数字を入れて計算してみれば?
これ、今やってるんですが、目から鱗です、、、
すごい、添字の回し方、こんなシンプルな表現方法がったなんで
すごい!
486(1): 2018/09/08(土)00:38 ID:DgEMMqli(2/21) AAS
stA8I9vhさん、天才だ、、参考書やブログで見たことないですよ、
こんな回し方してる人。
487: 2018/09/08(土)00:46 ID:DgEMMqli(3/21) AAS
>>481の4、まじでやばい質問でしたね。アホすぎる、というか
検証しろって感じですよね。ほんとすみません。
ただ、[ t_LoadNum / t_Width ][ t_LoadNum % t_Width ]では
配列の列数と添字とが同じ値だからこそできる計算式ですね。
ちぐはぐの場合は、やはり
for(int line=0; line<y; line++){
for(int col=0; col<x; col++){
省4
488(1): 2018/09/08(土)00:51 ID:zhYpFAkU(1/4) AAS
>>486
やり方としては定番だよ
初心者向けの記事とかだと説明しないだけで
489: 2018/09/08(土)00:57 ID:DgEMMqli(4/21) AAS
>>488
はい、シンプルですごく驚きました。
それに、二次元配列の要素を回す場合は
これが使えるのは両方の値が同じ場合だけですよね?
自分が要する配列は添字より列数が多い場合ばかりなので
この方法は使えない。
要は>>476さんはソースの参考にということで
省2
490: 2018/09/08(土)01:05 ID:DgEMMqli(5/21) AAS
でも少しでも認めて頂けると嬉しいのです。
初心者ですが、昨今ゲーム制作においてもっともポピュラーなUnityでは無く
人口が減少しつつあるC++やDXライブラリでゲームを作ろうとしてる私のこのヤル気を。
まあ、csvのarchiveファイルから読み込む云々でモチベ下がりましたけど
なんで画像やサウンドみたくスムーズに利用できないのか、と
なんら問題なく進められたのに。。
簡単な話、DXライブラリの関数に
省2
491(1): 2018/09/08(土)01:09 ID:zhYpFAkU(2/4) AAS
し らんがな
ね ろ
492: 2018/09/08(土)01:12 ID:DgEMMqli(6/21) AAS
>>491
この問題を考えているので寝ることができないです
t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' );
これの ( t_Char - '0' ); はなにを表しているんですか?
t_Char - '0'です。
なぜ、文字列の'0'を引く必要があるのか、知りたいのです。
493: 2018/09/08(土)01:18 ID:vg2kVoor(1) AAS
外部リンク[php]:dixq.net
外部リンク[php]:dixq.net
あっちの回答は当てにならないってか
494: 2018/09/08(土)01:28 ID:DgEMMqli(7/21) AAS
t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' ); の意味や
'0'がなにを表しているのか検索しようにも
現状のワードだけで検索するのは無理ですよ。。
なぜ俺が長文のプログラムでしていることを
たった一行にできているのか、さっぱりです。
495(1): 2018/09/08(土)01:34 ID:DgEMMqli(8/21) AAS
>>476の処理なんですが
二行目のint t_FileSize = FileRead_size( t_FileName.c_str() );
をしたあと、変数t_FileSizeは一切使用されておりませんが
ここでファイルのサイズを得る必要があるのはなぜですか?
どなたかわかる方、解説おねがします。
496(1): 2018/09/08(土)02:39 ID:38R4ypyC(1) AAS
>>495
あぁごめんね
FileSizeの部分は消して良いよ
あとシングルクォートで囲んでるのは文字を示すよ C言語の基礎ね
で、'0'~'9'までの文字コードの値は順に並んでいる事が保証されてるから
'0'を引くと整数値に変換出来る
'0' → 48
省2
上下前次1-新書関写板覧索設栞歴
あと 506 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s