ゲーム開発やツール開発において、 良く使う技術から普段あまりみないような一風変わった技術まで 幅広く取り扱うブログです。 基本毎日更新、ちょいちょい筆者の日常もはさみます。
あいさつ Git使おうぜで解決できない問題 テキストデータとバイナリデータを別で管理する あとがき あいさつ どうも、はかせです。最近チーム開発をする機会がかなり増えました。ついこないだJPHACKSに参加し、 今もUnityとUE4のプロジェクトに参加させていただいております。 (ありがとうございますm(__)m)学校は学校でチームを組み卒業研究を行っております。チーム開発をやっていくと必ずぶつかる壁があります。 「マージどうする?」 「データの共有どうする?」 この辺ですね。そして大抵ちょっとした有識者であれば 「Gitで管理すれば解決できるよ」 と言うでしょう。自分もそのちょっとした有識…
あいさつ ブループリントとは さっそく使ってみる あとがき あいさつ どうも、はかせです。前回はアセットをプロジェクトにぶち込んでみました。 ただですね、 ツッコんだアセットが悪いのかなんなのかわかってないですけど うまく動いてくれませんorzUE4ワカルマンにエラー見せてお願いはしましたが、 結局いつかは自分でデバッグ解決できるようにならなくてはなりません。 いつまでもおんぶにだっこではいられませんからね。さてUE4でデバッグやら修正やらをするにはいったいどうすればいいか。 答えは単純でブループリントできるようになればいいのです。というわけでUE4のブループリント触っていきます。 ブループリ…
あいさつ インポートメニューからインポート 右クリックからインポート ドラッグ&ドロップでインポート あとがき あいさつ どうも、はかせです。今日はUE4です。 前は闇に包まれていた世界から脱出できた話でしたね。 hakase0274.hatenablog.comさて闇から脱出できたので 次はアセットを入れてみたいです。(唐突)そう、UE4ナンモワカランな私は UE4でのアセットインポートさえワカランのです。なので色々ガチャガチャやったり ネットでググったりしてアセットを プロジェクトにインポートしてみました。ということで今日は UE4のプロジェクトにアセットをインポートする3つの方法を ご紹…
あいさつ 開発環境とは 環境作るのって本当大変 難しい環境構築をどうする あとがき あいさつ どうも、はかせです。本当は今日はUE4の進捗を上げたかったのですが、 上げられないので雑記です。環境が変更されたってのと なぜかプルできない問題に直面し作業時間が無事死亡いたしましたwさてそんな感じの背景があったのと 昨日まで参加していたJPHACKSでも 開発環境でちょっともにょったので そこらへんの所見というかそんな感じのこと書いてきまーす。 開発環境とは 一口に環境と言っても 色々あって全部書くのは辛いので ここでは ゲームの実行ファイルの作成環境 に限定して書いていきます。要はUnityやらU…
あいさつ 何作ったか 結果 あとがき あいさつ どうも、はかせです。今日でJPHACKSのHackDayが終了しました。 今回はその報告と今後の動きです。 何作ったか 今回私が参加したチームはARでスキャンしたオブジェクトの上に3Dモデルを表示しそのモデルにボイスメッセージを喋らせるというものを作りました。リンクはスマホから打ってる関係上後で追加する……予定ですw 結果 今回自分達のチームは残念ながら受賞できませんでした。ですがHackDayが終わっても完全に終了はしていません。というのもこの後オンラインで審査があり その結果によってAwardDayに進出出来るかが決まります。つまりまだ足掻け…
Unity あのめんどくさいAnimatorのステートマシンから解放されよう
あいさつ サンプル あとがき あいさつ どうも、はかせです。今日はJPHACKSの一日目でした。 私が参加しているチームはUnityを使って開発をしています。 そこで2日間という短期間でモノを作るということで モーションは基本Animatorです。ただUnityを少し触ったことがある方ならばわかるように UnityのAnimatorはお世辞にも使いやすいとは言えません。 (少なくとも私はめんどくさくて嫌いです)なのでそれをスクリプトから完全に管理するというやり方が 私含めたUnityのAnimator嫌いエンジニアにとって 一般的なやり方かと存じます。 (そうであってくれ)ただ一般的なやり方で…
あいさつ JPHACKSに参加します 表題回収 あとがき あいさつ どうも、はかせです。今回は雑記と名打っていますが、 内容は報告記事になります。 JPHACKSに参加します 私は明日から開催されるJPHACKSに参加してきます。 jphacks.comこのイベントは簡単に言うと 学生向けのなんでもありのハッカソンです。毎回テーマが出されてそこに紐づけて なんか2日間で作ろうというイベントです。 内容はガチガチのシステムだろうが ゲームだろうがなんでもありです。とりあえずテーマがあって そこに紐づいた課題があって その課題を解決しさえすればいいのです。つまり極論 暇な時間が多いよな→暇潰せるゲ…
雑記 久しぶりにスマホで書くし自分のプログラミング歴でも振り返ってみる
あいさつ 触った言語 COBOL C Java C# C++ PHP Python HTML CSS JavaScript あとがき あいさつ どうも、はかせです。今回の記事はスマホからお送りします。さてブログをスマホで書くなんてかなり久しぶりです。多分この記事以来ですね。 雑記 スマホアプリでの記事の書き方が判明した話 - はかせのラボスマホで書くとコードとか書くのがかなりしんどいんで雑記です。ただ全く意味の無い世間話してもしょうがないし、話題になってる宇崎ちゃんポスターや税金について語るのも意味がないでしょう。 (もちろん需要があればやるのはやぶさかではありませんが)じゃあこのブログの雑記…
あいさつ この世界は暗黒の中 光をもたらす方法をググっても 世界はフォグ欲していた あとがき あいさつ どうも、はかせです。昨日はUnityのタスクを進めたので 今日はUE4のタスクを進めたいと思いました。ただUE4の中身のコードはちょくちょく読むんですが、 UE4そのものを使った経験は限りなく無です。 (一応いつぞやセミナー的なものに参加したことはある)そんな限りなく初心者、 いや下手したら初心者以下の私が 踏んだ地雷的なものの話です。 この世界は暗黒の中 とりあえずUE4には「マップ」っていうものがあるみたいです。Unityとかだとシーンに該当するもの・・・だと思います。とりあえずUE4の…
Unity FPSゲームやバイオで見るようなカメラとラジコン操作
あいさつ どういうやつ カメラ移動 ラジコン操作 あとがき あいさつ どうも、はかせです。今日は趣味のDirectX12ではなく 誘われたプロジェクトの作業してました。今回はその中で実装してみた 簡単にできるFPSとかバイオで見る感じのラジコン操作を 紹介します。 どういうやつ こんなやつ www.youtube.comマウスグリグリで視点移動ができて 十字キーorWASDで操作キャラ視点での 上下左右に移動できる感じです。 カメラ移動 今回はFPSカメラということでマウスの動きに応じて カメラを回転させます。 using UnityEngine; public class MouseCame…
C++ std::vectorのポインタから特定インデックスの要素を取り出す5つの方法
あいさつ 前提 ①一旦実体を別で格納し使う ②()と[]の合わせ技 ③0番地を使う ④std::vectorのatを使う ⑤イテレーターを使う あとがき あいさつ どうも、はかせです。今日は以前上げたボーンの理屈に従って カタカタコード打っていました。その中でstd::vectorをポインタで渡して 渡した先で特定インデックスの要素を 参照するみたいなコードを書いてました。 (良いかは知らん。ただ個人的に配列の直渡しには苦い思い出がある)その時に少し普段と違う書き方をする必要があり、 少し戸惑いました。なのでその普段と少し違う書き方を 全部で5つ紹介します。 前提 まずここから話す内容はこんな…
あいさつ ILとは DnSpy IL手書き DynamicMethod ループ 拡張メソッド 命令の種類 自動メモ化 コンストラクタ デストラクタ あとがき あいさつ どうも、はかせです。このブログもなんやかんやいって1年強やってきました。そうすると色んな記事が出てくるわけで 後から見ると自分でもどこになにがあるかわかりにくくなっている状況です。なのでこれからちょくちょく時間を見つけて 過去記事のまとめや必要に応じてリライトなんかもしていきたいと思います。 (まぁそうそう時間ないんで頻度は低いでしょうが)今回は割と最近やった C#のIL記事をまとめていきます。 ILとは hakase0274.…
あいさつ ボーンオフセット行列 初期姿勢行列 あとがき あいさつ どうも、はかせです。今日はボーン勉強会その二です。今回のテーマはボーンについて調べてるとしょっちゅう出てくる ボーンオフセット行列と 初期姿勢行列です。 ボーンオフセット行列 ボーンをローカル座標で原点に移動させる行列です。なんでこんな行列が存在するかっていうと ランタイムでの行列計算コストを減らすためですね。仮にボーンを(2.0,1.0)から(1.0,2.0)へ移動させるとしましょう。 直接移動させることももちろんできます。 所詮(2.0,1.0)-(1.0,2.0)=(1.0,-1.0)となり (1.0,-1.0)の移動行列…
DirectX12 ボーンについて調べてみた話 ~そもそもボーンとは~
あいさつ ボーンとは あとがき あいさつ どうも、はかせです。 前回Lat式ミクさんの顔の異常を修正し 無事描画することに成功しました。ただまだ完全とは言えませんね。 前回の記事でも少しだけ触れましたが トゥーンレンダリングもできていません。それに本来あるはずの影なんかもありません。 私の描画したミクさん PmxEditorで見たミクさん この辺の改良もしていかなければなりませんね。ただ今回はその改良の話ではありません。不完全とはいっても形だけは描画できたわけです。 形が出たら次は動かしたくなります。 ということで今回からは ボーンアニメーションの実装をがんばってやります。今回はまず ボーンっ…
あいさつ 前回のやつ 黒くなっている原因 対処法 血まみれ問題原因 成果 あとがき 参考 ちなみに あいさつ どうも、はかせです。 前回表示したモデルにテクスチャを貼り付けてみました。概ね正常にできていたのですが、 顔の部分だけおかしくなっていました。今日はそれを直した話です。 前回のやつ まずは前回表示したものの確認です。 顎と鼻の部分が黒くなっています。 あと少しわかりづらいですが、 目の周り以外が白のダミーテクスチャになっています。 黒くなっている原因 Twitterで教えてもらったのですが、 何やら今回私が使っているLat式のモデルは 一部のサーフェイスが反転しているそうです。サーフェ…
あいさつ モデルのテクスチャマッピングに必要なもの モデルのマテリアルデータ モデルに紐づくテクスチャ 実行してみる あとがき あいさつ どうも、はかせです。 前回はメモリリークを解消しながら ComPtrの動きについて学びました。今回は前に上げた白塗りのモデルに テクスチャマッピングを行っていきたいと思います。 ちなみに白塗りモデルの話はこちら hakase0274.hatenablog.com モデルのテクスチャマッピングに必要なもの まずはモデルにテクスチャマッピングするにあたり 何が必要なのかです。調べた感じ以下の二つがあれば なんとかなりそうです。 ・モデルのマテリアルデータ ・マテ…
DirectX12 ComPtrに直接値を代入したりするのは危険だっていう話
あいさつ リークしていたメモリ テクスチャ周りの解放 RootSignature他の解放 あとがき あいさつ どうも、はかせです。前回ID3D12DebugDeviceを使って どのオブジェクトが破棄されていないのかを確認しました。 hakase0274.hatenablog.com今回はその内容の確認と実際に メモリを解放しメモリリークを解決した話です。 リークしていたメモリ 今回リークしていたのは ・各種テクスチャ ・テクスチャに紐づくヒープ ・RootSignature ・Fence ・CommandQueue ・それらに紐づく各種リソース 以上です。上二つは予想通りでしたが、 Root…
DirectX12 ID3D12DebugDeviceのReportLiveDeviceObjectsを使ってメモリリークを確認する
あいさつ ID3D12DebugDeviceとは ID3D12DebugDeviceの作り方 ReportLiveDeviceObjectsの呼び方 あとがき あいさつ どうも、はかせです。 今日も今日とてPMDファイルの描画・・・ と言いたいところなんですが、 昨日作ったプログラムを実行すると メモリリークを起こしてしまいました。なのでメモリリークの解消が当面の課題となります。今日はDirectX12で一体何のオブジェクトが残ってしまっているのか 調べるためにID3D12DebugDeviceの ReportLiveDeviceObjectsというものを使った話です。 ID3D12Debug…
DirectX12 PMDファイルの表示に成功した話 ~犯人は変換行列~
あいさつ 進捗 やったこと なぜ今までできていなかったのか あとがき あいさつ どうも、はかせです。今日はついにPMDファイルの描画に(一部)成功したので その話です。 進捗 細かい話を始める前にまずは本日の成果です。 ミクさんの形だけですが描画することに成功しました!ここまで来るの本当に長かった・・・! やったこと 成果報告が終わったところで細かい話に移ります。とはいっても今回できたことは ・PMDファイルを読み込む ・頂点バッファーとインデックスバッファーを作成 ・素直に描画し白のテクスチャをあてがう この三つだけです。PMDファイル読み込みは以前上げたPMDファイル読み込みでほぼ出来てま…
あいさつ 寝違えるとは 対処 あとがき あいさつ どうも、はかせです。 今日かなり久しぶりに寝違えました・・・朝起きたら首あたりを中心に「痛え!!」ってなりましたw 一応今日は安静にしてたので痛みは多少和らぎました。 (おかげで進捗は無ですが)なので今日は寝違えた時の対処なんかをまとめていきます。 寝違えるとは そもそも寝違えるってどういうことかご存知でしょうか。朝起きた時首が痛くて回らなくなるやつです。 割と痛いですし、そこそこ続きます。この寝違えた時の痛みの原因は肉離れと炎症です。発生原因は諸説ありますが、 よく言われるのは首が不自然な角度で寝ていて 血流が悪くなって筋肉が凝り固まり、 そ…
あいさつ 台風19号 避難場所を調べる 充電 水の確保 あとがき あいさつ どうも、はかせです。 ついにこの三連休中に噂の台風19号が来ますね。台風対策の記事や動画が大量に投稿されている中 御多分に漏れず私もそこに乗っかっていきます。 (本当は進捗が無さ過ぎて書くことが無かったなんて言えない・・・) 台風19号 もう散々色んなとこで紹介されているので 知ってるよって方も多いと思いますが一応。中心気圧が925hPaとかいうお化けみたいな数字をたたき出し、 最大瞬間風速70m/sという超弩級の台風です。何やら地球史最強だの 幻のカテゴリー6だの言われており、 その強さはもはや強すぎて現実味を帯びて…
DirectX12 発生していたD3D12ERRORを片っ端から潰していった話
あいさつ SET_VERTEX_BUFFERS_INVALID INVALID_DESCRIPTOR_HANDLE、COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST DEVICE_REMOVAL_PROCESS_AT_FAULT COMMAND_LIST_CLOSED あとがき あいさつ どうも、はかせです。 今日も今日とて基礎勉強しながら ロードトゥMMDを歩んでいるわけですが、 未だ道は長い・・・・今回はD3D12ERRORを潰しまくったので その潰したエラーと対処…
あいさつ デスクリプタヒープとは 使い方 デスクリプタヒープ内のデスクリプタを参照する あとがき あいさつ どうも、はかせです。 前回はMMDもといPMDを出すために PMDファイルの読み込みをやりました。読み込んだら後は表示するだけ~なんて思ってたんですが 一向にできません。前回の参考元のサイトを参考に プログラムを組んでいるんですが、 常にD3D12ERRORの何かが出ますwなのでPMDファイルを表示するプログラムとかについては また後日に上げます。 (どんな形でも実装してあげます)てなわけで進捗報告は無理なので 今回はやってくなかでデスクリプタヒープの 扱いがちょこっとだけわかったので …
DirectX12 MMD表示の初歩を刻む ~ファイル読み込みの話~
あいさつ PMDファイル 実際に読み込む あとがき 参考 あいさつ どうも、はかせです。 あらかた自分が使う機能の移植(ほぼ新規開発)が終わりましたので 今回からまたDirectX12の勉強を開始していきます。そんなわけで今回からMMDの描画の勉強を始めます。 第一回の今回はMMDもといPMDファイルの話です。 PMDファイル DirectX12には11以前にあったような 気の利いたバイナリデータ読み込みの機能は存在しません。 全てプログラマーが自前実装する必要があります。 (一応WICとかあるけど結局めんどくさいのは変わらない)なのでPMDファイルの中身がどのようになっているか 知る必要があ…
C++ GetKeyboardStateでキーボードの入力を取得する
あいさつ GetKeyboardStateとは あとがき あいさつ どうも、はかせです。 今日も今日とて過去にD3D11で使ってた 便利クラス的なものの移植をやってました。その中でDirectInputを使った入力クラスがありました。 もちろん今後何らかの検証やデバッグをしていくにあたって 入力取得は必須ですから移植しようとしました。ただ移植した後でビルドしたらうまく動きませんでした。デバッガで見てみたところ SetDataFormatというメソッドがうまく機能していませんでした。色々ググったり試してみたりしたのですが、 なにやらx86環境でないと動かなさそうな雰囲気。 元々DirectInp…
あいさつ FPS固定 FPS計測 あとがき あいさつ どうも、はかせです。 私は以前FPS固定について色々調べたり 実装したりしてました。 hakase0274.hatenablog.com hakase0274.hatenablog.comこういった機能って色んなとこで使うし、 ほぼ処理が変わりません。なので逐一コピペしなくても済むよう クラス分けしそのクラスを放り込んで使うだけで これらの機能が実装できるよう作り直しました。今回は今までも取り扱ってきた内容ではありますが、 最近私を知ってくれた方もいると思いますし、 当時に比べて私自身の理解度も上がったと思うので 改めて簡単にですがFPSの…
あいさつ リアルタイムレイトレーシングの導入と最適化事例 『描画が出来る人』ってどうやって育てればいいんだろう?~描画エンジニア育成プロジェクトポストモーテム DirectX12を教えてみて得られたこと~意外と得られるものが多かった~ コードの複雑度とソフトウエアメトリクスについて あとがき あいさつ どうも、はかせです。 今日10/5に札幌でCEDECが開催されました。 sapporo.cedec.jp今回の記事はこのレポ記事になります。 私が聞いたセッションで出せるものを出していきます。 リアルタイムレイトレーシングの導入と最適化事例 DXRのセッションです。 sapporo.cedec.…
DirectX 死体になった私はResources Barriersを調べた
あいさつ 今日の進捗 Resources Barriers あとがき 参考 あいさつ どうも、はかせです。 今日も今日とてGPUと友達になるべく がんばります。 今日の進捗 DXRやろうとして DirectX12のサンプルで遊んでて 「ガッシ!ボカッ!」 はかせは死んだ。スイーツ(笑) Resources Barriers 上記の件で今日の進捗は無に帰してしまったわけですが、 さすがあれで終わりでは芸がありません。ということで茶番を終えてこの記事の本題である Resources Barriersについて調べた内容をまとめてみます。Resources Barriersってのはリソースの状態を管理…
DirectX DirectX12でのWICを使ったpngの描画
あいさつ pngを描画したい どうやってやる? テクスチャ読み込み CoInitializeとCoInitializeEx あとがき 参考 あいさつ どうも、はかせです。 今日は昨日のオムライスの逆襲なのか 飯テロを食らいました。@hakase70945250 pic.twitter.com/yOYc5GQ1nF— 転生ろっさむ@垢ロックで作り直し (@Ev_rossam) 2019年10月3日こ、こんな飯テロ効かねぇ!(究極のやせ我慢)さてMSMVP懇親の飯テロをこらえたところで 話はまるっと変わりDirectX12です。いよいよ今週の土曜日にCEDECがあります。 今日明日でなるべくDir…
雑記 ラケルのスフレオムライスはめっっっちゃふわっふわだった
あいさつ 今日のお店 スフレオムライス あとがき あいさつ どうも、はかせです。 今日はなんとなく気分がオムライスだったので なんばでオムライスを食べました。 (なんばなのは関空への通り道だったから)そしてぬるっと始まった大阪旅行ですが、 本日で最終回です。 今日のお店 今日行ったお店は「ラケル」というオムライスレストランです。 (気分はオムライス、店はオムライスレストラン神がかったマッチング) tabelog.com店の雰囲気はTHE・洋食店みたいな感じで 赤と白のチェックのテーブルクロスが印象的でした。 スフレオムライス 私が頼んだのは店前の看板に デカデカと載せられていたこれ! 「モンサ…
雑記 純度の高い幸福とはコーヒーゼリーを食べることと見つけたり
あいさつ コーヒーゼリー あとがき あいさつ どうも、三度の飯よりコーヒーゼリーが好きなはかせです。 前回の記事で引用させてもらった某イーブイ系MSMVPの方に 「MSMVPの全力の飯テロ見せてやるからな。震えて待ってろ」 という宣言をされました。もちろん私はガックガクに震えているわけですが、 ただ震えて待つのもしゃくなので 今日も飯テロしていきます。今回の飯テロはもうすでに 何回か出ていますが、 私の大好物であるコーヒーゼリーです。 (そいや今日10/1はコーヒーの日らしいですね) コーヒーゼリー パフェとかパンケーキとかだと 一個食べきるのもしんどいんですが、 コーヒーゼリーならいくらでも…
「ブログリーダー」を活用して、はかせさんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。