(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]



Unityのエディタ拡張時に非同期タスクの進捗状況を表示する Progress【Unity】【エディタ拡張】


この記事でのバージョン
Unity 2018.4.6f1


はじめに

Unityにはエディタ拡張時に進捗を表示するための

EditorUtility.Display(Cancelable)ProgressBarという物が用意されています。

f:id:kan_kikuchi:20200330091721g:plain



そしてUnity 2020.1から、これに似た機能である

エディタ拡張時に非同期処理の進捗を表示するためのProgressが追加されました。



今回はこれを試してみようという感じの記事です。

なお、イメージとしては以下のような感じ。

f:id:kan_kikuchi:20200902073739g:plain



Progress

続きを読む

Steam(works)へゲームのビルドをアップロードする手順やアップデート方法、非公開ベータテストのやり方【Steam】

はじめに

今回は完成したゲームのビルドをSteam(works)にアップロードする手順

アップデート方法の解説記事です!

ついでに非公開ベータテストのやり方についても書いています。


なお、Steamworksの登録は済んでいる前提で、OSがWindowsの場合なのであしからず。


ビルドをアップロードする手順とアップデート方法

続きを読む

エディタ拡張でUnityを再生していない時でもコルーチンを使い非同期処理が行える EditorCoroutineUtility【Unity】【エディタ拡張】


この記事でのバージョン
Unity 2019.4.5f1


はじめに

UnityはMonoBehaviourのStartCoroutineを使うことで、

簡単にコルーチンを実行し、非同期処理を行う事が可能ですが、

private void Start () {
  //StartCoroutineを使ってコルーチンを実行
  StartCoroutine(DelayLog());
}

//0.5秒待ってからログを表示
private IEnumerator DelayLog(){
  Debug.Log("待ち開始……");
  yield return new WaitForSeconds(0.5f);
  Debug.Log("待ち終了!");
}
f:id:kan_kikuchi:20171214073408g:plain


この方法はエディタ拡張時(Unityを再生していない時)には使えないため、

エディタ拡張でコルーチンを利用したい場合はUniRxを使うなど一工夫必要でした。


しかし、いつの間にかエディタ拡張でコルーチンを使うためのEditorCoroutine

という物が実装されていたので、今回はこれを使ってみようという感じの記事。


イメージとしては以下のような感じです。

f:id:kan_kikuchi:20200828080630g:plain



導入

続きを読む

Odinで拡張されたエディタウィンドウ OdinEditorWindow【Unity】【アセット】【Odin】【エディタ拡張】


この記事でのバージョン
Unity 2019.4.5f1
Odin 2.1.13


はじめに

色々な属性を追加して、Inspectorを使いやすくしたり、

f:id:kan_kikuchi:20171127084846j:plain


シーン内を検証し、Inspectorでの設定に問題のあるオブジェクトを見つけたりも出来るOdinですが、

f:id:kan_kikuchi:20180104073302j:plain


なんとエディタ拡張時に使うウィンドウ用クラス、

エディタウィンドウ(EditorWindow)の拡張も可能でした……!

f:id:kan_kikuchi:20200825093817j:plain


という事で今回はその方法についての記事です。

Odin - Inspector and Serializer | Utilities Tools | Unity Asset Store



OdinEditorWindow

続きを読む

ボタンなどのレイキャストの当たり判定(タッチ範囲)だけを変えられるRaycastPadding【Unity】【uGUI】

この記事でのバージョン
Unity 2020.1.0f1


はじめに

UIを作っていて、ボタンの当たり判定を見た目より大きくしたいなんて事はよくあります。


しかし、uGUIのボタン(というよりRaycast Target)は当たり判定==画像となっているため、

当たり判定だけを大きくするには一工夫必要でした。



しかしUnity2020.1からはRaycastPaddingというRaycastの判定だけを広げる設定が追加され、

簡単に当たり判定だけを変えられるようになったので、今回はそれを使ってみようという感じの記事。


イメージとしては以下のような感じ。

f:id:kan_kikuchi:20200820085512g:plain


なお、記事中では以下のアセットを使っています。

Clean & Minimalist GUI Pack | 2D GUI | Unity Asset Store



RaycastPadding

続きを読む

メニューをプログラムから実行する EditorApplication.ExecuteMenuItem【Unity】【エディタ拡張】

この記事でのバージョン
Unity 2019.4.2f1


UnityはMenuItemを使うことで簡単に独自の処理をするメニューを追加出来ます。


//ただログを出す
[MenuItem("Tools/ShowLog")]
private static void ShowLog() {
  Debug.Log("ログ");
}
f:id:kan_kikuchi:20200710064607j:plain


そしてこのメニューは、

EditorApplication.ExecuteMenuItemを使う事でプログラムから実行する事も可能というのが今回の話。

//メニューが設定されているパスを指定し、実行
EditorApplication.ExecuteMenuItem("Tools/ShowLog");


もちろんUnityに最初からあるメニューを実行する事も可能です。

f:id:kan_kikuchi:20200710064859j:plain
//エディタの再生を開始する
EditorApplication.ExecuteMenuItem("Edit/Play");


なお、指定したパスにメニューが無ければ以下のようなエラーが出ます。

ExecuteMenuItem failed because there is no menu named 'Tools/ShowLog3'
UnityEditor.EditorApplication:ExecuteMenuItem(String)
NewBehaviourScript:ShowLog2() (at Assets/Scenes/NewBehaviourScript.cs:15)
f:id:kan_kikuchi:20200710065408j:plain



Unityで開発しているSteam向けゲームのDLCの設定と実装方法【Unity】【Steam】

この記事でのバージョン
Unity 2019.4.1f1


はじめに

今回はUnityで開発しているSteam向けゲームのDLCの設定と実装方法です!


ただし、「DLCのビルドは別で購入したら追加でダウンロードする」という方式ではなく、

「DLCの内容も本体に含まれていて、購入したかのフラグを取得して開放する」

という感じなのであしからず。


なお、DLCに関するSteamの公式ドキュメントは以下のページになります。





Steamworks上でのDLCの設定

続きを読む

「縦笛なめなめVR」リリース!【新作】【Steam】【VR】【アセット】

はじめに

新作ゲームをリリースしました!その名も「縦笛なめなめVR」です!!(もちろんUnity製)


f:id:kan_kikuchi:20200727063823p:plain


今回は1,111円という前作の札束風呂VRの580円からほぼ倍という



価格設定ですが、なにとぞよろしくお願いします!

(※リリースセールで8月21日まで10%オフの999円)



ゲーム内容はタイトル通り、縦笛(リコーダー)等をVRで舐めるといったものなのですが、

前作の札束風呂VRとは違い、ただネタを楽しむだけでなく、

女の子に見つからずにいかに効率良く正確に舐めるかを競うちゃんとしたゲームとして作りました。



また、今回は登場する女の子の服やアクセサリを変更出来るDLCも作ってみました。



なお、対応機器はValve Index, HTC Vive(pro), Oculus Rift, Windows Mixed Realityで、

なんとSteam VRで使える全機種(?)に対応しています……!

f:id:kan_kikuchi:20200727082231j:plain


さらに対応言語も11種類……!!(ただしボイスは日本語だけ)

f:id:kan_kikuchi:20200727082246j:plain


他にもランキングや実績を実装したり、

専用のホームページ(ランディングページ?)も作ってたりもしています。



これで記事が終わるのも寂しいので、ついでに開発の経緯や使用アセット等も紹介していきます。


開発の経緯

続きを読む

Unityで開発しているSteam向けVRゲームでコントローラーを振動させる方法【Unity】【Steam】【VR】

この記事でのバージョン
Unity 2019.4.1f1


はじめに

今回はUnityで開発しているSteam向けVRゲームでコントローラーを振動させる方法です!


Steamworks.NETの導入

続きを読む

Steamworksのドキュメントは情報の宝庫!Steamで(以外でも?)ゲーム開発する人は必読という話と、オススメページまとめ【Steam】【プロモーション】

はじめに

Steam(works)には開発者登録しなくても見られる、

開発に関連する情報が載ったページ、いわゆるドキュメントがあります。

f:id:kan_kikuchi:20200806071543j:plain


もちろん他のゲームプラットフォーム等にもドキュメントはあるのですが、

Steamのドキュメントは知りたい内容が的確かつ分かりやすく(しかもほぼ日本語で)書いてありますし、

「どう開発したらいいのか?」という技術的な内容はもちろん、



「どう売ったら良いのか」というマーケティング的な内容まで書いてあります。



という事で今回は、勉強のためにSteamのドキュメントを読み漁りながら

良さげなページとその情報を抜粋してまとめてみました!


ただし、この量でも本当に一部だけしか載せてないので

少なくとも気になる項目は実際にドキュメントを熟読する事をオススメします。


なお、ドキュメントを見ても分からない事は開発者用の掲示板で検索したり聞いたりも出来ますし、



問い合わせする事も可能です。(日本語でもOK、返信も丁寧かつ結構早い)





目次

  • はじめに
  • 目次
  • モバイルゲームのSteamへの移植
  • Steam での予約購入
  • Steamタグ
  • ゲームのアップデート
  • ユーザーレビュー
  • ローカリゼーションと言語
  • 予告編
  • 価格設定
  • 早期アクセス
  • Steamクラウド
  • Valve アンチチート (VAC) とゲーム禁止
  • データと実績
  • マイクロトランザクション(ゲーム内購入)
  • Steam での露出
  • イベントとお知らせ用ツール
  • ウィッシュリスト
  • キュレーターおよびキュレーターコネクト
  • コミュニティモデレーション
  • マーケティング、ベストプラクティス
  • 割引
  • 機能とツール、マーケティング
  • 使用言語やハードウェア、OSの比率



モバイルゲームのSteamへの移植

続きを読む