2020年の12月に拙著「Python3 3Dゲームプログラミング」を出版しました。
https://www.kohgakusha.co.jp/books/detail/978-4-7775-2129-6
ところがなぜか、いくつかのオンライン書店で「Pythonではじめる3Dゲーム開発」というタイトルに間違えて登録されているようです。
理由はわかりませんが、両者とも同じ「Python3 3Dゲームプログラミング」の画像が使われているはずなので、確認してご購入してください。
2020年の12月に拙著「Python3 3Dゲームプログラミング」を出版しました。
https://www.kohgakusha.co.jp/books/detail/978-4-7775-2129-6
ところがなぜか、いくつかのオンライン書店で「Pythonではじめる3Dゲーム開発」というタイトルに間違えて登録されているようです。
理由はわかりませんが、両者とも同じ「Python3 3Dゲームプログラミング」の画像が使われているはずなので、確認してご購入してください。
工学社から「ゲーム開発ではじめるPython3」を出版しました。
ただ問題があって、工学社のサポートページにある「PygameSamples.zip」で解凍したフォルダ名の名前の変更が必要です。
https://www.kohgakusha.co.jp/support/pygame/
解凍して作成された「PygameSamples」フォルダ名を「PyGame」フォルダに名前を変更してください。
「macOS」の「Xcode」の「Objective-C」言語で「Metal」プログラミングする3Dライブラリ「Roxiga Engine」とそのサイトを公開しました。
3Dデータは「Autodesk FBX」形式をRoxigaEngine専用形式に変換して表示できます。
FBXファイルは、ボーンアニメーションした1オブジェクトで1マテリアル1テクスチャが必須です。
この変換には「macOS」アプリ「FbxToCSharp」を使います。
「RoxigaMain.mm」ファイルにコードを記述するだけで、3Dゲームなどの3Dコンテンツが作れます。
できればこのRoxigaEngineの入門書を執筆できたらと思っています。
「Visual Studio for Mac」で「Xamarin.iOS」の「Metal」をいじっています。
でも「FBX SDK」は「C++」なので、「Cocoa」の「Objective-C」で、FBXファイルを「CSharp」ファイルにモデルデータとアニメーションを配列として書き出すところまでプログラムができました。
困ったところは、「シェーダー」でコードからボーンの番号を「int」型で送ったらうまくいかず「float」型でボーン番号を送ったらうまくいきました。
また「SetVertexBuffer」の「offset」を変更することでアニメーションさせているのですが、オフセットのサイズに「sizeof(float)」の値も乗算してやる必要がありました。
また「DirectX」や「OpenGL」ではデフォルトでZバッファが効いていましたが、「Metal」は常にZバッファを上書きする
DepthCompareFunction = MTLCompareFunction.Always,
だったのを、既存のZバッファより手前に描かれるときにだけ描画する
DepthCompareFunction = MTLCompareFunction.Less,
に変更するのに気づきませんでした。
超シンプルな作曲ツールのiOSアプリ「Loop 簡易ループシーケンサ」をApp Storeで公開しました。
https://xamarin.vixar.jp/ios/loop.html
以前までは、iOSとAndroidとWindowsでクロスプラットフォームする「Xamarin.Forms」を使ってアプリを作っていましたが、今回はiOS固有の機能を100%使える「Xamarin.iOS」を使って作成しました。
もちろんプログラミング言語は「C#」です。
今度は「Xamarin.iOS」と「Xamarin.Forms」のiOS固有の機能を使った入門書を執筆しようと、簡単なサンプルを開発しました。
「NuGet」で取得できる「Segmented Control for Xamarin Forms 1.1.0」ですが、「Android API 15+」で使用できるとありますが、どうやらデバイスによっては動作しないようです。
https://github.com/alexrainman/SegmentedControl
僕が試したのは「Android4.2(API 17)」の「Galaxy Nexus」ですが、エラーが出て動作しませんでした。
でも「Android 6.0(API 23)」のエミュレーターでは動作したので、「これは端末のバージョンに問題があるのでは?」と考え、親の「Android 4.4(API 19)」と「Android 5.0(API 21)」で試すとどちらも実行できました。
ただしAndroid 4.4では若干絵がずれていますが。
やはりAndroidも新しい機種を使わないと時代に乗り遅れるなあ、と思った次第です。
iPhoneをMacにUSBで繋いで、Xamarin Studioで開発中に、Debugで実機で動作テストしている最中にUSBケーブルを抜いてしまうと、iPhoneデバイスが真っ暗になって動作しなくなる可能性があるようです。
多分Xcodeでも?
その場合、もう一度iPhoneをUSBコードで繋いで、デバッグビルドしてみてください。
僕の場合はそれでiPhoneが正常に動きました。
OSX版の「Xamarin Studio」で作ったiOSアプリ「UIゲーム」をiTunes Storeに登録しました。
https://itunes.apple.com/us/app/uigemu/id1138941515?l=ja&ls=1&mt=8
以前音だけのゲームが審査でリジェクトされたので、今回は絵が全く無い(ただしアイコン画像はあり)ゲームなのでリジェクトされるかもしれないと覚悟していました。
ゲームの内容は、Xamarin.FormsのUIパーツだけを使ったクイズに似たゲームです。
「スイッチUIをOffにしろ」など操作する命令が出されるので、全ての指令を操作し終わるのにかかった時間を競います。
またもちろんXamarinはクロスプラットフォームなので、Android版「UIゲーム」もGoogle Playに登録しています。
https://play.google.com/store/apps/details?id=com.roxiga.uigame
Xamarin.Formsの機能だけで作って、それを入門書で解説するために作ったミニゲームです。なのであまり面白くはないですが、読者が参考になる技術を解説するように編集者には言われるので。
ところでXamarinStudioからはValidationに失敗しました。そこでXcodeのOrganizerを使ったら正常にアップロード完了しました。
OSX上で作った、iOSアプリ、iBooks電子書籍、OSXアプリがダウンロードできるホームページ「サイバデリアドットネット」の英語版を公開しました。
https://english.cyberdelia.net/
僕は今までに40サイト以上Webデザインしてきたのですが、今年中に50サイトを越えるように目標を立てたので、月に1サイトずつ作れば目標を達成できると考えました。
でもネタがそんなにあるわけではないので、とりあえず今まで作ったWebサイトの英語版を作ればいいと思いつきました。
だけど既に作ったWebページのメンテナンスやコンテンツの充実も視野に入れたいです。