したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

貴方が作る東方STG〜東方弾幕風【2スレ目】

1名無し妖精:2017/03/22(水) 00:08:14 ID:fJyUS.dg0
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

160名無し妖精:2018/01/13(土) 18:34:40 ID:.PMF0e2A0
>>159
「弾」が「何に」ぶつかるときなのか判らんので適当にエスパーしますが
もし「弾同士」ならばオブジェクト弾で弾の位置を取得して、距離比較してあげてください

161名無し妖精:2018/01/13(土) 20:55:11 ID:4cOXHq.o0
>>160
ありがとうございます
弾同士です

162名無し妖精:2018/01/19(金) 01:18:30 ID:iESKDV5o0
>>158
なるほど、Z座標を指定するとは思わなかった…しかし円筒背景をどうやるか思い出せない…
let angle=0;
loop(180){
//一部省略
SetGraphicAngle(angle,0,angle);
DrawGraphic3D(X+radius*cos(angle),0,Z+radius*sin(angle));
angle+=2;
}
こんなんだったかな…?

163名無し妖精:2018/01/20(土) 18:28:42 ID:cgnedZJY0
初心者です

一つの弾から連続で弾を出すには
AddShot(0,1,2,0);AddShot(1,1,2,0);AddShot(2,1,2,0); ...
これを省略したいのですが
どうすればいいですか

164名無し妖精:2018/01/21(日) 01:18:42 ID:hwPPC4fU0
大分複雑に作られてるんやなすご

165名無し妖精:2018/01/21(日) 10:52:53 ID:VeXo0QM20
>>163
それは「大本の弾が画面から消えるまで、弾を出し続けるようにするには」という意味でいいのかな?

166163:2018/01/21(日) 11:20:54 ID:nxmMEpvY0
>>166
そうです

惑星がガスを噴出するのを表現したいので
AddShotの一つ目の引数が邪魔と言うか
if(Frame > 60){AddShot( ,1,3,0);}
みたいなことは
できますか?

167名無し妖精:2018/01/21(日) 17:03:57 ID:VeXo0QM20
>>166
その場合は、AddShotを使うよりもオブジェクト弾にしたほうが簡単な気がする。
また、オブジェクト弾を扱うには、マイクロスレッドがほぼ必須となる。
もしもわからないなら、マイクロスレッドを理解してからのほうがいいと思うし、
純粋な弾幕にも応用できるから。

168名無し妖精:2018/01/23(火) 17:10:22 ID:17MRoCT60
レーヴァテイン系レーザーだけAddShotを使ってる自分は異端かもしれない…

169名無し妖精:2018/02/06(火) 18:14:37 ID:r1lCS.560
0.12mでも最近の原作みたいな吹き出しアイコンの会話って出来るんだろうか
会話のこと忘れてて立ち絵大きめのサイズで描いちゃったから吹き出し会話できないと立ち絵が切れちゃうけど
作り方が検討も付かない。吹き出しに文字入れた画像を連続で表示するとか?画像数凄まじい事になるから無理か

170名無し妖精:2018/02/06(火) 21:18:27 ID:NXD5.ijE0
DrawTextで何とかできなくもない
デフォルトフォント固定という致命的な欠点があるが…

171名無し妖精:2018/02/07(水) 17:11:58 ID:kd8TVzgM0
DrawTextって外枠への描画は出来なかったような気がするが…どうだろう。

172名無し妖精:2018/02/07(水) 17:49:36 ID:97BMfIOE0
リファレンス見たら「結構重い」とか書かれてるし
プリレンダ安定だわな

173名無し妖精:2018/02/07(水) 21:34:54 ID:kd8TVzgM0
別のゲームにあるファンネルという遠隔武装を真似したいけど、挙動設定から分からなくて泣ける…

「敵から発射→ある程度のランダム性を持たせながら自機周辺(自機からの距離はランダム)に移動→停止と同時にレーザーの発射角度を固定→レーザー発射後…適当に消す」
もしや全部オブジェクト弾で出来そうかな?

174名無し妖精:2018/02/08(木) 21:39:16 ID:0wlGPvKg0
ようは「ボスの座標から自機周囲への座標」を取得して、そこから距離と角度を求めて速度を割り出せばいい話やね
挙動の再現に悩んだら、必要になるであろうデータの値やイメージした挙動をメモ帳に書き連ねて整理しながら考えるといいよ

175名無し妖精:2018/02/09(金) 02:06:22 ID:Mlt.IaKU0
むしろ、そのあたりの挙動はPH3のほうがやりやすいような気もする
自機も敵も弾も、全部オブジェクトとして指定できるから

176名無し妖精:2018/02/09(金) 15:50:00 ID:ZGKA6XZk0
V2で無理矢理ステージスクリプト作ってるんだけど、なんか中ボス以降に
雑魚敵を出すと敵が1匹でも異様に重くなるんだけどなんでだろう
中ボス前に出した敵の使いまわしだから特別重くなるわけないはずなのに
敵が画面内から居なくなった途端軽くなるから雑魚が問題なのは間違いないんだけど
中ボス前の雑魚では重くならないし理由が全く分からない

177名無し妖精:2018/02/09(金) 17:55:44 ID:ZGKA6XZk0
雑魚を呼び出す度に雑魚のグラフィックをロードしてるせいかと思ってステージスクリプト側で
変数にパス入れて、雑魚敵のスクリプトではロードしないようにしようと思ったら
まさかの未定義の何とかってエラー吐く……ステージ側で設定した変数って雑魚敵でも使えなかったっけ?

178名無し妖精:2018/02/09(金) 18:24:55 ID:EmnLb8vw0
>>176
試しに中ボス抜きで動かしてみるのはどう?
消したと思った中ボスが残ってたり、中ボス前の敵が消されずに残ってたりは…無さそうかな。

179名無し妖精:2018/02/09(金) 18:38:01 ID:ZGKA6XZk0
>>178
やってみたけど中ボスありと大体同じような場面で重くなったからボスは関係無かったっぽい
色々試してみたけどボムで全部ぶっ飛ばしたりすると重くなるのが後になったり、威力低いショットばっかり使って
道中の進行を遅らせてると中ボス直前にも重くなったりしてるから時間経過っぽい?

180名無し妖精:2018/02/09(金) 21:40:25 ID:/Nng1jCI0
どっかでメモリリーク起こしてるとしか思えない挙動だなぁ。
変数のパスが微妙に異なってるテクスチャを何回もロードしてるとか
常駐タスクで何かやらかしてるか。デバッグウィンドゥやログを出せば何かわかるかもしれない

181名無し妖精:2018/02/09(金) 23:02:01 ID:NepWoIz.0
パスに大文字と小文字を間違えて記述してるとか…
パスの指定先を間違えてるか、そもそも指定場所のファイルが無いか…
音声ファイルも拡張子を間違えると鳴らす度に音量が際限なく上がっていく仕様が…

182名無し妖精:2018/02/09(金) 23:41:18 ID:ZGKA6XZk0
常駐タスクが悪さしてると考えて色々漁ってたんだけども、雑魚敵が画面内に居る間だけ重くなるから
ステージ側の問題ではおそらくないと思うってのがまた厄介で解決法が解りづらい……
個人的にもしかしたらこれが問題か?って思うやつを纏めてみたけど、実際に動かすことはできないようになってるのでごめんなさい
ttp://coolier.dip.jp/th_up4/index.php?id=6546
効率のいい作り方とか全然してないからスクリプト書ける人からしたらふざけてるの?って言いたくなるような
処理ばっかしてるけど今まではこんな感じのばっかりで動いてたからそう異常は起こらない筈なんだけどな……

183名無し妖精:2018/02/10(土) 12:05:03 ID:SnkqfPJg0
覗かせて頂きました。
もしかしてだけど、182さんのscriptフォルダ内は全部小文字になってる?それとも頭文字だけ大文字?
例)script¥th13→script¥Th13など
もし全部小文字ならパス指定も小文字(SE→se)にしないと正しく認識しないらしいのでご注意を。
DrawGraphicの位置が気になったけど気にしないとして、画像ロード関連はコモンデータでtrueか分岐させれば良いかも。

特に異常があるようには見えないんだよな…

184名無し妖精:2018/02/10(土) 12:08:13 ID:SnkqfPJg0
追記、某氏製作の神霊廟の二次創作では、雑魚敵で鳴らすダメージ音ファイルのパス(若しくは配置場所)が間違っており、命中させる度に処理落ちが発生してました。
もしかしたら処理落ちはこの類なのかも。

185名無し妖精:2018/02/10(土) 15:29:21 ID:kj.Wo1CA0
昔の自分のスクリプト引っ張り出してきて182さんの奴と比較してみたら、
CompileEnemyFromFileでバイトコード変換せずにファイルパス直書きで呼び出してるね。
つまり敵を呼び出す度に変換の手間が生じてるので、そりゃあ処理時間もメモリも食いますよね

ttp://coolier.dip.jp/th_up4/img/th4_6547.txt
というわけで適当にエディタの検索置換窓使ってパス書き換えたり事前コンパイル関数を追加してみた
動作チェックはしてないので、参考程度に

186名無し妖精:2018/02/10(土) 15:39:25 ID:i8s8Cseg0
182です 自分のファイル名は基本癖で頭文字だけ大文字になってるけど、全部小文字のがあったりします
>>184 一応効果音のパス自体は合ってました。効果音入れてるファイルがscript内のSEファイルなので
エフェクトとか全部取っ払っても結局重くなるから原因は185さんが言ってる読み込み関係?
とりあえず色々試してなにか進展があったらまた書きます

187名無し妖精:2018/02/10(土) 16:07:10 ID:i8s8Cseg0
自分で試した結果何も進展なかったので185さんの見本を変数名こそ少し自分用に変えたものの使ってみましたが、
まだなんか微妙に重く……撃破時の効果音とエフェクトを取っ払っても代わりありませんでした。
スクリプト全体丸ごと乗っけなかったのは単にベースとして原作素材使ってたので差し替え先がまだないってだけだったので、
一部(結構大半)の画像無しでよければ後で全体像乗っけておきます

188185:2018/02/10(土) 16:33:42 ID:kj.Wo1CA0
コンパイルしてもダメって事はまだ何か問題があるんですかね
PCスペックは足りてるんですよね?

189名無し妖精:2018/02/11(日) 15:59:28 ID:k2lZirSY0
もっと激しい弾幕とかエフェクトがついているボスが動くのでスペックの問題はさすがにないと思うんですけど、
スペック自体はお世辞にも高いとは言えない奴です。例の重くなる場所まで到達すると雑魚敵1匹で弾が出ていなくても酷い事になりますし
とりあえず遅れましたが全体版で一応プレイも可能なはずです。もともと自機原作敵オリキャラタイプのゲームだったのでオリキャラのファイルが入っていますができればお気になさらず
ttp://coolier.dip.jp/th_up4/index.php?id=6549

190名無し妖精:2018/02/11(日) 18:08:02 ID:.i4JgnSo0
>>189
早速テストしました。
自機のホーミングに何らかの問題があると思われます。自作した自機にしたところ、異常が無かったので。
多分出てない自機弾があったり、追尾対象のIDが多くなると重くなった気がします。

…2GHz、2GBのPCでスペースキーでの早送り速度が110fpsしか出ないのも気になりましたが、そこは無視です。

191名無し妖精:2018/02/11(日) 18:30:54 ID:.i4JgnSo0
breakってどういう効果だったかな…returnしか使ってないから忘れかけてる…

192名無し妖精:2018/02/11(日) 19:33:54 ID:k2lZirSY0
ってことは、前に言ったボムで飛ばすと重くなるのが遅くなったりしたのはボム中にはショットが出ないから
その分だけ重くなるのが遅くなったってことかな……?敵を倒さないと重くならないというテスト結果も出てたけど、
敵を倒さないようノーショットでやってたから確かにショットが原因なら辻褄はあうかも
>>191
検索かけてきたらbreakは最も内側のwhile、loopから脱出します。って書いてあった。
自分でもよくわからずに「使ったら軽くできるかもしれない!!!!!」とか考えて使ってた気がする(実感は無し)

193名無し妖精:2018/02/11(日) 20:40:16 ID:.i4JgnSo0
気になったのが、ホーミングにatanを使ってること。アレは確か1つの敵にしか追尾しないんだよね…
patcheだったかな?アレのホーミング処理を参考にすると、全弾独立したホーミングや、スカイサーペントも組めますぞ。
…自作した機体、良ければ使います?

194185:2018/02/11(日) 22:07:08 ID:uFd3kaG20
breakはループを破壊して、その直下にある処理へ進む。
returnはループ内の処理を中断して脱出する。

もしループの下にエフェクトやSEなんかを置いていた場合、
breakの場合は流れるが、returnの場合は流れない。
多分リターンの方が軽い

>>189
高速ショットのホーミング垂れ流しにし続けたらfpsが30近くにまで低下したので
ホーミングショットのルーチンに何かしらの欠陥があると思われます。

あとショットキー押しっぱなしでボムった後にショットが出なくなりました。
これバグですかね?

195185:2018/02/11(日) 22:09:44 ID:uFd3kaG20
あ、ショットの件は書いてありましたね。失礼。

196名無し妖精:2018/02/11(日) 23:45:48 ID:k2lZirSY0
>>193
ホーミングにatanを使っている件については、ホーミングが弾幕風にデフォで入っているルーミアのアレしかわからず
くにょくにょとしたキモい動きさせるために弾幕風のサンプルだったかにあった「自機を追尾してくる敵弾」の方の処理を持ってきてたんですよね……
もしお借り出来るというのであればこのバグだらけ霊夢よりずっと快適に使える気がするので是非と言いたい所です……
他には内部覗いて解る通り魔理沙と咲夜も突っ込む予定ですが、バグ原因がホーミングだけならそっちは大丈夫……かな……?
>>194
確認していませんが本当にそうならバグですね……ボム中に変数リセット忘れてますねたぶん……お恥ずかしいばかりで
まさか処理落ちの原因が道中じゃなくて自機だとは思っていなかった。ホーミングの処理も1回変更してたけど
その時も若干マシにはなっただけで重くはなっていたからすっかり騙された……

197名無し妖精:2018/02/11(日) 23:56:54 ID:k2lZirSY0
でもホーミングに1回直線的に敵を追尾するだけの貫通しないデフォルーミア的な奴に変更したときも
僅かながら処理落ちしてたってことは自機自体どっかイカれてる可能性ありそうかな……技術が追い付いてないのに原作に近づけようとなんてするもんじゃないなぁ

198190:2018/02/12(月) 13:15:02 ID:P/HrnR7A0
>>189
お待たせいたしました。風神録風霊夢・誘導装備です。
ttps://ux.getuploader.com/supermario/download/26
初期設定ではパワーシステムがONになっています。必要に応じて変更してください。

199名無し妖精:2018/02/12(月) 15:14:51 ID:RR2HFGvU0
>>198
感激しました……こちらでも快適動作で久しぶりにバグっていない道中を見ることが出来た……
やはり若干威力が高いので威力調整はこちらでしておくとして、それ以外にもこちら側の仕様に
変更した方がいい部分などはあるでしょうか?パワーが1面で最大まで上がるほど上がりが早かったのでそのあたりかな?

200名無し妖精:2018/02/12(月) 15:49:00 ID:RR2HFGvU0
>>198
感激しました……こちらでも快適動作で久しぶりにバグっていない道中を見ることが出来た……
やはり若干威力が高いので威力調整はこちらでしておくとして、それ以外にもこちら側の仕様に
変更した方がいい部分などはあるでしょうか?パワーが1面で最大まで上がるほど上がりが早かったのでそのあたりかな?

201名無し妖精:2018/02/12(月) 15:50:17 ID:RR2HFGvU0
時間差でなんか投稿されちゃってる……お気になさらず

202名無し妖精:2018/02/12(月) 16:12:50 ID:RR2HFGvU0
あ、単にパワーが早く増えてたのは何度か雑なプレイで死んでたせいでした。

203190:2018/02/12(月) 17:25:27 ID:P/HrnR7A0
>>202
被弾したら本来Pを出すのですが、技術が無い(多分出来るけど綺麗に飛ばせない)ので、強制的に330にしています。
ちなみに少し弄ればA装備にも可能です。

204名無し妖精:2018/02/18(日) 03:36:53 ID:.OghnIb.0
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面になったときは一切問題ないのですが……。

205名無し妖精:2018/02/18(日) 03:50:23 ID:.OghnIb.0
先ほど試してきたのですが、1面→3面→2面の順番でやると3面が普通で2面が重くなったので、
3面が問題というよりかは3番目に来るステージがおかしくなるようです。時間経過によるものなのか、
切り替え時に変な処理をしてしまっているのかは分かりませんが、せっかく良い自機まで借りて
ここまで作ったのでどうにか完成はさせたいな……

206190:2018/02/18(日) 12:00:26 ID:IxOeMCR20
ステージ切り替え時の処理に問題があるのかな…自分のやつは1面〜Phまでぶっ通しでも異常無しだし…
各ステージタスク起動時にBGM以外で何か読み込んでない?

207185:2018/02/18(日) 17:03:38 ID:5xy5XHnY0
ステージ終わる時にリソース開放してなくてメモリリークしてるとか、
ステージの共通ルーチンの処理が重くて積み重なった結果なのかも

タイトル画面のエフェクトの組み方とか見てると
「同じUVでテクスチャパスだけ切り替えて表示する」とか「loopで毎フレームletしてる」とか
細かい所にRAMの無駄遣いがかなりあるので、この辺の最適化で変わったりしそうです。

あとすごく今更ですが、弾幕風v2はVsyncパッチを当てない限り「窓モードでは57fpsで安定」です

208名無し妖精:2018/02/18(日) 17:47:57 ID:.OghnIb.0
今までほぼ全く同じ処理をして作った事のある過去作が普通に動く(弾の出しすぎとかエフェクトミスで重かったりはあるけども)ので、
それだけに今回だけバグってるのがよくわからないんですよね……エフェクト関係の無理やりな処理もそうですが、
一応過去に作った奴はこんな無理やりでも6面+EXまで特別問題はなく動いていたので
>>306
タスク管理が面倒になって、一つのステージタスクだけ読み込んであとは1つのタスクでエフェクトとか敵とかBGM以外呼び出さずぶっ続けで
ステージを流してるので余計なものを読み込んじゃってるのはないと思うんですけどね……ステージ内で何か変えたところといえば
CompileEnemyFromFileしかありませんが、さすがにこれで重くなるわけがないし

209名無し妖精:2018/02/18(日) 17:52:08 ID:.OghnIb.0
>>207 Delete系を全然使っていないせいで積み重なったのが重くなったってことでしょうか……?
3面との切り替えの瞬間、徐々にではなく急激に重くなるから別の事かと思っていました
ノーショットで行っても重かったので撃破エフェクトは違うし、なんかあったかな……
これだけではわからなさそうだったらまた全アップします

210185:2018/02/18(日) 18:56:04 ID:5xy5XHnY0
もういっそテクスチャだけ変えてスクリプト全公開しちゃえばいいんではなかろうかw
それでも原因判るかどうかは保証できかねますが…。

211190:2018/02/18(日) 19:39:15 ID:IxOeMCR20
雑魚敵画像はただの〇とかにすればそれっぽくなるから、210さんの通り全公開した方が良いかも。

弾幕風5年やってる癖に今更な質問だけど、初級者と中級者、上級者と超上級者の区別って、どの辺なんだろう…

212190:2018/02/18(日) 19:40:59 ID:IxOeMCR20
あと、タイトル等の画像が若干ぼやけてるので少し気になりましたが、画像は2の累乗が最も?綺麗に表示されます。

213185:2018/02/18(日) 21:54:04 ID:5xy5XHnY0
盛大に自分の主観交じりでいいんなら

初級者:スクリプトのダウンロードで精一杯・単純な軌道の弾幕なら作れる
中級者:画像差し替えができるようになる・エフェクトを自作できるようになる
上級者:頂点エフェクトを理解している・関数を組み合わせてオリジナル弾幕が作れる
超級者:素材から何まで自分で用意できるようになる・誰にも聞かずにスクリプトエラーをつぶせる
変態:弾幕風で違うゲームを作り始める

まーこんな感じですかね(ツッコミお待ちしてます)

因みにエフェクトをきれいに表示するコツは
1.画像サイズを2の累乗(16,32,64,128,256,512,1024)のサイズで等倍比率にする
2.UVや頂点座標・描画座標に小数点が混じらないようにする。

以上の二点を守っていればおk(v0.12mは画像透過の仕様のせいでやや黒ずみがち)

214名無し妖精:2018/02/19(月) 01:14:39 ID:hG1fp/bs0
ttp://coolier.dip.jp/th_up4/index.php?id=6551
とりあえずてきとーに差し替えて全アップしました。面倒だったので自作のものは差し替えていない&
前の全アップ時にも書いた通り原作自機ボスオリキャラものなので変な立ち絵とか入ってますがおきになさらず
動作テストしてないので変なとこで変なことになったらごめんなさい

215190:2018/02/19(月) 17:41:35 ID:n2WtSIgg0
>>213
ttp://coolier.dip.jp/th_up4/index.php?id=6552
タイトルや外枠に自作タイマーくらいしか作れないから、自分は素人同然の初級者だな。うん。

216185:2018/02/19(月) 18:26:50 ID:WVyelRTA0
>>214
3面ボスのスペル3でボスが攻撃してくる度に激しい処理落ちが発生しました
内部スクリプトを見てPlaySEをコメントアウトしたらfpsが落ちずに軽々と動いたので、
効果音ファイルのロードに失敗してメモリを無駄遣いしてしまってる模様。
発生理由的には >>184 のレス内容が近いでしょうね。

これ、ファイル全部取っ払ってるからソレが原因だってすぐわかりましたけど
もし効果音のファイル名をどっかで打ち間違えていたら、コレと同じことが起こり得るので
ファイルパスの定数はincludeで使いまわした方が作業効率的にも絶対得です。

あ、因みに当方の環境では上記以外の処理落ちはそこまで気になりませんでした。

217名無し妖精:2018/02/19(月) 19:28:15 ID:hG1fp/bs0
3ボスのスペル3というと弾が3段階に分裂するヤツですかね?差し替え版は色的に解りづらいですが
こっちでは何ともなかったり微妙に重かったりまちまちでそこまで激しい処理落ちは遠しプレイで重くなっている状態でしか
発生しなかった気がするので多分効果音ファイルが無いせいであっていると思われます。
向こうの環境で何もなくて自分の環境だと突然重くなるって原因なんだろう……他人にやってもらうためというよりかは
忘れた頃に自分でプレイするのが目的なので自分の環境で動かないのはなかなか辛い

218名無し妖精:2018/02/19(月) 19:58:24 ID:hG1fp/bs0
投降後自分でも差し替え版をプレイしてみましたが、自分の環境では2面→3面から移ると49FPSになるのは変わっていませんでした。
ファイルが無いので本来SEを鳴らす場所でものすごい処理落ちが起き、2面ボスのスぺカ2とかは連続で効果音が鳴るので5FPSまで落ちたり……
通常版の方は3面に入るまでは何ともありません。ちなみにどうでもいい話なのですが、差し替え版の方は#東方弾幕風 を
消し忘れてそのままスクリプト選択画面に残っていやがりますが多分不具合とは特に関係はないです。

219名無し妖精:2018/02/25(日) 22:22:41 ID:z0WyQsLE0
例のあの人鍵垢になってる
またヲチられたのかな

220185:2018/02/27(火) 22:51:42 ID:aCwqb/Rc0
すごく今更な話だけど、ph3のスクリプトテンプレートって需要あったりする?
本家風の開幕高防御力実装したものとか、リプレイ保存シーンとかアイテムスクリプトとか諸々

実例がないからどう説明していいやら…

221名無し妖精:2018/02/28(水) 01:38:09 ID:00vBRows0
>>185
なくはないはず、としか言えないかな。
なぜかph3は敬遠されがちだけど、全部の要素をタスクとオブジェクトで構成すると考えれば、
それほど難しいとは思わないんだけど。

222名無し妖精:2018/02/28(水) 02:02:54 ID:Apeid2d60
>>219
誰か気になるけどそういうスレじゃないんで。

>>220
ph3のテンプレ…是非お願いしたいです。

223185:2018/02/28(水) 05:34:12 ID:u1s41r.Y0
>>221
まぁ自分でもかなり微妙だなとは思ってたりするんですよね
ph3触るような人ってシステム自前で作りたくなった人だろうから、
テンプレ化すると没個性になるという懸念も…。
しかしだからと言って「自分でやれ」と全部投げるのも敷居高いままだし…

デフォルトのリプレイ保存シーンが「一度決定したら保存するまで選択画面に戻れない」
という理不尽な仕様があるんでこの辺だけでも解決したい所。

224名無し妖精:2018/02/28(水) 19:56:47 ID:hZjkXW6A0
>>219
下手に煽ったらまた弾幕風スレ母艦予告しかねないぞ

225185:2018/02/28(水) 22:14:09 ID:u1s41r.Y0
>>222
モチベ湧き次第になると思うので作れるかどうかはわかりませんが
作れたら汎用性高めた上で配布したいと思います。

226名無し妖精:2018/03/04(日) 21:31:49 ID:k0ajK0Fw0
#東方弾幕風
#Title[画面揺らし]
#Text[作成中]
#Image[]
#BackGround[User]
#BGM[]
#PlayLevel[]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
let GCSD = GetCurrentScriptDirectory;
let Number = 0;
let Frame = 0;
let Bossimg = GCSD ~ "img\ExRumia.png";
LoadUserShotData(GCSD ~ "img\shot_All.txt");
@Initialize{
CutIn(YOUMU,"画面揺らし",0,0,0,0,0);
CreateCommonDataArea("ScreenVibrationX");
CreateCommonDataArea("ScreenVibrationY");
SetX(GetCenterX);
SetY(GetCenterY - 160);
SetScore(50000);
SetGraphicRect(1,1,64,64);
SetInvincibility(30);
LoadGraphic(Bossimg);
SetColor(255,64,255);
Concentration01(120);
SetLife(1200);
SetTimer(80);
}
@MainLoop{
ScreenVibrationXY;
SetCollisionA(GetX,GetY,24);
SetCollisionB(GetX,GetY,12);
}
@DrawLoop{
SetColor(255,255,255);
SetRenderState(ALPHA);
SetAlpha(255);
SetTexture(Bossimg);
if(int(GetSpeedX())==0){
SetGraphicRect(64,1,127,64);
}
else if(GetSpeedX()>0){
SetGraphicRect(192,1,255,64);
}
else if(GetSpeedX()<0){
SetGraphicRect(128,1,191,64);
}
DrawGraphic(GetX(),GetY());
}
@Finalize{
DeleteGraphic(Bossimg);
}
task ScreenVibrationXY(){
if(Number == 0){
let VibrationX = rand(-10,10);
let VibrationY = rand(-10,10);
SetCommonDataEx("ScreenVibrationX","ScreenVibrationX",VibrationX);
SetCommonDataEx("ScreenVibrationY","ScreenVibrationY",VibrationY);
SaveCommonDataEx("ScreenVibrationX",GCSD~".\bat\ScreenVibrationX.dat");
SaveCommonDataEx("ScreenVibrationY",GCSD~".\bat\ScreenVibrationY.dat");
let GetVibrationX = GetCommonDataEx("ScreenVibrationX","ScreenVibrationX");
let GetVibrationY = GetCommonDataEx("ScreenVibrationY","ScreenVibrationY");
}
Number = 1;
SetPlayerX(GetPlayerX + GetVibrationX);
SetPlayerY(GetPlayerY + GetVibrationY);
loop(1){
yield;
}
SetPlayerX(GetPlayerX - GetVibrationX);
SetPlayerY(GetPlayerY - GetVibrationY);
Number = 0;

yield;
}
}

GetVibrationY、GetVibrationYが未定義になります。
解決方法分かりますか。
0,12mです。

227名無し妖精:2018/03/04(日) 22:38:13 ID:h9AhdYBE0
>>226
if文の中で変数を宣言(let GetVibrationX)しているからです。
宣言する場所をif(Number == 0)の上に変更してやれば大丈夫でしょう。

228226名無し妖精:2018/03/04(日) 23:25:04 ID:k0ajK0Fw0
こんな長文なのに、解読・説明・手直しありがとうございます。

229名無し妖精:2018/03/04(日) 23:37:25 ID:h9AhdYBE0
>>228
どういたしまして。掲示板を使うのは初めてのようなので
次からE-mailの欄に「sage」と書いてくださいね。

230名無し妖精:2018/03/06(火) 19:11:33 ID:Z210VO6c0
画面揺らすのなら敵にも設定しないとね()

231名無し妖精:2018/03/06(火) 19:12:47 ID:Z210VO6c0
間違えた挙句途中送信まで…もし画面揺らしを実装するなら、敵や自作した背景にも適用させた方が見栄えは良いかも。
的外れだったらすまぬ。

232名無し妖精:2018/03/06(火) 20:28:43 ID:qWkmKueQ0
ph3なら2Dcameraという概念があるんで実装楽勝なんですけどね

233名無し妖精:2018/03/15(木) 11:46:05 ID:LKKIXY7g0
もしかしたらだけど、0.12mに慣れすぎている人ほど、ph3は難しく感じるのかもしれない

234名無し妖精:2018/03/15(木) 16:20:34 ID:izHUernw0
v0.12mの機能のほとんどがph3で削除されてるし、リソースの使い方も変わってるし
同名変数宣言も厳しくなってるからまぁ…v2に長くいる人ほど移行するのが難しいかもしれない
一応関数互換表はリファレンスにあるけど更新止まってるしねアレ

235名無し妖精:2018/03/15(木) 18:17:14 ID:juInHXGY0
ph3の関数をV2で簡易再現する物好きも居ますし←

236名無し妖精:2018/03/15(木) 21:38:04 ID:izHUernw0
V2の関数互換スクリプト作ったはいいけど速度遅くなるし間違えやすくなるし
結局ph3の関数名を覚えた方が書く方もコンパイル速度も早いというオチ

●軽量化メモ
α値が絡まない背景画像をdds形式にして圧縮するとファイルサイズが平均3割くらい削れます。
ゲームフォルダの容量を削れるのでDL速度を速くできるし、画像ロードも早くなるし、RAMも空くしと良い事ずくめ。
問題は弾幕風で扱えるDDS形式が古くて、画質劣化とのバランスから一番実用的なフォーマットが"DXT5"くらいっていうこと。
変換は「NvcompressFrontEnd.exe」使うとD&Dで一括で出来て便利ですぞ

237名無し妖精:2018/03/15(木) 22:16:01 ID:LKKIXY7g0
しじみさんが今までに出したゲームはph3でオープンソースにしてくれてるから、
教材としての価値もある。
ただ、理解というか、解読するのにものすごく手間がかかるのが難点ではあるけど。

238名無し妖精:2018/04/11(水) 16:03:32 ID:70FuUjP.0
今更ながら輝針城咲夜のシルバーブレードってどういう処理してるんだろう

239名無し妖精:2018/04/11(水) 18:37:02 ID:krbVXPLE0
どーる氏が輝針城自機再現してたからソレ見れば早いと思うよ(th4_5774)

240名無し妖精:2018/04/11(水) 19:45:44 ID:70FuUjP.0
スマン時間を遅くする処理が知りたかったんだ

241名無し妖精:2018/04/12(木) 19:51:48 ID:g43DlAnc0
Slow関数だとゲームスピードに影響出るから、それ防ぎたいなら敵の移動は全部三角関数のベクトルで座標制御して
自機では銀剣攻撃時に敵オブジェへオブジェバリュー経由で遅延指定→敵側で遅延値受け取って挙動干渉、とか考えた。
超面倒

242<地獄に招待されました>:<地獄に招待されました>
<地獄に招待されました>

243名無し妖精:2018/05/10(木) 15:10:28 ID:N8rOVsk20
例の人って誰?

244名無し妖精:2018/05/27(日) 22:35:08 ID:8eQcaNnU0
最近になってようやくPh3触ったんだけども、何故か移動とかはしてくれるのに弾撃てないし効果音とかBGMも鳴らない。
#BGMの方では鳴るからパスが間違ってるとかはありえないし、なんでだろう……少し前に触った時は出来てたのに
if(Frame1==1){PlaySE("script\SE\Shot1.wav");ObjMove_SetDestAtWeight(Enemy,Cx,150,10,8);}
if(Frame1==100){PlaySE("script\SE\Shot1.wav");ObjectShot(GetX+20,GetY-23,5,Angle1,5,20);Angle1+=7;Frame1=96;}
やってる内容はMainloopでこれやってるだけなんだけど、なんで突然できなくなったんだろう……

245名無し妖精:2018/05/27(日) 22:42:58 ID:8eQcaNnU0
デフォルトの弾設定に戻してみたらSEは鳴らないけど弾は撃たれたけど画像が表示されてなかった?昼までは出来てたのになんでだろう
SEといいBGMといい、もしかしてPh3って直接のパス指定効かない?めちゃくちゃ不便だな……

246名無し妖精:2018/05/28(月) 12:05:47 ID:10GaZpgY0
>>245
ph3はむしろ、全ての事象をオブジェクトとみなして、マイクロスレッドで管理するという発想が必要じゃないかと。
@Mainloopに直接挙動を書き込む方法は、そもそもサンプルではやってなくて、@Initialize内のTWork、TRender、TEndで管理してる。
TWorkが@Mainloop、TRenderが@Drawloop、TEndが@Finalizeに相当するマイクロスレッドだから、それを読み取って
アレンジしていくのが順当じゃないかと。

247名無し妖精:2018/05/28(月) 12:21:29 ID:10GaZpgY0
全てをマイクロスレッドで管理するという発想ができれば、@Mainloopの部分にはyieldだけあればいいというのがわかる。
0.12が自動的にやってくれていた部分も自分でスクリプトを組まなきゃならないのが、ちょっと面倒かもしれないけど、
一度マイクロスレッドを組むことができたら、それをテンプレにしてアレンジしていけばいいんじゃないかな。
SEやBGMの管理なんかでも、専用のマイクロスレッドを作って、数が増えてきたら配列と変数で管理するようにすれば、かなり楽。

248名無し妖精:2018/05/28(月) 18:21:57 ID:AJ/m8qcM0
>>246,247 何かミスったのかMainloopにyield入ってるのにタスクが毎フレームの処理をしてくれなかったからしょうがなくMainloopに突っ込んだだけだけで一応当初はTworkに同じような処理突っ込んでました。
もう一つ疑問、今日やってて出来なかったんだけど、ObjPrim_SetVertexPositionって何をどう書けばいいんだろう?ただの正方形の画像は表示されたけど、縦と横のサイズが違うと表示できない……
UVT(obj,0,0,192);UVT(obj,1,0,223);UVT(obj,2,15,192);UVT(obj,3,15,223);
Position(obj,0,-7,-96,-0);Position(obj,1,-7,111,-0);Position(obj,2,7,-96,0);Position(obj,3,7,96,0);

249名無し妖精:2018/05/28(月) 23:43:18 ID:10GaZpgY0
>>248
ごめん、UVT関係は不勉強なんだ。
ボスの画像管理なんかはSPRITE2Dで十分可能だから。
ただ、SE関係だったら、
task Koukaon(SENum){
let objSE=ObjSound_Create;
let dir=GetCurrentScriptDirectory();
let path=[dir~"se/question.wav",
dir~"se/shot05.wav",
dir~"se/slash06a.wav",
dir~"se/slash06b.wav",
dir~"se/chase04.wav",
dir~"se/largelaser.wav",
dir~"se/laser08.wav",
dir~"se/laser09a.wav",
dir~"se/laser09b.wav",
dir~"se/shot10a.wav",
dir~"se/shot10b.wav",
dir~"se/shot01a.wav",
dir~"se/shot01b.wav",
dir~"se/spring02a.wav",
dir~"se/spring02b.wav",
dir~"se/shot00.wav",
dir~"se/shot00b.wav"];
ObjSound_Load(objSE,path[SENum]);
ObjSound_SetLoopEnable(objSE,false);
ObjSound_Play(objSE);
}
といった感じで、いくつか効果音ファイルを保管しておけば、
メインのスクリプト内の、音を鳴らしたい部分で

Koukaon(1);

とかいう感じに挿入すれば、弾の発射や敵の移動と連動して、音を鳴らすことはできるはず。

250名無し妖精:2018/05/29(火) 00:03:18 ID:bfs6gbEk0
>>249 音声までオブジェクトになったのね……本当に何もかもオブジェクトなんだなぁ
UVTに関しては0.12mの時みたいにやってみたけど、なにかが変わってるのか全然うまくかった。
let rect01=0; let rect02=192; let rect03=15; let rect04=223;
let W=(rect03-rect01)/2; let H=(rect04-rect02)/2;
ObjPrim_SetVertexUVT(obj,0,rect01,rect02); ObjPrim_SetVertexUVT(obj,1,rect03,rect02);
ObjPrim_SetVertexUVT(obj,2,rect03,rect04); ObjPrim_SetVertexUVT(obj,3,rect01,rect04);
ObjPrim_SetVertexPosition(obj,0,-W,-H,-0); ObjPrim_SetVertexPosition(obj,1,W,-H,-0);
ObjPrim_SetVertexPosition(obj,2,W,H,0); ObjPrim_SetVertexPosition(obj,3,-W,H,0);

251名無し妖精:2018/05/29(火) 00:45:47 ID:SpHMTVoA0
>>250
ちなみに、オブジェクト弾の設定は、
let obj=CreateShotA1(X,Y,speed,angle,color,delay);
という感じでできる。
また、全ての事象をオブジェクトとして扱わなければならなくなったのが面倒かもしれないが、
逆に言えばそれだけ自由度が増したということでもある。
SetMovePosition関係の関数は、これまでボスにしか適用できなかったのが、弾にも適用できることになったので、
ObjMove_SetDestAtFrameをうまく使えば、ある特定の座標に特定のフレームで弾を移動させることも可能になっている。

252名無し妖精:2018/05/29(火) 14:02:25 ID:bfs6gbEk0
>>251 そんな事まで出来るのか……使えれば自由度高いんだろうなぁ
けど簡単なエフェクトの表示すら出来ないしタイマーの取得とかも出来ないし今まで簡単に出来てた事がひたすら複雑になってて心折れたからもう0.12m戻るわ……

253名無し妖精:2018/05/29(火) 14:37:02 ID:SpHMTVoA0
>>252
0.12mで慣れちゃってる人ほど、ph3を難しく感じるというのが、何となくわかった気がする。
俺の場合は、いきなりph3から始めたから、そういうものなんだって素直に受け入れられたんだけど。

254名無し妖精:2018/05/29(火) 17:44:06 ID:P7aA5sW60
逆にシステムや自機をある程度作っておきながらV2に戻る私みたいなのもいるから…
ph3で作ったボス表示関数(V2の強化版)をV2に移植してたり。

255名無し妖精:2018/05/29(火) 18:52:53 ID:r/g0fD/M0
ph3にはオブジェクトの概念が必要だけど、さらにまともに動かすには
スクリプトのクローズやコンパイル・@Eventの理解も必要になってくるという。

関数互換表も今となっては古いし、この辺の敷居を
どうにかして下げられないものだろうか…。やっぱりテンプレ素材要るな

256名無し妖精:2018/05/30(水) 08:27:46 ID:D9tSxBTk0
0.12mをやってる人がph3に乗り換える場合、マイクロスレッドとオブジェクトを主体としたスクリプトを組めるようじゃないと
きついのかもしれないね。
わかればすごく便利なんだけど、わかるまでが大変という。
でも、マイクロスレッドって、書き方自体はサブルーチンやユーザー定義関数とほとんど変わらないから、
習うより慣れろの考えでやってみればいいんじゃないかと思うんだが。

257名無し妖精:2018/05/30(水) 15:30:10 ID:MbeyKxeQ0
5年近くも同じエンジンで制作やってれば色々出来るようになると思うよ。多分

258名無し妖精:2018/05/30(水) 17:22:00 ID:6IH73j3.0
見かけ上のMAX120%突破して習熟度150%くらいになってそう

259名無し妖精:2018/06/01(金) 00:06:51 ID:mqTZAOs.0
ガチな狂人はシェーダーは勿論ファイルオブジェクトとかバイナリすら操るんや…勝てる気がしねぇ




掲示板管理者へ連絡 無料レンタル掲示板