■ このスレッドは過去ログ倉庫に格納されています
DXライブラリでアクションRPGを作る
- 1 :名前は開発中のものです。:2018/10/12(金) 00:42:16.52 ID:/qPs9IMh.net
- 作る
https://www.youtube.com/watch?v=RLwravRJ2tU
- 53 :名前は開発中のものです。:2018/11/19(月) 04:16:23.48 ID:bEhLp9Ag.net
- あと良かったら教えてください
膨大になるであろうNPCたちの台詞って
外部ファイルで用意するの?
>>22で
>Luaと言うスクリプト言語で管理
とあるけど、Lua使ったら
台詞DATAの外部ファイル用意しなくていいってわけじゃないと
思うんだけど、違います?
- 54 :名前は開発中のものです。:2018/11/19(月) 16:53:30.50 ID:uAsHf25M.net
- すごいな中ボスまで来たか
- 55 :1 :2018/11/20(火) 00:18:41.93 ID:bar2632g.net
- >>52
応援ありがとうございます^^
- 56 :1 :2018/11/20(火) 00:20:07.48 ID:bar2632g.net
- >>54
来ちゃいました〜^^
- 57 :1 :2018/11/20(火) 01:18:34.34 ID:bar2632g.net
- >>53
function search()
msg("こんにちは")
msg("今日もいい天気ですね")
keyWait()
clearMessage()
end
上記はLuaスクリプト(test.lua)の一部です。参考になりましたらどうぞ。
セリフは例のようにLuaファイルに全部べた書きしています。 テキストファイル等から読み込む方法は知らないのでやっていません。 『外部ファイル』の意味がザックリしてて、よく分からないかったので あのように答えました。
C言語からLuaがどのように呼び出されているか説明します。 function search()関数はプレイヤーがNPC等を調べた時にC言語側からLuaを呼び出す ようにしています。
msg("こんにちは")
次のmsg関数はC言語で定義されています。 ここでLuaからC言語を呼び出しています。 C言語側でメッセージを表示します。
メッセージが表示されたら次に
keyWait()
が実行されます。キー入力があるまで待機します。
キー入力があったら次の行の
clearMessage()
が実行されてメッセージを消去します。
基本的に
C言語 ⇒ Lua ⇒ C言語
の順番で呼び出す事によりLuaとの連携が実現されます。この説明で分かりましたでしょうか?
- 58 :名前は開発中のものです。:2018/11/21(水) 17:43:44.89 ID:qaJCec5N.net
- >>57
ありがとう、すごくわかりやすい。
そうか、備え付けのフォント打ち出す分には
テキスト直打ちでいいのかー
それはラクそう!
- 59 :1 :2018/11/22(木) 00:05:00.88 ID:qBtTzCkW.net
- >>58
わかってもらえて良かったです^^
楽でいいですよ
- 60 :1 :2018/11/22(木) 15:27:53.71 ID:qBtTzCkW.net
- https://www.youtube.com/watch?v=blwG5wf0Yk8
- 61 :1 :2018/11/26(月) 15:00:24.77 ID:b3EUPUzF.net
- https://www.youtube.com/watch?v=4x23xc4HvLo
- 62 :名前は開発中のものです。:2018/11/30(金) 02:34:08.56 ID:lH6FeEMp.net
- お疲れ様です!
PG歴20年だそうですが、過去に同人ゲームを完成させたり、
イベント販売した経験がある?
結構売れたりした??
- 63 :1 :2018/12/01(土) 01:29:46.27 ID:gO6NoQRi.net
- >>62
過去に完成させた同人ゲームは23本です
未完成を合わせると100本ぐらいです
大手サイトに登録したのが5本で、雑誌に載った事が2回あります
その内の1本は雑誌の後ろの方のちょっと良い所に載せてもらいました
イベントで販売した事はありません
- 64 :1 :2018/12/01(土) 02:19:28.00 ID:gO6NoQRi.net
- そろそろこのスレのルールを決めます。
ゲーム製作技術以外の書き込みを禁止します。
もしあった場合はスルーしますのであらかじめご了承ください。
- 65 :1 :2018/12/01(土) 14:55:23.33 ID:gO6NoQRi.net
- https://www.youtube.com/watch?v=abeTobzxMLw
- 66 :名前は開発中のものです。:2018/12/02(日) 12:47:34.64 ID:o/n4MA2t.net
- >>64
俺もDXライブラリかじってるんですが
アクションRPG作りたいです
広いマップの描画方法はどうしてますか?
一気に描画はしてないと思いますが、エリアごとに切り替え描画してるんですか?
制作技術の話ですよね?
教えてほしいです
あと、今回のゲーム制作で参考にしてる参考書、
サイト等あります?
- 67 :名前は開発中のものです。:2018/12/02(日) 12:51:22.64 ID:o/n4MA2t.net
- あと、ゲーム製作技術以外の書き込みを禁止ってことは
応援レスや進行具合への感想レスもしちゃいけないってことですか??
- 68 :1 :2018/12/03(月) 01:53:40.14 ID:KyuaEvMn.net
- #define CHIP_SIZE 16
int v = 0, h = 0;
int map_dat[8][8] =
{
0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,0,
0,0,1,0,0,0,0,0,
0,0,0,0,2,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
};
for (int y = 0, vw = v, i = 0; i < 4; i++, vw++, y += CHIP_SIZE)
{
for (int x = 0, hw = h, j = 0; j < 4; j++, hw++, x += CHIP_SIZE)
{
int dat = map_dat[vw][hw];
Draw(x, y, dat);
}
}
0 : 草原
1 : 森
2 : 家
こんな感じでどうでしょうか?
v,hの値を変化させるとマップがスクロールします。
- 69 :1 :2018/12/03(月) 01:56:19.35 ID:KyuaEvMn.net
- >>67
…続き
マップの広さは関係ありません。
エリアごとに切り替えて描画はしてませんよ。
今回参考にしている本やサイトは特にありませんが、何か分からない事があったら、その都度ネッ
トで調べています。今まで参考にしたサイトは余りにも膨大過ぎて自分でも分かりません。
>>ゲーム製作技術以外の書き込みを禁止
これに関しては中途半端な状態にしておくと、変な書き込みも増えてしまうので
仕方がないです。
- 70 :名前は開発中のものです。:2018/12/03(月) 21:05:17.29 ID:fyG8by9I.net
- >>68
map、自分も同じようにしてます。
ただ、RPG並みのmapサイズで作ったことは無いんですよ
全フィールドを作ってるなら
mapの配列の要素数、そうとうな数になってませんか?
例えば、こんな感じの桁数じゃないですか?
map_dat[100000][100000]
>>69
ストイックですね、すごいです
- 71 :1 :2018/12/04(火) 01:14:13.70 ID:Oou+PYs5.net
- >>70
ゲームの画面サイズ : 640 * 640
マップチップのサイズ : 32 * 32
640 / 32 = 20チップ
1画面、横の列が20チップになります。横に256画面あるとします
20チップ * 256画面 = 5120Byte
縦 * 横で、
5120B * 5120B = 26214400B
100万で割ると、
26214400B / 1000000 = 26.2MB
Int型は4バイトなので、
26.2MB * 4B = 104.8MB
レイヤ3つ分で、
104.8MB * 3レイヤ = 314.4MB
最終的にこうなります
int map_dat[3][5120][5120];
サイズ : 314.4MB
今の環境ならメモリが 314MB は大丈夫だと思いますよ。それに256 * 256画面は相当大きいです。
そんな壮大なRPG作り切れますか?
3 * 5120 * 5120 = 約7千900万
100000 * 100000 = 100億
>>ストイックですね、すごいです
どうも^^>>70
- 72 :名前は開発中のものです。:2018/12/05(水) 12:43:31.49 ID:ojS8GHOx.net
- >>71
解説上手ですね、納得しました。
あと三次元配列、便利そうですね。
自分はMapのレイヤー分けは別の配列宣言して最終的に重ねて描画してましたが、
2Dゲームにおいてもそんな使い方があったとは勉強になりました、ありがとうございます。
- 73 :1 :2018/12/06(木) 00:14:13.91 ID:0befijOQ.net
- >>72
参考になってよかったです
ゲーム制作お互いに頑張りましょう^^
- 74 :1 :2018/12/06(木) 12:56:16.07 ID:0befijOQ.net
- https://www.youtube.com/watch?v=BoQlunvz2dU
- 75 :名前は開発中のものです。:2018/12/07(金) 14:40:45.28 ID:US4pEEV+.net
- >>74
イベント配置エディタの動画見ました
解説が無いのでわからないんですが
あのツールでできることはどんなものですか?
面白そうなので教えてください
- 76 :1 :2018/12/08(土) 00:26:13.92 ID:v+qgbxoN.net
- >>75
void IObject::Save(CBinaryFile& binaryFile){
//モデルID
binaryFile.writeString(m_modelID);
//スクリプトファイル名
binaryFile.writeString(m_scriptFileName);
//向き
binaryFile.writeString(m_strDir);
//ランダム移動
binaryFile.writeChar(m_bRandomMove ? 1 : 0);
//イメージ番号
binaryFile.writeShort(m_imageIdx);
//座標
const int CHIP_SIZE = 16;
binaryFile.writeShort(m_x / CHIP_SIZE);
binaryFile.writeShort(m_y / CHIP_SIZE);
//有効か?
binaryFile.writeChar(m_bEnable ? 1 : 0);
//固有ID
binaryFile.writeString(m_uniqueID);
//接触範囲拡張
binaryFile.writeShort((short)m_contactRangeExt.x);
binaryFile.writeShort((short)m_contactRangeExt.y);
}
- 77 :1 :2018/12/08(土) 00:35:37.48 ID:v+qgbxoN.net
- >>75
…続き
上記がイベント配置エディタのセーブの部分です。
内容はキャラクターのID(種類)、座標、向き、使用するスクリプトファイル名等がバイナリ形式で書き出されます。
非常に単純なファイルなので、ジャンルは問わずどんなゲームにも対応出来ると思います。
- 78 :1 :2018/12/11(火) 13:27:15.79 ID:gFIHVKbp.net
- https://www.youtube.com/watch?v=ne1Q0ayt6FU
- 79 :1 :2018/12/15(土) 16:28:32.02 ID:t6nTAy9E.net
- https://www.youtube.com/watch?v=qpSsvo-aM-o
- 80 :1 :2018/12/19(水) 16:45:50.22 ID:/yIUGNDt.net
- https://www.youtube.com/watch?v=GQ_JkpdR2no
- 81 :1 :2018/12/23(日) 17:06:39.85 ID:kusq2HAE.net
- https://www.youtube.com/watch?v=QGhBFTMD72I
- 82 :1 :2018/12/27(木) 14:59:48.39 ID:DO8X9gGQ.net
- https://www.youtube.com/watch?v=ODSZU9RcKAI
- 83 :1 :2018/12/31(月) 16:41:03.57 ID:WBh5j/c2.net
- https://www.youtube.com/watch?v=GCZxHG6bMZA
- 84 :1 :2019/01/05(土) 15:46:54.37 ID:li9mKFiU.net
- https://www.youtube.com/watch?v=-EOVp4ks1yo
- 85 :1 :2019/01/11(金) 15:11:58.52 ID:H66F/XnA.net
- https://www.youtube.com/watch?v=YCkIsTQufYw
- 86 :1 :2019/01/16(水) 16:44:23.95 ID:+q/0+9Zw.net
- https://www.youtube.com/watch?v=jazNb-wrFUU
- 87 :1 :2019/01/21(月) 16:04:39.90 ID:bGbIMtY6.net
- https://www.youtube.com/watch?v=9tqUcz6rYP8
- 88 :名前は開発中のものです。:2019/03/02(土) 19:59:17.21 ID:PupBt1Lh.net
- ゚ ・ 。: .゚:. 。* o・ :゚゚ 。゚ :∴゚ ・ 。: . ゚:. 。* o・:゚゚ 。 ゚:∴。: ゚。
∴ 。o .゚ :. 。 o ・ :゚゚ ・ : ゚゚ 。゚ : ゚∴ ゚ ・ 。 : . *゚
o・ 。 ゚: .゚ ・ 。 *: o・ :゚゚ 。 / ゚∴.゚ :. 。 o・ :゚゚ 。゚: ゚∴ ゚:
。 :゚。 ゚ ・o゚ ・ 。: .゚:. 。* / o・: ゚゚ 。゚ :∴。: ゚。 ゚∵: 。o゚ ・ 。
。 o・ :゚゚ 。゚: ゚ / ∴゚ ・ 。: *∵ ゚∵ *。 :。 o゜゚
∴ 。 o・ :゚゚ 。 ゚: ゚ / ∴゚ 。: . *゚:.。 ゚∵* :
。゚: ゚∴. ゚:. / 。 o゚ ・ o・。 ゚: .゚ ・ ・: ゚゚ 。゚:
・ 。:.゚: / .。 o・:゚゚ 。゚:゚ ∴ ゚ : ゚ ∵
゚ ・ 。゚ ・ 。 : ☆ . ゚* ・ ゚。 :. 。 *o・: ゚ ゚ 。゚: ゚。 。゚:゚ *゚ ゚
∵ ゚∵: o・:゚゚ 。 ゚:゚∴ 。o *゚ ・ 。: . ゚:.。 o・: ゚゚*: o・
。゚:゚ ∴ ゚ ゚: ゚ ∵゚。゚∵o:。o゚ ・ o・。 ゚: .゚ ・ 。∴。: ゚。
。: .゚:.。 o ・:゚゚∴ 。o・: ゚゚ 。゚: ゚ ∴゚ ・ 。: . *゚: .。 o・:゚ 。 ゚: ゚。
・ ゜ 。 .
. ゜
. 。 ・ .
゜ \ ゜ .
゜ ・ 。 ゜
. \ ゜ .
. 。 ・
。 ☆ | . そして彼らは星になった
. ・ 。 ゜
゜・ / .
。 . 。 ゜
. . \ .
゜ ゜ \/゜
. . ゜
- 89 :名前は開発中のものです。:2019/03/25(月) 22:52:55.60 ID:aN6KxDVs.net
- >>1
Unityを触ったみたいだけども、なぜそれでも
DXライブラリの方でアクションゲームを作ろうと思ったのか
教えてほしい。
Unityの方がラクに作れると思っているんだけどそうでもないってこと?
- 90 :1 :2019/03/26(火) 00:45:04.67 ID:3l/P0JTB.net
- Unityの方がラクという根拠が分かりませんね。
一度Unityで作ってみると良いですよ。
それから判断するといいと思います。
- 91 :名前は開発中のものです。:2019/03/28(木) 21:16:51.72 ID:pm027ZKD.net
- 敵がたくさんいてレスポンスが求められる場合は、unityでは厳しかったかな。作るのが楽なのは同意。
- 92 :名前は開発中のものです。:2019/04/05(金) 17:19:01.73 ID:i7LQ175v.net
- >>91
C++からUnityに移動しようとしたら
わけわからんかったよ
なんか組み立て方の構造そもそもが違う。
main関数で回すのが当たり前の脳だからとっつきにくかった
- 93 :名前は開発中のものです。:2019/04/05(金) 20:53:37.09 ID:bxQb55LR.net
- Unityでガンドライブアーツのような多キャラ弾幕ゲーって無理なのか?
- 94 :名前は開発中のものです。:2019/04/05(金) 21:20:23.72 ID:/p3aNT36.net
- >>92
一般向けの解説には載ってないがUnityでも
main関数で回すようなコードを書いて動かせる
>>93
その辺は開発中
あと1年くらいたったら簡単に作れるようになるかもね
https://www.youtube.com/watch?v=CVkj4BduUr0
- 95 :名前は開発中のものです。:2019/04/06(土) 22:21:06.40 ID:gq0qum26.net
- >>94
>Unityでもmain関数で回すようなコードを
>書いて動かせる
頼む、アマギフ1万払うんで
main関数で回した作成方法を解説してくれん?
- 96 :名前は開発中のものです。:2019/04/07(日) 01:03:24.32 ID:U+D17RB+.net
- >>95
Unityは普通の使い方だと各オブジェクトで
void Start()とvoid Update()が呼び出されて処理する事になってるが
オブジェクトから他のオブジェクトを生成消滅や制御する事も可能だから
集中制御用オブジェクトを用意してそのUpdate()で
キー入力とって各すべてのオブジェクトを制御するメインループを書く
Unityの中のメインループから呼び出される集中制御用メインループを作る感じ
- 97 :名前は開発中のものです。:2019/04/07(日) 18:10:19.90 ID:U+D17RB+.net
- smile game builderと言うツクールみたいなソフトの
ゲーム部分はmain関数で回っているが>>96の感じでUnityに移植されている
- 98 :名前は開発中のものです。:2019/04/14(日) 03:55:12.26 ID:TnkL0sPH.net
- >>96
あー、なんとなくわかったよ。
ちなみに、それを>>96さんは
やってみたことある?
それとも推測?
- 99 :名前は開発中のものです。:2019/04/14(日) 06:51:41.87 ID:Rl52zuYt.net
- >>98
実装で大丈夫
1000個とかオブジェクトを作ってそのリストから制御できるよ
弾幕シューティングには向いてないけど特別なゲームでないなら十分に動く
DXライブラリなら2Dシューティングで1万オブジェクトが動き回るとかできるけど
Unityだと今はまだ重いからそれは工夫しないと実現できない
- 100 :名前は開発中のものです。:2019/05/12(日) 11:44:05.54 ID:WFcuNJr9.net
- ゚ , , 。 . + ゚ 。 。゚ . ゚。, ☆ * 。゚. o.゚ 。 . 。゚ ,
。 . .。 o .. 。 ゚ ゚ , 。. o 。* 。 . o. 。 . .。 .
。 . 。 . .゚o 。 *. 。 .. ☆ . +. . .。 .
。 . . . . . 。 ゚。, ☆ ゚. + 。 ゚ ,。 . 。 , .。 . ゚。,
゚。゚+゚`, o。。.゚*。゚ 。.゚ 。 ☆+。。゚. ° 。 . , ゚ ゚.
。, .゚。 + ☆。,゚. o。 。+ 。゚., . ゚ , 。 。 .
゚. o * 。゚。゚.。゚。+゚ 。 。 ゚。 ゚ 。 ゚。 。 ゚。 ゚ 。
゚` .゚ .゚. ゚. . ゚ . ゚ . , . . / . . 。
/
☆
. そして彼らは星になった
( ‘j’)
/⌒ ,つ⌒ヽ)
(___ ( __)
"''"" "'゙''` '゙ ゙゚' ''' '' ''' ゚` ゙ ゚ ゙''`"''"" "'゙''` '゙ ゙゚' '''
- 101 :名前は開発中のものです。:2019/06/17(月) 05:07:45.77 ID:1jiFoI2e.net
- あら、いつの間にか終わってんなw動画見るに大した完成度になって無いな
>>64の発言でこのスレから人がいなくなったようなもんだろw
アホすぎる。まあ自己中さんはマイペースでやりたかったんだろうけど
そのせいでてめえまでモチベが無くなってんじゃ本末転倒だな
- 102 :名前は開発中のものです。:2019/07/01(月) 19:28:05.81 ID:ZNrdYI0L.net
- >>94
> https://www.youtube.com/watch?v=CVkj4BduUr0
23年前ぐらいの発想w
最終的には時計基準処理に収まっていくと思うよw
総レス数 102
30 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★