レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
貴方が作る東方STG〜東方弾幕風【2スレ目】
-
Cライクなスクリプトを駆使して東方project風味のボスキャラやスペルカード、
果ては大規模ステージまで作れてしまうフリーウェア「東方弾幕風」の総合スレッドです。
独創的なオリジナル弾幕の公開もあり、どこかで見たようなコピー弾幕の公開もあり
それらの攻略、レビュー、感想もあり、スクリプトについての質問や相談などもあり
とにかく弾幕風関連の話題は何でもありのスレッドです。
現在、こちらのスレは主に製作者サイドの視点で進行しています。関連スレが
プレイヤーサイド視点ですので、攻略、ネタバレ、考察などについてはそちらも参照してみて下さい。
■関連サイト
東方弾幕風本体公開サイト と〜ほ〜GC
ttp://www.geocities.co.jp/SiliconValley-Oakland/9951/
東方弾幕風Wiki(三代目)
ttp://danmakufu.wiki.fc2.com/
上海アリス幻樂団創作物の二次創作・使用関連ページ
ttp://www.geocities.co.jp/Playtown-Yoyo/1736/t-081.html
東方弾幕風コンテスト会場(跡地)
ttp://www22.atpages.jp/ratius55/
東方弾幕風 スクリプト紹介所
ttp://danmakuhu.es.land.to/cgi-bin/dnhscript/bright.cgi
-
>>115
やったことがないからよくはわからないんだが、多分無理じゃないかと。
あれはそもそもタスクやスコープの外側でやるもののはずだから。
ただ、#includeさせるファイルからも、さらに#includeすることは可能なので、
そこらへんをうまく組み合わせればいいのではないかと。
ph3ならTRenderやTEndに相当するタスクなんかは、
全ボス共通のタスクとして#includeすることにして、
共通する攻撃や移動モーションがあるのなら、二段階の#includeをするとか。
-
includeパスに変数とはまた変態なこと思いつくな…w
一応中身はただのファイル置換だから、ローカルスコープ内で呼んでも機能はするだろうけど
定数系が混じってると厳しそう。何よりスクリプト書く側が混乱するだろうし
そういやph3とv2の話が普通に交じってるか共通話題の二択だけど
特に何も書かれてなければ主流のph3って認識でいいのかな最近は
-
GCSDのディレクトリに配列を適用して変数で制御するっていうのはやってるけど。
ボスのグラフィックを変えるとか、スペカ時の背景適用時なんかに。
さもなくば、効果音を出す際に数値を変えるだけで鳴らす音を変えられるようにするとか。
-
そういえば、画面端で反射する弾はよく見かけるけど、
貫通する弾(画面端に到達すると反対側から出現する弾)って、見かけないよなあ
-
霊夢の二重結界…(ボソッ)
いやまあ画面端じゃないけど
-
つ ヤマトトーラス
あと弾幕風のどれかで博麗転送結界的なものがなかったっけ
-
本家でも反射弾関係の判定ミス?で
原点の左上から飛んでくる弾がある
どういう理由でそういう判定になるのか
-
個人的には、条件を0未満にすると判定ミスが起きやすくなるのかな、と。
反射するための条件を、if(ObjMove_GetY(obj)<0)にして無限反射させたら、
画面上でジグザグ移動する弾がたまに出る。
もしかしたらだけど、0と-1の間の値を取り続けるという現象が起きるのかも。
ちなみに、if(ObjMove_GetY(obj)<1)にしたら、その現象は起こらなくなった。
なので、個人的には
task ReflectShot(X,Y,speed,angle,delay,Shita,count)
{
let obj=CreateShotA1(X,Y,speed,angle,113,delay);
while(!Obj_IsDeleted(obj)&&count!=0){
let theta=ObjMove_GetAngle(obj);
if(ObjMove_GetX(obj)<1||ObjMove_GetX(obj)>GetStgFrameWidth-1){
ObjMove_SetAngle(obj,180-theta);
count-=[1,0][count<1];
}
if(ObjMove_GetY(obj)<1||(ObjMove_GetY(obj)>GetStgFrameHeight-1&&Shita)){
ObjMove_SetAngle(obj,360-theta);
count-=[1,0][count<1];
}
yield;
}
}
という感じで反射する弾のスクリプトを組んでる。
今のところ、これなら画面上でのジグザグ現象は起きていない。
ちなみに、引数Shitaをtrueにすると画面下でも反射、
引数countをマイナスにすると無限反射するようにできる。
-
うわ、タブインデントって反映されないのか……。
-
東方弾幕風って、かつて時封城と夢終劇がそうだったように
売り出すような物を作る工具として使っても問題ないのでしょうか?
-
商用はOUTじゃなかった?アレはそれを知ってか知らずか売ってたみたいだけど…
-
東方をタイトルに冠してるのなら「東方二次創作」って扱いになるから
本家(上海アリス幻樂団)の版権ガイドラインを踏襲する必要がある。
ttp://kourindou.exblog.jp/14218252/
具体的には「本家東方の流通ルートを超えるような売り方はしちゃダメよ」
って言ってたのね。Steamに天空璋出てるけどそれはまあ置いておくとして。
んで弾幕風はソレをしていいのかと言われると、
普通に例の二作が再販売されてるので別に問題ないんじゃなかろうか。
グラフィックにフリー素材集使ってる場合は個別に規約確認する必要がある。
無償利用はOKでも商用利用はNGって場合もあるし。
…ぶっちゃけるとUnityやDXライブラリという上位互換が出てるのだから、
無理に設計思想が古い弾幕風に拘る必要ってあるのかなって気はする。
-
弾幕風のプログラム自体には商用利用NGという規定はないよ
二次創作とか自作以外の素材の利用規定はまた別の話
-
この話題、定期的にループしてない?
-
ループで思い出したんだけど、timesループって個人的には存在価値がないよな。
完全にloopの下位互換になっちゃってる印象だし。
-
ascentも本来はloopを付けるんだけど、
letと同じで省略できちゃうからこっちも地味に影薄いという。
breakとreturnの違いってリファレンスに書いてないけど、taskのloop内で行った場合は
break:ループを"破壊"して下の処理へ移り、終端まで行ったら処理終了
return:ループの処理を"中断"してその場で終了する。
エフェクトなんかの処理を呼ぶ必要がある場合はbreak
何も呼ばずにさっさと終了してほしい場合はreturn、と
こんな感じに使い分けてやると大分処理が軽くなりますぞ。特にph3。
-
いや、ascentとdescentは「値の変化を伴う」処理全般に使えるから、慣れるとすごく便利だと思う。
ascent(n in 0..RWay){CreateShotA1(X,Y,speed,angle+n*360/RWay,color,delay);}
とかやれば、簡単に全方位弾が作れるし、配列へのアクセスにも有効だし。
俺も、使い方がわからないうちはloopを使ってたけど、今のところの主流はascentとdescentかな。
もちろん、loopやwhileをまったく使わないわけじゃないけど。
-
ちなみに、リファレンスには、
let d = [];//dは配列
ascent(i in 0..100)
{//配列dを[0 1 2 … 98 99]で初期化
d = d ~ [i];//配列の結合
i++;
}
と書かれているが、ascent、descentループでは一番下のi++;は意味をなさない。
ascent(i in X..Y)は、iの値をXからスタートしてY-1まで1ずつ増やす形で
ループを繰り返すタイプだから、仮にi+=10とかやってもその変化させた値はリセットされる。
また、マイナスからのスタートもできないのが難点ではあるが、それに応じた記述ができれば
いいだけの話だし、引数の中に直接変化量を記述する形に慣れることができれば、
かなり使い勝手のいいループになる。
その性質上、配列やalternative分岐とは、かなり相性がいいというのが持論。
-
acsentで外枠オブジェクトの設定が超大幅に短縮出来たから、なんだかんだで必要だと思うんだ。
descent、まだ使ってないな…
-
descentはascentの逆順ループだから、確かに使う機会は少ないけど、
不透明度の増減に使うというのはどうだろう?
descent(alpha in 0..120){
ObjRender_SetAlpha(obj,alpha*255/120);
yield;
}
とやると、徐々に透明になっていく描写ができる。
これをascentでやろうとすると、
ascent(alpha in 0..120){
ObjRender_SetAlpha(obj,255-alpha*255/120);
yield;
}
という書き方になって、ちょっとだけど読みづらくなるから。
-
サブルーチンと引数なしユーザー定義関数ってなにが違うの?
-
引数のないユーザー定義関数は、基本的には任意の返り値を出すのに使う。
より詳細に言うなら、開発者側で定義できない、任意のタイミングで変動する値を
返り値として出したい場合に有効。
既存の関数になぞらえるなら、GetPlayerX、GetPlayerYのような感じかな。
それを応用して、
function BossX{return ObjMove_GetX(objEnemy);}//ただし、ボスのオブジェクト名をobjEnemyとする
とでもやれば、ボスのX座標を自動的に返り値として出すことができる。
もしもWay弾や全方位弾の処理に引数のないユーザー定義関数を当てはめるという意味なら、
サブルーチンと何の違いもないと思う。
-
このスレの主流てv2とph3 どっち?
質問する時ってあらかじめどっちか宣言したほうがいいかな
あとph3 だけどscc2見ながら勉強してるんだけど球がちょっと多くなると激重になるんだが解決策ありますか?描写は可変です
マシンスペックあげたら改善します?
-
その、ちょっと多くなると、っていうのが何発ぐらいのことを言ってるのかが不明なので何とも……。
うちのPCでは、画面内の弾数が3000超えたら処理落ちかかってくるけど。
-
うちは1200くらいかな。パッケージ起動と、外枠関数が重くしてるけど…
-
パッケージからの起動だと、そんなに重くなるのか……。
じゃあ、軽くてすんでるのはPluralの状態だからなのかもしれない。
メインシステムの点数とかの数値表示系タスクなんかは、配列でまとめて
ascentループで起動しちゃってるんだけどね。
ちなみに、PluralでBGMとSEがついて、その状態で表示3000発まで
処理落ちしないっていうのは軽いほうなのかな?
-
球数ってどうやってみるん?
-
弾数はGetShotCountで出せる。
数値を表示したいのなら、メインシステム内のタスクをうまくいじれば可能。
-
ありがとう
scc2の祝いの風って奴なんだがfps20程度まで落ち込む
-
もしかしたらだが、そっちの環境の問題かもしれない。
テストプレイしてみたけど、別に処理落ちしなかったから。
うちの環境は、6年ぐらい前に買った、ミドルエンドのドスパラPCなんだが、
問題なく動いた。
つーことは、俺が組んでみた正六角形の動く星床と渦巻きレーザーなんて組み合わせは、
>>144の環境だと間違いなく処理落ちしそうだな……。
-
昨今のPCゲーム市場とか見る限り、未だにVistaや7使ってる人はスペック的にそろそろ厳しくなってきてると思う。
(メモリ足したりグラボ取り替えてる人はまだいいとして)
とはいってもみんなスマホだし、PC持ってる方がもはや少数派か…。
-
弾幕風って10にも対応してるの?
10ならハイクラスのやつがあるんだが
-
PCゲーのツールを使う場でPCの普及率が低下とか言われても何の意味もないんですが
愚痴りたいだけなら存在が不愉快だからどっかいって
-
>>147
V2、ph3共に動作はする。V2は「管理者として実行」しないと動かなかった記憶がある(vpatch使う場合はVpatchのみ管理者として実行)。あとfpsが不安定かも。
-
>>146
ここそういうスレじゃないんで…
-
>>148
ごめんね、スレチだったね。
-
スクリプトファイルのエンコードをshiftJISからUTF16LEに変えたら、
ロードの時に軽くなるかなと思ったんだけどincludeの相対パスが仕事しねぇ…。
絶対パスなら問題なく動くんだけど
-
タブインデントなんか、半角×2で十分なんだよな。
何で半角×8がデフォルトになってるんだか……。
-
重たいってのが大規模スクリプトへの絶対的な障壁になってるのか
独自言語だからその辺は仕方ないのかね
-
>>154
あと大規模スクリプト関連の技術的な話題がここで殆ど出なくて
知識や技術の共有が行われないというのもある。あと単純に人が居ない。
年跨いでレスしてすまぬ
-
一応自分もパッケージスクリプト弄ってる人間なので話題を投下できなくもないんだけど、
如何せん内容が複雑というか規模が大きいので、どっから話せば判りやすいのかというのが判断つかないのよね
流れ的には[Single]で単発の弾幕を最初に作って、
それが何個も出来るようになったら[Plural]で数珠繋ぎにしてボス戦を作り、
作ったボスと雑魚編隊と(できれば背景)を追加した[Stage]の一連まで作れるようになってから
パッケージスクリプトに触れていくと丁度いいんじゃないだろうか。多分いきなり[Package]から挑むと挫折する。
-
v2とph3で、神5面の背景にある塔?のようなモノを再現しようとしてるけど、中々上手くいかない…
あと、神6面の背景はsin系で描画してるの?
-
神の5面と6面はどれも内部的には同じ処理だと思う(カメラアングルや位置が違うだけっぽい)
cosとsinの極座標制御をXY軸からXZ軸に変更してやればいい。
面倒くさかったらph3でメタセコイア(mqo)ファイルを読ませるという手もある。いやこっちの方がモデリング作業で余計面倒か…w
-
弾がぶつかるときってできますか
-
>>159
「弾」が「何に」ぶつかるときなのか判らんので適当にエスパーしますが
もし「弾同士」ならばオブジェクト弾で弾の位置を取得して、距離比較してあげてください
-
>>160
ありがとうございます
弾同士です
-
>>158
なるほど、Z座標を指定するとは思わなかった…しかし円筒背景をどうやるか思い出せない…
let angle=0;
loop(180){
//一部省略
SetGraphicAngle(angle,0,angle);
DrawGraphic3D(X+radius*cos(angle),0,Z+radius*sin(angle));
angle+=2;
}
こんなんだったかな…?
-
初心者です
一つの弾から連続で弾を出すには
AddShot(0,1,2,0);AddShot(1,1,2,0);AddShot(2,1,2,0); ...
これを省略したいのですが
どうすればいいですか
-
大分複雑に作られてるんやなすご
-
>>163
それは「大本の弾が画面から消えるまで、弾を出し続けるようにするには」という意味でいいのかな?
-
>>166
そうです
惑星がガスを噴出するのを表現したいので
AddShotの一つ目の引数が邪魔と言うか
if(Frame > 60){AddShot( ,1,3,0);}
みたいなことは
できますか?
-
>>166
その場合は、AddShotを使うよりもオブジェクト弾にしたほうが簡単な気がする。
また、オブジェクト弾を扱うには、マイクロスレッドがほぼ必須となる。
もしもわからないなら、マイクロスレッドを理解してからのほうがいいと思うし、
純粋な弾幕にも応用できるから。
-
レーヴァテイン系レーザーだけAddShotを使ってる自分は異端かもしれない…
-
0.12mでも最近の原作みたいな吹き出しアイコンの会話って出来るんだろうか
会話のこと忘れてて立ち絵大きめのサイズで描いちゃったから吹き出し会話できないと立ち絵が切れちゃうけど
作り方が検討も付かない。吹き出しに文字入れた画像を連続で表示するとか?画像数凄まじい事になるから無理か
-
DrawTextで何とかできなくもない
デフォルトフォント固定という致命的な欠点があるが…
-
DrawTextって外枠への描画は出来なかったような気がするが…どうだろう。
-
リファレンス見たら「結構重い」とか書かれてるし
プリレンダ安定だわな
-
別のゲームにあるファンネルという遠隔武装を真似したいけど、挙動設定から分からなくて泣ける…
「敵から発射→ある程度のランダム性を持たせながら自機周辺(自機からの距離はランダム)に移動→停止と同時にレーザーの発射角度を固定→レーザー発射後…適当に消す」
もしや全部オブジェクト弾で出来そうかな?
-
ようは「ボスの座標から自機周囲への座標」を取得して、そこから距離と角度を求めて速度を割り出せばいい話やね
挙動の再現に悩んだら、必要になるであろうデータの値やイメージした挙動をメモ帳に書き連ねて整理しながら考えるといいよ
-
むしろ、そのあたりの挙動はPH3のほうがやりやすいような気もする
自機も敵も弾も、全部オブジェクトとして指定できるから
-
V2で無理矢理ステージスクリプト作ってるんだけど、なんか中ボス以降に
雑魚敵を出すと敵が1匹でも異様に重くなるんだけどなんでだろう
中ボス前に出した敵の使いまわしだから特別重くなるわけないはずなのに
敵が画面内から居なくなった途端軽くなるから雑魚が問題なのは間違いないんだけど
中ボス前の雑魚では重くならないし理由が全く分からない
-
雑魚を呼び出す度に雑魚のグラフィックをロードしてるせいかと思ってステージスクリプト側で
変数にパス入れて、雑魚敵のスクリプトではロードしないようにしようと思ったら
まさかの未定義の何とかってエラー吐く……ステージ側で設定した変数って雑魚敵でも使えなかったっけ?
-
>>176
試しに中ボス抜きで動かしてみるのはどう?
消したと思った中ボスが残ってたり、中ボス前の敵が消されずに残ってたりは…無さそうかな。
-
>>178
やってみたけど中ボスありと大体同じような場面で重くなったからボスは関係無かったっぽい
色々試してみたけどボムで全部ぶっ飛ばしたりすると重くなるのが後になったり、威力低いショットばっかり使って
道中の進行を遅らせてると中ボス直前にも重くなったりしてるから時間経過っぽい?
-
どっかでメモリリーク起こしてるとしか思えない挙動だなぁ。
変数のパスが微妙に異なってるテクスチャを何回もロードしてるとか
常駐タスクで何かやらかしてるか。デバッグウィンドゥやログを出せば何かわかるかもしれない
-
パスに大文字と小文字を間違えて記述してるとか…
パスの指定先を間違えてるか、そもそも指定場所のファイルが無いか…
音声ファイルも拡張子を間違えると鳴らす度に音量が際限なく上がっていく仕様が…
-
常駐タスクが悪さしてると考えて色々漁ってたんだけども、雑魚敵が画面内に居る間だけ重くなるから
ステージ側の問題ではおそらくないと思うってのがまた厄介で解決法が解りづらい……
個人的にもしかしたらこれが問題か?って思うやつを纏めてみたけど、実際に動かすことはできないようになってるのでごめんなさい
ttp://coolier.dip.jp/th_up4/index.php?id=6546
効率のいい作り方とか全然してないからスクリプト書ける人からしたらふざけてるの?って言いたくなるような
処理ばっかしてるけど今まではこんな感じのばっかりで動いてたからそう異常は起こらない筈なんだけどな……
-
覗かせて頂きました。
もしかしてだけど、182さんのscriptフォルダ内は全部小文字になってる?それとも頭文字だけ大文字?
例)script¥th13→script¥Th13など
もし全部小文字ならパス指定も小文字(SE→se)にしないと正しく認識しないらしいのでご注意を。
DrawGraphicの位置が気になったけど気にしないとして、画像ロード関連はコモンデータでtrueか分岐させれば良いかも。
特に異常があるようには見えないんだよな…
-
追記、某氏製作の神霊廟の二次創作では、雑魚敵で鳴らすダメージ音ファイルのパス(若しくは配置場所)が間違っており、命中させる度に処理落ちが発生してました。
もしかしたら処理落ちはこの類なのかも。
-
昔の自分のスクリプト引っ張り出してきて182さんの奴と比較してみたら、
CompileEnemyFromFileでバイトコード変換せずにファイルパス直書きで呼び出してるね。
つまり敵を呼び出す度に変換の手間が生じてるので、そりゃあ処理時間もメモリも食いますよね
ttp://coolier.dip.jp/th_up4/img/th4_6547.txt
というわけで適当にエディタの検索置換窓使ってパス書き換えたり事前コンパイル関数を追加してみた
動作チェックはしてないので、参考程度に
-
182です 自分のファイル名は基本癖で頭文字だけ大文字になってるけど、全部小文字のがあったりします
>>184 一応効果音のパス自体は合ってました。効果音入れてるファイルがscript内のSEファイルなので
エフェクトとか全部取っ払っても結局重くなるから原因は185さんが言ってる読み込み関係?
とりあえず色々試してなにか進展があったらまた書きます
-
自分で試した結果何も進展なかったので185さんの見本を変数名こそ少し自分用に変えたものの使ってみましたが、
まだなんか微妙に重く……撃破時の効果音とエフェクトを取っ払っても代わりありませんでした。
スクリプト全体丸ごと乗っけなかったのは単にベースとして原作素材使ってたので差し替え先がまだないってだけだったので、
一部(結構大半)の画像無しでよければ後で全体像乗っけておきます
-
コンパイルしてもダメって事はまだ何か問題があるんですかね
PCスペックは足りてるんですよね?
-
もっと激しい弾幕とかエフェクトがついているボスが動くのでスペックの問題はさすがにないと思うんですけど、
スペック自体はお世辞にも高いとは言えない奴です。例の重くなる場所まで到達すると雑魚敵1匹で弾が出ていなくても酷い事になりますし
とりあえず遅れましたが全体版で一応プレイも可能なはずです。もともと自機原作敵オリキャラタイプのゲームだったのでオリキャラのファイルが入っていますができればお気になさらず
ttp://coolier.dip.jp/th_up4/index.php?id=6549
-
>>189
早速テストしました。
自機のホーミングに何らかの問題があると思われます。自作した自機にしたところ、異常が無かったので。
多分出てない自機弾があったり、追尾対象のIDが多くなると重くなった気がします。
…2GHz、2GBのPCでスペースキーでの早送り速度が110fpsしか出ないのも気になりましたが、そこは無視です。
-
breakってどういう効果だったかな…returnしか使ってないから忘れかけてる…
-
ってことは、前に言ったボムで飛ばすと重くなるのが遅くなったりしたのはボム中にはショットが出ないから
その分だけ重くなるのが遅くなったってことかな……?敵を倒さないと重くならないというテスト結果も出てたけど、
敵を倒さないようノーショットでやってたから確かにショットが原因なら辻褄はあうかも
>>191
検索かけてきたらbreakは最も内側のwhile、loopから脱出します。って書いてあった。
自分でもよくわからずに「使ったら軽くできるかもしれない!!!!!」とか考えて使ってた気がする(実感は無し)
-
気になったのが、ホーミングにatanを使ってること。アレは確か1つの敵にしか追尾しないんだよね…
patcheだったかな?アレのホーミング処理を参考にすると、全弾独立したホーミングや、スカイサーペントも組めますぞ。
…自作した機体、良ければ使います?
-
breakはループを破壊して、その直下にある処理へ進む。
returnはループ内の処理を中断して脱出する。
もしループの下にエフェクトやSEなんかを置いていた場合、
breakの場合は流れるが、returnの場合は流れない。
多分リターンの方が軽い
>>189
高速ショットのホーミング垂れ流しにし続けたらfpsが30近くにまで低下したので
ホーミングショットのルーチンに何かしらの欠陥があると思われます。
あとショットキー押しっぱなしでボムった後にショットが出なくなりました。
これバグですかね?
-
あ、ショットの件は書いてありましたね。失礼。
-
>>193
ホーミングにatanを使っている件については、ホーミングが弾幕風にデフォで入っているルーミアのアレしかわからず
くにょくにょとしたキモい動きさせるために弾幕風のサンプルだったかにあった「自機を追尾してくる敵弾」の方の処理を持ってきてたんですよね……
もしお借り出来るというのであればこのバグだらけ霊夢よりずっと快適に使える気がするので是非と言いたい所です……
他には内部覗いて解る通り魔理沙と咲夜も突っ込む予定ですが、バグ原因がホーミングだけならそっちは大丈夫……かな……?
>>194
確認していませんが本当にそうならバグですね……ボム中に変数リセット忘れてますねたぶん……お恥ずかしいばかりで
まさか処理落ちの原因が道中じゃなくて自機だとは思っていなかった。ホーミングの処理も1回変更してたけど
その時も若干マシにはなっただけで重くはなっていたからすっかり騙された……
-
でもホーミングに1回直線的に敵を追尾するだけの貫通しないデフォルーミア的な奴に変更したときも
僅かながら処理落ちしてたってことは自機自体どっかイカれてる可能性ありそうかな……技術が追い付いてないのに原作に近づけようとなんてするもんじゃないなぁ
-
>>189
お待たせいたしました。風神録風霊夢・誘導装備です。
ttps://ux.getuploader.com/supermario/download/26
初期設定ではパワーシステムがONになっています。必要に応じて変更してください。
-
>>198
感激しました……こちらでも快適動作で久しぶりにバグっていない道中を見ることが出来た……
やはり若干威力が高いので威力調整はこちらでしておくとして、それ以外にもこちら側の仕様に
変更した方がいい部分などはあるでしょうか?パワーが1面で最大まで上がるほど上がりが早かったのでそのあたりかな?
-
>>198
感激しました……こちらでも快適動作で久しぶりにバグっていない道中を見ることが出来た……
やはり若干威力が高いので威力調整はこちらでしておくとして、それ以外にもこちら側の仕様に
変更した方がいい部分などはあるでしょうか?パワーが1面で最大まで上がるほど上がりが早かったのでそのあたりかな?
-
時間差でなんか投稿されちゃってる……お気になさらず
-
あ、単にパワーが早く増えてたのは何度か雑なプレイで死んでたせいでした。
-
>>202
被弾したら本来Pを出すのですが、技術が無い(多分出来るけど綺麗に飛ばせない)ので、強制的に330にしています。
ちなみに少し弄ればA装備にも可能です。
-
189とかでなんか時間経過で重くなる現象で相談したヤツですが、またなんか変な不具合が出たので……。
ttp://coolier.dip.jp/th_up4/index.php?id=6550 とりあえず関係ありそうなものだけアップしましたが、
症状としては「3面に入った瞬間に重くなってFPSが10近く落ちる」というまたわけのわからないもので、
CompileEnemyFromFileも使ったし自機も198さんから借りたものなので自機関係の不具合でもなく、よくわかりません。
現状解っていることは1面2面をすっ飛ばしていきなり3面からやると重くはならないものの、
1〜2面を通過して3面に行くと2面から切り替わった瞬間重くなるというものです。平均57FPSくらいなのですが、
3面になってからだけはFPSが49とか45とかになります。1面から2面になったときは一切問題ないのですが……。
-
先ほど試してきたのですが、1面→3面→2面の順番でやると3面が普通で2面が重くなったので、
3面が問題というよりかは3番目に来るステージがおかしくなるようです。時間経過によるものなのか、
切り替え時に変な処理をしてしまっているのかは分かりませんが、せっかく良い自機まで借りて
ここまで作ったのでどうにか完成はさせたいな……
-
ステージ切り替え時の処理に問題があるのかな…自分のやつは1面〜Phまでぶっ通しでも異常無しだし…
各ステージタスク起動時にBGM以外で何か読み込んでない?
-
ステージ終わる時にリソース開放してなくてメモリリークしてるとか、
ステージの共通ルーチンの処理が重くて積み重なった結果なのかも
タイトル画面のエフェクトの組み方とか見てると
「同じUVでテクスチャパスだけ切り替えて表示する」とか「loopで毎フレームletしてる」とか
細かい所にRAMの無駄遣いがかなりあるので、この辺の最適化で変わったりしそうです。
あとすごく今更ですが、弾幕風v2はVsyncパッチを当てない限り「窓モードでは57fpsで安定」です
-
今までほぼ全く同じ処理をして作った事のある過去作が普通に動く(弾の出しすぎとかエフェクトミスで重かったりはあるけども)ので、
それだけに今回だけバグってるのがよくわからないんですよね……エフェクト関係の無理やりな処理もそうですが、
一応過去に作った奴はこんな無理やりでも6面+EXまで特別問題はなく動いていたので
>>306
タスク管理が面倒になって、一つのステージタスクだけ読み込んであとは1つのタスクでエフェクトとか敵とかBGM以外呼び出さずぶっ続けで
ステージを流してるので余計なものを読み込んじゃってるのはないと思うんですけどね……ステージ内で何か変えたところといえば
CompileEnemyFromFileしかありませんが、さすがにこれで重くなるわけがないし
-
>>207 Delete系を全然使っていないせいで積み重なったのが重くなったってことでしょうか……?
3面との切り替えの瞬間、徐々にではなく急激に重くなるから別の事かと思っていました
ノーショットで行っても重かったので撃破エフェクトは違うし、なんかあったかな……
これだけではわからなさそうだったらまた全アップします
-
もういっそテクスチャだけ変えてスクリプト全公開しちゃえばいいんではなかろうかw
それでも原因判るかどうかは保証できかねますが…。
-
雑魚敵画像はただの〇とかにすればそれっぽくなるから、210さんの通り全公開した方が良いかも。
弾幕風5年やってる癖に今更な質問だけど、初級者と中級者、上級者と超上級者の区別って、どの辺なんだろう…
-
あと、タイトル等の画像が若干ぼやけてるので少し気になりましたが、画像は2の累乗が最も?綺麗に表示されます。
-
盛大に自分の主観交じりでいいんなら
初級者:スクリプトのダウンロードで精一杯・単純な軌道の弾幕なら作れる
中級者:画像差し替えができるようになる・エフェクトを自作できるようになる
上級者:頂点エフェクトを理解している・関数を組み合わせてオリジナル弾幕が作れる
超級者:素材から何まで自分で用意できるようになる・誰にも聞かずにスクリプトエラーをつぶせる
変態:弾幕風で違うゲームを作り始める
まーこんな感じですかね(ツッコミお待ちしてます)
因みにエフェクトをきれいに表示するコツは
1.画像サイズを2の累乗(16,32,64,128,256,512,1024)のサイズで等倍比率にする
2.UVや頂点座標・描画座標に小数点が混じらないようにする。
以上の二点を守っていればおk(v0.12mは画像透過の仕様のせいでやや黒ずみがち)
-
ttp://coolier.dip.jp/th_up4/index.php?id=6551
とりあえずてきとーに差し替えて全アップしました。面倒だったので自作のものは差し替えていない&
前の全アップ時にも書いた通り原作自機ボスオリキャラものなので変な立ち絵とか入ってますがおきになさらず
動作テストしてないので変なとこで変なことになったらごめんなさい
-
>>213
ttp://coolier.dip.jp/th_up4/index.php?id=6552
タイトルや外枠に自作タイマーくらいしか作れないから、自分は素人同然の初級者だな。うん。
|
|
掲示板管理者へ連絡
無料レンタル掲示板