SPARKCREATIVE Tech Blog

https://www.spark-creative.jp/

【UE5】平均化フィルタリングでぼかしを実装してみる

こんにちは、クライエントエンジニアの中島龍清(ナカシマリュウセイ)です。 だいぶ久しぶりの投稿となってしまいました。 今回はフィルタリングについて調べていたうちにどれが何なのか分からなくなってきたため、備忘録代わりにひとまず簡単に実装ができた…

【UE5】敵AIをC++で作成してみよう! Part_2 (徘徊位置を指定、徘徊→追尾、移動速度の変化)

こんにちは!! エンジニアの竹野です! 今回は任意の位置を徘徊させる処理をメインで説明します! その他には、徘徊→追尾や徘徊の速度と追尾の速度を変えたりなどもやっていくので、 前回のPart_1からの流れで見ていただければわかりやすいかと、 ※今回から…

WebGPU Next Step

こんにちはエンジニアの中島悟です。 前回は半年ほど前になりますがWebGPUで最小の手間で三角形を描いてみました。 しかしこの四角形ではフィルタやシェーダー芸くらいしか使い道がありません。 そこでもう少し拡張しようと思います。具体的には下のものです…

【UE5】StateTreeをC++で実装しよう!

こんにちは! エンジニアの竹野です! 今回はUE5から出たStateTreeという新しいプラグインをC++にて使用していこうという感じです。 実装内容としてはキャラ制御のランダム徘徊、発見、追尾をテストで行います! 作業環境 プロジェクト設定 詳細 前準備 Stat…

【UE5】ハッチングマテリアルを作ってみた

初めまして、エンジニアの松本です。お初の投稿になります。 今回はタイトルの通りハッチングマテリアルを作ってみたお話になります。 ハッチングとは簡潔に説明すると、細かい平行線を縦や横に重ねて書く技法のことを言います。 クロスハッチング、手書き風…

【UE5】シェーダーファイルのインクルード方法について(Customノード編)

こんにちは!そしてお久しぶりです! エンジニアの桒村です。 今回は、前々回に書かせていただきました、Customノードについての続編にあたりますが、 Customノードの【Code】欄に直接HLSLコードを書くのではなく、UE専用のシェーダーファイルであるush、usf…

【UE5】UEC++ Sequencerの独自チャンネルをエンジン改良せずに追加する方法

こんにちは!! エンジニアの竹野です! 今回はUE5のシーケンサーのチャンネルをエンジン改良せずに追加する方法を説明したいと思います。 作業環境 プロジェクト設定 前置き 実装内容について 独自チャンネル構造体作成、設定 独自チャンネル登録、エラー対…

Python gif 作ってみた

こんにちは!!!クライアントエンジニアの小林です。今回はPythonでGIFを作っていきます。 作業環境 概要 リポジトリ GIF作成 シンプルなサンプル 圧縮率の比較 画像の量子化とGIF出力はスレッド化 tkinterはスレッドセーフではない ログを仕込んで見てみる ア…

Python デスクトップキャプチャ

こんにちは!!!クライアントエンジニアの小林です。今回はmssライブラリを利用したデスクトップキャプチャを紹介します。 作業環境 概要 インストール方法 キャプチャ方法 特定のウィンドウをキャプチャ インストール アクティブなウィンドウ名一覧取得 ウィ…

【UE5】Strata(Substrate)機能について

こんにちは!そしてお久しぶりです! エンジニアの桒村です。 今回はUnrealEngin5から新規で追加された「Strata(Substrate)」について話していきたいと思います。 まず初めに... Strata(Substrate)機能のメリット、デメリット Strata(Substrate)ノードについ…

こんにちわWebGPU

エンジニアの中島悟です。 去る2023年4月、Chrome Developer BlogでChromeのバージョン113からWebGPUがデフォルトで有効になるという発表がありました。 ついに!WebGPUが!デフォルトで使えます! Webグラフィックスの新しい時代の幕開けです。 というわけ…

【UE5】ポストプロセスマテリアルについて

こんにちは!!!クライアントエンジニアの小林です。今回はUnrealEngineのポストプロセスマテリアルについてぼちぼち書いていきます。 GTMFの宣伝も兼ねて2週連続投稿です。 会社ブログっぽい宣伝 作業環境 概要 ポストプロセスマテリアルとは BlendableLocati…

UnityのGameViewとSceneViewの色の違い

こんにちはエンジニアの中島悟です。 今回は実際にご相談をいただいたケースをもとにして、UnityのURPの色の話をしようと思います。 それは UnityのURP環境のエディタで、GameViewとSceneViewでVFXの色が違って見える というものでした。 TL;DR いきなりです…

ニューラルネットワークで原作再現な色作りができないか試してみた

こんにちは!!!クライアントエンジニアの小林です。今回はニューラルネットワークの万能近似定理を利用してベースカラーとシャドウカラーの可逆性が求められないか検証してみます。 作業環境 概要 万能近似定理とは 方針 データセットの作り方 色空間による入…

FineTuning DistilBERT with Masked Language Model

こんにちは!!!クライアントエンジニアの小林です。今回はDistilBERTのMaskedLMを利用して類似文字を推定してもらいます。 概要 DistilBERTとは 自然言語とは BERTとは Transformerとは DistilBERTとは(おかえり) Tokenizerとは MaskedLMとは FineTuningと…

VGG16とCRAFTにGhostModuleを組み込んでみた

こんにちは!!!クライアントエンジニアの小林です。今回はVGG16とCRAFTにGhostModuleを組み込んでみました。 作業環境 概要 モデル VGG16 CRAFT GhostModule Ghost-VGG16-BN モデル models\ghost_module.py models\ghost_vgg.py データセットのダウンロード …

SageMaker Serverless Inference + PyTorch + Lambda + API Gateway

こんにちは!!!クライアントエンジニアの小林です。今回はSageMaker Serverless Inferenceを使用してPyTorchな推論モデルをサーバーレスで動かしていきます。 作業環境 概要 SageMaker Serverless Inferenceとは SageMaker Serverless Inferenceの料金プラン …

【UE5】 Customノードについて触れてみよう!

はじめまして! そしてこんにちは! エンジニアの桒村です。 私自身、今回が初めてのブログ投稿になるのですが、今回はUnrealEngin5におけるCustomノードについて話していきたいと思います。 まず初めに... 作業環境 プロジェクト設定 実際にCustomノードを触…

【UE5】IKリターゲットとMayaでボーン移植してみた

こんにちは!!!クライアントエンジニアの小林です。UE5を触るようになってからモデルを動かしたいなという欲が出てきました。ということでリターゲットをやってみます。 UE4では触ったことないので何気に初です。もうひとつ、リターゲットの過程でリターゲッ…

【UE4】敵AIをC++で作成してみよう! Part_1

こんにちは!! エンジニアの竹野です! 自分が趣味で作っている敵AIを、Partごとに分けて説明していこうと思います。 今回はUE4のAI機能、BehaviorTree、Blackboard、AIControllerの基礎的な使い方をC++で実装し、 敵の追尾を作成していきます! 作業環境 …

Pythonでマルチプロセスなオーディオプレイヤを作ってみた

こんにちは!!!クライアントエンジニアの小林です。こんなの作ります。 作業環境 前置き 筆者の並列・並行処理に対する理解度 :) soundcardの採用理由 マルチプロセス化の理由 マルチプロセスな設計 ライブラリ構成 runtime __init__.py common.py player.py …

GLSLSandBoxのコードをUnityに移植する ~応用編~

こんにちは、クライエントエンジニアの中島龍清(ナカシマリュウセイ)です。今回は前回は整理したシェーダーの処理を応用した新たなシェーダーの作成をおこなっていこうと思います。 前回、前々回の内容は以下から確認できますので、興味があったら読んでくだ…

Tesseract 5.2 Fine Tuning

こんにちは!!!クライアントエンジニアの小林です。今回はTesseractのFineTuningをWindows環境で実行する方法をまとめました。 目次 目次 概要 作業環境 Tesseractのインストール リポジトリの取得 venv環境の構築 実行方法 Stage0: 使用可能なフォント一覧の…

Tesseract ノベルゲームに特化した日本語OCR(文字認識)をしてみた

こんにちは!!!クライアントエンジニアの小林です。趣味で触っているコーパス作成の過程でテキスト入力を自動化したいなぁと思いOCRを導入してみました。 cloud visionはAPI叩くスタイルなので鯖落ちとか面倒だなぁと思い、ローカルで動作するtesseractを選び…

SPCR Joint Dynamics

Introduction What is SPCRJointDynamics? Why use SPCRJointDynamics? How can I get this plugin: A basic overview of the SPCRJointDynamics components 1. SPCRJointDynamicsController 2. SPCRJointDynamicsPoint 3. SPCRJontDynamicsCollider 4. SPCR…

Python 定期実行プログラム Herokuで動かす方法

こんにちは!!!クライアントエンジニアの小林です。 今回はPythonの定期実行プログラムをHerokuで動かす方法をご紹介します。シンプルな定期実行プログラムの他に、 herokuアドオンを2つほど使ったコードをそれぞれ紹介していきます。 目次 目次 私の作業環境…

GLSLSandBoxのコードをUnityに移植する ~解説と整理編~

こんにちは、予定日より投稿が大幅に遅れてしまったことを猛省しているクライエントエンジニアの中島龍清(ナカシマリュウセイ)です。前回は移植作業がメインだったので、今回はGLSLSandboxからUnityに移植したシェーダーについてのそれぞれの処理内容の解説…

エンジニア新卒採用における書類審査のアドバイス

新年度となり、弊社にも新しい仲間が増えました。 彼らと共にさらに会社を成長させていきたいと奮起しています。数々の道があるなかでゲームクリエイターという道を選んだ仲間たちにアドバイスを書こうと思ったのですが、 今回は昨年度の振り返りをしたいな…

【UE4】UObjectが最大数を超えたときの対処方法

UE4

はじめに あけましておめでとうございます。 2022年1月はPokémon LEGENDS アルセウスの発売日ですね、楽しみにしているエンジニアの佐々木です。 今回はUObjectが最大数を超えてアサートしたときの対処方法と方針についてメモ感覚で書いていきます。 はじめ…

Post-processing with compute shader

Hi game dev folk, this is Piyush Nitnaware from Spark Creative, Tokyo, Japan. Merry Christmas to ALL in advance. I am trying to keep myself motivated by writing this blog on early Christmas eve. Today's topic is to use compute shaders for …