コミックマーケット96当選しました

2019/08/09~12に開催される、コミックマーケット96に参加します。
参加日は4日目の8/12

南地区“ム”ブロック-14b
PHTR-CNZにて、新作育成STGを頒布予定です。

よろしくお願いします。

OpenCVforUnity仕様メモ1

忘れないように

UnityアセットのOpenCVforUnity購入から1ヵ月ほど経ち、やっとの事でウェブカメラ映像をグレースケールに処理することに成功。
基本的な操作であるグレースケール出力まで、時間をかけすぎたという反省の意味も込めて、ブログに残します。
練習も兼ねてGitHubでのメモ用コード公開は今後も行っていきます。
最後の行にソースコードも貼り付けています。

GitHub公開はこちら

公開用のコードは単純な画像処理を記述になっています。これは後で見直した時に最低限の動作を思い出すためです。
実制作中のコードやゲームオブジェクトはもう少し機能が多いです。

バーチャル体を動かす為に購入と勉強を始めましたが、想像以上に苦戦しました。
自由にバーチャル体を動かせるまでもう少し時間がかかりそうです。

以下ソースコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using OpenCVForUnity.CoreModule;
using OpenCVForUnity.ImgprocModule;
using OpenCVForUnity.UnityUtils;

public class HogeWebCamOpenCvUnity : MonoBehaviour
{

//画像処理後の映像出力先
public RawImage HogeOutputRaw;

//各々のウェブカメラの設定用項目
[SerializeField] private int width = 1920;
[SerializeField] private int height = 1080;
[SerializeField] private int fps = 30;

//ウェブカメラテクスチャ
private WebCamTexture hogeWebCamTexture;

void Start()
{
//ウェブカメラの初期設定と起動
hogeWebCamTexture = new WebCamTexture(width, height, fps);
HogeOutputRaw.texture = hogeWebCamTexture;
hogeWebCamTexture.Play();
}

void Update()
{
//ウェブカメラのフレームが変更されたら処理
if (hogeWebCamTexture.didUpdateThisFrame)
{
//ウェブカメラの画像をMatに変換
Mat originMat = new Mat(hogeWebCamTexture.height, hogeWebCamTexture.width, CvType.CV_8UC4);
Utils.webCamTextureToMat(hogeWebCamTexture, originMat);

//画像処理先Mat
Mat changeMat = new Mat(originMat.cols(), originMat.rows(), CvType.CV_8UC4);

//グレースケール処理
Imgproc.cvtColor(originMat, changeMat, Imgproc.COLOR_RGB2GRAY);
//二値化(数値は各々で変更)
Imgproc.threshold(changeMat, changeMat, 100, 255, Imgproc.THRESH_BINARY);
//輪郭抽出
Imgproc.Sobel(changeMat, changeMat, -1, 1, 0);

//Matをテクスチャに変換
Texture2D endTexture = new Texture2D(changeMat.cols(), changeMat.rows(), TextureFormat.RGBA32, false);
Utils.matToTexture2D(changeMat, endTexture);

//映像出力先にテクスチャ貼付け
HogeOutputRaw.texture = endTexture;
}
}

}

3Dモデル作成からUnity動作過程1

個人用メモとして、blenderで作成した3Dモデルを、Unityに持ち込む流れを、記事にしていきます。
BlenderやUnityの細かい操作はあまり説明しませんが、ポイントごとに説明を入れます。

1:全身の下書きイラストを用意する

自分で描いた全身のラフ画像です。
ポイントとしては、腕、足の関節を判りやすく描きました。
その画像をBlenderに読み込ませます。

2:イラストの配置を修正する

Z軸の線と顔の顎が重なるように移動
3Dポインター原点(0,0,0)に足元が来るように配置

3:平面メッシュを追加

「SHIFT+A」を入力後、メッシュ→平面を選択
「Num3」入力して視点変更
「R」→「CTRL」押しながら平面メッシュを-90度に立てる。

メッシュが真正面に向いている事を確認して、「CTRL」+「A」入力後、「回転」を適用

編集モードに入り、「CTRL」+「R」で平面メッシュの中央に設定
左端の頂点2個削除

オブジェクトモードで、追加選択→ミラー設置(適用しない)

4:下絵を参考にメッシュ変更

編集モードで、2頂点選択→「W」→細分化→頂点追加
下絵を参考に頂点を「G」キーで移動して形を作る

5:目と口の形成

「K」キー入力でナイフツールで、下絵に合わせて、目の形と口の形に頂点を追加
目の面だけを削除する

「CTRL」+「B」を押して口周りの辺を分ける

6:頂点、辺の追加や削除で格子状の形を作る

変更前

「J」キーで辺追加、「K」キーでナイフツールで頂点追加、「CTRL」+「J」で連続頂点
「X」キーで頂点、辺、面の削除を行い形を整える。

変更後

7:まつげの追加

オブジェクトモードに戻してから、平面メッシュを追加する
顔のメッシュ調整と同様に、回転と適用を行う
面を半分にしてから、ミラーを追加

まつげのマテリアル編集でまつげのモデル色を黒色に変える
顔のマテリアルは肌色にする
その後まつ毛の編集

8:顔とまつげのモデルを1つにまとめる

オブジェクトモードで顔とまつげを複数選択
「CTRL」+「J」キーで一つにまとめる

平面状態での顔とまつ毛のモデリングまで出来ました。
次回は、頭部のモデリング完成まで行います。

新年の制作状況と動画

あけましておめでとうございます!

と遅れた挨拶になりましたが、新年1回目のブログ更新では、予定通り現在制作中のゲームの仕様変更を動画で発表します。

この仕様変更は、変わる可能性大きいですが、更新と進捗報告頻度を上げる目的でもあります。

次回の動画では、新規3Dモデル発表します!

今年も本サークルをよろしくお願いします。

編集技術がんばります

2018年の振返りと2019年に向けて

タイトル通り、2018年の自分の活動を振返って、来年の活動に生かしていこう思い、今メモとして残します。

今年は、冬こみトレ、夏コミ、夏こみトレ、デジゲー博と参加しました。
イベントの参加回数を増やして、制作ゲームの完成と更新速度を上げていこうと思って、参加イベントを増やしました。

しかし、思っていたほど進捗速度は上がっていません!

2019年は、制作ゲームの開発速度を上げていく施策をする必要があると、常に考えていました。
そこで、ブログ更新を毎週、Twitter上での進捗報告、そして動画による制作ゲーム内容発表を行います。

そこで、2019/1/20開催の「こみっくトレジャー33」で試作品を発表しますが、プレビュー版として、1/6、1/13、1/20に動画公開します。
短いPVになりますが、「開発←→告知」を一定に保つ活動を来年から行います!

そして、自作ゲームを少しでも遊んでもらえたらと思いながら、ゲーム開発を続けていきます。

今年もありがとうございました、来年も楽しみにしてください。

ゲーム制作進捗報告8

今回は、ゲーム制作に直接関わる訳では無いですが、Gitについて勘違いしていた箇所を、訂正を込めたメモ書きになります。

今まで勘違いしていたGitリポジトリ制作先

Unityのプロジェクトフォルダ階層1つ上に作っていた

上記のリポジトリ作成していたため、これまで参考にしていた、不要なデータをコミットから外すgitgnoreの設定が、上手くいかない為困っていました。しかし、フォルダ設定を見直していたら間違いに気づきました。

Unityプロジェクトフォルダ内にリポジトリ作成

Unityのプロジェクト内に、リポジトリを作らないと意味がなかったと、ようやく気付けました。これにより、無駄なデータをコミットする必要が無くなり、少しは快適になると思います。

単純なミスに早く気付けるようになりたいです。