blenderの入っていないunity for mac で、blenderからインポートしたオブジェクトは表示されない

11-21,2023


昨今のUnityでは、Blenderで作成した3Dモデルをインポートする際、
いちいちFBXファイルに変換せずとも、
直接Blendファイルをインポートできます。
とても便利です。

が、AndroidとiOS両方のアプリ開発をする上で、
つまづいたので、ここに記します。


私は基本的にはWindows上で開発をします。
BlenderもWindowsで使います。

そして、iOS用にビルドする際には、
Windowsで作成したデータを、
UnityのPlasticSCMを使って、MacのUnityへ送っています。


・・・ところが、
ここで奇妙な現象が発生しました。

iPhone実機で、3Dモデルが表示されていなかったのです。


最初は、実機ベースの現象かと思い、
ずいぶんと時間を無駄にしてしまいました。
数週間くらい解決できませんでした・・・。

実機ベースの問題ではないので、
実機ベースで考えても答えが見つからないのは当然なのです・・・おお神よ


また、私はAndroid端末を持っていないので、
Android端末では、そのモデルが表示されている、ということにも
ずっと気づかずにいました。

勝手に、iOSで表示されていないのだから、Androidでも表示されていないだろう
・・・と思い込んでいました。

しかし、今日、
たまたまAndroidユーザーの人がそのモデルの表示されている
スクショを投稿していたのを見て、
私は膝から崩れ落ちたのでした。


Androidでは表示されている・・・、
・・・そう、これは実機ベースの問題ではなく
iOSだけの問題、あるいは、iOSビルドを行うMac上の問題である!!!
・・・ということに、
私はこの時、初めて気づきました。


Mac上のunityで確認してみると、案の定表示されていませんでした。
Windows上で開発を行っていると、
Macへのデータ移行は流れ作業になり、
いちいち確認しなくなっていくものですが、
それがあだとなったようです。


そして、なぜ表示されていないのだろう・・・と思い、
該当のモデルをMacのunityで確認すると、
そのモデルデータ(Blendファイル)が、Unknowファイルになっていました。

Unity for macが、なんのファイルか特定できないため、
そのファイルはmissingファイル扱いにされており、
そのMacでビルドしたiOSでは、モデルが表示されていない
・・・ということなのでした。


特定できない理由は、
そのMacに、Blenderがインストールされていないことが原因のようです。

Macに使いもしないBlenderをインストールするのは面倒だったので、
最終的には、
Windows側で、BlendファイルをFBXに変換し、
ベースとなっているプレファブの中身を、
Blendファイルから、FBX入りのオブジェクトに変更することで
対応しました。

結局、Blenderから直接インポートできる~らくちん~
・・・の代償が、ここに表れていたという話でした。


ちなみに、今回は
blenderモデル → バリアントプレファブ化(a)し

その(a)の集合体 → プレファブ化(A)
したものを使っていたので、

(a)をFBXに変更できれば、一括で対応できますが、
これが少し難しかったので、併記しておきます。


バリアントプレファブ(a)をopenすると、
当然、「Blenderモデルをベースとする」と書かれており、
そのまま変更はできません。

そこで、
バリアントプレファブ(a)をopenした状態で、
バリアントプレファブ(a)のルートオブジェクトをunpackし、

そのルートオブジェクトに追加されているMeshなどを全て削除。

そしてその子オブジェクトに、
FBXを入れてやることで解決しました。
(FBXを入れると、スケールが1/100とかに違っていたりするので
 ちっちゃくて見えなくて表示されてない!!! と勘違いするので
 ここも要注意です)

ちなみに、その集合体(A)は、
実行時combine mesh化しますが、
combine mesh化する時は、
Blendファイルだろうが、FBXだろうが、
モデルのRead/WriteをONにしてあげないと、
Combine meshできないのでそのことも記しておきます。


今回も、同様ケースを検索しても、ぜんぜん引っかからないので
ここに記します。

google play consoleで、aabファイルがアップロードできない

11-07,2023


ある日突然、Google play consoleで、
aabファイルがアップロードできなくなりました。


いつものようにAndroidアプリの新しいリリースを行うため、
aabファイルをアップロードしようとすると・・・


"アップロードできませんでした。もう一度お試しください。"


というエラーが。

この文言以外のエラーメッセージがないのが、不気味です。


通常なら、ここでエラーが発生する場合は、
エラーの原因となっている箇所やポイントも一緒に表示されます。

例えば、バンドル番号が既にあります、とか、
そのターゲットAPIは使えませんとか、
認証キーが違いますかとか、などなど・・・

しかし、そういった追記が一切ないケース。
これは初めてでした。


とりあえず日本語で検索してみましたが、
見つかるのは、それ以外のエラーの対処方法ばかり。


次に英語で検索してみます。

すると、いくつかヒットしました。
2020年頃から現在まで、すこしずつ報告があるようです。

対処方法としては、
・キャッシュやクッキーを消す
・ブラウザを変える
・シークレットブラウザでアップしてみる
・PCを変える
・unityのverを変える

などなどが挙げられていました。

要は、ブラウザに問題があるみたいな推測のようです。


というわけで、全部やりました。
全部うまくいきませんでした。


そこで、他のプロジェクトのアプリでもやってみました。
すると、うまくいく時とうまくいかない時がありました。
・・・・どういうこと?


更に、検索を続けることに。

そんな中、
2日前にも、同様の問題で困っている海外の人の
google play consoleのフォーラムへの報告記事を発見!


すると、その人は、
chromeの開発ツールのログから、
アップロード時に、CORSエラーが多発していることを報告していました。

更に、何度もアップロードすると、
たまーーにうまく行くという内容
これにはびっくり!

しかも、aabファイルだけではなく、csvファイルのアップロード時にも
同様のエラーが出るとのこと。


一応google側のモデレーターのような人の返答がありましたが、
その内容は、上で触れたキャッシュを消すなどの対処方法のみ。


試しに10回くらい試してみました。
するとどうでしょう。
1回だけアップロードに成功・・・・!!

は!??


ということは、aabファイル側の問題ではないということになります。

でも、他PCからのアップロードすら、
失敗続きなので、
どういうことなのか意味がわかりません。

このプロジェクトだけで、エラーが多発するような感じでしょうか。


その後、20回くらい同じファイルをアップロードしてみましたが、
それらは全て失敗・・・・。



晩御飯を食べてから深夜1時くらいまで奮闘しましたが、
万策尽き、
わたしも結局、google play console のお問合せフォーラムに書きこむことに・・・
google側がまともな回答をしてくれないことは分かっていますが・・・


そんな状態でお布団に入ったせいか、
悪夢にうなされ深夜に目覚めるはめに・・・


そして翌朝、
起きてすぐ、もう一度トライ・・・。


・・・すると、

一発でアップロード成功しました。


は・・・・・!?



というわけで、結論

googleのサーバーの問題。


どうせ重くなってるとか、そういうやつでしょう・・・


個人的に、
アプリ開発で直面する深刻な問題って、
こういうのが一番多い・・・・


"aab"
"アップロードできませんでした。もう一度お試しください。"
"couldn't upload. try again."
"CORS"

とかの日本語で完全一致検索しても、出てこなかったので、
この記事が、同様ケースのgoogleに苦しめられる人々の助力になれば。

【2023】第二章・A戦争について語る時がきた

11-05,2023

syaou1.jpg

今日は、
A戦争のオンライン対戦をやっていて、
個人的に、最も面白い瞬間を書きます。


ちなみに、↑のキャラは
A戦争の小友です。

A戦争には、キャラクターの名前を関した武器が登場するのですが、
その中でも、
『Syao-U』
という名前の、サブマシンガンがあるのです。

サブマシンガンの中では、最も射撃間隔が高レートの、とても強い武器です。


A戦争のオンライン対戦で勝利すると、
1Gathaポイントを入手でき、それを使ってガチャを回すと、
ランダムで、Call Picと呼ばれる壁紙が手に入ります。

↑の絵は、その Call Pic の中の1枚です。


では、私が個人的に思う面白い瞬間を、
下に3つ書きました。


面白い瞬間その1

・スナイパーで狙われる


A戦争にも、他のFPS同様、スナイパーライフルがあります。
ただし、A戦争は見降ろし型の2Dなので、
扱いが難しくはありますが、

通常の銃の場合は、画面範囲内が視界になるのに対し、
スナイパーライフルなら、
死角を除く範囲内で、視線をどこまでも延長できるという特性があり、
これが、通常の銃のプレイヤーに対して、かなりのアドバンテージになります。

通常のプレイヤーからすれば、画面外から撃たれてしまい、
反撃がかなり困難になってしまいます。
更に、屋上等から射撃されると、通常の戦法では、反撃はほぼ不可能になります。

更に、裏取りルートなどが存在しない一方通行の屋上から狙われてしまうと、
その状況を打破すること自体、ほぼ不可能になったりもします。

なので、
私はスナイパーで狙われると、
八方ふさがりのような状況が発生するので、
むちゃくちゃ面白くなります。


ただ、残念なことに、
現在の限られたプレイヤーの中でも、スナイパーをやる人はほとんどいません。
最近ではyapuuさんとstoneさんくらいで、
それ以外の人がスナイパーをやってるのを見るのは稀です。

スナイパーは、基本的にその場にとどまることになるため、
A戦争のドミネーションベースのルール上では、
スナイパーをやること自体が、勝敗において不利になってしまいやすいことが
原因かもしれませんが、
立地や戦況によっては、神の如く強くなるため、
もっとスナイパーが増えるといいなと私は思っています。



面白い瞬間その2

・多勢に無勢


A戦争は、前回の記事でも触れたように、
現在まで長らくプレイヤーが激減壊滅絶滅危惧種状態です。

ちなみに昨日の土曜は、
5人しか集まりませんでした・・・・

しかも、5人がずっといるわけではありません。


そんな感じなので、
頻繁に、
2 vs 1 や  3 vs 2 と言った、多勢に無勢状態が生まれます。

そしてこの数は、人数が少ないほど、その戦力格差が割合的に顕著になるため、
2 vs 1の時は、
1人チームの視点では、
単純に、2倍の戦力のチームを相手にしなければならなくなります。

これがFPSでよくあるデスマッチルールなら、
うまい人が独走することもできますが、
ドミネーションのような陣地戦となると、全く景色は変わります。

更に言えば、
A戦争の現在のAttack & Deffendルールでは、
防衛側の方が不利なので、
2 vs 1 の状態で、自分が1人側 & 防衛側 だった時、
その難易度は最高に達します。

こうした時が、私はむちゃくちゃ面白いです。


とは言え、基本的には6 vs 6などの、
大勢で戦う方が面白いのですが、
最近はもっぱら少人数なので、
そんな中でよくおこる 2 vs 1 の状況を選抜しました。



面白い瞬間その3

・猛烈な攻撃


AC-130やサイオンバードが延々と空を覆い、
地上ではタンクからの砲撃の嵐と、
無数のセントリーからの銃弾で埋め尽くされ、
どうしようもない状況。


ひと昔前のAkaicシステム時代には、
そういうことが時折発生していました。

Akaicシステムでは、低Legend Starの人ほど、
マジックが貯まりやすいという仕様があったので、
AC-130などをセットしておけば、
低Legend Starの人なら簡単にそれを出せるという状況がありました。

しかし残念ながら、
今では、そのような状況が起こることはまずありません。

たまに、支援物質から出てきたAC-130などが発生するくらいでしょうか。

しかし、1機出たくらいでは、現在のルール上においては、
戦況にあまり影響がないという感じです。
特に、現状のような少人数下では、
AC-130などを操作している間は、
特定の拠点の防衛や確保が返っておろそかになるため、
使うと負けやすい、ということさえおきてしまうことがあるのでした。


ともあれ、爆撃が延々と連続する地獄のような状況はとても面白いので、
今のルールでも、人が多くなって、また味わう機会があればいいなと思っています。



最後に
現在のA戦争での、面白いMAPを書きます。

それは、
・MAPユグドラシル
・MAPコロシアム
・MAPデュエル
・MAPぐるんぱ

です。

これらのMAPに共通するのは、
一方的な攻撃になりやすい高低差がある所です。

特に、ユグドラシルなどでは、
一番上から機関銃やスナイパーなどで攻撃されると、
一番下からスタートするプレーヤーは、
上にある拠点に到達すらできずに終わります。

こういうMAPでは、
一方的な一方試合になりやすいです。


そういう時の、
下から、死にながら這いずって、這いずって・・・それなのに打ち殺され、
もうどうすることもできない・・・・
という完全理不尽不可能状態が、
私はとても大好きで面白いです。



・・・というわけで、
私は、A戦争の2つ目の記事を書きました。

ゲームA戦争のダウンロードはこちら
https://andymente.moo.jp/html/game2/a-war/


毎週土曜14:00~18:00や
祝日などの昼間に、
Sanctuaryにてお待ちしております。
何もわからない初心者でも、何もわからない人でも、誰でも大歓迎でございます。

【2023】A戦争について語る時がきた

10-31,2023


A戦争というゲームがあります。

ダウンロードできるサイトはこちらです。
→ https://andymente.moo.jp/html/game2/a-war/


気づけば、長い歴史をたどっています。
作られたのは2019年で、まだわずか4年ではありますが、
その4年の間に、様々な変遷をたどり、今なお、
すこしずつ変化しています。
今こそ、このゲームについて語らねばならないとふと思い立ち、書いております。


まずこの4年の歴史を多く3つの期間に分類し、
それぞれについてお話します。



1、初期 (2019年~2020年)


それは、シーツリーの常時オンライン化が達成された頃、
ある日突如として誕生したのが、このゲーム『A戦争』でした。

アメリカの3DFPSゲーム『コールオブデューティー』を模倣した、
2DのFPSライクな、オンライン対戦ゲームとして、開発・公開されました。


この初期が、最もユーザー数も多かったです。
しかし、多かったと言っても、最も多い時でも20人程度。

複数人のオンラインマッチングが最低条件であるゲームシステム上、
ベースとなるユーザー数が、このゲームの最大の障壁でした。


難易度の高い撃ち合いや、厳しい勝敗を好むユーザーは当然多くなく、
他のAMゲームに劣らぬほどの、突き放したようなUIと簡素なまでのグラフィック、

その上、マッチングのための最低人数を必要とするなど、
多くの厳しい条件が、
当初から、このゲームの限界と寿命を自明しておりました。


そんな中でも、
この頃は、目新しさもあってか、
毎晩21時くらいになると、6人~8人くらいが集まり、
毎夜のように戦いが行われていたと思います。

この頃の、私の記憶にある強いプレイヤーは、

hiltonbusさん、
DAMFさん、
Anchusaさん、
miaさん、
zizbiさん、
quailさん、
garaさん、
などなど

他にも色んなプレイヤーがいて、
depolさんや、Kopet'z-oさんや、trnkさんもいました。

中でも、この初期の頃に、
私が最も強いと感じていたのは、flouroさんでした。


しかし、短いゲーム寿命によって、
その状態は翌年の2020年頃には終わっていたかもしれません。

そこからは、
人も集まらなくなり、
私すらもほとんどプレーしなくなり、
A戦争は一瞬にしてオワコン化したのでした。



2、Akaic期 (2021年~2022年)


2021年辺りでは、『A戦争』は、
もはや、ネット上のどこからもダウンロードできないような状態になっていました。

そんな状態の中、私がたまーーーーーーに立ち上げ、
ツイッターなどで呼びかけて、
4人くらいでたまーーーに遊んでいました。


この頃にはサブタイトルが変遷しており、
『A戦争』
『A WAR LEGEND』
『A WAR LEGEND~ちぶちゃんの逆襲』
と変わり・・・、

ちなみに『ちぶちゃんの逆襲』の"ちぶちゃん"とは、

"A戦争は、もはやオワコン化し、
 今ではアンディーメンテにおける黒歴史、恥部である"

・・・という意味で
『ちぶちゃん』と呼ばれていたことから、
そのようなサブタイトルが付けられていたと思います。


この頃、最も強かったのは間違いなく
tunegoroさんでしょう。

少人数でも大人数でも、
臨機応変にたちまわり、様々な戦法を編み出していた印象があります。


そして時は流れ、
2022年

このA戦争に、とある劇的な変革が起こりました。


それは、プレイヤー人口が激減した中、
わずかに残った老兵達の空間に、
新しく始めようとするプレイヤーが数人現れだしたことをきっかけに、
そんなビギナー達と老兵達との戦力格差を埋めようとして、
編み出された斬新なシステムでした。


その名も、
『Akaic システム』。


それは、
強ければ強いほど、弱くなり、
弱ければ弱いほど、強くなるという、
革新的なシステムでした。


その強さは、勝敗結果の蓄積から
Legend Starというポイントによって表され、

これによって、強いプレイヤー達はLegend Starがどんどん上昇し、
鬼のように弱くなりました。


この頃のtunegoroさんは、一時100以上のLegend Star値になり、
そこまでいくと、
遠くで誰かがグレネードを投げただけで、
爆破地点が遠いにもかかわらず、
そのわずかな爆風でも死んでしまうという、
恐ろしい状態でした。


逆に、ピギナーなどの弱いプレイヤー達は、
Legend Starがマイナス値まで下がり、
それによって、
すさまじいほどの攻撃力やHPを持つ超人へとなり替わっていました。


そんな中で、
70以上のLegend Star値を持つ者だけが使えるという
伝説Weaponが追加されたりもしました。


Legend Weaponの1つ、
ショットガン『Tune-Burst』は、
射程減衰のない高威力の弾を、
一度に広範囲に12発を同時に発射する超強力武器として登場し、
のちに、『ポレン』の技としても採用されました。

また、
アサルトライフル『Emerald Cheeter 5.5』という
不死身になる効果を持つ、
とんでもないチート武器も登場したりもしました。


更に、
Legend Star値が上がり過ぎて、
弱くなりすぎてしまったプレイヤー達を救済するために、
更に新たに、『Legend Effectdシステム』が考案されました。

これは、
Legend Star値が70以上あるプレイヤーだけの能力で、
特定の武器を使い続けると、
一定時間で、Legend Effectd Pointがたまり、
その武器の名前となっているキャラクターを自らに憑依させることができるというもの。


例えば、スナイパーライフル『Macves』を使い続けると、
プレイヤーの頭上にマクベスのキャラクターが表示され、
全地点に、サテライトレーザーが放たれる
・・・といったような効果が発動します。


これらの新システム導入により、
タイトルは
『A WAR LEGEND~ちぶちゃんの逆襲』
『A WAR LEGEND ~Akaic Angels~』へと変わりました。


そして、これらのシステムによって、
戦場は一気に混沌化を極めることになりました。

限られた少人数だけの戦いの中で、
極限までにマンネリ化した戦場は、
その混沌を自らが求めていたかのように、
ゲームを変えていったのでした。


ただし、
このシステムは、
ビギナーや、弱いプレイヤーにとっては、良環境でも、
強いプレイヤーほど、更なる理不尽な環境へと追いやられる内容であり、
革命的な色合いを除いてしまえば、
ゲームバランスの崩壊といっても過言ではなかったのでした。


そんな激しすぎるバランスの変化は、
やがて老兵達すらをも疲労させて、
A戦争を再び沈静化させていくことになったのでした。



3、新時代 (2022~2023現在)


時は変わり、
ある時、A戦争に不意に、新しいゲームルールが追加されました。

それは、
『Attack & deffend』ルール


これは、
防衛側と攻撃側に分かれて戦う新ルールです。

防衛側チームは、初めから確保状態にある2拠点を、防衛することに専念し、
攻撃側チームは、それを奪うのが目的となります。

全ての拠点が、奪われてしまえば、攻撃側の勝利。
逆に、10分間、拠点を1つ以上防衛できれば、防衛側の勝利。


コールオブデューティーのデモリッションというルールに着想を得、
そこにドミネーションのルールを掛け合わせたようなオリジナルルールです。


このルールは、
プレイヤー数が極限までに少なくなった状態でも、
意外に奥が深く楽しめる内容であり、

また、
攻撃側と防衛側が変わるだけで、
新鮮な楽しみ方ができ、
マンネリ化を防げます。


個人的にも非常に面白く、
現在では、
このルールがメインにとってかわっています。


最近だと、
最も強い印象なのは、stoneさんでしょうか。


少人数過ぎるので、
3 vs 2 みたいになると、人数格差の影響が大きくでます。

また、
防衛側と攻撃側だと、
様々なトライを繰り返せる攻撃側に対し、
10分間防衛をしなければならないという防衛側が基本的には不利ということもあり、

人数差などがあっても、
勝敗はなかなか分からなかったりもして面白いです。


何より、
この長いA戦争の中で、
一番面白いルールだと、個人的に思っています。



現在は、
毎週土曜日の昼間
14:00頃~18:00頃に
戦いは行われています。

日曜も、時々昼間行われています。


今では、
様々な武器やスキル、攻撃手段や防衛手段、戦略が編み出され、
このプレイヤー人口には到底不釣り合いな
とてつもなく深いゲームになっています。


もし興味がわいたり、
以前遊んでいたけど、またやってみようかなと思ったら、
気軽にきてみてください。



私は、このゲームで、
私を徹底的に打ち負かすプレイヤーが現れるのを求めています。


私も戦況によっては
負けます。


yapuuさんに、
戦意喪失ですか? と煽れることもあります。



かつての
flouroさんや、tunegoroさんのように、
圧倒的に強く、
容赦のない強さ、
同時に、
豊富な戦略性や、鋭い戦況分析と柔軟な即応能力、
それらを体現する戦士を求めてはいますが、

彼らも最初は、ビギナーであり、弱く、
ただただ何もわからず殺されていたりしていたと思うので、

弱くても、なんにも分からない状態でも、全然歓迎いたします。

人口が少なすぎるので、人がいるだけで感謝感激な状態です。

yapuuさんにも、
神のように崇めたてられるでしょう。


毎週土曜日の昼間
14:00頃~18:00頃に行われています。

あるいは、A戦争ディスコードの召集ルームで
通知されます。
https://discord.gg/nxnCjMPVUa



(Google Admob) Ad Placements API for Unity 広告プレースメントの不具合

10-05,2022

ネットを調べると、
『AdMob広告を、Ad Placements API 広告プレースメントで簡単実装!』
みたいな記事がかなり出てきますが、
不具合らしきものを発見したので、ここに残しておきます。


最初に直面した謎現象



状況としては、
Ad Placements API 広告プレースメントを用いて、
バナー、インタースティシャル、リワードの3種類を実装してリリースしました。

ところが、10個くらいのアプリに同様の実装をしましたが、
内2つくらいのアプリで、謎現象が発生しました。

『実機やユーザーデバイス上で、広告は表示されるのに、 
 そのレポートがAdmob側で反映されない』というもの。


具体的には、例えば、

 バナー広告 表示回数 1021
 リワード広告 表示回数 32

とか表示されているのに、

 インタースティシャル広告は、存在自体がレポートされていない

・・・みたいな。

この場合、どんなにユーザーがその広告を見たとしても、
その収益は、恐らく0円になっています。


この謎現象が、自分でどんなに模索しても判明せず、
Google AdmobフォーラムやUnityフォーラムで質問したりもしましたが、回答はなく、
もちろん、検索しても、この現象のことに触れている記事はありませんでした。


謎現象の正体(予想)



 これは、Unityのインスペクター上で、
 AdMob Ad Placements の広告ユニットIDを変更した際、
 変更しているにもかかわらず、内部的には変更されていない
 ・・・という不具合が、原因と思われます。

 内部的には変更されていなかった、と私が判断できたのは、
 自分で広告ユニットIDが間違ってないかを確認した際に、何故か、
 インタースティシャル広告を実装させたオブジェクトが存在するシーンファイルが、
 変更もしていないのに、
 クラウド上のファイルと比較して、"更新されている状態"になっていたから。

 実際には、PlasticSCMの更新リストに、触ってもいないMain.sceneファイルが追加されていたのを見て、私は不信に思い、diffしてみると・・・、
 まさに、その時点で、なぜか今頃になって、インタースティシャル広告のユニットIDが、古いものから新しいものへ変更されていたのでした。

 当然、それまで古いIDだったわけではもちろんなく、インスペクター上は、新しいIDでしたが、
 何故かそのタイミングまで、内部的には更新されていなかった、
 ・・・ということが、その現象から推察できました。


 しかし、そもそも、Admobの広告ユニットIDは、
 多分、シーンファイルに紐づくものではなく、
 プロジェクトファイルに紐づくもののはずでは…と予想します。
 にもかかわらず、更新されていたのはシーンファイルの方。

 これはもしかしたら、Google AD Setting上の広告ユニットIDは、
 プロジェクトファイルに保存され、ちゃんと正しいIDに変更されてはいるが、
 その広告ユニットを実際に適用するオブジェクトに、
 何かのタイミングで、広告ユニットIDが自動的に受け渡され、
 オブジェクトの方にも、そのIDが個別に保存されているのでは!?


 だから、プロジェクトファイルの方、つまりGoogle AD Setting上で広告ユニットIDを変更しただけでは、オブジェクトに紐づくIDの方は更新されておらず、
 おそらく、そのオブジェクトを選択するとか、開く…みたいなアクションをした時に、
自動的にそっちが更新されるような仕組みかもしれません。あるいは定期的なクロールとか。

 そうであるなら、オブジェクトの方を一切いじらずに、リリースすると、
 Google AD Setting上での広告ユニットIDは正しくても、
 アプリ実行時、オブジェクトの方に、そのIDが受け渡されておらず、
 正しいIDが送信されていない・・・、ということになってしまうのかもしれません。


 オブジェクトの方にIDを受け渡す自動クロールのようなものがあるのかもしれないですが、UnityEditorや開発者の挙動によっては、それがうまくいかないケースがあったりして、プログラムがそれを保証できていない可能性があります。
 これは Google Admob AD Placements が、各ユニットIDを、インスペクター上で設定できるというメリットを提供したはいいものの、その構造の不完全さのようなものだと予想します。
 ここではインスペクターと便宜上言ってはいますが、実際には、エディター拡張によって入力させており、それをオブジェクト側が毎動作内で取得していくのではなく、エディター上でオブジェクトの方を更新させる、という挙動のような所に問題がありそうです。


 例えば、開発状況によっては、
 オブジェクトの方を先に作り、ソースも作り、全部終わったあとで、
 Google AD Setting上で広告ユニットIDを設定する
 ・・・みたいなケースは、結構な確率で予想されます。

 広告ユニットIDが判明するのは、AdMob側でアプリを登録した時であり、
 アプリが完成したあとで登録して広告IDを発行させたりするならば、こういう順番は頻発します。

 そしてその状況で、シーン内のオブジェクトに正しいIDが受け渡せていない場合があると、
 ビルドしても、間違ったIDを、内部では使用されてしまい、
 AdMob側がそれを正しく受信できないことで、上記の現象が発生するのでは、と予想します。


現実的な対策



対策1

1つは、Google AD Setting上で広告ユニットIDを設定した後は、
かならず、シーン内で広告を実装しているオブジェクトを選択したり、開いたりして、
IDが受け渡されるようにする機会を意識した方が良いでしょう。

ただ、実際どんなタイミングで受け渡されているのか不明のため、それをやっても不安ではありますが。

ちゃんと受け渡されたかどうかを確認する方法としては、
シーンファイルの中身を開き、広告ユニットIDの項目を検索してみると、出てくるので、
そのIDが正しいかどうかを確認することで、整合性を確認することができます。


対策2

もう1つの対策としては、
正規のSDKを使うです。


広告プレースメントAPIは、そもそもベータ段階のSDKであり、
ベータと明示しているので、信用が薄いことをGoogle側が提示しています。

見たところ、本家のSDKがどんどんVerupされていっているのに、
こちらはまったく更新されていないようなので、そういう面からも、使わない方が吉かと思います。


今回の報告は、私の実体験からの予想であり、
SDK内部のソースを全部見て言っている確証のあるものではないので、
あくまで報告例の1つとして、このことで困っている人の助けになればなと思い、世界に残しておきます。