プロジェクトファイル’ ‘は名前が変更されているか、またはソリューションには存在しません

Windows版「Visual Studio」のC++だけかはわかりませんが、ビルドしようとすると以下のようなエラーが出ることがあります。

「プロジェクト ファイル’ ‘は名前が変更されているか、またはソリューションには存在しません。」

僕の場合、別のマシンへソリューション全部をコピペした場合によく起こりました。

解決方法は、このエラーが出たら、Visual Studioの「ファイル」→「ソリューションを閉じる」を実行したとき、ソリューションを保存するか聞かれるので、「いいえ」で保存せずに閉じるだけです。
こうすると、なぜか次回同じソリューションを開くと、エラーが起きません。

OpenSubdivで独立頂点があるとエラーが出る不具合

現在、フキダシの指示に従って3Dデザインしていくだけで3DCGが上達する「お手本モデラー」を開発中です。
さらにプロのデザイナーが3Dデザインする過程を記録してフキダシのお手本にして、プロの技術が学べる予定です。


https://otehon.cco24.com

そこで困ったプログラミングの解決策をシェアします。
ディズニー傘下の「Pixar」がオープンソースで公開している3Dモデルの曲面化ライブラリ「OpenSubdiv」でエラーに悩まされました。
頂点や面の3DデータをOpenSubdivに渡したらそれを、指定したmaxlevelまで曲面にしてくれます。
最初はそれほど苦労しなかったのですが、公式サイトを見て解決したことがあります。
https://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#non-manifold-disconnected-vertex
普通の3Dプログラムでは面を構成する頂点インデックスが頂点を指し、面の頂点インデックスで使われない頂点があってもOKです。
ところがOpenSubdivはなぜか独立した頂点があるとエラーが出ます。
特に三角形のあるモデルに、ラインなどがあると独立頂点となってエラーがでます。それなのにReleaseビルドだとエラーが出ないこともあり、Debugビルドでは必ずエラーになるので、最初エラーに気づきませんでした。
そこで独立頂点を無くして、すべての頂点がいずれかの三角形面や四角形面に属するようにしたら無事解決しました。

CocosSharpの戻るボタンと終了処理の問題

「CocosSharp」には重大な欠陥があります。
それはAndroidのバックボタンが使えないことと、終了処理ができないことです。
英語圏で調べると、Back Buttonは上書きできなくはないようですが、終了処理は駄目らしいです。

そこで解決策として「Xamarin.Forms」版の「CocosSharp」を使えば問題が無くなります。
ただラッパーの上にさらにラッパーしてるかもしれないので、CPUやGPUの負荷が大きいかもしれません。

でも「Xamarin.Forms」で「UI」が楽に実装できるので、ゲームに用途を限定しなければ、逆に役に立つ実装方法かもしれません。

Segmented Control FormsPluginとAndroidのバージョン

「NuGet」で取得できる「Segmented Control for Xamarin Forms 1.1.0」ですが、「Android API 15+」で使用できるとありますが、どうやらデバイスによっては動作しないようです。

segmentedcontrol
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も新しい機種を使わないと時代に乗り遅れるなあ、と思った次第です。

Xamarinでサウンドファイルが再生できない場合

XamarinStudioやVisualStudioでサウンドファイルが鳴らない場合の設定方法があります。
プロジェクトビューのサウンドファイルを右クリックメニューの「ビルドアクション」で「Content」を選ぶだけです。
そうすれば「CCSimpleAudioEngine.SharedEngine.PlayEffect」でサウンドが再生できるようになります。
これはiOSの場合だけで、Androidでは無理にこうしなくても鳴らすことができるようです。

Webサイト「Xamarin研究所」公開

Xamarin.Formsなどを解説する「Xamarin研究所」を開設しました。


https://xamarin.vixar.jp/

XamarinはiOS・Android・Windowsでスマホ向けなどにC#言語でクロスプラットフォームできる最新技術です。

XamarinではCocosSharpなどでゲームも作れますが、ツールを作るならゲームのように画像やサウンドの素材アセットがなくてもUIだけでアプリを完成させられるのがオールインワンでいいですね。

まだWebデザインは暫定的にこのようにシンプルなままです。

3Dツールの「ビクサー」、2Dツールの「ソフトウェア研究所」

以前までオリジナルのWindows用3D・2Dツールを公開していたVIXARから、2Dツールだけ「ソフトウェア研究所」に移転しました。


https://software.vixar.jp

でも元々VIXARは3Dがメインのサイトだったので、2Dツールはあまりパッとしません。

何でもあるホームページだと、訪問客が何のサイトかわかりにくいかな?と思ってジャンル別にホームページを分けて来ました。

本当はたくさんのコンテンツを作るより、優れた1つのコンテンツを徹底的にブラッシュアップできたほうがいいとは思いますが。

VisualStudio2015のC++でWindowsXP向けにビルド

Visual Studio 2015のC++言語では、ありがたいことにWindowsXP用に動作する実行ファイルをビルドすることが可能です。

C++向けのソリューションファイルを開き、ソリューションの「プロパティ」メニューで「構成プロパティ」→「全般」→「プラットフォームツールセット」で、以下の画像のように「Visual Studio 2015 – WindowsXP (v140_xp)」か「Visual Studio 2012 – WindowsXP (v110_xp)」を選んでビルドするだけです。

vcpp2015

ただし、開発環境であるVisual Studio 2015のIDEはWindows7 SP1以降でないと動作しません。

VisualStudio2015のAndroidデバイス認識

Visual Studio 2015でハイブリッドアプリ(HTML5アプリをスマホアプリに書き出すツール)を開発できる「Visual Studio Tools for Apache Cordova」は「Android4.0」の実機のデバイスでも認識しました。
多分もっと古いデバイスでも認識するかもしれません。
きっと処理能力が遅くてもHTML5アプリはスピードを要求されないためでしょう。

ところが「Visual C++ 2015のクロスプラットフォーム」では「Android4.4」以降でないと実機を認識しません。
これはAndroid NDKをC++で開発するのに最新の機能を使っているためだと思います。
ですから処理能力は非常に高いと思います。

VisualStudio2015のC++でWin・iOS・AndroidをCrossPlatform

Visual Studio 2015のC++言語で、「Universal Windows Platform (UWP)」「Android」「iOS」の3つのプラットフォームに、OpenGL ES 2でクロスプラットフォームできるプロジェクトテンプレートが公開されています。
http://blogs.msdn.com/b/vcblog/archive/2015/07/30/cross-platform-code-sharing-with-visual-c.aspx

ただし、まだ64bit対応していません。
iOSでは32ビットと64ビットの両方に対応している必要があります。そうしないとappストアに申請できません。

またこの3つのプラットフォームに対応したサウンドライブラリが、OpenSLでいいのか?何がいいのか?わかりません。