同人ゲームサークル reverse snare 開発ブログ

主に2DSTGを作ってる同人ゲームサークル reverse snareの開発記、イベント・作品宣伝を行うブログです。

Unity LineRendererでレーザー各種作成

Unity LineRenderer完全に理解した

linerendererでレーザー各種を作成

unityのLineRendererで簡単に画像の変形描画ができます。

parumu.jpg

むしふたパルム的なレーザー。ベジエ曲線でなんやかんや

DDPLaser.jpg

DDP

chaselaser.jpg

基本的な追尾レーザー

・どう使うの

1.オブジェクトにLineRendererコンポーネントをつける

2.LineRendererのPositionの使用数を関節数分設定する

(曲がる線を描きたいなら多めに、一直線なら2)

lr.png

3.描画に使う画像をプロジェクトに取り込む。

 マテリアルを作成し、マテリアルに描画に使う画像を割り当てる。

 

4.初期化処理

 LineRendererとそのマテリアルを受け取る。

 レーザーの軌跡など、関節数分の座標履歴を持つ。

LineRenderer lr;

Material material;

Vector3[] history;

public ChaseLaser(GameObject gameObject, int taleCnt) : base(gameObject) {

history = new Vector3[taleCnt];

for (int i = 0; i < history.Length; i++) {

history[i] = Vector3.zero;

}

lr = gameObject.GetComponent<LineRenderer>();

material = lr.material;

}

5.ゲーム動作処理

 移動で座標履歴を更新するとか、衝突でレーザー短くするとか。

6.描画処理

 関節座標を描画に反映させる

for (int i = 0; i < history.Length; i++) {

lr.SetPosition(i, history[i]);

}

 画像スクロールを行う場合はマテリアルのOffset(material.mainTextureOffset)を変更する

 (1.0fで画像一枚分動くので、ゲームの座標単位から変換する必要がある)

 

DDPレーザーみたいにスクロールするもので、長さによって画像が伸び縮みすると違和感がある場合は、

 最長の長さを定義しておいて、現在の長さの割合をmaterial.mainTextureScaleに設定する。

 (最長なら1、半分なら0.5)これで引き伸ばし感が長さに影響されない

ベジエ曲線のレーザーの描画のシワがちょっと気になる。

かなり基本的な使い方しかしてないので理解したなど到底言えないですね

5月作業:自機回り

5月は自機周りのプログラムを作成。

画像の用意がまだで、unityUIのデフォ画像で代用してるけど動いているものを見ると少しテンション上がりますね。少し。

5gatu_0.jpg

5gatu_1.jpg

基礎的な部分ができて、ごちゃごちゃ書いてたソースを共通部分と操作キャラ別の部分で分離したのであとはキャラ別に作り込んでく感じ

来月は敵のエディターを作成する。

編集中のプレビューが難しそうな予感

UnityEditor拡張 edge2アニメデータの読み込み

blg.jpg

blg2.jpg

blg3.jpg

以前windowsFormで作成していたedge2のアニメーションデータxml->ゲームで使用するアニメデータに整形・データ追加のツールをUnityのエディタ拡張で作ってみました。

過去にツイッターで見たEDGE1のアニメデータ(テキスト)の読み込みツール

とほぼ同じ?使ったのが結構前なのでうろ覚えですが

画像をunityプロジェクトに取り込んでspriteシート設定を割り当てる。

アニメに使用するspriteシートのrect割り当てやループ設定・回転許可などの設定はscriptableObjectに保持する。

上記ツールはソースが見れるのですが知識0ではほとんど理解できなかったのでググりまくった。

エディタ拡張

https://anchan828.github.io/editor-manual/web/reorderblelist.html

http://kan-kikuchi.hatenablog.com/entry/ReorderableList

過去ソースを移植した時にソリューションを2つに分けられて困ってたけど、エディタ拡張でEditorフォルダ使うからなのね。

画像取り込み

https://qiita.com/sapphire_al2o3/items/54a6d8ac321d6e1d9b79

EditorUtility.OpenFilePanel()で開くダイアログで画像を指定して読み込み。

https://qiita.com/harhogefoo/items/91fd13a8ab0a51def7e4

エディタウィンドウ表示用。全体を取り込んでからアニメデータに基づいて切り抜き。

edgeのyの0原点は上だが、unityは下が原点のため、反転計算が必要。

https://answers.unity.com/questions/943797/editor-script-to-slice-sprites.html

sprite保存時のrect割り当て。

SpriteMetaDataの配列をsprite.spritesheetに入れる。

コンボボックス的なやつ

https://docs.unity3d.com/ja/current/ScriptReference/EditorGUILayout.Popup.html

disabledなGUI

http://tiri-tomato.hatenadiary.jp/entry/20140318/1395104788

EditorGUI.BeginDisabledGroup(bool);

EditorGUI.EndDisabledGroup();

画像・spriteシート保存した後のunity Projectウィンドウ更新

https://qiita.com/thaladabar/items/8e74cd30d3a4294d07ad

AssetDatabase.Refresh();ではspriteシートが表示されないため、

AssetDatabase.ImportAsset( パス, ImportAssetOptions.ForceUpdate );

保存したspriteのspritesheet読み込み

http://kan-kikuchi.hatenablog.com/entry/MultipleSprite_LoadAllAssetsAtPath

画像保存後、再度読みだしてscriptableObjectに設定する。(冗長な処理な気がする)

画像保存とscriptableObject保存だけ行っていてこのデータでゲームを動かしていないので、ちゃんと動くかは今後の実装のお楽しみ。

あ、ンスプブGWで半額セール中です。(告知が遅い)

http://www.dlsite.com/home/work/=/product_id/RJ196354.html

3月の作業

3月の作業

ドット絵数枚作成、既存のドット絵微修正。

攻撃モーションのキーフレームとか書いた。

ついでにゲーム画面サイズのキャンパスにドット絵表示して画面との比率を見たけど、やはりこのサイズだとフルHDは耐えられないな。1280x720でいきます。

unity調査

・オブジェクト管理

ゲームマネージャからゲーム動作全部任せればこれまで通りできそう

今作もセルフ処理落ちを用意するので処理落ち発生時に手動GCとか無理やりできないかな…?のちに調査する

・ブラーエフェクト

カメラ1内容をrender target textureに転送→カメラ2を1にかぶせ、textureとゲーム内容を撮影してゲーム画面とすることでこれまで通りっぽくなる。

targetRenderTexture2.gif

右上のTartarget textureの指定がころころかわっておるじゃろう?書き込み先をいくつか用意してフィードバックを得るんじゃ。

カメラ2個はめっちゃ負荷たかそうだし、代替手段を見つけたいところ。

今月入ってからは、DXlib環境のソースをunityにぶち込んで修正してとりあえずコンパイル通したが、オブジェクト管理がこの時点でダメダメっぽいので一部ロジック除いてプログラム書き直す

今月中で自機、敵基本、自機弾敵弾の管理を作って、敵動作を編集可能なものにするべくunityの仕様を調べるのを目標にしよう

PCが届いたぞ

新PC届いてから色々やってました

ちなみに旧PCはしまう場所がない為部屋のど真ん中でちゃぶ台と化しています

苦楽を共にした戦友への扱い、これでいいのか?

曲書いた

旧PCで作業開始していたがいよいよHDDがダメになってきたので適当なところでバックアップを取って新PCで続行。

cubaseVSTのインストールも問題なかったがフリーのVSTのEQをGUI操作するとDAWが落ちる現象が発生していた。おまけにEQ設定リセット。GUI開かなければEQ稼働しているので謎である。

曲の下書きは年末の上京時の移動中にios KORG Gadgetで書き始め、しばらくgadget上で作業していた。下書きと言いつつ手元の音源でgadgetよりいい音が見当たらずそのまま使ってるけども。

イメージはリヴィエラやインザナのタイトル放置デモ。ゲームに使うとしたらPVか同じくタイトル放置デモだけど、自作ゲームに使いたい作風にやや遠い気もするので使うかどうかは考え中。

いつも音圧が出なくて悩んでたが今回はあげれた感ある。しかしバランスがやや悪いと思う。

まずドラムが派手すぎた。リリースやリバーブ切ってスッキリさせるといいかもしれない。

ストリングスやオルガンのパンの設定はちょうど良かった。音圧稼ぎに一役買ったが、ストリングス出てきすぎな気がする。

コード進行させる役割として単調なフレーズしか入れてなかったがために音量あげないと地味だったから…というのが原因かもしれない。

メロのギターは生録ではなくフリーVST bot紹介のyamaha guitar>cubase付属ディストーション>アンプシミュLe456>ampliTubeのキャビネット部 で音作り、ピッチベンド設定してチョーキングなどの再現を行った。

単音弾きならチョーキングに並んでスライドも多用したいのだけれど、再現出来ず断念。ベンド幅あげればできるかな。

入力はやや手間だが実際に弾くとタイミングヨレヨレだし何takeかかるかわからないwので圧倒的に制作速度は早い

unity

メニュー画面から作成中。

これまでゲーム中のオプション変更に対応していないので、どこからでも呼べるようにしたい。

フォント作成

メニューに使うフォントを急ごしらえ。

フォントもこれまでフリーフォントを使っていないのでライセンスについて調べつつ、inkscapeで加工して取り込む。

5000兆円の作り方を参考に金属プレートな感じで作ってみた。

キャプチャ

テキストオブジェクトコピーしてフチ太くしてずらしてグラデつけて…こんな感じになった

unityの音声プラグイン adx2le 機能確認

http://www.adx2le.com/

BGMのシームレス切り替え機能を確認。自由に再生ブロックを設定できそうなのでやりたいことはできそう。

2月はあっという間に通り過ぎてしまったし、3月も調査に時間かかる予定。

stolen explosive DL販売にC93版を追加!

DL販売サイトにて、C93で頒布したstolen explosive アレンジバージョンを追加しました!

販売サイトとすでにお持ちの方向けのアップデートファイルのリンクを紹介します。

通常版PV

(動画前半)アレンジ版PV

新規に購入する方は以下のDL販売サイトからどうぞ!

DLsite

http://www.dlsite.com/home/work/=/product_id/RJ196354.html

メロンブックス DL

http://www.melonbooks.com/index.php?main_page=product_info&products_id=IT0000194043

DLしたフォルダの中に通常版とアレンジ版が入っています!

C93版、通常版をすでにお持ちの方はこちらからアップデートファイルを適用することで、両方のバージョンが遊べます。

https://www.dropbox.com/s/x87g6l7m0ghrydc/nspv%E6%9B%B4%E6%96%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.zip?dl=0

ただし…少々面倒な手順が必要です。

フォルダに同梱しているアップデート方法.txtより、引継ぎ手順です。

--------------------------------------------------------------------------------------------------

step0. (必要に応じて"replay"フォルダ、"file"フォルダをバックアップしてください。)

step1. 既存のゲーム本体exeがあるフォルダに"nspv_ver1_02.exe","nspv_C93ver1_01.exe"を追加します。

step2. 既存のゲーム本体exeを削除します。

step3. 追加したexeのどちらかを起動します。

step4. 初回起動のダイアログで、引継ぎ元のバージョンを選び、プレイデータとリプレイが引き継がれます。

       Zキー:通常版から引き継ぐ

       Xキー:C93版から引き継ぐ

上記手順でスコア、リプレイデータが選択したバージョンの最新版に引き継がれます。

キーコンフィグや画面設定なども引き継がれ、両バージョンで共通となります。(片方で設定変更すると逆側でも適用されます。)

<既存のゲーム本体exeのファイル名>

通常版:nspv_01_00.exe、nspv_01_01.exe

C93版:nspv1.exe

--------------------------------------------------------------------------------------------------

ファイル管理の想定が甘かったためユーザーの皆様にはご迷惑をおかけしますが、上記手順後に引き続きンスプブで遊んでいただければ幸いでございます。

C93 大反省会

長くなったし公開する意味あるのかわからないけど置いとく。

C93移動・参加

・千歳to羽田、宿

会場でも北海道土産を配ってましたが私は道民です。

冬に移動するには、欠航や遅延を避けるために前日移動になるので

休みが取れない場合は21時台の時間の飛行機と羽田近辺の宿になるのはしょうがない。

休みを取って早めに移動すれば品川近辺の宿とれるかな?

・移動開始時間

6時半起床、7時半に移動開始し、自分のブースについたのは9時ちょうど。

列車方向待ちがえました。すぐ正しい方向乗れましたが。

宿が近くであれば同じ時間で、乗り換え少なくなってミスする可能性が減る。ミスしても少し余裕がある。

宿が同じなら7時移動開始にしたい。

・荷物

肩掛けと背負いのバッグ2つで会場に入ったけど、サークル入場列でキャリーバッグで入る人も見た。

キャリーだと抱える荷物は減るけど電車や人込みで気を使うのであまり負担軽減にならなさそう。

次回キャリーを試して楽な方を今後使う。

・食事

朝の出撃準備中に軽く食事とったほうがよかった。

来る途中コンビニで菓子パン買っていた頒布応対が一人なので会場で食う余裕がない。

・設営前の大量のチラシ

チラシが積まれてあることは知ってたけど、肝心な処理方法を調べてなかったので全部自宅に郵送した。

後日ググってみたが、現地のゴミ箱直行でいいのかよ!

家で一通り見たが必要な情報はネットでも調べられそうだし、次から即破棄で。

・挨拶

挨拶用の名刺や交換用の頒布物の用意がなかった。

近隣の配置だったアリスブレイズさん、MATYLAさんとは挨拶&頒布物の交換をしました。

STG系のサークルに回って挨拶したいけど、このペースで交換してたら頒布物なくなるな?と思って

閉会前に余ってたら回ってみようと考えていたんですが、午前でなくなっちゃった。

次回は余裕をもって頒布物用意、余裕をもって会場到着して挨拶回りする。

・設営全般

今回のような通路側に面した卓であれば卓の前面にポスターがあると宣伝効果高そう。

タブレットと試遊台(タイトル放置デモとリプレイ再生)2つ動くもの置いてたのは宣伝効果高かった気がする。

高さがない・タブレット小さいのをンスプブ推しの縦長動画でカバーにしたのが良かったかもしれん。

次回は16:9の画面だし台は必須。

「盗難にあうので机前面に頒布物を置くべきではない」と聞いたことはあるけど、

まあそんな奴いないでしょって余裕でいた。が!少々アクシデントが発生し、

やはり表に積み上げるのは危険ということがわかりました。試遊台の裏とかに置く。

・頒布数が少ない

30部持ち込み、サークル間交換の-2込みで完売です。

作品感想の記事でも書いたけど次回はDLカードでかさばらないので多めに用意できると思います。

・試遊台

遊んでくれた方は4人。遊んでいただきありがとうございました。

遊んでないときはデモ画面の表示ができるので宣伝に支障なし。作ってよかったデモ画面。

コントローラは箱コンとサタパで悩んでサタパにした。

パッドよりはアケコンのほうがいいよね。caveシュー操作なのにサタパはやっぱダメだったね…。みんな持ち方苦労してたね…。

小型アケコン買ってもかなりかさばるので荷物の整理が必要。

ローリングガンナーのあるふぁ~秘密基地さんがアケコンで試遊台を用意していたので参考にしたい。

自分のゲームなのに説明がスムーズにできていない…。

何を伝えて何を省くべきか考える必要があった。

けど今更だけどンスプブのシステム複雑だな?ライフ制、熱量、Bボタンの押し分け

デモ画面からの遷移でもたもた。

背面からキーボードを操作するのがつらいので2Pコントローラでシステム操作するか…?荷物と相談。

ゲームを始めるとリプレイ中のみ使えるコマ送り状態になっていることが2回もあったけど、原因わかんね。

たしかデモ画面からゲーム開始してたはずなんだが…

(ほかのデモ画面絡みバグを見つけて前記事のバージョンで修正してます)

頒布作品について

・CD焼き

外付けドライブ買ってデスクトップのドライブと合わせて2倍焼きじゃあ!

とイキってたがデスクトップのドライブが不調ということが判明し、

結果的に外付けの購入により首の皮一枚でつながった形です。

・ジャケット

excelで画像とタイトルなどを並べてpdf出力してコンビニ印刷してはさみで切って折ってケースに入れる。

フォーマットが甘く、はさみを入れる箇所が多くなって余計な手間が増えた。

今印刷の値段を調べたがカードサイズ印刷なら安いし、今後は印刷サービスを使う。

・ンスプブアレンジ

アレンジ版の構想自体は2017/3に通常版リリースした直後からあって、6月ぐらいまで作業してました。

C93配置決定してから再開し、11月末で作成完了。

試遊していただいた方からも言われましたが、敵が固い!

通常版/アレンジ版問わず、錬金できる属性だと威力が増す設定になっているので、

1面で属性変更したツインランス君・斧君が死ぬほど固い。

ちょうどいいタイミングで殴って倒せる体力に調整にしたのですが

殴ることを強制するような固さでよくなかったなと思います。

しかしリリースしてしまったので変更する予定はありません。

・燗天

会場で2人ぐらいにこれ目当てに来たと言っていただけました。ありがとうございます。

過去に公開していたDL版から変更なしです。

・LASER BLOW

これの下地の制作期間は長いです。(ンスプブリリース前から少しずつ作業してた)

新作体験版でも流用してます。今後もうまく使ってサクッと弾幕作りたい。

前にも書いた気がするけど、

奥行きがあるゲームシステムだと背景が書き込んでないと

奥の敵配置や敵の移動が分かりにくいと作ってて感じました。

(ゼビウスの道なりに進む戦車、レイフォース3面の水上の敵機は陸に上がらない…とか予想しやすい)

・新作体験版

ンスプブアレンジが終わった11月末から作業開始。

6月から試作してたドット絵をLASER BLOWの下地にのっけてガンガン実装!

かなりの速度で基礎的な部分が出来上がってテンション上がりました。

必殺技のシステム構想もンスプブリリース前後から考えてはいましたが、実装してみると想定通りにはいかないものですね。

スクロールのせいで必殺にめり込むナイトちゃんかわいそう…見栄えも良くない。

パワーアップも最後の土日でねじ込みましたが次のバージョンでは大きく変わると思います。

次回参加の予定

・夏コミには参加しません

現在の作業ペースだと半年でまともなものが出来上がらないため、

また、夏の暑さと人込みに耐えられないのでスルーです。

冬コミにまた新作体験版を出します

次回もショートステージ一つが遊べる体験版になると思います。

デスクトップPCがコミケ直前から不調ですが、注文した新PCが今週届くので、

平日で環境構築して土日から作業開始できそうです。