したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

貴方が作る東方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

2 名無し妖精 :2017/03/22(水) 00:08:50 ID:fJyUS.dg0
■当スレ推奨アイテム
現うpロダ(東方なんでも宝船)
 ttp://coolier.dip.jp/th_up4/

昔のスクリプトをお探しの方はこちらへ
 旧うpろだ観測
 ttp://www5d.biglobe.ne.jp/~coolier2/upkan.html
 イナバ物置観測
 ttp://www5d.biglobe.ne.jp/~coolier2/upkan2.html
 東方なんでも三途の渡し
 ttp://coolier.dip.jp/th_up2/
 東方なんでも八坂分社
 ttp://coolier.dip.jp/th_up3/page/

■前スレッド
貴方が作る東方STG〜東方弾幕風(1スレ目)
 ttp://jbbs.shitaraba.net/bbs/read.cgi/internet/22214/1424739072/

3 名無し妖精 :2017/03/22(水) 00:09:15 ID:fJyUS.dg0
■バグ質問前の確認事項

1.まずヘルプを読もう
 ほとんどの基礎的な答えはヘルプに書いてあります。
 基本的なプログラムの書き方も一緒になっています。
 まず一通り読んでください。ヘルプに書いてあるような質問はスレのみんなは好きじゃないです。

2.とりあえずスプリクトを公開しよう
 同じ見た目のゲームでも100人が作れば100通りのプログラムがあり、
 同じ見た目のバグでも100種類のバグがあります。
 文章だけで説明されても無限のバグ候補があるので分かりません。
 とりあえず書いたプログラムを見せてください。

3.長いプログラムはtxtアップロード
 スレに長いプログラム全体をコピーすると、それだけでスレが終わってしまいます。
 バグの原因に目星がついてるならば、バグ周辺だけをコピーしてください。
 原因がよくわからないならば、txt形式で全体をアップロードしてください。
 1-3スレ程度に収まらない場合もtxtが喜ばれます。

4.何がバグなのか
 バグのあるプログラムでも、フリーズするなど重症でない場合、演出なのかバグなのか区別がつきません。
 できるかぎり「どう動いて欲しいのか」を説明してください。

4 名無し妖精 :2017/03/22(水) 00:11:28 ID:fJyUS.dg0
取り敢えず確認しながら立てました。
一応リンク先は書き込む前に踏んで確認したり、内容を天狗のネタ帳にコピーして
出来る範囲で精査したつもりですが、粗があったら指摘願います。

5 名無し妖精 :2017/05/18(木) 12:32:46 ID:nv2olOXI0
>>1,2,3,4
作成乙です。

6 名無し妖精 :2017/05/19(金) 16:41:30 ID:ffoBbYmo0
自機作ってたんだけど、特定の弾画像だけ妙にショットの判定が縦に大きくなる謎の減少が発生して困ってる
他の弾画像使えば見たままの判定に戻るんだけどなぜか特定の弾画像だけ変になる
矩形指定も間違えてないし、同じくらいのサイズの弾使っても正常に動くのに訳がわからない
最初はオブジェ弾だから駄目なのかな、とも思ったけどCreatePlayerShot01使っても一緒、ID変えても駄目
元々普通の判定だった弾を異常の起こる弾画像に変えたら途端に駄目になったりした
誰か原因の解る人いないでしょうか。他の弾が普通の判定だから敵側の判定間違えてるわけでもないし・・・

7 名無し妖精 :2017/06/02(金) 01:34:37 ID:bimbq/T20
>>6
弾が縦に長かったりすると判定が異常な大きさになるっぽいから、どうしても縦長弾を使う場合は判定用と見た目用で2つ弾を出す必要がありそう

8 名無し妖精 :2017/06/06(火) 10:05:24 ID:M4G5RKnI0
V2でスコア上限突破って出来ないかな?変数でやっても100万あたりで増えなくなるし。

9 名無し妖精 :2017/06/15(木) 00:06:39 ID:t0H5cV3g0
>>7
返事遅れたけど、そんな仕様あったのか……初めて知った
矩形指定を横に広くしたら治った。ありがとう

10 名無し :2017/07/02(日) 08:37:53 ID:rhH2FG9I0
緋想天のゆゆさまの幽胡蝶みたいなのを作ろうとしているのですが画面端で反射させつつ扇状に弾を変化させるとか出来ますか?
出来たら方法やソースも教えてくれると助かります。

11 名無し妖精 :2017/07/05(水) 16:20:00 ID:SdM.bH8Q0
>>10
普通の反射処理をオブジェクト弾を使って作って反射後の角度を取得できるようにして、その座標と角度を基準として扇状に弾を出せばいいと思う

12 名無し :2017/07/06(木) 18:57:47 ID:3filyfRY0
11番さんありがとうございます!
もう一つ困ってることが有りまして弾から設置レーザー撃たせるソースを組んだのですがボスからのプレイヤー角度でしか撃てなくて、弾からの自機狙いレーザーを撃たせるにはどのようにすれば良いですか?因みにaddショットでレーザーは撃たせています

13 名無し妖精 :2017/07/08(土) 11:14:49 ID:GRZbw1D20
>>12
もしGetAngleToPlayerを使って角度を取得しているならこの関数だとボスからプレイヤーの角度しか取得できない(たぶん)からatan2()を使うと解決できると思う
atan2()は2点間の角度を求める関数で、始点(x1,y1)から終点(x2,y2)の角度を取得したかったらatan2(y1-y2,x1-x2)って感じで入れてあげればうまくいくはず

14 名無し :2017/07/08(土) 14:27:22 ID:24Q17LS.0
>>13
と言うことはobject弾じゃないとだめかな?
弾の座標取れないし

15 名無し妖精 :2017/07/08(土) 18:25:22 ID:GRZbw1D20
>>14
わざわざオブジェクト弾を使わなくてもマルチスレッドを使う必要はあるけど
let obj = CreateShot01();
let x = Obj_GetX(obj);
let y = Obj_GetY(obj);
ってやることで座標は取得できる

16 名無し :2017/07/08(土) 19:31:40 ID:24Q17LS.0
>>15 ありがとうございます!
こんな方法があったなんて!このおかげでスペカが作成出来る!

17 名無し :2017/07/08(土) 19:54:03 ID:24Q17LS.0
createshotAでもいけるのかな?

18 名無し妖精 :2017/07/09(日) 03:34:05 ID:PMTiWTCs0
>>17
CreateShot全般いけるはず
ただ、Obj_Get○○は問題なく使えると思うけどObj_Set○○を使うとどうなるのかは知らない

19 名無し妖精 :2017/07/09(日) 14:51:46 ID:oKA40IhA0
sage進行知らないのか、わざとやってるのか…

20 名無し妖精 :2017/07/10(月) 07:58:33 ID:R17EzJ9A0
>>19
きっと忘れてるだけだから…

21 名無し妖精 :2017/07/10(月) 14:08:16 ID:0.XzTHN60
>>20
忘れてるだけだったらいいなぁ…
と思ったが、sage進行推奨とはどこにも書いてないんだよなぁコレ。
テンプレに書いて置くべきだったかな。

22 20 :2017/07/10(月) 15:11:22 ID:R17EzJ9A0
>>21
テンプレ見返したら無かった気がする。
もしくは、sageを知らない初心者か、ただの⑨か。のどちらかかな?

23 名無し妖精 :2017/07/13(木) 18:53:10 ID:hdWGT1u20
V2などで背景画像を円形(神6面のやつ)に表示しても、なんか気持ち悪く見える…
sinやcosだけじゃ足りないかな?

24 名無し妖精 :2017/07/15(土) 23:29:45 ID:D8E/GZNc0
色を付けてみてはどうでしょ。弾幕風の3D背景にはシェーディングの概念が薄くて
それっぽく見えてもフォグの凹凸だったりするし。
因みに大階段なんかは、コレで影の色をパーツごとに塗り分けてやらないとのっぺりする。

25 名無し妖精 :2017/07/16(日) 03:53:05 ID:cuwkPF.Q0
>>24
背景に大階段を入れてるけど、謎の違和感の正体は影の有無だったのか…

のっぺりした大階段です。良ければ見てやって下さい。
ttp://imgur.com/a/Mx29d

26 名無し妖精 :2017/07/18(火) 11:04:28 ID:OsDaxzgc0
>>25
のっぺりというか、違和感。
階段部分が手すりに貫通してて、カメラアングル変わった時にもにょっとする。
手すりの壁面を再現して無いのが原因かも。妖々夢にはフォグきったり頂点カラーOFFにする環境設定あるから
この辺をもっと観察してみて。

27 25 :2017/07/18(火) 12:34:23 ID:ThjTWLGI0
>>25
手すりの壁面は角度設定があまりにも面倒過ぎて放置しててね…
カメラアングルの関数を(500,90,0)にしてるけど、(500,0,0)にした方が良いのかな。
影は色を暗くしてやってみよう

28 25 :2017/07/18(火) 12:34:57 ID:ThjTWLGI0
安価ミス、>>26です。

29 名無し妖精 :2017/07/18(火) 22:39:06 ID:ThjTWLGI0
見られる範囲に調整を施しました。
ttp://imgur.com/a/2uhvz
角度変化による階段の立体移動の問題は避けられず。DrawGraphic3DのX座標をカメラアングルと真逆に移動させても違和感(特に高速動作時)が拭えない・・・

SetViewTo関数ってどう使うんだろう?
触り始めて4年は経つけど、これだけ未だに分からない・・・

30 名無し妖精 :2017/07/19(水) 12:42:58 ID:L7dj.OQk0
ttp://xiena.web.fc2.com/3D/
v2だったりこのサイトが一番まともに解説してると思う。
ph3に行くつもりならメタセコイアでモデリング技術をかじってみると良い。

31 名無し妖精 :2017/07/19(水) 13:01:19 ID:L7dj.OQk0
おっと、誤字った。失礼。
ちょっと>>29のスクショを眺めてたんだけど、共通して
階段部分のパースが狂ってる。縦線の部分がきちんと繋がっていない。
だからカメラアングル動かすと違和感あるんだと思う。

SetViewToはカメラの注視点の位置。ph3だとそのままSetCameraFocusX等になってる。
早い話、3D背景全体のXYZ座標を丸ごと弄れる。

32 29 :2017/07/19(水) 16:29:37 ID:4JtA21AI0
>>31
ありがとう。ph3は一度試したけど、雑魚敵やオブジェクト管理が面倒だったので当分はV2で…
パース自体狂ってたのか…問題の階段部分のスクリプトを上げても大丈夫かな?5行に抑える前提で。

SetCiewTo使えば擬似画面揺らしが出来たのか…?

33 名無し妖精 :2017/07/19(水) 17:00:57 ID:L7dj.OQk0
>>32
画像ファイルないと訳判らん場合もあるから、
zipファイルに固めてクーリエに投げるのがちょうど良さそう。

34 29 :2017/07/19(水) 17:13:12 ID:4JtA21AI0
今更ですが、階段作りは初めてです。他は導6面のくるくる回るやつを真似ようと計画中です。

35 名無し妖精 :2017/07/19(水) 17:17:53 ID:4JtA21AI0
>>33
分かりました。しかし使ってる画像が色々と不味いので、画像を自作してから上げてみます。

36 35 :2017/07/19(水) 23:00:00 ID:Hh4zwYFI0
お待たせしました。確認の方お願いします。
「Package.dnh」内のlet StageCount=1;を2にすると階段背景になります。
ttp://coolier.dip.jp/th_up4/index.php?id=6483

37 名無し妖精 :2017/07/20(木) 13:08:38 ID:6LQbUs2k0
>>36
とりあえず落として色々弄ってみて判った事。

1.階段部分のDrawGraphic3DのX座標に角度を適用してる。
  (角度変数に0をかけたらズレなくなったので)

2.階段部分の描画角度や座標補正が色々おかしい
  (-45と45度でなんやかんやしたら綺麗になった)

3.隠面処理やレイヤー順序をちゃんとやってない。
  (スロープの壁部分に階段本体が隠れてるのはそれっぽくないです)


取り敢えずこっちで色々直してみた奴上げてみるので、ご参考までに。
ttp://coolier.dip.jp/th_up4/index.php?id=6484
ただ、スロープ部分とのかみ合わせがイマイチ上手くいかなかったので
ひょっとすると他にも欠陥があるかも知れない。(変数の制御部分とか)
取り敢えず一応見れるレベルにはなったので、後は弾幕とかステージとか中身の方ですね。

あとこれは直接関係はないんですが、
ブロックインデント(Tabキーで整形できる機能)使って見やすくしたり、
accent文使ったりすると見た目綺麗になって見やすくなるので活用してみてくだされ。

38 35 :2017/07/20(木) 21:42:45 ID:7BwP1.Sw0
>>37
自分のやつが、いかにダサいかよく分かる素晴らしいクオリティで感謝感激でございます。
座標に角度はOUTか・・・
階段の配置をミスると、天空の階段になると再認識。おお恥ずかしや・・・
変数に関してですが、TMainLoop側でスクロールを全部任せているので問題ないと思われます。

>>インデント
今思い出すと、if分でTABを入れてなくて、エラーの原因特定に2時間かかってた。今思うと結構恥ずかしい・・・

>>ascent文
リファレンス見たら何だかわからん状態だけど、「配列の操作が簡単になる」という考えで良さそう?

システムに力を入れ過ぎて弾幕やステージのセンスが消えていく・・・
再現したもの
・紺珠伝のチャプターボーナス(完全無欠モードは中断セーブ無しならいけそう。ボスは知らん)
・欠片システム(敵弾スクリプトで楽々実装)
・独自の点符、グレイズシステム(打ち込み点10固定)
・やや高性能タイマー(小数点以下指定、時間増減、停止etc...)
あれ、意外と少ない・・・?

V2のエフェクトオブジェクトのID上限って、10万くらい?それとも1万?


長くなりましたが、36の方、多忙の中修正して頂き、ありがとうございました。階段だけでなく、地Exといった背景に少しずつ挑戦していく所存です。

39 名無し妖精 :2017/08/16(水) 22:27:39 ID:xLFSzYhQ0
複数ボスの為にサークル状のHPゲージのサンプル(v2の)を入れて
少し改変して使ってるんですがこれ使っていいかどうか書かれてなかったけどどうしたらいいんでしょう
リードミーに名前(?)はあったけど連絡先も書いてなかったし名前(?)で調べても出てこないから聞く事もできない

40 名無し妖精 :2017/08/16(水) 22:33:21 ID:xLFSzYhQ0
確認してみたら東方試作品の人と書いてありました
使うの駄目っぽかったらプレイヤーには不親切になるけどHPゲージ無ししかないかな……

41 名無し妖精 :2017/08/22(火) 15:37:56 ID:7X8oTVYI0
素材として公開されているのなら、名前クレジットさえしっかりしてれば問題ないんじゃなかろうか。
或いは自前で作ってしまうとか根性力溢れた代案もありますな。三角関数と頂点エフェクトを知ってれば出来ますぞ。

42 名無し妖精 :2017/08/31(木) 19:46:24 ID:wSkURfcQ0
ph3のゲームは本体と同梱されていて単体で動くものが多いですが、v0.12mのように1つの本体をローダーとして全て管理する方法はありませんか?
スクリプトを覗くとデフォルトキャラクターから改変されていたり、一見管理できそうなスクリプト構成でも起動してみるとエラーを吐いたりでやはり難しいのでしょうか

43 名無し妖精 :2017/09/07(木) 18:21:23 ID:TXh5zSiw0
単体で動くのはパッケージスクリプトといって、再生する専用のゲームスクリプトを個別指定しているからであって
設定ファイルのth_dnh.defを使わずに、scriptフォルダの中に連続再生スクリプトを入れれば
普通に従来通りのメニューが表示されますよ。

因みにスクリプトと画像をファイルまるごとアーカイブしたdatファイルは、
v2ではきちんとスクリプトとして認識されるけど、ph3では無視される模様。

44 名無し妖精 :2017/09/10(日) 09:41:45 ID:C3oylFxo0
私もそう思いまして東方導命樹のscriptフォルダを公式のph3のscriptフォルダに入れてみたのですが
起動まではうまくいくもののゲームスタートを選択すると以下のエラーでストップしてしまいます
ttp://coolier.dip.jp/th_up4/img/th4_6530.txt

またトライフォーカサーではdefault_system、東方天華楼ではresourceが改変されており共存は難しそうなので何かいい方法はないかと質問してみた次第です

45 名無し妖精 :2017/09/10(日) 18:12:40 ID:C3oylFxo0
エラーの件は自己解決したかもしません
導命樹は[.0 pre15]向けに作成されているのですね
th_dnh.defを無効化してみたら同じph3でも時期によってバージョンがバラバラ
[.0]向けのスクリプトは[.1 pre6a]と互換がないようですし
bulletforgeも無記載は[.0]向けなのかと思っていましたが、[.0]で動かず[.1 pre6a]で動作するものだったり
もしかしてph3はかなりガラパゴス化しているのでしょうか・・・

46 名無し妖精 :2017/09/11(月) 10:09:11 ID:khH20vu.0
コメントにも書きましたが、wiki管理人さん見てたら個別ページのDLリンクだけでも復旧お願いします。

47 名無し妖精 :2017/09/12(火) 21:46:31 ID:PcPUH87g0
あー…、そういえばスクリプトの互換性が消えてるのすっかり忘れてました
本体同梱版は制作当時のバージョンで動くことを前提に作ってるので
それよりも古いバージョンだと動かないんですよね

[0]で作られてるスクリプトは[1]でも関数の互換性がある程度はあるので
(インクルードを使ってる場合は除く)
簡単な物だったらバージョン跨いでも動きます。多分。

こんな感じに、スクリプトによって適正バージョンが微妙に異なるので
本体同梱されてる場合は無理に共存させないのがいいかも。
どのみちゲームファイルが増えてきたらDirectory選択でもファイル検索に時間かかってくるので

48 名無し妖精 :2017/09/12(火) 22:05:56 ID:IemFVcfY0
例のアノ人のアカウント消えてる?

49 名無し妖精 :2017/09/12(火) 22:49:27 ID:PcPUH87g0
>>48
ここそういうスレじゃないんで…。

50 名無し妖精 :2017/09/12(火) 23:12:50 ID:IemFVcfY0
>>48
いや結構有名な人だから弾幕風関係の雑談としておkでしょ?
話題振って欲しくないみたいだけど、ご本人様だったりして

51 名無し妖精 :2017/09/12(火) 23:46:36 ID:PcPUH87g0
>>50
話題を掘り下げたいにしては悪意とか恣意的なものが見えたからさ。特に君のレスの二行目とか。
アカウントがどこのだかは知らないけど、少なくてもここでやる話題じゃないでしょ。
「攻略、レビュー、感想、スクリプトについての質問や相談」に該当する内容なら別にいいよ。

さて、天空璋が出たが…。
もう海外ではPhantasmやボスラッシュなんかのスクリプトが出てるらしいね。
日本の弾幕風スクリプターは10年戦士が殆ど引退してるから、新人さんの腕の見せ所ですな。
(水面下では作ってる人結構いるみたいなんだけどね)

52 名無し妖精 :2017/09/13(水) 00:13:12 ID:htwlzgOk0
>>50
荒れるからやめろ

そういや天空璋の弾幕の話題全然上がってないな何かいい弾幕あった?
俺的にはタナバタスターフェスティバルが弄りがいがありそうで良かった

53 名無し妖精 :2017/09/13(水) 00:22:54 ID:Y7JxzHts0
EXボスの七星剣やアナーキーバレットヘルは再現しやすそうだなって思った。
道中だと6面の演出と同期した向日葵妖精とか…。
バレットゴーレムちゃんマジ可愛い。30匹くらいまで増やしたい。

54 名無し妖精 :2017/09/15(金) 11:48:08 ID:Vy895O.k0
海外作品は無断転用がデフォルトみたいなのがモヤる
東方原作に限らず何でもぶっこ抜いて素材にしてる
丁寧にクレジットしてる辺り問題があると思ってないのかな

55 名無し妖精 :2017/09/15(金) 20:17:56 ID:b9qsJePs0
思ってないよ。そもそも海外勢は基本絵がめちゃくちゃ下手糞だから
借りたりぶっこ抜いたりするのが当たり前。下手すれば商業ゲーからも…。

MOD文化が強く根付いてるから、平気でセーブデータ配布や翻訳/改造パッチも作ったりする。
日本人がまじめすぎるというのもあるが、完全に文化の違いなので今更言っても仕方ないさ。

56 名無し妖精 :2017/09/15(金) 20:32:30 ID:KRxOqeBg0
変な方向にDIY精神が発揮されちゃった感じか

57 名無し妖精 :2017/09/15(金) 21:50:43 ID:MIr7jX9M0
そういえば、つべで本家っぽい画風のオリキャラ動画(もちろん弾幕風ph3)を見るけど、アレは何処かから引っこ抜いたのか、はたまた海外の方のフリー素材なのか…

58 名無し妖精 :2017/09/16(土) 03:42:00 ID:BGXRf2AI0
作者オリキャラなら本家っぽく描いたんだろうな、あるいはそういう条件でコミッションかけて絵師に描いてもらったか

59 wiki管理人 :2017/09/16(土) 07:16:20 ID:XO1rtIXw0
>>46
返信遅くなり申し訳ありません(旅行中はスマホから寄書板に書き込めず…)

取り急ぎ、個人HPに作品ページの残っていた「東方改季録」については私の方でURLを追加いたしました。
他の作品については、web上に残っているURLの情報を寄せてくださった方がいるので、おそらく残っている作品については遠からず追加できるかと思います。
ただし東方白恋夜についてはリンク切れの可能性が高いです、申し訳ありません。

至らない点等多々有りますが、今後もできる限り今まで世に出た弾幕作品などを保管していければと思います。

60 名無し妖精 :2017/09/16(土) 20:24:45 ID:BGXRf2AI0
>>59
お疲れ様です
ありがとうございます

61 名無し妖精 :2017/09/17(日) 11:43:19 ID:cj8luQtY0
ログを読んでて気になったのですが
ttp://jbbs.shitaraba.net/bbs/read.cgi/computer/6306/1071332007/12
>本スレにも貼ったけどこっちでも
当時の本スレってどこを指してたんですか?

62 名無し妖精 :2017/09/17(日) 13:39:48 ID:YipnIxyE0
>>59
リンク切れステージスクリプトの再うpは可能でしょうか?

63 wiki管理人 :2017/09/17(日) 17:59:30 ID:ljqyQFcI0
>>62
東方白恋夜についてはver0.10なら持ってますが、Readme内にて再配布が禁じられているためアップロードはいたしません。

東方妖洞窟の最新Ver.もリンク切れですが、こちらは私は持っていません。
手に入るVerのReadmeには作者連絡先も記載されていないようです…。

リンク切れの作品についてはもし持っていたとしても再アップロードはしない方針です(ちなみにwiki自体に上げられていた作品や素材というものは存在しません、全て外部ページorろだです)
過去には著作権を巡って議論に発展した例もあり、そうでなくとも著作権的に危うい橋は渡りたくないかな、と。
(別のフリーソフト界隈では作者が元ファイル消してしまって他の人のバックアップだけが頼り、という例もありましたが、それは例外)

お力になれず、申し訳ありません。

64 名無し妖精 :2017/09/21(木) 22:39:22 ID:HyOtgkWU0
昔このスレ私物化したり爆破しようとしていた人がいたって本当?
それを弾幕化したスクリプトがあるとも聞いたけどどこでダウンロード出来るんだろ?

65 名無し妖精 :2017/09/21(木) 22:56:20 ID:L.Y5bSHo0
弾幕風のスクリプト構築のテクニック的なまとめとかは欲しいな
一時あった訳のわからん超性能の自機とか、ステージ選択制の連続ステージスクリプトとか、横シューターとかの別ジャンル化とか

66 名無し妖精 :2017/09/23(土) 00:19:35 ID:62f7VvNg0
テクニックまとめても、大半がv2時代に作られてる物だからなぁ…

v0.12m(旧弾幕風)でも初期の頃は本体バージョンの仕様が違ってて、
スクリプトの組み方が今と全く別物っていうパターンも見た事あるし

67 名無し妖精 :2017/09/26(火) 21:04:52 ID:tOOYQj7A0
秋姉妹の弾幕なんて考えたことなかったな
静葉の方は上からいろいろ落として来たり、ギミック弾をぶつけてきて
穣子の方は交差とレーザーがメインなのかな
共通してるのは赤橙黄が多めでアクセントに寒色系混ぜてるとこくらい

68 名無し妖精 :2017/09/27(水) 13:56:35 ID:vtgR9Lh.0
最後の出番がDSだし、カード枚数も少ないからネタが浮かびにくいんだよな
こういう時は元ネタ辿って作っていくとやりやすいかもね

69 名無し妖精 :2017/09/30(土) 19:31:46 ID:gqM0UJrs0
中ボスだけのキャラもいるから、弾幕が少し作りにくいのよね。

ph3のdefault_systemフォルダ内部は弄らない方が良いのかな?

70 名無し妖精 :2017/09/30(土) 20:58:56 ID:jXJ3LNyY0
中ボスオンリーキャラはネタ絞り出すの本当に苦労するよね

>>69
専用パッケージスクリプトなら好きなだけ弄っても大丈夫だけど、
スクリプト単体だけ配布する場合は、弄らない方がいいかもね

71 名無し妖精 :2017/10/01(日) 02:20:52 ID:Jjmlx6qo0
ネタかー
進撃の小人とかミルカチーム見たいな露な骨ウケ要素なしだったら秋に関する短歌・俳句を調べるだけでかなりアイデア出てきそう
徒然草(合ってる?)見たいな広く読まれてる日常を書いた本なんかもいいかも
どっちも著作権が切れてるからネットググれば多分現代語訳が見つかるはず
昔からある秋の名所とか祭りも参考になるかも
あとは豊穣の神の真似事とか?
静葉の方は老いとか死を暗示するようなスペカをいくつか作ったら面白いかも
秋のイメージでも穣子はポジティブ面が静葉の方はネガティブ面が強い気がする

72 69 :2017/10/02(月) 21:03:58 ID:yM58pA4I0
>>70
V2で作っていた本家風UIを移植しようと試しに組んだけど、スコアが約40行で出来て驚いた。旧版は100行余裕で超えてたのに…
今の時代こんな簡単に、しかも短く組めるのか…

73 名無し妖精 :2017/10/03(火) 20:32:05 ID:dW0kZl/A0
>>72
いやはや、良い時代になったものですな
v2は結構制約多くて、しかも画像描画が結構汚いんだけど
ph3はそんな事なくてかなり快適に作れるというね

74 名無し妖精 :2017/10/04(水) 01:38:54 ID:tgraT82A0
>>73
本家の反転合成や、メニューからステージ推移時の背景?も再現出来るのは嬉しいですね。
そんな自分はまだ雑魚敵すら出せてないけど…

画像で思い出した。速度4.5の自機を移動させると画像がぼやけるように見える…Obj関数で何か足りないものがあるのかな?

75 名無し妖精 :2017/10/04(水) 14:54:37 ID:IWEwiG9g0
>>74
ObjRender_SetPosition(GetPlayerObjectID,round(ObjMove_GetX(GetPlayerObjectID)),round(ObjMove_GetY(GetPlayerObjectID)),0);
を毎フレーム実行してやるといいよ。弾幕風は表示座標の端数を処理しないとぼやけるよ(敵弾なんかも同じく)

76 名無し妖精 :2017/10/04(水) 15:15:16 ID:IWEwiG9g0
一応そのままコピペしても使えるようにしたんだけど
長ったらしいとかダサいなと思ったら
objIDや座標は自分のスクリプトに合うように書き換えてね

あとついでにこれも投げとく
ttp://coolier.dip.jp/th_up4/index.php?id=6541
需要あるかどうかは知らないけど、
万が一にも使いたい人が居たら「弾幕風スレ 2-76」とかクレジットしといて

77 名無し妖精 :2017/10/05(木) 18:33:41 ID:gO23UXTQ0
>>74
roundを使う必要があるのか…ありがとう、round入れて確認してみる。

sin関数で画像を動かす程度しか出来ない自分には自機ボム作りも先か…

78 77 :2017/10/05(木) 21:36:22 ID:cac63Csw0
ミスった。正しくは75。

79 名無し妖精 :2017/10/05(木) 22:11:08 ID:YPyUcpNc0
>>77
端数が消えればいいからtruncでもいいんだけどね。その場合は0方向に偏るけど
敵や弾の座標も小数点単位で動いてるから、きれいに表示させたい場合は端数を捨てると良いですよ
(やりすぎると重くなるので最低限にしておくこと)

80 名無し妖精 :2017/10/06(金) 21:00:29 ID:rLWphASs0
>>80
つまりV2は「勝手に」round処理をしてたからそこそこ綺麗に表示されてたのね。座標に小数点以下を指定するとぼやける訳だ。

通常と霊界トランス用のBGM2つをオブジェクトで再生させると、たまにループ開始点から始まって、リトライ等すると高確率でフリーズしてしまう…
ファイルのロードとオブジェクト設定は同一フレームに行うと不味いの?
Play関数は1フレーム置いてから行ってるけど…
携帯からなのでソースが張れないorz

81 名無し妖精 :2017/10/07(土) 06:59:57 ID:sYsXGLoY0
フリーズするのは多分メモリというかVRAMの余裕が…。
防ごうと思ったら、事前ロードで負荷分散させて領域確保しておくしかないな。
本家はロードめちゃ早いから、必要な時に必要な分だけ読み込めばいいけど
弾幕風はそう上手くいってくれないという。
(まさか@LoadingとLoadTextureInLoadThreadでリソースの扱いが違うなんて…)

82 名無し妖精 :2017/10/07(土) 17:24:22 ID:sW46hO3g0
>>81
VRAMか〜…V2のコンフィグ見たら850MBくらいだった。圧倒的に足りない?
@Loadingの使い道がいまいち分からないし、無くても動くあたり、いらない子なんじゃないかと思ってる。

スペルボーナスの5秒間減少無しは自作するしかないのか。

83 名無し妖精 :2017/10/07(土) 18:31:04 ID:sYsXGLoY0
>>82
テクスチャ領域の無駄を無くして、使う可能性のあるリソースをすべて事前読み込みすれば
アーカイブした後も処理落ちに悩まなくて済む。テクスチャのロードが一番重くなるので。

因みにテクスチャの扱いがどうなってるのかはログ見るなり出力するなりすれば見れる。(LT)って付いてるとLoadThread扱い。
アーカイブ後は展開が間に合わないと読み込み失敗事故が割と頻発するので無駄省きたい人はcheck。

84 名無し妖精 :2017/10/08(日) 12:38:05 ID:D9sBw6JA0
そういやログ機能あるの忘れてた。オブジェクト数からロードした各データまで丸分かりとは驚かされるばかり。
そして外枠に割いたオブジェクトの多さに泣く。120って何だよ120って…

85 名無し妖精 :2017/10/13(金) 17:19:21 ID:ZSA.AKRE0
ステージインデックスの値が9までしか使えないと何処かで見たけど、index値を無視して、V2のように直接ステージタスクを呼び出す(Close何とかを呼ばずに)ことは可能かな?

86 名無し妖精 :2017/10/14(土) 16:45:08 ID:ZejrtAEk0
パッケージスクリプトではなく、ステージスクリプトとしてサブルーチン記述でゴリ押す方法なら可能っちゃ可能だけど時代遅れ感はある。
1~9対応というのはリプレイがエラー吐かずに再生できる制約の話だから、リプレイ機能自体を使わなければindexは無視していいみたい。
ちなみにサンプルスクリプトでこの問題は再現可能。

87 名無し妖精 :2017/10/14(土) 17:38:02 ID:ZejrtAEk0
因みに、なんでindexが9まで使えないか自分なりの推測をしてみた。
弾幕風ph3のリプレイには、途中のステージから開始しても再現できるように
スコアとグレイズの値がステージに対応した9個の配列で埋め込まれており、
その配列に[StageIndexの値-1]でアクセスしていると思われる。(Powerは未対応っぽい)

index=1の時は[0]、index=9の時は[8]のようになり、リプレイ再生に問題はないのだが
index=0の時に[-1]、index=10の時に[9]となり、どちらも配列長を超過してしまいエラーが出る。
これはおそらく、東方原作のステージ数を踏襲した仕様と思われる。

回避方法は、1以上の1桁の数値に収まるようにステージindexを設定するか
min関数やmax関数等を使って想定外の数値が入らないように工夫すること。

88 名無し妖精 :2017/10/14(土) 19:11:37 ID:o0UU3aAk0
>>87
本家でステージが9もある場所なんてあるのかと考えたら、永で6Aと6B、EX、LWで9面まであったのね。LWは9面なのか怪しいけど…
逆に1面固定にも出来るのかな。特殊モードで全8ステージ+おまけ(10面)マラソンする計画があるので、可能なら試してみようかな。

89 名無し妖精 :2017/10/14(土) 23:38:59 ID:ZejrtAEk0
>>88
永夜抄の作り込み具合は頭おかしいから…(褒め言葉)
ま、9もあれば十分だと思いますよね。…普通なら。
ルート分岐系は専用フラグでやった方が、スクリプト的に効率的かなと。

90 名無し妖精 :2017/10/15(日) 04:56:29 ID:EXrSlIfw0
>>89
同じステージだけど、分岐させて全く別物に見せることも可能なのね。

AreaCommonData系って、配列は別管理なのかな?
let score=[1,2,3,4,5,6,7,8];
SetAreaCommonData("HighScore","HighScore_pl00",score);
と書いたはいいけど、全く反映されない上、GetAreaCommonで「配列以外にindex使用」エラーでPCにダイレクトアタック。
もしやAreaCommon系にindexは使えないのか…?
ボス側で[]付けるとエラー吐く癖にパッケージ側では無問題。一体何だろうか。

91 名無し妖精 :2017/10/27(金) 17:36:44 ID:j9D/OrkA0
猫のお腹。

92 名無し妖精 :2017/10/28(土) 17:28:20 ID:gD/umma60
>>91
気持ちいいよね…

93 名無し妖精 :2017/10/30(月) 16:13:11 ID:sDdYptII0
凄く今更かもしれないけど、弾幕風ph3におけるファイルの文字コード設定の備忘録を一つ。
文字コード設定を統一していないとincludeに失敗するのは既知の不具合なんだけど、
どうやらテキストの終端判定もおかしくなり、エラーを吐くようです。

もし「すでに文字列終端です」というエラーが出たら、文字コードも疑ってみるといいかも。
Windows付属のメモ帳なら保存する時に文字コードの指定が可能。
(因みにデフォルトのシステムスクリプト等はUnicode指定)

94 名無し妖精 :2017/10/30(月) 23:37:03 ID:JbtUO6TM0
>>93
そういえば、自作ライブラリをインクルードしたら「文字列終端です」と出たのは文字コードが原因だったのか。
保存時に文字コードが云々はそういう意味だったのね。

95 名無し妖精 :2017/11/03(金) 20:10:45 ID:BUv9VxAI0
自機の速度に小数点を入れると、左移動が遅く感じるのは何故だろう…
というより、右移動が1.5倍速いような気がする。

96 名無し妖精 :2017/11/03(金) 21:28:25 ID:9b01YJjs0
そういえば自機の移動補正作った時も、理論上は同じ速度で動く筈なのに左右で速度が違う感じしたなぁ…。
気のせいかと思ってたけど、左移動の時は小数点が切り捨てられてるのかもしれない。

因みに自機速度をマイナスに指定すると逆方向に動いたりする。使い道は知らない

97 名無し妖精 :2017/11/04(土) 00:06:07 ID:IbTebHIo0
V2時代に「画面反転が無理なら操作反転させればいい」と思って操作反転させたことはある。
速度は仕方ないので、自機描画にもう一つオブジェクトを用意することで何とか解決?もちろんround関数使用。、

98 名無し妖精 :2017/11/04(土) 23:07:56 ID:IbTebHIo0
すみません、自機ショットの関数を作ったは良いのですが、出しているうちにほんの僅かずつfps値が低下していく現象に悩まされています。
早送り時に顕著で、「開始時800fps→5分後600fpsまで低下」といった具合で、酷いとスカスカな弾幕でも処理落ちする始末・・・
自分勝手で申し訳ないのですが、当問題のショット関数を上げましたのでもし良ければ問題点のご指摘の方お願いします。
ttp://coolier.dip.jp/th_up4/index.php?id=6543
使わせて頂いた画像は、たまたま手元に残っていたあのお方の素材を加工したものです。

素人が自機製作に手を出してはならないという事か・・・

99 名無し妖精 :2017/11/05(日) 18:43:15 ID:3viz9TRw0
>>99
エフェクトオブジェクトを使用してショットを作っているようなので
テクスチャのロードとリムーブが繰り返された結果VRAMを無駄使いしていると見ました

弾幕風ph3のリソース(画像や音声)は、ファイルを使用中のオブジェクトが0になると自動的にリムーブされます
これはリファレンスの■動作仕様 「使用可能ファイル」のページに書いてあります

取り敢えずログファイルの出力をお勧めしておきますね。
それでもダメなら別のスクリプトに原因があります

100 名無し妖精 :2017/11/05(日) 19:00:34 ID:3viz9TRw0
あ、対策書き忘れた。
LoadTextureInLoadThread関数で事前に読み込んでおけば
エフェクトオブジェクトを消してもテクスチャがRAMに残ります

頻繁に削除と生成を繰り返すエフェクトは事前読み込み推奨です

101 名無し妖精 :2017/11/06(月) 20:43:29 ID:RxHqUh7Y0
>>100
という事は、かすりや被弾・敵のチャージエフェクト等は別で読ませた方が良いことになるのか…
パッケージならロード画面作って敵の画像すべて纏めた方が良いのかな?

102 名無し妖精 :2017/11/07(火) 09:27:40 ID:Re8a3VfU0
>>101
頻繁に使うエフェクトはそうしたほうがいいですね。
要は「使う時に使う分だけ読み込む」を実践すればいいので…。

やりすぎるとRAM逼迫することになるので程々に

103 名無し妖精 :2017/11/07(火) 20:45:39 ID:3lbW.Sdo0
配列って、使うと重くなったりするんだろうか?
配列を使って弾幕を管理しているスクリプトを、ついぞ見たことがないもので。

104 名無し妖精 :2017/11/08(水) 08:57:09 ID:n0/8fPd.0
>>102
他にもスペル宣言時に一瞬止まる原因を調べたら、カットインやスペルボーナス表示タスクにLoadTextureが記述されてたのが原因だった。

105 名無し妖精 :2017/11/08(水) 09:02:40 ID:n0/8fPd.0
>>103
スペル用に配列を100個用意したけど、重くなるようなことは無かった(環境による?)からそこまで気にしなくてもいいかも。
弾幕は配列管理が面倒なだけで出来ると思う。

106 名無し妖精 :2017/11/08(水) 09:35:59 ID:kQWYQOQc0
配列結合を何回も繰り返すと重いとか聞いた事あるけど…。
環境次第だろうな(というかその程度で重いとか言ってる人のPC見てみてたい)

107 名無し妖精 :2017/11/08(水) 19:24:44 ID:n0/8fPd.0
配列結合って[変数][0]と書くやつ?

108 名無し妖精 :2017/11/09(木) 09:34:56 ID:fw9NI3bM0
配列長が変わるやつ
リファレンス引用すると「d = d ~ [i];」とか

検証してる人いたけど、余り重くならなかったとか
v0.12mは配列結合でメモリリークバグあるみたいだけど

109 名無し妖精 :2017/11/09(木) 12:31:43 ID:AU9sFrWE0
なら別に

let k=[[[[[0,0.8][i>1200],1.5][i>4800],-1.5][i>6600],-0.8][i>8400],0][i>10200];

なんてことをやっても問題はないか

110 名無し妖精 :2017/11/09(木) 13:15:52 ID:fw9NI3bM0
悪くはない、
悪くはないが…。
なんだかなぁ。

111 名無し妖精 :2017/11/09(木) 17:59:55 ID:wd7gTIc.0
配列結合ってそんな書き方だったのか…
自分がリファレンス見てないのが良く分かって情け無くなる。
結合じゃないけど、
let X=[0,1,2];
let Y=[0,1,2];
let Z=[0,1,2];
なんかの関数でX[Y[Z[0]]]と書いても大丈夫って事かな

112 名無し妖精 :2017/11/09(木) 20:25:32 ID:AU9sFrWE0
>>111
それは無理
>>109の形は配列の特殊系で、
条件に応じて代入する値が変わるタイプのものだから

基本式は、Qを条件文、Tを真の値、Fを偽の値として
let a=[F,T][Q];
それを次々と入れ子にしているのが>>109の配列
まあ、ifでOKと言ってしまえばそれまでなんだけど

113 名無し妖精 :2017/11/09(木) 21:20:19 ID:fw9NI3bM0
文字列も配列扱いだから、ディレクトリくっつける時も配列結合と言っていいのではなかろうか

…という事はファイルパスはエリアコモンデータで使いまわす文字列を予め定義しておくか、
該当テクスチャを使う箇所だけパス定義した方がinclude負荷減らせるのかな

114 名無し妖精 :2017/11/10(金) 10:53:50 ID:c2L7eq1k0
ボスグラや撃破後の処理なんかは#includeの最優先対象というのが個人的な考え

115 名無し妖精 :2017/11/13(月) 18:56:34 ID:hGUhBEEE0
無知を承知で…#includeで読み込ませるファイルも変数で指定可能なの?

116 名無し妖精 :2017/11/13(月) 20:43:11 ID:3ExA7g3g0
>>115
やったことがないからよくはわからないんだが、多分無理じゃないかと。
あれはそもそもタスクやスコープの外側でやるもののはずだから。
ただ、#includeさせるファイルからも、さらに#includeすることは可能なので、
そこらへんをうまく組み合わせればいいのではないかと。
ph3ならTRenderやTEndに相当するタスクなんかは、
全ボス共通のタスクとして#includeすることにして、
共通する攻撃や移動モーションがあるのなら、二段階の#includeをするとか。

117 名無し妖精 :2017/11/14(火) 10:32:28 ID:H2fy2yp.0
includeパスに変数とはまた変態なこと思いつくな…w
一応中身はただのファイル置換だから、ローカルスコープ内で呼んでも機能はするだろうけど
定数系が混じってると厳しそう。何よりスクリプト書く側が混乱するだろうし

そういやph3とv2の話が普通に交じってるか共通話題の二択だけど
特に何も書かれてなければ主流のph3って認識でいいのかな最近は

118 名無し妖精 :2017/11/14(火) 11:14:12 ID:w5eyfSOI0
GCSDのディレクトリに配列を適用して変数で制御するっていうのはやってるけど。
ボスのグラフィックを変えるとか、スペカ時の背景適用時なんかに。
さもなくば、効果音を出す際に数値を変えるだけで鳴らす音を変えられるようにするとか。

119 名無し妖精 :2017/11/14(火) 18:23:55 ID:w5eyfSOI0
そういえば、画面端で反射する弾はよく見かけるけど、
貫通する弾(画面端に到達すると反対側から出現する弾)って、見かけないよなあ

120 名無し妖精 :2017/11/14(火) 22:50:53 ID:H2fy2yp.0
霊夢の二重結界…(ボソッ)
いやまあ画面端じゃないけど

121 名無し妖精 :2017/11/15(水) 01:35:38 ID:hr0K5GHY0
つ ヤマトトーラス

あと弾幕風のどれかで博麗転送結界的なものがなかったっけ

122 名無し妖精 :2017/11/26(日) 18:43:33 ID:q5w.vU1I0
本家でも反射弾関係の判定ミス?で
原点の左上から飛んでくる弾がある
どういう理由でそういう判定になるのか

123 名無し妖精 :2017/11/27(月) 08:21:41 ID:oODLkPEo0
個人的には、条件を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をマイナスにすると無限反射するようにできる。

124 名無し妖精 :2017/11/27(月) 08:23:34 ID:oODLkPEo0
うわ、タブインデントって反映されないのか……。

125 名無し妖精 :2017/11/27(月) 21:29:13 ID:4yMzv6Q20
東方弾幕風って、かつて時封城と夢終劇がそうだったように
売り出すような物を作る工具として使っても問題ないのでしょうか?

126 名無し妖精 :2017/11/28(火) 18:46:03 ID:aJ/sLyUY0
商用はOUTじゃなかった?アレはそれを知ってか知らずか売ってたみたいだけど…

127 名無し妖精 :2017/11/29(水) 12:11:58 ID:AI/xv8Wk0
東方をタイトルに冠してるのなら「東方二次創作」って扱いになるから
本家(上海アリス幻樂団)の版権ガイドラインを踏襲する必要がある。
ttp://kourindou.exblog.jp/14218252/

具体的には「本家東方の流通ルートを超えるような売り方はしちゃダメよ」
って言ってたのね。Steamに天空璋出てるけどそれはまあ置いておくとして。

んで弾幕風はソレをしていいのかと言われると、
普通に例の二作が再販売されてるので別に問題ないんじゃなかろうか。
グラフィックにフリー素材集使ってる場合は個別に規約確認する必要がある。
無償利用はOKでも商用利用はNGって場合もあるし。

…ぶっちゃけるとUnityやDXライブラリという上位互換が出てるのだから、
無理に設計思想が古い弾幕風に拘る必要ってあるのかなって気はする。

128 名無し妖精 :2017/11/29(水) 12:33:07 ID:oh4uUkaU0
弾幕風のプログラム自体には商用利用NGという規定はないよ
二次創作とか自作以外の素材の利用規定はまた別の話

129 名無し妖精 :2017/11/30(木) 13:49:51 ID:V1mYI3II0
この話題、定期的にループしてない?

130 名無し妖精 :2017/12/01(金) 04:25:32 ID:gf3k9hjo0
ループで思い出したんだけど、timesループって個人的には存在価値がないよな。
完全にloopの下位互換になっちゃってる印象だし。

131 名無し妖精 :2017/12/01(金) 21:33:43 ID:7SBEvYmY0
ascentも本来はloopを付けるんだけど、
letと同じで省略できちゃうからこっちも地味に影薄いという。

breakとreturnの違いってリファレンスに書いてないけど、taskのloop内で行った場合は

 break:ループを"破壊"して下の処理へ移り、終端まで行ったら処理終了
 return:ループの処理を"中断"してその場で終了する。

エフェクトなんかの処理を呼ぶ必要がある場合はbreak
何も呼ばずにさっさと終了してほしい場合はreturn、と
こんな感じに使い分けてやると大分処理が軽くなりますぞ。特にph3。

132 名無し妖精 :2017/12/01(金) 23:42:02 ID:gf3k9hjo0
いや、ascentとdescentは「値の変化を伴う」処理全般に使えるから、慣れるとすごく便利だと思う。
ascent(n in 0..RWay){CreateShotA1(X,Y,speed,angle+n*360/RWay,color,delay);}
とかやれば、簡単に全方位弾が作れるし、配列へのアクセスにも有効だし。
俺も、使い方がわからないうちはloopを使ってたけど、今のところの主流はascentとdescentかな。
もちろん、loopやwhileをまったく使わないわけじゃないけど。

133 名無し妖精 :2017/12/02(土) 08:49:32 ID:WIrtGlxY0
ちなみに、リファレンスには、

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分岐とは、かなり相性がいいというのが持論。

134 名無し妖精 :2017/12/03(日) 09:22:23 ID:GlzHtZlM0
acsentで外枠オブジェクトの設定が超大幅に短縮出来たから、なんだかんだで必要だと思うんだ。
descent、まだ使ってないな…

135 名無し妖精 :2017/12/03(日) 10:13:55 ID:SVXcHNcE0
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;
}
という書き方になって、ちょっとだけど読みづらくなるから。

136 名無し妖精 :2017/12/03(日) 19:51:41 ID:TD4HZlKQ0
サブルーチンと引数なしユーザー定義関数ってなにが違うの?

137 名無し妖精 :2017/12/03(日) 21:34:11 ID:SVXcHNcE0
引数のないユーザー定義関数は、基本的には任意の返り値を出すのに使う。
より詳細に言うなら、開発者側で定義できない、任意のタイミングで変動する値を
返り値として出したい場合に有効。
既存の関数になぞらえるなら、GetPlayerX、GetPlayerYのような感じかな。
それを応用して、
function BossX{return ObjMove_GetX(objEnemy);}//ただし、ボスのオブジェクト名をobjEnemyとする
とでもやれば、ボスのX座標を自動的に返り値として出すことができる。
もしもWay弾や全方位弾の処理に引数のないユーザー定義関数を当てはめるという意味なら、
サブルーチンと何の違いもないと思う。

138 名無し妖精 :2017/12/04(月) 16:10:34 ID:v6got0V.0
このスレの主流てv2とph3 どっち?
質問する時ってあらかじめどっちか宣言したほうがいいかな

あとph3 だけどscc2見ながら勉強してるんだけど球がちょっと多くなると激重になるんだが解決策ありますか?描写は可変です
マシンスペックあげたら改善します?

139 名無し妖精 :2017/12/04(月) 18:00:29 ID:u3atISjc0
その、ちょっと多くなると、っていうのが何発ぐらいのことを言ってるのかが不明なので何とも……。
うちのPCでは、画面内の弾数が3000超えたら処理落ちかかってくるけど。

140 名無し妖精 :2017/12/04(月) 19:21:40 ID:rdfPkkoA0
うちは1200くらいかな。パッケージ起動と、外枠関数が重くしてるけど…

141 名無し妖精 :2017/12/04(月) 21:16:07 ID:u3atISjc0
パッケージからの起動だと、そんなに重くなるのか……。
じゃあ、軽くてすんでるのはPluralの状態だからなのかもしれない。
メインシステムの点数とかの数値表示系タスクなんかは、配列でまとめて
ascentループで起動しちゃってるんだけどね。
ちなみに、PluralでBGMとSEがついて、その状態で表示3000発まで
処理落ちしないっていうのは軽いほうなのかな?

142 名無し妖精 :2017/12/04(月) 22:02:31 ID:v6got0V.0
球数ってどうやってみるん?

143 名無し妖精 :2017/12/04(月) 23:40:58 ID:u3atISjc0
弾数はGetShotCountで出せる。
数値を表示したいのなら、メインシステム内のタスクをうまくいじれば可能。

144 名無し妖精 :2017/12/05(火) 02:09:59 ID:/dxdvh9o0
ありがとう
scc2の祝いの風って奴なんだがfps20程度まで落ち込む

145 名無し妖精 :2017/12/05(火) 08:10:31 ID:fh2hVvOA0
もしかしたらだが、そっちの環境の問題かもしれない。
テストプレイしてみたけど、別に処理落ちしなかったから。
うちの環境は、6年ぐらい前に買った、ミドルエンドのドスパラPCなんだが、
問題なく動いた。

つーことは、俺が組んでみた正六角形の動く星床と渦巻きレーザーなんて組み合わせは、
>>144の環境だと間違いなく処理落ちしそうだな……。

146 名無し妖精 :2017/12/05(火) 16:14:07 ID:Z51JQ8BU0
昨今のPCゲーム市場とか見る限り、未だにVistaや7使ってる人はスペック的にそろそろ厳しくなってきてると思う。
(メモリ足したりグラボ取り替えてる人はまだいいとして)

とはいってもみんなスマホだし、PC持ってる方がもはや少数派か…。

147 名無し妖精 :2017/12/05(火) 16:40:03 ID:/dxdvh9o0
弾幕風って10にも対応してるの?
10ならハイクラスのやつがあるんだが

148 名無し妖精 :2017/12/05(火) 16:42:54 ID:hW.qdk6g0
PCゲーのツールを使う場でPCの普及率が低下とか言われても何の意味もないんですが
愚痴りたいだけなら存在が不愉快だからどっかいって

149 名無し妖精 :2017/12/05(火) 19:14:50 ID:J/o/7i7U0
>>147
V2、ph3共に動作はする。V2は「管理者として実行」しないと動かなかった記憶がある(vpatch使う場合はVpatchのみ管理者として実行)。あとfpsが不安定かも。

150 名無し妖精 :2017/12/05(火) 19:15:27 ID:J/o/7i7U0
>>146
ここそういうスレじゃないんで…

151 名無し妖精 :2017/12/05(火) 22:49:35 ID:Z51JQ8BU0
>>148
ごめんね、スレチだったね。

152 名無し妖精 :2017/12/06(水) 09:17:27 ID:uv/gWzzE0
スクリプトファイルのエンコードをshiftJISからUTF16LEに変えたら、
ロードの時に軽くなるかなと思ったんだけどincludeの相対パスが仕事しねぇ…。
絶対パスなら問題なく動くんだけど

153 名無し妖精 :2017/12/07(木) 01:41:18 ID:cDq3eXWg0
タブインデントなんか、半角×2で十分なんだよな。
何で半角×8がデフォルトになってるんだか……。

154 名無し妖精 :2017/12/07(木) 03:07:20 ID:Ikf7CiwM0
重たいってのが大規模スクリプトへの絶対的な障壁になってるのか
独自言語だからその辺は仕方ないのかね

155 名無し妖精 :2018/01/06(土) 15:11:01 ID:JNcxnL960
>>154
あと大規模スクリプト関連の技術的な話題がここで殆ど出なくて
知識や技術の共有が行われないというのもある。あと単純に人が居ない。

年跨いでレスしてすまぬ

156 名無し妖精 :2018/01/06(土) 15:28:51 ID:JNcxnL960
一応自分もパッケージスクリプト弄ってる人間なので話題を投下できなくもないんだけど、
如何せん内容が複雑というか規模が大きいので、どっから話せば判りやすいのかというのが判断つかないのよね

流れ的には[Single]で単発の弾幕を最初に作って、
それが何個も出来るようになったら[Plural]で数珠繋ぎにしてボス戦を作り、
作ったボスと雑魚編隊と(できれば背景)を追加した[Stage]の一連まで作れるようになってから
パッケージスクリプトに触れていくと丁度いいんじゃないだろうか。多分いきなり[Package]から挑むと挫折する。

157 名無し妖精 :2018/01/12(金) 17:02:08 ID:MJb3Ei6s0
v2とph3で、神5面の背景にある塔?のようなモノを再現しようとしてるけど、中々上手くいかない…
あと、神6面の背景はsin系で描画してるの?

158 名無し妖精 :2018/01/12(金) 20:24:32 ID:siuOqhqM0
神の5面と6面はどれも内部的には同じ処理だと思う(カメラアングルや位置が違うだけっぽい)
cosとsinの極座標制御をXY軸からXZ軸に変更してやればいい。

面倒くさかったらph3でメタセコイア(mqo)ファイルを読ませるという手もある。いやこっちの方がモデリング作業で余計面倒か…w

159 名無し妖精 :2018/01/13(土) 16:24:03 ID:4cOXHq.o0
弾がぶつかるときってできますか

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
それは「大本の弾が画面から消えるまで、弾を出し続けるようにするには」という意味でいいのかな?

166 163 :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さんの見本を変数名こそ少し自分用に変えたものの使ってみましたが、
まだなんか微妙に重く……撃破時の効果音とエフェクトを取っ払っても代わりありませんでした。
スクリプト全体丸ごと乗っけなかったのは単にベースとして原作素材使ってたので差し替え先がまだないってだけだったので、
一部(結構大半)の画像無しでよければ後で全体像乗っけておきます

188 185 :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だったかな?アレのホーミング処理を参考にすると、全弾独立したホーミングや、スカイサーペントも組めますぞ。
…自作した機体、良ければ使います?

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

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

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

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

195 185 :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回直線的に敵を追尾するだけの貫通しないデフォルーミア的な奴に変更したときも
僅かながら処理落ちしてたってことは自機自体どっかイカれてる可能性ありそうかな……技術が追い付いてないのに原作に近づけようとなんてするもんじゃないなぁ

198 190 :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
あ、単にパワーが早く増えてたのは何度か雑なプレイで死んでたせいでした。

203 190 :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番目に来るステージがおかしくなるようです。時間経過によるものなのか、
切り替え時に変な処理をしてしまっているのかは分かりませんが、せっかく良い自機まで借りて
ここまで作ったのでどうにか完成はさせたいな……

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

207 185 :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面との切り替えの瞬間、徐々にではなく急激に重くなるから別の事かと思っていました
ノーショットで行っても重かったので撃破エフェクトは違うし、なんかあったかな……
これだけではわからなさそうだったらまた全アップします

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

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

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

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

213 185 :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
とりあえずてきとーに差し替えて全アップしました。面倒だったので自作のものは差し替えていない&
前の全アップ時にも書いた通り原作自機ボスオリキャラものなので変な立ち絵とか入ってますがおきになさらず
動作テストしてないので変なとこで変なことになったらごめんなさい

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

216 185 :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
例のあの人鍵垢になってる
またヲチられたのかな

220 185 :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のテンプレ…是非お願いしたいです。

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

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

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

225 185 :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)の上に変更してやれば大丈夫でしょう。

228 226名無し妖精 :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
ガチな狂人はシェーダーは勿論ファイルオブジェクトとかバイナリすら操るんや…勝てる気がしねぇ

260 名無し妖精 :2018/06/08(金) 12:13:20 ID:ERQa55DE0
CommonDataとかいうのがちょっとわからないんだが、これってつまり、
保存しなければならない値を格納するためのスペースってことでいいのかな?
要はハイスコアとか、スペルの挑戦回数、取得回数のように、
ゲームを終了しても残したいデータがある場合とか。

261 名無し妖精 :2018/06/08(金) 13:55:39 ID:Rp6.7tiA0
スクリプト間共通データ。いわばグローバル変数の上位互換。
理解方針的にはそれであってますよ。

値の名前は文字列の一致で判定されてるので、
そこだけ間違えないように注意してれば万能関数と化します。

262 名無し妖精 :2018/06/09(土) 10:20:17 ID:UoBN6TDk0
某サイトに置いてある「ObjMove_SetBezier」は非常に便利だ。
0.12mの「SetMovePositionHermite」の上位互換で、
より複雑な動きをオブジェクトにさせることが可能。

263 名無し妖精 :2018/06/10(日) 14:15:42 ID:mRSxI4Po0
フリーフォント探しが楽しくて弾幕が捗らない

264 名無し妖精 :2018/06/10(日) 16:12:01 ID:KtZriSm.0
標準搭載のフォントでも、Comic Sans MSやConstantiaのようなコミカルなフォントがあるけど

265 名無し妖精 :2018/06/11(月) 01:31:28 ID:RN3TRnMY0
>>244
亀レスかもしれんが、スクリプト内に直接記述したいのなら、
GetCurrentScriptDirectory~"(ファイルのディレクトリ)"ってやらないと動かないぞ

266 名無し妖精 :2018/06/11(月) 19:10:13 ID:beQ87zk.0
こんなところ見つけた
ttp://dekasu.net/fonts/
ph3でフォント扱うときに参考になる…かも。

267 名無し妖精 :2018/06/12(火) 08:20:39 ID:AlZlMfuo0
スペルボーナスを表示する際には、フォントを中央揃えにすると設定が楽だ。
SetMaxWidthで設定する値をGetStgFrameWidthにして、
HorizontalArignmentを設定する際には、左揃えだと左端、
中央揃えだと画面の中心、右揃えだと右端の座標が0になるので、
覚えておいて損はないと思う。
フォントなんかは、斜体系列のフォントで決めてみたいよね。

268 名無し妖精 :2018/06/13(水) 19:23:03 ID:j2Qlp1dY0
0.12mのデフォ効果音ってヘルプに書かれているもの以外を変える事ってできないの?
HPが一定以下になったらVanishEnemyで効果音鳴らして消して〜ってやってるんだけど、
一発の威力が大きいボムとかで倒すとデフォルト効果音が横入りしてきて滅茶苦茶うるさい

269 名無し妖精 :2018/06/13(水) 19:35:30 ID:s0hlDW2c0
DeleteSEだったかな?それでデフォルトSEを指定すると鳴らなくすることが出来るよ。
ただ、消したSEはFinalize等で再ロードしないと他のスクリプトでも鳴らなくなるけどね…
雑魚敵を撃破した時の音はEnemyVanish01.wavだった気がする。

270 名無し妖精 :2018/06/13(水) 23:36:56 ID:j2Qlp1dY0
>>269 ヘルプに書かれてないデフォファイル名って皆どうやって知ってるんだろう?見た覚えがない……
とりあえず試してみる、ありがとう

271 名無し妖精 :2018/06/14(木) 22:59:42 ID:Tl2eQ7H.0
実はth_dnh.datをメモ帳とかで開くとデフォSEが見られる。あれからよく見たら雑魚敵はseEnemyExplode01.wavだった…すまぬ
しかしseExplode01.wavは何に使われてるんだろう?

272 名無し妖精 :2018/06/16(土) 09:07:53 ID:Pg.xEyZ60
ボスの画像を表示するタスクを作る場合、
それぞれのボスごとにタスクを用意するのと、
配列で画像を管理して、一つのタスクにまとめるのと、
どっちが軽いのかな?

273 名無し妖精 :2018/06/16(土) 22:45:58 ID:dLL6jXe20
よく原作にかなり近い効果音使ってる作品見るが、アレどこから手に入れてるんだろう
抜き出した奴とは若干音が違う気もするんだけど効果音も曲みたいに作れるのかな

274 名無し妖精 :2018/06/17(日) 13:08:08 ID:RnEEuts.0
>>273
作曲ソフトでそれっぽく作ってるんだと思うよ

275 名無し妖精 :2018/06/20(水) 15:46:38 ID:E.cI16cY0
うまく意味が伝わるかどうかはわからないですが、
Singleスクリプトで問題なく動いているスクリプトがあったとして、
Pluralで動かした際に、一部の弾幕が出なくなることがあるんですが、
原因としてはどんなことがありえるでしょう?

276 275 :2018/06/21(木) 13:55:27 ID:LGU2Knjg0
275だけど、自己解決できた……
SetShotAutoDeleteClipって、一度設定したら次のスクリプトに
移行してもそのままなのね……

277 名無し妖精 :2018/06/23(土) 17:31:33 ID:6FTomzg60
その手の関数は@Initializeで毎回デフォ値に初期化してやれば無問題。

278 名無し妖精 :2018/06/23(土) 21:08:39 ID:SG5IjesE0
>>277
そのスクリプト内の@Finalizeで初期化してもいいよね

279 名無し妖精 :2018/06/23(土) 23:35:16 ID:6FTomzg60
>>278
面倒だから毎回初期化する関数はサブルーチンに入れてる
そして初期化してるのをたまに忘れて「あれー設定しても元に戻っちゃうぞー?」とかアホやらかすオチ
うむ、自分だけだな

280 名無し妖精 :2018/06/25(月) 04:29:40 ID:yUgrCcPQ0
ph3で開幕無敵、あるいは高防御力を実装したいのなら、
let Boss;
function SetBoss{
Boss=ObjEnemy_Create(OBJ_ENEMY_BOSS);
ObjEnemy_Regist(Boss);
ObjEnemy_SetIntersectionCircleToShot(Boss,ObjMove_GetX(Boss),ObjMove_GetY(Boss),0);
ObjEnemy_SetIntersectionCircleToPlayer(Boss,ObjMove_GetX(Boss),ObjMove_GetY(Boss),0);
ObjEnemy_SetDamageRate(Boss,0,0);
return;
}
を作り、SetBossを@Initializeしてから、
task SetBossStatus(a,b,c,d){
while(ObjEnemy_GetInfo(Boss,INFO_LIFE)>0){
ObjEnemy_SetIntersectionCircleToShot(Boss,ObjMove_GetX(Boss),ObjMove_GetY(Boss),a);
ObjEnemy_SetIntersectionCircleToPlayer(Boss,ObjMove_GetX(Boss),ObjMove_GetY(Boss),b);
ObjEnemy_SetDamageRate(Boss,c,d);
yield;
}
}
のタスクをTWork内で使ってレートを再設定すればいいのではないかと(ここでは当たり判定なし、ダメージレート0になっている)。
ちなみに、Create○○系列の関数をユーザー定義関数で組み込む場合、returnを入れないと止まるので注意。
また、ObjEnemy_GetInfo(Boss,INFO_LIFE)なんかは頻繁に使うことになるので、
function BossLife {return ObjEnemy_GetInfo(Boss,INFO_LIFE);}といった感じでユーザー定義関数にしてしまうと記述が楽になる。

281 名無し妖精 :2018/06/26(火) 16:19:01 ID:6c38tJ4.0
物凄く初歩的な事で申し訳ないのだけど、0.12mでエフェクトの画像を歪ませるのってどうやればいいんだろう……?
ボスの背後のオーラとか、スペカ背景とか、ぐにゃぐにゃさせたい所は結構多いんだけど数学物凄く苦手だからやり方がイマイチ解らない。

282 名無し妖精 :2018/06/26(火) 17:01:27 ID:nBJNTH4g0
>>281
全然初歩的な質問じゃないんですがそれは…w
レンダリングテクスチャに歪ませる描画対象の魚拓を取って、
2D_PRIMITIVEと三角関数でゴリ押しする…と考えた事がある。
あるいはph3のサンプルスクリプトにある背景歪みエフェクト(PRIMITIVE版)をv0.12mに逆輸入してくるとか。

実際にやったことないけど激しく処理落ちする予感しかしないので、
MULTIPLYで色付きの影のみに妥協するのも手。

283 名無し妖精 :2018/06/27(水) 06:50:50 ID:Um6qE0hI0
>>282
なんか動画とか見てるとみんな当たり前のようにやってるからてっきり初歩的なことなのかと……
Ph3にそんなのあったんですね、理解できるかどうかは解らないけど逆輸入して使えるかどうか試してみます
あのよく分らないモヤモヤとボスから湯気みたいに出てる謎のオーラって使ってる人結構多いけどゆがませてる訳ではないのかな……?

284 名無し妖精 :2018/06/27(水) 08:11:04 ID:aq/TWHHs0
弾幕風ph3について質問。
th_dnh.defってpackage.script.mainキーにパッケージスクリプトが記述されたtxtファイルのパスを指定すれば弾幕風起動時に直接起動できますが、
アーカイブしたdatファイル内のパッケージスクリプトに対して直接再生対象にするのは不可能ですか?
勿論datファイル指定しても即終了。AddArchiveFile関数は画像と音声ファイルのみ有効っぽいし解決策が見当たりません。
弾幕風ビューワ―と弾幕風本体だとスクリプト選択画面でdatファイル内のパッケージスクリプトを観測出来るのに・・・

285 名無し妖精 :2018/06/27(水) 08:50:38 ID:aq/TWHHs0
284の追記
パッケージスクリプト本体のtxtファイルのみアーカイブ対象でなくても問題ありません。
それはそれでアーカイブしたdatファイル内へのincludeを効かせる術も分からず。

286 名無し妖精 :2018/06/28(木) 23:46:26 ID:8e99ossg0
ボス死亡時に全てのタスクを停止させるのとかって可能ですか?
倒した後も無から弾を吐こうとしたりして不格好な感じになるんですが、
taskでいちいちObjEnemy_GetInfo(objEnemy, INFO_LIFE)させるのもスマートではないような気がして……

287 名無し妖精 :2018/06/29(金) 04:49:07 ID:k9FJok3w0
>>286
それは入れておかないと、ほとんどの場合そうなる。
より具体的には、ボスが死んだ後、スクリプトが終了するまで、左上から弾が出続ける。
それがごちゃごちゃして見栄えが悪いと感じるのなら、ユーザー定義関数を使って短縮すればスマートに見える。
function BossLife{return ObjEnemy_GetInfo(objEnemy, INFO_LIFE);}という感じで作り、
別ファイルにおいといてから#includeすれば、スマートに見えると思う。
いずれにせよ、確実にタスクを止めるためには、while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>0)は必須と思っていい。

288 名無し妖精 :2018/06/29(金) 13:11:23 ID:lvvY4DJ.0
>>284
ph3はスクリプトのアーカイブ後の読み込みが対応してないみたいなんですよね…。
自分も同じような事しようとしてしょっちゅう歯痒い思いしてます。
(ファイルオブジェクトもまさかのアーカイブ未対応っていう…)

>>286
ユーザー定義関数でもいいんですが、ボスの生存可否を問うだけならば
専用のフラグをtrueで宣言して、falseで判断してやれば簡単にできますよ。

マイクロスレッドかMainLoopでボスの体力を毎フレーム監視し0以下になったらフラグをfalseに変更
各種弾幕のタスク上では、弾幕やエフェクト等を呼び出す前にreturn
呼ばれてる最中やループの中だったらbreakしてやればOK。

■弾が左上から出てくる現象について補足
敵や弾オブジェクトが削除された後に同IDで座標を取得しようすると、
初期座標の(x=0,y=0)が参照されるのが原因なので、
座標取得関数は必ず変数に保管して参照しましょう。バージョン問わず共通です。

289 名無し妖精 :2018/06/29(金) 18:55:47 ID:O8HHSXds0
ファイルオブジェクトはともかく、バイナリオブジェクトって何をするんだろう…リファレンス見てもさっぱり分からなくて

290 289 :2018/06/29(金) 18:58:56 ID:O8HHSXds0
訂正、何をするんだろう→どうやって使うんだろう
保存された共通データファイルを弄れるのかな…?

291 名無し妖精 :2018/06/29(金) 19:14:27 ID:k9FJok3w0
実例があればものすごい理解の助けになるんだけどね……
SetValueやCommonData関係の関数は、はっきりいうと応用範囲が広すぎてわかりづらいんだ

292 名無し妖精 :2018/06/29(金) 22:08:45 ID:lvvY4DJ.0
一番理解したい機能に限って実例がないっていう。
ファイルオブジェクトとはSaveCommonData系関数とは違い、
暗号化されてないテキストファイルを行単位でチェックして文字列に変換できる機能の事。

…描画に直結しない部分もオブジェクト化してるから紛らわしいんじゃなかろうか。
というかCommonDataが便利過ぎて、値のやり取りとか全部これ系で何とかなっちゃうイメージ。

あ、Obj_SetValueは使い終わったら、Obj_DeleteValueで領域消さないと
メモリリークが発生することがあるので注意(←自動消去されるものだと思ってた人)
主にアイテムスクリプトのアイテム化通知の部分で顕著。

293 名無し妖精 :2018/06/29(金) 23:31:30 ID:k9FJok3w0
ph3で実装されたSetColorHSVなんかは、弾の色相を変化させることで彩り豊かにできるのがナイス。
他にも、Move系の関数は、これまで敵にしか適用できなかったのが、弾にも適用できるようになったから、
同一フレームで異なる座標に弾を同時に移動させたり、ボスがどこにいても特定の座標に特定のフレームで
弾を移動させることができるようになっている。
AddPatternA4は、SetShotDirectionTypeの「角度を自機基準にする」機能が搭載されているようなもので、
それはそれですごく便利なんだよね。
反面、エフェクトやスペルネーム、カットインなんかは、タスクとして一から自作しなきゃならないんだけど、
逆にいえば、やり方さえわかれば自分なりにカスタマイズできるということでもあるから。

294 名無し妖精 :2018/06/30(土) 19:00:28 ID:/vjFoTtE0
V2で爆散エフェクトとかスペル名表示とかタイマー表示等の処理を、全てステージ側に放り投げてる物好きは私だけと思いたい…
しかしph3でどうやっても作れないモノはあるのかな…

295 名無し妖精 :2018/07/01(日) 10:38:58 ID:IZvLHdvw0
プレイヤーを動けなくするとかの演出も、SetVirtualKeyStateでどうにかできるから、
それに何らかのエフェクトを入れればそれっぽくなりそう。

296 名無し妖精 :2018/07/01(日) 16:43:03 ID:V6Wh6ZxM0
自機の当たり判定の拡大縮小なんかも毎フレーム生成と削除繰り返せば出来るかも?
まぁ試してみないことには何とも言えないんですけどね。検証って大事よ。

297 名無し妖精 :2018/07/01(日) 17:43:33 ID:IZvLHdvw0
咲夜さんあたりにリチャードウォンの「完全なる世界」をやらせてみたいとか考えてるのよね。
動きを止められた瞬間に安置にいないと絶対に被弾するとかいう感じの。

298 名無し妖精 :2018/07/01(日) 23:21:04 ID:8f2yI.A60
どういう弾幕にしたいかわからないから何とも言えないし、自分自身が素人だから自信ないけど

敵弾を発射
時止め発動(エフェクト、移動制限等)
時止めと同時に自機の判定を消す
敵弾の終点から当たり判定を出す(不可視の子弾やレーザーで実現できるはず)
時止め解除、自機の判定戻す
不可視の当たり判定に被弾

こんな感じでできるんじゃないかな

299 名無し妖精 :2018/07/03(火) 23:21:48 ID:aaogspYU0
Ph3のテンプレとかあるともっと手付ける人増える気もするけど思ったより出てないんだね
0.12mは既に色々出てるから色々手付けやすいけどPh3は唯でさえ難易度上がってるのに情報も少ないから
プログラムとか得意じゃない人は詰まっちゃうんだろうね……

300 名無し妖精 :2018/07/04(水) 02:39:44 ID:OnpwTt3U0
@DrawLoopやカットイン、その他のエフェクトの類を全部タスクで自作しなければならないのが
難易度が上がってるそもそもの原因ではあるよね。
スペルカードを自作するならテキストオブジェクトを知らないと作れないし、0.12mで実装されていた
機能がなくなり、自力で再現しなければならなくなっているというのが。
それとひそかに、デフォルトの関数名も0.12mよりも長くなってるから、そういう意味でも
ユーザー定義関数とかを自作して短縮するぐらいじゃないとやってられないところはあるかな。

301 名無し妖精 :2018/07/04(水) 12:48:30 ID:UWvQTzVE0
Ph3でステージ遷移時にBGMファイルを解放させない方法って無いですか?
リトライや次ステージへの移行を挟んでもBGMを流しっぱなしにしたいんですが、いちいち解放→再ロードされちゃって悩んでます

302 名無し妖精 :2018/07/04(水) 13:24:26 ID:UWvQTzVE0
>>301
すみません、早々に自己解決しました
ステージではなくパッケージスクリプト内でBGMを管理するようにしてやると上手くいきました

303 名無し妖精 :2018/07/04(水) 17:53:10 ID:ghUsWjjs0
SEやBGMシステムなんかも初心者が構築するには結構難しいよなぁ…
やっぱりテンプレート化を進めるべきなんだろうけど、作りたいものに対して作業時間とモチベが圧倒的に足りてない
あと自分の作りたいゲーム抱えちゃってるから手が回らないというのもあるかもね。

304 名無し妖精 :2018/07/04(水) 18:12:31 ID:OnpwTt3U0
効果音はディレクトリを配列で管理して、攻撃やモーションに合わせて鳴らすようにしちゃってるけどね。
いちいちメインスクリプト内にディレクトリを書き込む方法だと、かなりの手間だし。
俺としてはそれよりも、パッケージのテンプレが欲しいところかも。

305 名無し妖精 :2018/07/04(水) 20:48:53 ID:UWvQTzVE0
サウンドなんかは誰がやっても概ね目指すところは同じような感じになるけど、
パッケージは人によって規模ややりたい事が全然違ってくるだろうからテンプレ化は難しいと思う
単純にメニュー出すだけでもテキストで表現するのか画像で表現するのか演出入れるのかみたいな差があるしね

ここの人はどれぐらいの規模のスクリプトを作ってるんだろう……
みんな大規模な物作ってそうな空気あって恐れ多い

306 名無し妖精 :2018/07/04(水) 21:30:43 ID:OnpwTt3U0
今のところはまだ、四人分の連続スクリプトだけかな。
自機スクリプトはデフォルーミアの弾をちょっといじっただけだし。
システムのテキストについても、フォントをちょっといじってるだけかな。
今のところは道中の雑魚戦をやるつもりはないから、ステージスクリプトにも
ボス戦前のイントロを入れてる程度。

307 名無し妖精 :2018/07/05(木) 06:00:03 ID:fDrmZkfI0
一応ある程度テンプレ化出来る規模のパッケージスクリプトは書けてるんだけど
書き方が自己流で割と適当というかぶっちゃけ汚いのでサンプルとして使ってもらうにはちょっと問題が…w

308 名無し妖精 :2018/07/05(木) 07:28:13 ID:L/F0kg3g0
>>307
見るだけは見て見たいかも。
別に、お手本書式からかなり崩れてても何とか読める……とは思う。

309 名無し妖精 :2018/07/05(木) 07:42:33 ID:L/F0kg3g0
ていうか、デフォルトの書式みたく

loop(60)
{
yield;
}

なんてされたら逆に読みづらい。
あくまでも個人的な意見だけど。

310 名無し妖精 :2018/07/05(木) 22:31:45 ID:fDrmZkfI0
なんでみんなTabキーで整形しないのかなーと長年疑問に思ってる
酷いケースだと全角/半角空白で無理矢理整えてる奴とかいたりして…w

311 名無し妖精 :2018/07/05(木) 23:25:24 ID:L/F0kg3g0
少なくとも、ここの掲示板では、Tabは反映されないんだ

312 名無し妖精 :2018/07/06(金) 06:00:20 ID:TvHfWvMA0
>>311
知ってるよw

313 名無し妖精 :2018/07/29(日) 20:32:42 ID:58/3QwGs0
妖々夢でレティの出す霧みたいなエフェクトを作りたいんだけどどうやればいいのか見当もつかない
何かいいやり方ないですかね……作品内で使われてる所も見たことないんだよなぁ

314 名無し妖精 :2018/07/31(火) 12:46:46 ID:Iva3MxdU0
>>313
ブラシか何かで作ってるんじゃないかな、霧とか雲状のエフェクトは。
レティの他だと文花帖ルーミアやぬえ、
変わり種でレミリア/フランの羽ばたきエフェクトくらいかな。
煙の写真を加工して作るという手も無くはない

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

316 名無し妖精 :2018/08/12(日) 22:29:58 ID:.QX8s1Xo0
サグメの金城鉄壁のおんみょう玉で星以前の弾消滅エフェクト使われてたね、意外

317 名無し妖精 :2018/08/12(日) 22:32:26 ID:LCe/2vHE0
実は星以降も同時に使用されてるんですよアレ。

318 名無し妖精 :2018/08/13(月) 01:22:33 ID:uF.QgJPA0
そりゃ知らんかった

核弾のもや?って大きさ変わってんのね
ニュークリアフュージョンで画面がぐらついてた謎がやっと溶けた

319 名無し妖精 :2018/08/13(月) 12:05:43 ID:qRcrLCVY0
>>223
直接タイトル画面に戻るようにする形でいいのなら、if文の追加で一応可能だけど
ファイル選択タスク内ではキャンセルボタンを押すだけでタイトルに戻るようにして
ネームエントリータスク内では、入力文字数が0のときにキャンセルボタンを押すと
タイトル画面に戻るようにしたら、リプレイを保存せずに終了できた

320 名無し妖精 :2018/08/13(月) 12:11:10 ID:qRcrLCVY0
あら、sageが入ってなかった……スマヌ

321 名無し妖精 :2018/08/14(火) 00:03:15 ID:WSbW.9/Y0
ユーザーネーム保存しようと初期値の""(空文字)をエリアコモンデータでファイル出力したら、
ロードする時にエラー落ちしちゃうのは、地味に危険な落とし穴である。

322 名無し妖精 :2018/08/14(火) 00:18:58 ID:WSbW.9/Y0
あと備忘録にもう一件だけ。

■文字コード関係のバグ
1.Unicode (UTF16LE)形式で読み込むと、#includeのパスがおかしくなる。
原因→仕様(バグ)です。"./"(ディレクトリ上層参照)はShift-JISじゃないと機能しません。
対策→相対パスではなく絶対パスで記述する。or Shift-JISで統一する

2.異なる文字コードのファイルが混在しているとTakenErrorが発生することがある
原因→混在スクリプトの文字解析で解釈が割れるとそうなります。
対策→スクリプトファイルの文字コードを統一する。

デフォルトのシステムスクリプトがUnicode (UTF16LE)形式になってるので
メモ帳や文字コード変換ソフトで統一してやれば大丈夫でしょう。

323 名無し妖精 :2018/08/14(火) 12:53:02 ID:3LuGSfrQ0
>>322
つまり、全部のスクリプトファイルの文字コードが統一されていればOKという解釈でいいのかな?
リファレンスの#include関連に「内部的には全てをUnicodeに変換してファイルを結合する」
とか書いてあるから、文字コードを全部Unicodeにしてるんだけど。
今のところこっちでは、パスの指定が間違ってなければ、相対パスでもきちんと動いてる。
ただ、GetCurrentScriptDirectoryなんかを他のファイルに#includeさせちゃうと、こんがらがるかもしれない。
はっきりと調べてはいないけど、let dir=GetCurrentScriptDirectory;をグローバル変数にして#includeさせる場合、
それが書かれているファイルからの相対パスで記述しないと機能しないみたい(#include元のファイルからの相対パスではダメ)なので。

324 名無し妖精 :2018/08/14(火) 13:26:09 ID:WSbW.9/Y0
>>323
内部ではUnicodeに勝手に変換されるみたいなんだけど、
どうも字句解析で引っかかるのか、当方環境だと色々と事故る…。
下手すると環境依存の可能性も…。統一しておくに越したことはないですね

ファイルパスはGetFileDirectory(GetMainPackageScriptPath)で、
実行ファイルのディレクトリを取得したほうが安定するかも?

325 名無し妖精 :2018/08/14(火) 17:07:58 ID:3LuGSfrQ0
>>324
今のところこっちでは、そういったパス関係の不具合はないかな。
Single→スペカ→ボス読み込み→ライブラリなんて感じで多段#includeかけても問題なく動くし。
もしかしてだけど、SJisからUnicodeに変換する際に、内部で文字化けしてるとか?
SJisでググったら、文字化けするコードの例があったんだけど、
その中に半角のダッシュ記号とかいうのが該当しているのがちょっと気になる。
ファイル名をAlice-Spell01.dnhとかにしてると、もしかしたら不具合が発生するのかも。

326 名無し妖精 :2018/08/14(火) 21:22:06 ID:3LuGSfrQ0
ただ、文字コードをSJISにすると、Unicodeと比較してファイル容量が6割程度になるんだよね。
それがあるから、みんなSJISにしてるのかもしれない。

あと、ボスのアニメーションタスクって、基本的には流用なのかな?
if文が連続してて読みづらいから、結局自作しちゃったんだけど。

327 名無し妖精 :2018/08/15(水) 05:35:33 ID:UccsUeBo0
>>325
文字化けというのが一番あり得るかもしれない。
パッケージスクリプトだと必然的に頻度が増えるので。
日本語環境だとエディタのデフォ設定がSJISとかだったりするから
特に意識してなかったらUnicodeにならないんですよ。
そしてデフォルトシステムの文字コードと剥離が発生する、と。

328 名無し妖精 :2018/08/15(水) 09:41:06 ID:gNRKBYWs0
>>327
とりあえず、自分のやっていることは、
・拡張子を.dnhにすることで、メモ帳で開けないようにする
・専用のスクリプトエディタ(サクラエディタや天狗のネタ帳)で編集を行う
・文字コードのデフォルトをUnicodeにする(サクラエディタではそういったことが可能)
・ファイル名に半角ダッシュ、ハイフンを含めない
といったところ。
それと、パッケージスクリプトに#includeを行う場合は、#includeするファイル内に
ObjMove系列、CreateShot系列の関数が入っているとエラーになる。
パッケージスクリプト自体がそれらの関数を識別しない仕様になっているようなので。
仮に#includeをする際には、Move系列とRender系列の関数は完全に分離するのがおすすめ。

329 まつとめ :2018/08/19(日) 15:58:48 ID:R.M9sjAE0
東方弾幕風で会話イベント作ってるのですが、一通り組んで、連続再生にいれて再生してみると、「同名のスクリプトです」と出てしまい困ってます……

330 名無し妖精 :2018/08/20(月) 02:02:58 ID:elhCLt9A0
>>329
まず、バージョンはどっち?
0.12mかそれともph3か?

331 名無し妖精 :2018/08/20(月) 06:13:36 ID:9MYM1OFk0
v2だと思うけど、それだとscript_eventの名前が同じスクリプト内で重複してるとか
連続再生[Plural]スクリプト上でスクリプトファイルの名前が被ってるか…。後者は見た事ないけど。

332 名無し妖精 :2018/08/23(木) 13:18:58 ID:teq9z4LI0
本家年々弾幕の使い回しが増えたな
元々弾幕は二次産物だったのかもしらんが

333 名無し妖精 :2018/08/29(水) 12:30:19 ID:YtMPs9LM0
あんまり意表をつきすぎた弾幕だと
無理ゲーだとかアマノジャクだとか言われてしまう

334 名無し妖精 :2018/08/29(水) 17:49:03 ID:L6a7BePU0
最近出た「Incredible Daily Tale」も、弾消しシステムの使用を前提とした回避不能弾幕が入ってるからな
でもそのうち、弾消し未使用のTASが出てきそうな気もする

335 名無し妖精 :2018/08/29(水) 19:10:07 ID:WooUWOhg0
弾消しシステムはゲーム的な爽快感は出るけど
弾幕美との相性はあまり良くないんだよね。
ボム耐性弾で複数の模様を仕込むとかすれば両立できそうだけど

336 名無し妖精 :2018/08/29(水) 19:48:58 ID:L6a7BePU0
弾消しシステムは、どっちかというとcave寄りかな。
ある意味、東方と一番相性のいいアーケードゲームって、サイヴァリアだと思う。
完全無敵状態で、その間もグレイズが増加するシステムを構築できたらいいんだけど。

337 名無し妖精 :2018/08/29(水) 21:17:38 ID:WooUWOhg0
萃夢想のダッシュグレイズ実装したすり抜けゲーとか昔あったなぁ…。

「Incredible Daily Tale」って、最近とか言ってたけど
ファイルのタイムスタンプ見たら2009年12月になってたよ。
弾幕風wikiの個別ページが出来たのが「最近」って事だね。
誤解のないように一応補足しとくけど。

338 名無し妖精 :2018/08/29(水) 22:24:58 ID:L6a7BePU0
>>337
そうだったのか、これは失礼。

それはそれとして、弾幕風で一番容量食うのって、BGMなのかも。
推奨されてるのはoggファイルだけど、フリーのogg音源ってなかなか見つからない印象。

339 名無し妖精 :2018/08/30(木) 10:02:41 ID:uAIMQr3I0
弾幕風に限らず、ゲーム全般に言えることだね(MIDIの時代は画像のほうが大きいことが多かったが)
実際、本家でも紅魔郷で309/318MBがBGMだし、天空璋でも370/446MBがBGMだね

340 名無し妖精 :2018/08/30(木) 17:35:36 ID:5R2f9fP.0
そのためなのかな。
ReadMeに「BGMはご自分でお好きなものを」って書かれているのが多いのは。

341 名無し妖精 :2018/08/30(木) 19:37:37 ID:h335s6B.0
BGMはスクリプト側で付けてほしいなあ
無音でのプレイが辛いのもそうだけど作り手側が作品に対してあんま真剣じゃないのかなって思っちゃって冷める
曲に合わせた演出とかの盛り上がりも無いってことになるしクオリティ的にも差が出ちゃうと思うわ
これだ!って曲を見つけてくる大変さはよくわかるけどね……

342 名無し妖精 :2018/08/30(木) 19:47:50 ID:y7zaaWks0
ダライアス外伝みたいな演出期待してるんなら、あれは商業STGの中でも特殊例だからな
BGMに合わせて展開や演出ってそこまで凝ってるSTGって名作って言われてる作品でもそんなにないぞ

343 名無し妖精 :2018/08/30(木) 20:11:14 ID:5R2f9fP.0
しじみさんの作品はそのあたり、こだわりが感じられるよね。
EBRのアリスなんかは、最初を短時間の耐久スペルにすることで、曲との同調までやってくれてる。

344 名無し妖精 :2018/09/02(日) 11:21:06 ID:a.J93dv.0
つttps://ux.getuploader.com/DNH_LRW/

バグはないとは思いますが、テストプレイがてら遊んでみてくだしあ
バグが出たり、処理が重かったりしたら、平にご容赦を

345 名無し妖精 :2018/09/02(日) 11:34:56 ID:8.S4e05s0
ダウンロードパスがどこにも書かれてないのですが…。

346 名無し妖精 :2018/09/15(土) 22:16:57 ID:kONctYr60
ダライアスでは音楽に合わせてボスが登場するよう、
ワープアウトの衝撃波でザコ敵が一掃されるという、外道で素敵な演出をしている
・・・まさに外道、じゃなくて名作

347 名無し妖精 :2018/09/26(水) 02:20:48 ID:A.UyoafM0
某氏も批評してたが神主の態度も含めNDはホントに酷いな
それなりに綺麗な弾幕もいくつかあるが弾幕美は錆び付いていくだけ
神〜輝あたりなら「もっと洗練できたんだけど」が信じられたけど、今となってはただの言い訳

そもそも「自分が面白いと思うゲームを作りたい」ってゲーム制作の大前提じゃん?
結構自己中な人間なので?
わざわざ自分性格悪いですアピールしなくて自分の作品に無理にでも深みを出したげな文章からひしひし伝わってるから

「なんだこのクソゲー!みたいなの出そうと」毎回最終回直後に駄作ですと言うガ○ダムの監督の真似をしだす始末
今年は病んでましたって言われてもな…

348 名無し妖精 :2018/09/26(水) 16:40:45 ID:Beua/yEQ0
BGMに完全に合わせようとすると、弾幕風って1F以下の待機命令を出せないので
どうあがいてもズレてしまうっていう。まぁ殆ど誤差の範囲だけどね。

曲合わせとは違うけど、337拍子や一本締め(タタタン タタタン タタタン タン)のリズムで
弾やアイテムを出したりしたら地味に面白そうかもしれない

349 名無し妖精 :2018/09/30(日) 21:43:11 ID:UTwZ9WGg0
LoadTextureInLoadThreadの使い方を覚えたんだけど、これって音声ファイルで似たような関数は無いんだろうか
ショットの各種発射音とかリトライ毎に解放→再読み込みとかしてて効率悪いから改善できたらいいんだけどな

350 名無し妖精 :2018/10/01(月) 02:41:34 ID:m9aS35ik0
log見てたら、LoadSoundで音声読み込みはちゃんとしてるのに
テクスチャと違って開放処理が見当たらない…。
DirectSound終了時に勝手に開放してるんだろうか。

使わないサウンドリソースは再生頻度別に仕分けたり、
Removeで開放してやった方が良さそうか…?

351 名無し妖精 :2018/10/01(月) 20:45:53 ID:m9aS35ik0
ttps://info-geocities.yahoo.co.jp/close/
弾幕風の開発元である「と~ほ~GC」が、2019年3月31日にサーバーごと消えるっぽいです。

リファレンスや旧バージョンのDLは、今のうちにしておいた方が良いかも。

352 名無し妖精 :2018/10/05(金) 12:47:04 ID:XKvQDQ8k0
>>347
ゲームが酷いの?
それとも神主の態度が酷いの?

353 名無し妖精 :2018/10/05(金) 14:02:03 ID:EIemJzuY0
>>352
相手するなし

354 名無し妖精 :2018/10/05(金) 19:31:30 ID:RJE27wGM0
自演の可能性もあるから、ブーメランだぞ

355 名無し妖精 :2018/10/05(金) 19:41:58 ID:KHAylAuk0
戻り弾幕か

356 名無し妖精 :2018/10/05(金) 23:24:49 ID:RJE27wGM0
隠岐奈がやってきそう


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

アレルシャット 花粉イオンでブロック 160回分 / フマキラー

. ハ   ハ      ,へ _ /  |  //
||/弋_.ノ └ '" ^'- '"      └ '1;;/
|    N| ル  _   ト;;イ  |ノハ|  .|;;しl
|    |;;|.//..//   |;;;;|   |;;;;;|  .|;;;;;;|
|   ヽ;| //_、  .|;;;;|   .|;;;|  |;;;;;;|
|    //."コ;|  .|;;;;|    .|;;|  |;;;;|
|   ""   コ|   |;;;|    .|;|  |;;;;|
|       _ ̄   |;;;|     ll  |;;;|
|       .|;|    "  .|;|    .|;;;|
|       .|;|   __   |;;|    .|;;|
|         .|;| //   .|;;;|    |;;|
|           /イ|     |;;;|    |;ハ
|      // l;|///   |;;|    .|;;;ヘ、,
|   _....._ム ".  .///    / ̄.// .|;;;;;;/
| ,´,::=="¨)  ヽ、、    // ̄//  |;;;;;|
| ,i/()))ノ)、))          //   |;;└┐
|(_もリ>д<ノリs         //   .|;;;;;;;;/
|  /^i、_:Θ、         "    |;;;;;;(
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


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