[過去ログ] 一人で完成まで頑張るの寂しいからかまって [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
783(1): 60 某犬犬 ◆HzfAAjcl8nz1 2020/01/17(金)05:57 ID:PnY//fJ0(1/2) AAS
動画リンク[YouTube]
「スペースSSS」RPGツクール2003用3DシューティングRPG 進捗動画 #014
夜間着陸のサブ・ゲームが出来ました。
緑のガイド枠を潜り抜けて、戦艦を滑走路に着地させます。
ブログ、Twitter、5chで毎日進捗と技術解説をしているので見に来てね。
制作:某犬犬
Web: 外部リンク[php]:lnl.osdn.jp
Twitter: Twitterリンク:schrochan
BGM素材は「サイバーレインフォース」さんの提供です
著作者:Cyber-Rainforce
HP:3104式
URL:外部リンク:cyber-rainforce.net
Twitterリンク:5chan_nel (5ch newer account)
784: 60 某犬犬 ◆HzfAAjcl8nz1 2020/01/17(金)06:00 ID:PnY//fJ0(2/2) AAS
>>783
動画リンク[YouTube]
続編では、こんな感じにしたい
785: 60 某犬犬 ◆m6HUWv.YwMNd [age] 2020/10/10(土)13:47 ID:O4TZOpDd(1/2) AAS
今年は図書館でクエスト量産する予定だったが
この世界情勢なので放置してたスマンコ
ネットで図書館の代用できそうなのだが
その前に2件ほど別プロジェクトを割り込ませる事にした
取りあえず、昔誰かが作った戦車のフリゲをリメイクする
786: 60 某犬犬 ◆HzfAAjcl8nz1 [age] 2020/10/10(土)14:21 ID:O4TZOpDd(2/2) AAS
トリップ違ったな これか?
Linux版ツクールMV用にJavaScriptでプラグイン書いた
スタック管理、構造体、文字列、スプライト等の
個人的便利ライブラリになった
MVはスーファミ時代のアセンブラ風味で
ゲーム職人気分が味わえるので良い
画像リンク
ミニゲームだから多分そんなに時間かからんじゃろう
787: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/11(日)08:05 ID:GUOUnJKr(1) AAS
全戦車の座標の最小値と最大値を求めて
最小値が画面の左端、最大値が右端になる様に拡大率%を計算する
キャラがはみ出ない様に、X,Y方向の拡大率の小さい方を優先する
拡大率 = 100 * マップ幅 / (最大値 - 最小値)
最小値と最大値の平均を画面の中央にする
描画X = ((X - 平均X) * 拡大率 / 100) + 画面中央X
スマブラみたいにキャラが接近すると、画面がズームインする
788: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/13(火)21:44 ID:XF7fjAAi(1) AAS
戦車は直ぐ下に地面が無ければ落下して
地面より下にいるなら、地面の表面に瞬間移動する
地面が坂道なら、戦車も斜めに移動する
斜め移動用Y = 戦車X % タイル幅 * 地面の傾斜正負
MaxY = 地面Y + 斜め移動用Y - 地面からの高さ
戦車Y < MaxY なら 戦車Y += 重力の速度
戦車Y > MaxY なら 戦車Y = MaxY
スプライトゲーなのでY座標は
画面上がマイナス、下がプラス
ゲームなので定速度運動させるため
重力加速度でなくて「重力の速度」を使ってる
地面の傾斜は45度にしているので
「戦車X % タイル幅」から「斜め移動用Y」が出てくる
789: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/14(水)00:01 ID:IG25C6ZR(1) AAS
地形に合わせて戦車の車体の角度を変える
着地回転率 = タイル高さ - (MaxY - 戦車Y)
着地回転率 < 0 なら 着地回転率 = 0
角度 = 戦車の右端の地面の角度 - 戦車の左端の地面の角度
角度 = 角度 * (戦車の左端X % タイル幅) / タイル幅
角度 += 戦車の左端の地面の角度
角度 = 角度 * 着地回転率 / タイル高さ
戦車が移動しながら
「戦車の右端の地面の角度」と「戦車の左端の地面の角度」の
差の分だけ車体が回転する
降下中は水平で、着地の寸前に「着地回転率」で
地形に角度を合わせ始める
790(1): 2020/10/14(水)17:36 ID:pBSMkFVM(1) AAS
ウディタって何が楽しいの?
技術力が上がるわけでもないし。
791: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/15(木)03:18 ID:BBzmqpLY(1/2) AAS
>>790
俺は 1 じゃ無くて >>60 な
792: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/15(木)23:38 ID:BBzmqpLY(2/2) AA×

793: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/16(金)10:18 ID:KbkqyE7G(1) AA×

794: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/21(水)04:33 ID:RUOoQd+z(1/2) AAS
JSプラグインで、変数番号の変数にアクセス出来る様にした
変数番号をアドレス、変数番号の変数をポインタ外し、として扱った
getEfxAdr nDst nSrc:
nDst = &nSrc;
nSrcの変数番号をnDstに入れる
getIndVar nDst pSrc:
nDst = *pSrc;
pSrcの変数番号が指す変数の値をnDstに入れる
setIndVar pDst nSrc:
*pDst = nSrc;
nSrcの値をpDstの変数番号が指す変数に入れる
getEfxAdrSwitch bDst pSrc:
bDst = &pSrc;
pSrcのスイッチ番号をbDstに入れる
getIndSwitch bDst pSrc:
bDst = *pSrc;
pSrcの変数番号が指すスイッチのOn/OffをbDstに入れる
setIndSwitch pDst bSrc:
*pDst = bSrc;
bSrcのOn/OffをpDstの変数番号が指すスイッチに入れる
795: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/21(水)04:33 ID:RUOoQd+z(2/2) AAS
プラグインの引数に変数番号では無く、変数の名前を与える事で
変数の並びを変えた時の修正ミスや手間が省ける
「変数名から変数番号(アドレス)を得る方法」
・キャッシュ[変数名] に値が入っているなら
・キャッシュ[変数名] を変数番号として返す
・ループ
・$dataSystem.variables[i] == 変数名 なら
・キャッシュ[変数名] = i
・i を変数番号として返す
「$dataSystem.variables[]」に
ツクールの変数が変数番号順に入っている
796: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/25(日)06:44 ID:Gy2RzjYB(1/2) AAS
構造体の配列をプラグインで管理した
&foo は変数名 foo を指定する参照渡し
struct は、プラグインのサブ・コマンド
struct iter は、サブ・コマンドのサブ・コマンド
BkkSprite struct init &ctrlHead &iterHead &iterTail &max
BkkSprite struct alloc &ctrlHead
init で管理領域を設定して
alloc で実際にスタック上にデータ領域を確保する
BkkSprite struct iter isBegin &ctrlHead &result
BkkSprite struct iter isEnd &ctrlHead &result
BkkSprite struct iter begin &ctrlHead
BkkSprite struct iter end &ctrlHead
イテレータの終了チェックと、イテレートの開始/終了
BkkSprite struct iter at &ctrlHead &idx
イテレータの値を直接指定して、そこへ飛ぶ
BkkSprite struct iter ++ &ctrlHead
BkkSprite struct iter -- &ctrlHead
イテレータを進める
基本的に要素の削除は無くて
代わりに使用中フラグをメンバーに入れて置くか
またはスタックごと開放して、リセットで最確保する
797: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/25(日)07:20 ID:Gy2RzjYB(2/2) AAS
データへのポインタを列べたイテレート領域を使って
構造体のメンバーにアクセスする(管理領域とは別物)
「構造体 Tank のイテレート領域」
Tank.type
Tank.x
Tank.y
BkkSprite getIndVar n Tank.type
で Tank のメンバー type を変数 n に読み込む
Tank.type はイテレート領域のポインタ変数名
BkkSprite setIndVar Tank.type n
は、逆に変数 n の値をメンバー Tank.type に書き出す
要するに、スタック上のデータ配列に対して
メンバー名でアクセスする為の仕組み
モトローラの680x0系アセンブラが分かる人なら
「ディスプレースメント付きアドレスレジスタ間接アドレッシングモード」
見たいなものと言えば伝わるだろう
ツクール2003では、コモンイベントのコマンドで実装してたけど
MVは「変数番号の変数」が使え無いのでプラグインにした
798: 60 某犬犬 ◆HzfAAjcl8nz1 2020/11/06(金)04:44 ID:R9EDHC1C(1) AAS
被弾時の爆発が何処かを弄ってる内に描画できなくなったけど
MVの変数は設定した上限を超えるとアクセス出来ない様だ
2003ではおkだけど、多分変数番号の変数で扱える為なのだろう
見た感じコードには何処にも間違いが無さげで数日ハマった
799: 60 某犬犬 ◆HzfAAjcl8nz1 2020/11/11(水)13:37 ID:0pHfwJIV(1/3) AAS
爆発はテクスチャ・アニメの種類毎に
「けむり」「閃光」「炎」に別けて画像をロードする
構造体の配列は共有してるので
描画する時は種類を見て別々に処理する
「けむり」のアニメをゆっくり目に描画しながら
始めに「閃光」を一度だけ生成して
一定フレーム毎に「炎」も生成する
「けむり」のアニメが終わったら
マップや戦車を再生成して次の対戦に遷移する
800: 60 某犬犬 ◆HzfAAjcl8nz1 2020/11/11(水)13:44 ID:0pHfwJIV(2/3) AAS
砲弾のチャージ・ゲージは、飾りの付いた外枠と
上下にグラデーションが掛かったゲージを組み合わせる
ゲージをチャージ率に応じて横方向に縮小表示する
801: 60 某犬犬 ◆HzfAAjcl8nz1 [age] 2020/11/11(水)13:56 ID:0pHfwJIV(3/3) AAS
対戦開始時の「Ready」表示中は
射撃禁止/移動おkで、間合いを取れる
「GO!」で射撃禁止フラグをOffにする
爆発中は射撃と移動の両方を禁止にする
802: 60 某犬犬 ◆HzfAAjcl8nz1 2020/11/13(金)16:00 ID:Ne4OzMjC(1/2) AAS
砲弾四種
「スタンダード」単発、高速、早チャージ
通常弾
「バースト」二連発、高速、遅チャージ
通常弾を発射後、チャージ率x90%で最発射
「スプレッド」三分裂、低速、遅チャージ
発射後カウンタが0になったら
通常弾二つ生成とそれ自身を通常弾に変える
「サイト」着弾地点表示、フェイント
発射後、予想地点にレティクル描画
左右の移動で速度微調整
803: 60 某犬犬 ◆HzfAAjcl8nz1 [age] 2020/11/13(金)16:18 ID:Ne4OzMjC(2/2) AAS
マップ選択と障害物の生成をやった
キャラ名を[x][ ]か(x)( )に変更して
メニューから「\N[1]」で表示して
チェックボックスとラジオボタンにした
マップの選択はチェックボックスで選んだ中から
ランダムに選ばれる
マップの種類に応じて、障害物を描画
効果はまだ未実装
804: 60 某犬犬 ◆HzfAAjcl8nz1 2020/11/14(土)08:40 ID:HwzKAcsU(1) AAS
マップと障害物の三種を実装した
「草原」「林」視覚的に隠れられる
「岩地」「岩」水平方向の弾除け
「砂漠」「流砂」移動速度を半減
805: 60 某犬犬 ◆HzfAAjcl8nz1 2021/02/10(水)15:48 ID:YnlIq0em(1/5) AAS
「草原」の「林」だけ戦車より手前に描画した
スプライトのZ座標を使って実装しようとしたが
ツクールのプライオリティ処理が
機能していないっぽいので
別のスプライトを手前に確保して回避した
806: 60 某犬犬 ◆HzfAAjcl8nz1 2021/02/10(水)16:41 ID:YnlIq0em(2/5) AAS
AIを実装し始めた
・AI
・行動トリガー
・行動
・学習トリガー
・弾避け
・敵が射撃
・左、中、右に移動
・敵の着弾
・射線外し
・ランダム
・左、中、右の山の裏へ移動
・敵の着弾
・ランダム移動
・ランダム
・左、中、右に移動
・敵の着弾
807: 60 某犬犬 ◆HzfAAjcl8nz1 2021/02/10(水)16:42 ID:YnlIq0em(3/5) AAS
・チャージ
・AIがチャージ開始
・敵の左、中、右を狙う
・AIの着弾
・発射
・敵が射線上に入る
・発射
・無し
・山越え
・AIの着弾
・砲身を上下
・無し
「行動トリガー」で行動が発生して
「学習データ」を元に「行動データ」を設定する
「行動データ」によって毎フレームの行動を決める
「学習トリガー」で学習が発生して
「学習データ」を調整する
808: 60 某犬犬 ◆HzfAAjcl8nz1 2021/02/10(水)17:00 ID:YnlIq0em(4/5) AAS
学習の例として「弾避け」の場合
・敵が射撃したら
左、中(移動無し)、右の比率に応じて
乱数で移動先を決める
・敵の着弾で当たらなければ
選んだ行動の比率を+2して
それ以外の比率を-1する
・当たった場合は
選んだ行動を-20して
それ以外を+10する
809: 60 某犬犬 ◆HzfAAjcl8nz1 2021/02/10(水)17:10 ID:YnlIq0em(5/5) AAS
・正しい選択をしたっぽいなら
微妙に正の強化学習をして
・間違っていたなら
ペナルティとして多めに
負の強化学習をする
ゲームを繰り返すにつれて
どんどん強くなって行く(と良いなー)
リセットするか終了すると初期化
810: 2021/02/11(木)04:47 ID:BxaEkDQn(1) AAS
音も自分でやってる?
音やろうと思ってもちょっと無理かなあって思ってる
811: 60 某犬犬 ◆HzfAAjcl8nz1 2021/02/11(木)18:58 ID:0LtU3bBr(1) AAS
SE はデフォ素材のを再生速度変えたりして使ってる
BGM はフリー素材
作曲は時々やりたい病になるけど、出来無い
812: 2021/02/12(金)22:53 ID:1LHSZjPr(1) AAS
再生速度、変えるってのがあるのか
商用にする場合、フリーでも著作権問題になる場合あったかも
上下前次1-新書関写板覧索設栞歴
あと 190 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.061s