• R/O
  • HTTP
  • SSH
  • HTTPS

dtxmaniaxg-verk-git: 提交

DTXManiaXG(Ver.K)4.00Series


Commit MetaInfo

修訂26392da2944da36a073fea1e14a1f88572f2f87d (tree)
時間2022-08-07 23:49:57
作者kairera0467 <gennsou76573@gmai...>
Commiterkairera0467

Log Message

#xxxxx matixx風FIFOの追加。現状パズル型のみ完成。
#xxxxx matixx風表示の場合、タイトル画面とコンフィグ画面のFIFOにパズル型FIFOを使うよう変更。

Change Summary

差異

--- a/DTXManiaプロジェクト/DTXManiaプロジェクト.csproj
+++ b/DTXManiaプロジェクト/DTXManiaプロジェクト.csproj
@@ -165,6 +165,8 @@
165165 <Compile Include="コード\ステージ\08.結果\GITADORA\CActResultRankGD.cs" />
166166 <Compile Include="コード\ステージ\08.結果\XG\CActResultParameterPanelXG.cs" />
167167 <Compile Include="コード\ステージ\08.結果\XG\CActResultRankXG.cs" />
168+ <Compile Include="コード\ステージ\CActFIFOSpin.cs" />
169+ <Compile Include="コード\ステージ\CActFIFOFade.cs" />
168170 <Compile Include="コード\ステージ\CActFIFOPuzzle.cs" />
169171 <Compile Include="コード\アイテム\CItemBase.cs" />
170172 <Compile Include="コード\アイテム\CItemInteger.cs" />
--- a/DTXManiaプロジェクト/コード/ステージ/02.タイトル/CStageタイトル.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/02.タイトル/CStageタイトル.cs
@@ -22,6 +22,7 @@ namespace DTXMania
2222 base.list子Activities.Add( this.actFIfromSetup = new CActFIFOWhite() );
2323 base.list子Activities.Add( this.actFI = new CActFIFOWhite() );
2424 base.list子Activities.Add( this.actFO = new CActFIFOWhite() );
25+ base.list子Activities.Add( this.actFOpuzzle = new CActFIFOPuzzle() );
2526 }
2627
2728
@@ -102,6 +103,11 @@ namespace DTXMania
102103 this.actFIfromSetup.tフェードイン開始();
103104 base.eフェーズID = CStage.Eフェーズ.タイトル_起動画面からのフェードイン;
104105 }
106+ else if ( CDTXMania.r直前のステージ == CDTXMania.stageコンフィグ && !CDTXMania.bXGRelease )
107+ {
108+ this.actFOpuzzle.tフェードイン開始WAM();
109+ base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;
110+ }
105111 else
106112 {
107113 this.actFI.tフェードイン開始();
@@ -177,7 +183,15 @@ namespace DTXMania
177183 {
178184 return (int) E戻り値.EXIT;
179185 }
180- this.actFO.tフェードアウト開始();
186+
187+ if ( this.n現在のカーソル行 == (int) E戻り値.CONFIG - 1 && !CDTXMania.bXGRelease )
188+ {
189+ this.actFOpuzzle.tフェードアウト開始WAM();
190+ }
191+ else
192+ {
193+ this.actFO.tフェードアウト開始();
194+ }
181195 base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
182196 }
183197 // if ( CDTXMania.Input管理.Keyboard.bキーが押された( (int) Key.Space ) )
@@ -242,18 +256,43 @@ namespace DTXMania
242256 switch ( eフェーズid )
243257 {
244258 case CStage.Eフェーズ.共通_フェードイン:
245- if ( this.actFI.On進行描画() != 0 )
246- {
247- CDTXMania.Skin.soundタイトル音.t再生する();
248- base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
249- }
259+ if ( CDTXMania.r直前のステージ.eステージID == Eステージ.コンフィグ )
260+ {
261+ if (this.actFOpuzzle.On進行描画() != 0)
262+ {
263+ CDTXMania.Skin.soundタイトル音.t再生する();
264+ base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
265+ }
266+ }
267+ else
268+ {
269+ if ( this.actFI.On進行描画() != 0 )
270+ {
271+ CDTXMania.Skin.soundタイトル音.t再生する();
272+ base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
273+ }
274+ }
250275 break;
251276
252277 case CStage.Eフェーズ.共通_フェードアウト:
253- if ( this.actFO.On進行描画() == 0 )
254- {
255- break;
256- }
278+ if (CDTXMania.bXGRelease)
279+ {
280+ if ( this.actFO.On進行描画() == 0 )
281+ {
282+ break;
283+ }
284+ }
285+ else
286+ {
287+ if ( this.n現在のカーソル行 != (int)E戻り値.CONFIG - 1 && this.actFO.On進行描画() == 0 )
288+ {
289+ break;
290+ }
291+ else if ( this.n現在のカーソル行 == (int)E戻り値.CONFIG - 1 && this.actFOpuzzle.On進行描画() == 0 )
292+ {
293+ break;
294+ }
295+ }
257296 base.eフェーズID = CStage.Eフェーズ.共通_終了状態;
258297 switch ( this.n現在のカーソル行 )
259298 {
@@ -350,6 +389,7 @@ namespace DTXMania
350389 private CActFIFOWhite actFI;
351390 private CActFIFOWhite actFIfromSetup;
352391 private CActFIFOWhite actFO;
392+ private CActFIFOPuzzle actFOpuzzle;
353393 private CCounter ctカーソルフラッシュ用;
354394 private STキー反復用カウンタ ctキー反復用;
355395 private CCounter ct下移動用;
--- a/DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CStageコンフィグ.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CStageコンフィグ.cs
@@ -30,6 +30,7 @@ namespace DTXMania
3030 //this.actFont = font = new CActDFPFont();
3131 //base.list子Activities.Add( font );
3232 base.list子Activities.Add( this.actFIFO = new CActFIFOWhite() );
33+ base.list子Activities.Add( this.actFIFOpuzzle = new CActFIFOPuzzle() );
3334 base.list子Activities.Add( this.actKeyAssign = new CActConfigKeyAssign() );
3435 base.list子Activities.Add( this.actオプションパネル = new CActオプションパネル() );
3536 base.b活性化してない = true;
@@ -161,7 +162,22 @@ namespace DTXMania
161162 if( base.b初めての進行描画 )
162163 {
163164 base.eフェーズID = CStage.Eフェーズ.共通_フェードイン;
164- this.actFIFO.tフェードイン開始();
165+ if( CDTXMania.bXGRelease )
166+ {
167+ this.actFIFO.tフェードイン開始();
168+ }
169+ else
170+ {
171+ if( CDTXMania.r直前のステージ.eステージID == Eステージ.タイトル )
172+ {
173+ this.actFIFOpuzzle.tフェードイン開始WAM();
174+ }
175+ else
176+ {
177+ this.actFIFO.tフェードイン開始();
178+ }
179+ }
180+
165181 base.b初めての進行描画 = false;
166182 }
167183
@@ -252,18 +268,60 @@ namespace DTXMania
252268 switch( base.eフェーズID )
253269 {
254270 case CStage.Eフェーズ.共通_フェードイン:
255- if( this.actFIFO.On進行描画() != 0 )
256- {
257- CDTXMania.Skin.bgmコンフィグ画面.t再生する();
258- base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
271+ if( CDTXMania.bXGRelease )
272+ {
273+ if (this.actFIFO.On進行描画() != 0)
274+ {
275+ CDTXMania.Skin.bgmコンフィグ画面.t再生する();
276+ base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
277+ }
259278 }
279+ else
280+ {
281+ if ( CDTXMania.r直前のステージ.eステージID == Eステージ.タイトル )
282+ {
283+ if( this.actFIFOpuzzle.On進行描画() != 0 )
284+ {
285+ CDTXMania.Skin.bgmコンフィグ画面.t再生する();
286+ base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
287+ }
288+ }
289+ else
290+ {
291+ if( this.actFIFO.On進行描画() != 0 )
292+ {
293+ CDTXMania.Skin.bgmコンフィグ画面.t再生する();
294+ base.eフェーズID = CStage.Eフェーズ.共通_通常状態;
295+ }
296+ }
297+ }
260298 break;
261299
262300 case CStage.Eフェーズ.共通_フェードアウト:
263- if( this.actFIFO.On進行描画() == 0 )
264- {
265- break;
301+ if( CDTXMania.bXGRelease )
302+ {
303+ if (this.actFIFO.On進行描画() != 0)
304+ {
305+ break;
306+ }
266307 }
308+ else
309+ {
310+ if ( CDTXMania.r直前のステージ.eステージID == Eステージ.タイトル )
311+ {
312+ if( this.actFIFOpuzzle.On進行描画() == 0 )
313+ {
314+ break;
315+ }
316+ }
317+ else
318+ {
319+ if( this.actFIFO.On進行描画() != 0 )
320+ {
321+ break;
322+ }
323+ }
324+ }
267325 return 1;
268326 }
269327 //---------------------
@@ -302,8 +360,16 @@ namespace DTXMania
302360 }
303361 else
304362 {
305- this.actFIFO.tフェードアウト開始();
306- base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
363+ if ( CDTXMania.bXGRelease || CDTXMania.r直前のステージ.eステージID != Eステージ.タイトル )
364+ {
365+ this.actFIFO.tフェードアウト開始();
366+ base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
367+ }
368+ else if ( CDTXMania.r直前のステージ.eステージID == Eステージ.タイトル )
369+ {
370+ this.actFIFOpuzzle.tフェードアウト開始WAM();
371+ base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
372+ }
307373 }
308374 }
309375 #region [ ← ]
@@ -337,7 +403,14 @@ namespace DTXMania
337403 if ( this.n現在のメニュー番号 == 4 )
338404 {
339405 CDTXMania.Skin.sound決定音.t再生する();
340- this.actFIFO.tフェードアウト開始();
406+ if ( CDTXMania.bXGRelease || CDTXMania.r直前のステージ.eステージID != Eステージ.タイトル )
407+ {
408+ this.actFIFO.tフェードアウト開始();
409+ }
410+ else
411+ {
412+ this.actFIFOpuzzle.tフェードアウト開始WAM();
413+ }
341414 base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト;
342415 }
343416 #endregion
@@ -468,6 +541,7 @@ namespace DTXMania
468541 }
469542
470543 private CActFIFOWhite actFIFO;
544+ private CActFIFOPuzzle actFIFOpuzzle;
471545 private CActConfigKeyAssign actKeyAssign;
472546 private CActConfigList共通 actList;
473547 private CActオプションパネル actオプションパネル;
--- a/DTXManiaプロジェクト/コード/ステージ/05.選曲/GITADORA/CActSelectFO曲決定.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/05.選曲/GITADORA/CActSelectFO曲決定.cs
@@ -74,7 +74,7 @@ namespace DTXMania
7474 }
7575 }
7676 }
77-
77+ return 0;
7878
7979 if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
8080 {
@@ -214,9 +214,9 @@ namespace DTXMania
214214 }
215215
216216 }
217- this.counter.t進行();
217+ //this.counter.t進行();
218218
219- CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, this.counter.n現在の値.ToString() );
219+ //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, this.counter.n現在の値.ToString() );
220220
221221 if ( this.counter.n現在の値 != 100 )
222222 {
--- a/DTXManiaプロジェクト/コード/ステージ/05.選曲/GITADORA/CActSelect曲リストGITADORA.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/05.選曲/GITADORA/CActSelect曲リストGITADORA.cs
@@ -121,11 +121,6 @@ namespace DTXMania
121121 this.txジャケットパネル背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_JacketPanel Background.png" ) );
122122 this.txジャケットパネル枠 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_Jacket sensor.png" ) );
123123
124- this.tx水色 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile lightblue.png" ) );
125- this.tx黒 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile black.png" ) );
126- this.tx青色 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile blue.png" ) );
127- this.tx群青 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile darkblue.png" ) );
128-
129124 this.txクリアランプ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_Clearlamp.png" ) );
130125
131126 //this.tx曲名バー.Score = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_bar score.png" ), false );
@@ -229,11 +224,6 @@ namespace DTXMania
229224 CDTXMania.tテクスチャの解放( ref this.txジャケットパネル枠 );
230225 CDTXMania.tテクスチャの解放( ref this.tx選択中のアーティスト名テクスチャ );
231226
232- CDTXMania.tテクスチャの解放( ref this.tx水色 );
233- CDTXMania.tテクスチャの解放( ref this.tx黒 );
234- CDTXMania.tテクスチャの解放( ref this.tx青色 );
235- CDTXMania.tテクスチャの解放( ref this.tx群青 );
236-
237227 CDTXMania.tテクスチャの解放( ref this.txクリアランプ );
238228
239229
@@ -551,10 +541,10 @@ namespace DTXMania
551541 //-----------------
552542 #endregion
553543
554- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F8 ) )
555- {
556- this.tTextureCacheClear();
557- }
544+ //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDXKey.F8 ) )
545+ //{
546+ // this.tTextureCacheClear();
547+ //}
558548 }
559549
560550
@@ -921,12 +911,6 @@ namespace DTXMania
921911 #region [ アイテム数の描画 #27648 ]
922912 tアイテム数の描画();
923913 #endregion
924-
925- if( CDTXMania.Input管理.Keyboard.bキーが押されている( (int)SlimDXKey.F7 ) )
926- {
927- this.tPuzzleFIFOTest();
928- }
929-
930914 #region [ スクロール地点の計算(描画はCActSelectShowCurrentPositionにて行う) #27648 ]
931915 int py;
932916 double d = 0;
@@ -1003,78 +987,7 @@ namespace DTXMania
1003987 //protected Dictionary<string, CTexture> dicThumbnail = new Dictionary<string, CTexture>();
1004988 protected Dictionary<string, CTexture> dicMusicName = new Dictionary<string, CTexture>();
1005989 #endregion
1006-
1007- #region[ 図形描画用 ]
1008- CTexture tx水色;
1009- CTexture tx青色;
1010- CTexture tx群青;
1011- CTexture tx黒;
1012- #endregion
1013-
1014990 #region[ 描画サブ ]
1015- private void tPuzzleFIFOTest()
1016- {
1017- if( this.tx水色 != null && this.tx黒 != null )
1018- {
1019- //14 群青(右)
1020- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
1021- this.tx群青.t2D描画( CDTXMania.app.Device, 401, 206 );
1022-
1023- //13 青(左)
1024- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
1025- this.tx青色.t2D描画( CDTXMania.app.Device, 79, 206 );
1026-
1027- //12 水色(左上)
1028- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
1029- this.tx水色.t2D描画( CDTXMania.app.Device, 0, 48 );
1030-
1031- //11 黒(左下)
1032- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
1033- this.tx黒.t2D描画( CDTXMania.app.Device, -10, 422 );
1034-
1035- //10 青(上)
1036- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 0 );
1037- this.tx青色.t2D描画( CDTXMania.app.Device, 0, -224 );
1038-
1039- //9 黒(下)
1040- this.tx黒.fZ軸中心回転 = 0;
1041- this.tx黒.t2D描画( CDTXMania.app.Device, 300, 609 );
1042-
1043- //8 黒(右上)
1044- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
1045- this.tx黒.t2D描画( CDTXMania.app.Device, 465, -23 );
1046-
1047- //7 水色(右下)
1048- this.tx水色.t2D描画( CDTXMania.app.Device, 646, 416 );
1049-
1050- //6 黒(右)
1051- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
1052- this.tx黒.t2D描画( CDTXMania.app.Device, 820, 206 );
1053-
1054- //5 群青(左)
1055- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
1056- this.tx群青.t2D描画( CDTXMania.app.Device, -223, 196 );
1057-
1058- //4 青(右下)
1059- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
1060- this.tx青色.t2D描画( CDTXMania.app.Device, 836, 422 );
1061-
1062- //3 黒(左上)
1063- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
1064- this.tx黒.t2D描画( CDTXMania.app.Device, -309, -23 );
1065-
1066- //2 群青(右上)
1067- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
1068- this.tx群青.t2D描画( CDTXMania.app.Device, 854, -24 );
1069-
1070- //1 水色(左下)
1071- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
1072- this.tx水色.t2D描画( CDTXMania.app.Device, -306, 416 );
1073- }
1074- }
1075-
1076-
1077- //なんとなくメソッド化してみる
1078991 protected void tSongNotFound()
1079992 {
1080993 if( this.bIsEnumeratingSongs )
--- a/DTXManiaプロジェクト/コード/ステージ/05.選曲/GITADORA/CStage選曲GITADORA.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/05.選曲/GITADORA/CStage選曲GITADORA.cs
@@ -21,7 +21,11 @@ namespace DTXMania
2121 base.list子Activities.Add( this.act曲リスト = new CActSelect曲リストGITADORA() );
2222 base.list子Activities.Add( this.actShowCurrentPosition = new CActSelectShowCurrentPositionGITADORA() );
2323 base.list子Activities.Add( this.actSelectFO決定 = new CActSelectFO曲決定() );
24- }
24+#if DEBUG
25+ base.list子Activities.Add( this.actFIFOPuzzle = new CActFIFOPuzzle() );
26+ base.list子Activities.Add( this.actFIFOFade = new CActFIFOFade() );
27+#endif
28+ }
2529
2630 public override void OnManagedリソースの作成()
2731 {
@@ -469,13 +473,14 @@ namespace DTXMania
469473 // CDTXMania.Skin.sound変更音.t再生する();
470474 // CDTXMania.Skin.CreateShutterList();
471475 //}
472- this.actFIFOPuzzle.On進行描画();
476+ this.actFIFOFade.On進行描画();
477+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F8 ) )
478+ {
479+ //this.actFIFOFade.tフェードアウト開始WAM();
480+ }
473481 if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F9 ) )
474482 {
475- //Debug.WriteLine( "[Test]シャッター画像のリスト生成&呼び出し" );
476- //CDTXMania.Skin.sound変更音.t再生する();
477- //CDTXMania.Skin.arGetShutterName();
478- this.actFIFOPuzzle.tフェードアウト開始WAM();
483+ this.actFIFOFade.tフェードアウト開始WAM();
479484 }
480485 }
481486 #endif
@@ -493,5 +498,6 @@ namespace DTXMania
493498 protected CActSelectFO曲決定 actSelectFO決定;
494499
495500 protected CActFIFOPuzzle actFIFOPuzzle;
496- }
501+ protected CActFIFOFade actFIFOFade;
502+ }
497503 }
--- a/DTXManiaプロジェクト/コード/ステージ/07.演奏/GITADORA/ドラム画面/CAct演奏DrumsステータスパネルGD.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/07.演奏/GITADORA/ドラム画面/CAct演奏DrumsステータスパネルGD.cs
@@ -29,8 +29,8 @@ namespace DTXMania
2929 {
3030 if( !base.b活性化してない )
3131 {
32- string strSongName = "";
33- string strArtistName = "";
32+ string strSongName;
33+ string strArtistName;
3434
3535 if ( string.IsNullOrEmpty( CDTXMania.DTX.TITLE ) || ( !CDTXMania.bコンパクトモード && CDTXMania.ConfigIni.b曲名表示をdefのものにする ) )
3636 strSongName = CDTXMania.stage選曲GITADORA.r確定された曲.strタイトル;
@@ -444,6 +444,9 @@ namespace DTXMania
444444 this.t判定率文字描画( -435, 17, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Poor / (float)nowtotal) * 100.0f ) );
445445 this.t判定率文字描画( -435, -13, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.nヒット数_Auto含む.Drums.Miss / (float)nowtotal) * 100.0f ) );
446446 this.t判定率文字描画( -435, -43, nowtotal == 0 ? " 0%" : string.Format("{0,3:##0}%", (CDTXMania.stage演奏ドラム画面GITADORA.actCombo.n現在のコンボ数.Drums最高値 / (float)nowtotal) * 100.0f ) );
447+
448+ // 達成率
449+
447450 }
448451 #endregion
449452
@@ -499,66 +502,66 @@ namespace DTXMania
499502 }
500503 #endregion
501504 #region[ スコア表示 ]
502- this.n表示スコア.Drums = (long)CDTXMania.stage演奏ドラム画面GITADORA.actScore.n現在表示中のスコア.Drums;
503- if( CDTXMania.ConfigIni.eSkillMode == ESkillType.DTXMania )
504- {
505- //string str = this.n表示スコア.Drums.ToString("0000000000");
506- //for (int i = 0; i < 10; i++)
507- //{
508- // Rectangle rectangle;
509- // char ch = str[i];
510- // if (ch.Equals(' '))
511- // {
512- // rectangle = new Rectangle(0, 0, 32, 36);
513- // }
514- // else
515- // {
516- // int num3 = int.Parse(str.Substring(i, 1));
517- // rectangle = new Rectangle((num3 * 36), 0, 36, 50);
518- // }
519- // if (this.txScore != null)
520- // {
521- // SlimDX.Matrix matScoreXG = SlimDX.Matrix.Identity;
522- // matScoreXG *= SlimDX.Matrix.Translation(-1370 + (i * 30), 50 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, 0);
523- // matScoreXG *= SlimDX.Matrix.Scaling(0.3f, 0.62f, 1f);
524- // matScoreXG *= SlimDX.Matrix.RotationY(-0.8f);
525- // this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
526- // }
527- //}
528- }
529- else if( CDTXMania.ConfigIni.eSkillMode == ESkillType.XG )
530- {
531- // 2019.1.12 kairera0467
532- // とりあえずXGスコア計算時のみ表示
533- if( this.txScore != null )
534- {
535- string str = string.Format("{0,7:######0}", this.n表示スコア.Drums);
536- for( int i = 0; i < 7; i++ )
537- {
538- Rectangle rectangle;
539- char ch = str[i];
540- if (ch.Equals(' '))
541- {
542- rectangle = new Rectangle(0, 0, 0, 0);
543- }
544- else
545- {
546- int num3 = int.Parse(str.Substring(i, 1));
547- rectangle = new Rectangle((num3 * 36), 0, 36, 50);
548- }
549- Matrix matScoreXG = Matrix.Identity;
550- matScoreXG *= Matrix.Scaling(0.6f, 1.1f, 1f);
551- matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40));
552- matScoreXG *= Matrix.Translation(-522 + (i * 14), 237 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, i * 14);
553- this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
554- }
555- Matrix matScoreTxt = Matrix.Identity;
556- matScoreTxt *= Matrix.Scaling(0.6f, 1.5f, 1f);
557- matScoreTxt *= Matrix.RotationY(C変換.DegreeToRadian(-40));
558- matScoreTxt *= Matrix.Translation(-494f, 282f, 0);
559- this.txScore.t3D描画(CDTXMania.app.Device, matScoreTxt, new Rectangle( 0, 50, 88, 28 ));
560- }
561- }
505+ this.n表示スコア.Drums = (long)CDTXMania.stage演奏ドラム画面GITADORA.actScore.n現在表示中のスコア.Drums;
506+ if( CDTXMania.ConfigIni.eSkillMode == ESkillType.DTXMania )
507+ {
508+ //string str = this.n表示スコア.Drums.ToString("0000000000");
509+ //for (int i = 0; i < 10; i++)
510+ //{
511+ // Rectangle rectangle;
512+ // char ch = str[i];
513+ // if (ch.Equals(' '))
514+ // {
515+ // rectangle = new Rectangle(0, 0, 32, 36);
516+ // }
517+ // else
518+ // {
519+ // int num3 = int.Parse(str.Substring(i, 1));
520+ // rectangle = new Rectangle((num3 * 36), 0, 36, 50);
521+ // }
522+ // if (this.txScore != null)
523+ // {
524+ // SlimDX.Matrix matScoreXG = SlimDX.Matrix.Identity;
525+ // matScoreXG *= SlimDX.Matrix.Translation(-1370 + (i * 30), 50 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, 0);
526+ // matScoreXG *= SlimDX.Matrix.Scaling(0.3f, 0.62f, 1f);
527+ // matScoreXG *= SlimDX.Matrix.RotationY(-0.8f);
528+ // this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
529+ // }
530+ //}
531+ }
532+ else if( CDTXMania.ConfigIni.eSkillMode == ESkillType.XG )
533+ {
534+ // 2019.1.12 kairera0467
535+ // とりあえずXGスコア計算時のみ表示
536+ if( this.txScore != null )
537+ {
538+ string str = string.Format("{0,7:######0}", this.n表示スコア.Drums);
539+ for( int i = 0; i < 7; i++ )
540+ {
541+ Rectangle rectangle;
542+ char ch = str[i];
543+ if (ch.Equals(' '))
544+ {
545+ rectangle = new Rectangle(0, 0, 0, 0);
546+ }
547+ else
548+ {
549+ int num3 = int.Parse(str.Substring(i, 1));
550+ rectangle = new Rectangle((num3 * 36), 0, 36, 50);
551+ }
552+ Matrix matScoreXG = Matrix.Identity;
553+ matScoreXG *= Matrix.Scaling(0.6f, 1.1f, 1f);
554+ matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40));
555+ matScoreXG *= Matrix.Translation(-522 + (i * 14), 237 + CDTXMania.stage演奏ドラム画面GITADORA.actScore.x位置[i].Drums, i * 14);
556+ this.txScore.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
557+ }
558+ Matrix matScoreTxt = Matrix.Identity;
559+ matScoreTxt *= Matrix.Scaling(0.6f, 1.5f, 1f);
560+ matScoreTxt *= Matrix.RotationY(C変換.DegreeToRadian(-40));
561+ matScoreTxt *= Matrix.Translation(-494f, 282f, 0);
562+ this.txScore.t3D描画(CDTXMania.app.Device, matScoreTxt, new Rectangle( 0, 50, 88, 28 ));
563+ }
564+ }
562565 #endregion
563566 }
564567 return 0;
@@ -568,7 +571,7 @@ namespace DTXMania
568571
569572 // その他
570573
571-#region [ private ]
574+ #region [ private ]
572575 //-----------------
573576 private Bitmap b4font;
574577 private Bitmap bNamePlate;
@@ -684,6 +687,34 @@ namespace DTXMania
684687 this.tx判定数数字.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
685688 }
686689 }
687-#endregion
690+
691+ private void t達成率文字描画(float x, float y, string str)
692+ {
693+ // TODO: MAX表記
694+ for (int i = 0; i < 7; i++)
695+ {
696+ Rectangle rectangle;
697+ char ch = str[i];
698+ if (ch.Equals(' '))
699+ {
700+ rectangle = new Rectangle(0, 0, 0, 0);
701+ }
702+ else if (ch.Equals('.'))
703+ {
704+ rectangle = new Rectangle(0, 0, 0, 0);
705+ }
706+ else
707+ {
708+ int num3 = int.Parse(str.Substring(i, 1));
709+ rectangle = new Rectangle((num3 * 20), 0, 20, 26);
710+ }
711+ Matrix matScoreXG = Matrix.Identity;
712+ matScoreXG *= Matrix.Scaling(0.45f, 0.8f, 1f);
713+ matScoreXG *= Matrix.RotationY(C変換.DegreeToRadian(-40));
714+ matScoreXG *= Matrix.Translation(x + (i * 6), y, 28 + i * 6);
715+ this.tx判定数数字.t3D描画(CDTXMania.app.Device, matScoreXG, rectangle);
716+ }
717+ }
718+ #endregion
688719 }
689720 }
\ No newline at end of file
--- /dev/null
+++ b/DTXManiaプロジェクト/コード/ステージ/CActFIFOFade.cs
@@ -0,0 +1,361 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Diagnostics;
4+using System.Text;
5+using System.Drawing;
6+using SharpDX.Animation;
7+using FDK;
8+
9+using SlimDXKey = SlimDX.DirectInput.Key;
10+using SharpDX;
11+
12+namespace DTXMania
13+{
14+ // 未完成
15+
16+ internal class CActFIFOFade : CActivity
17+ {
18+ // メソッド
19+ public void tフェードアウト開始WAM()
20+ {
21+ this.mode = EFIFOモード.フェードアウト;
22+
23+ #region[ Storyboardの構築 ]
24+ float f速度倍率 = 0.3f;
25+ double dコマ秒 = 0.016;
26+ double 秒(double v) => ( v / f速度倍率 );
27+ var animation = CDTXMania.AnimationManager;
28+ var basetime = animation.Timer.Time;
29+ var start = basetime;
30+
31+ C図形 図形 = this._図形[ 0 ];
32+ 図形._ストーリーボード = new Storyboard( animation.Manager );
33+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, -135 );
34+ 図形.var画像中心位置X = new Variable( animation.Manager, -1280 );
35+ 図形.var画像中心位置Y = new Variable( animation.Manager, -180);
36+
37+ // 初期50度 -> 180度
38+
39+ using (var Z回転 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
40+ using (var X移動1 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
41+ {
42+ 図形._ストーリーボード.AddTransition(図形.var画像Z軸回転度, Z回転);
43+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動1);
44+ }
45+ this._図形[0]._ストーリーボード?.Schedule( start );
46+
47+ start += 秒(dコマ秒 * 2);
48+ 図形 = this._図形[ 1 ];
49+ 図形._ストーリーボード = new Storyboard(animation.Manager);
50+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
51+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
52+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
53+
54+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 226, 0.1, 0.9))
55+ {
56+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
57+ }
58+ this._図形[1]._ストーリーボード?.Schedule(start);
59+
60+
61+ // タイトルロゴ
62+ start = basetime + 秒(dコマ秒 * 8);
63+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
64+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 0);
65+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 268);
66+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -240);
67+
68+ // 8コマ待機
69+ // 不透明度変化 12コマ
70+ // X座標移動 20コマ 268 -> 388 (70%/30%)
71+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.1, 0.9))
72+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 255))
73+ {
74+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
75+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
76+ }
77+ _タイトルロゴ._ストーリーボード?.Schedule(start);
78+
79+ #endregion
80+ }
81+
82+ public void tフェードイン開始WAM()
83+ {
84+ this.mode = EFIFOモード.フェードイン;
85+
86+ #region[ Storyboardの構築 ]
87+ float f速度倍率 = 1.0f;
88+ double dコマ秒 = 0.016;
89+ double 秒(double v) => ( v / f速度倍率 );
90+ var animation = CDTXMania.AnimationManager;
91+ var basetime = animation.Timer.Time;
92+ var start = basetime;
93+
94+ // タイトルロゴ
95+ start = basetime + 秒(dコマ秒 * 8);
96+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
97+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 255);
98+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
99+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
100+
101+ // 8コマ待機
102+ // 不透明度変化 12コマ
103+ // X座標移動 20コマ 268 -> 388 (70%/30%)
104+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.7, 0.3))
105+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 0))
106+ {
107+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
108+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
109+ }
110+ _タイトルロゴ._ストーリーボード?.Schedule(start);
111+ #endregion
112+ }
113+
114+ // CActivity 実装
115+ public override void On活性化()
116+ {
117+ this._図形 = new C図形[2];
118+ for (int i = 0; i < this._図形.Length; i++)
119+ {
120+ this._図形[i] = new C図形();
121+ }
122+ this._タイトルロゴ = new Cタイトルロゴ();
123+
124+ base.On活性化();
125+ }
126+
127+ public override void On非活性化()
128+ {
129+ if( !base.b活性化してない )
130+ {
131+ foreach (C図形 s in this._図形)
132+ {
133+ s?.Dispose();
134+ }
135+ this._図形 = null;
136+
137+ this._タイトルロゴ?.Dispose();
138+ this._タイトルロゴ = null;
139+
140+ base.On非活性化();
141+ }
142+ }
143+ public override void OnManagedリソースの作成()
144+ {
145+ if( !base.b活性化してない )
146+ {
147+ // テクスチャ生成
148+ // 黒幕、マスクのテクスチャを生成する。
149+ // マスク
150+ int textureSizeW = SampleFramework.GameWindowSize.Width;
151+ int textureSizeH = SampleFramework.GameWindowSize.Height;
152+
153+ Bitmap bmp = new Bitmap(textureSizeW, textureSizeH);
154+ Graphics graphic = Graphics.FromImage(bmp);
155+ graphic?.FillRectangle(Brushes.Black, 0, 0, textureSizeW, textureSizeH);
156+ graphic?.Dispose();
157+
158+ this.txマスク = CDTXMania.tテクスチャの生成(bmp);
159+ bmp?.Dispose();
160+
161+ // 黒幕
162+ textureSizeW = (int)(SampleFramework.GameWindowSize.Width * 1.5f);
163+ textureSizeH = (int)(SampleFramework.GameWindowSize.Height / 2.0f * 1.5f);
164+
165+ bmp = new Bitmap(textureSizeW, textureSizeH);
166+ graphic = Graphics.FromImage(bmp);
167+ graphic?.FillRectangle(Brushes.Black, 0, 0, textureSizeW, textureSizeH);
168+ graphic?.Dispose();
169+
170+ this.tx黒幕 = CDTXMania.tテクスチャの生成(bmp);
171+ bmp?.Dispose();
172+
173+ this.txロゴ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO logo.png" ) );
174+ base.OnManagedリソースの作成();
175+ }
176+ }
177+ public override int On進行描画()
178+ {
179+ if( base.b活性化してない || ( this._図形[ 0 ]._ストーリーボード == null ) )
180+ {
181+ return 0;
182+ }
183+
184+ if( this.tx黒幕 != null )
185+ {
186+#if DEBUG
187+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
188+ {
189+ ret--;
190+ }
191+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
192+ {
193+ ret++;
194+ }
195+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
196+ {
197+ ret = ret - 10;
198+ }
199+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
200+ {
201+ ret = ret + 10;
202+ }
203+
204+ if( this.b座標デバッグモード )
205+ {
206+ this.tx黒幕.n透明度 = 128;
207+ }
208+#endif
209+
210+ if ( this.mode == EFIFOモード.フェードアウト )
211+ {
212+ Matrix mat;
213+
214+ // 黒幕(右)
215+ //mat = Matrix.Identity;
216+ //mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
217+ //mat *= Matrix.RotationZ((float)this._図形[0].var画像Z軸回転度.Value);
218+ //mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
219+ //this.tx黒幕.t3D描画( CDTXMania.app.Device, mat );
220+
221+ // 黒幕(左)
222+ // 上辺中央座標
223+ mat = Matrix.Identity;
224+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
225+ mat *= Matrix.RotationZ(C変換.DegreeToRadian((float)this._図形[0].var画像Z軸回転度.Value));
226+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
227+ //mat *= Matrix.RotationZ(C変換.DegreeToRadian(0));
228+ //mat *= Matrix.Translation(0, 0, 0);
229+ //this.tx黒幕.t3D描画(CDTXMania.app.Device, mat, new Vector3(0, -this.tx黒幕.szテクスチャサイズ.Height / 2f, 0));
230+ this.tx黒幕.t3D描画(CDTXMania.app.Device, mat);
231+
232+ // マスク
233+ mat = Matrix.Identity;
234+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
235+ mat *= Matrix.RotationZ(0);
236+ mat *= Matrix.Translation(0, 0, 0);
237+ this.txマスク.n透明度 = 0;
238+ //this.txマスク.t3D描画(CDTXMania.app.Device, mat);
239+
240+ // タイトルロゴ
241+ mat = Matrix.Identity;
242+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
243+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
244+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
245+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
246+ }
247+ else
248+ {
249+ Matrix mat;
250+
251+ // タイトルロゴ
252+ mat = Matrix.Identity;
253+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
254+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
255+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
256+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
257+ }
258+#if DEBUG
259+ if( this.b座標デバッグモード )
260+ CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, $"ret:{ret.ToString()}");
261+#endif
262+ }
263+
264+ if ( this._タイトルロゴ._ストーリーボード.Status != StoryboardStatus.Ready )
265+ {
266+ return 0;
267+ }
268+
269+ return 1;
270+ }
271+
272+
273+ // その他
274+ #region [ private ]
275+ //-----------------
276+ private EFIFOモード mode;
277+ private CTexture txロゴ;
278+ private CTexture tx水色;
279+ private CTexture tx青色;
280+ private CTexture tx群青;
281+
282+ private CTexture txマスク;
283+ private CTexture tx黒幕;
284+#if DEBUG
285+ private int ret;
286+ private readonly bool b座標デバッグモード = true;
287+#endif
288+ //-----------------
289+ #endregion
290+
291+ #region[ 図形描画用 ]
292+ protected C図形[] _図形 = new C図形[ 2 ];
293+ protected Cマスク _マスク;
294+ protected Cタイトルロゴ _タイトルロゴ;
295+ protected class C図形 : IDisposable
296+ {
297+ public Variable var表示;
298+ public Variable var画像中心位置X;
299+ public Variable var画像中心位置Y;
300+ public Variable var画像Z軸回転度;
301+ public Storyboard _ストーリーボード;
302+
303+ public void Dispose()
304+ {
305+ this._ストーリーボード?.Abandon();
306+ this._ストーリーボード = null;
307+
308+ this.var表示?.Dispose();
309+ this.var表示 = null;
310+
311+ this.var画像中心位置X?.Dispose();
312+ this.var画像中心位置X = null;
313+
314+ this.var画像中心位置Y?.Dispose();
315+ this.var画像中心位置Y = null;
316+
317+ this.var画像Z軸回転度?.Dispose();
318+ this.var画像Z軸回転度 = null;
319+ }
320+ }
321+
322+ protected class Cマスク : IDisposable
323+ {
324+ public Variable var画像不透明度;
325+ public Storyboard _ストーリーボード;
326+
327+ public void Dispose()
328+ {
329+ this._ストーリーボード?.Abandon();
330+ this._ストーリーボード = null;
331+
332+ this.var画像不透明度?.Dispose();
333+ this.var画像不透明度 = null;
334+ }
335+ }
336+
337+ protected class Cタイトルロゴ : IDisposable
338+ {
339+ public Variable var画像中心位置X;
340+ public Variable var画像中心位置Y;
341+ public Variable var画像不透明度;
342+ public Storyboard _ストーリーボード;
343+
344+ public void Dispose()
345+ {
346+ this._ストーリーボード?.Abandon();
347+ this._ストーリーボード = null;
348+
349+ this.var画像中心位置X?.Dispose();
350+ this.var画像中心位置X = null;
351+
352+ this.var画像中心位置Y?.Dispose();
353+ this.var画像中心位置Y = null;
354+
355+ this.var画像不透明度?.Dispose();
356+ this.var画像不透明度 = null;
357+ }
358+ }
359+ #endregion
360+ }
361+}
--- a/DTXManiaプロジェクト/コード/ステージ/CActFIFOPuzzle.cs
+++ b/DTXManiaプロジェクト/コード/ステージ/CActFIFOPuzzle.cs
@@ -6,28 +6,13 @@ using SharpDX.Animation;
66 using FDK;
77
88 using SlimDXKey = SlimDX.DirectInput.Key;
9+using SharpDX;
910
1011 namespace DTXMania
1112 {
1213 internal class CActFIFOPuzzle : CActivity
1314 {
1415 // メソッド
15-
16- public void tフェードアウト開始()
17- {
18- this.mode = EFIFOモード.フェードアウト;
19- this.counter = new CCounter( 0, 100, 5, CDTXMania.Timer );
20- }
21- public void tフェードイン開始()
22- {
23- this.mode = EFIFOモード.フェードイン;
24- this.counter = new CCounter( 0, 100, 5, CDTXMania.Timer );
25- }
26- public void tフェードイン完了() // #25406 2011.6.9 yyagi
27- {
28- this.counter.n現在の値 = this.counter.n終了値;
29- }
30-
3116 public void tフェードアウト開始WAM()
3217 {
3318 this.mode = EFIFOモード.フェードアウト;
@@ -37,26 +22,563 @@ namespace DTXMania
3722 double dコマ秒 = 0.016;
3823 double 秒(double v) => ( v / f速度倍率 );
3924 var animation = CDTXMania.AnimationManager;
25+ var basetime = animation.Timer.Time;
26+ var start = basetime;
4027
4128 C図形 図形 = this._図形[ 0 ];
29+ 図形._ストーリーボード = new Storyboard( animation.Manager );
30+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, C変換.DegreeToRadian( -45 ) );
31+ 図形.var画像中心位置X = new Variable( animation.Manager, -584 );
32+ 図形.var画像中心位置Y = new Variable( animation.Manager, -645 );
33+
34+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -219, 0.1, 0.9))
35+ {
36+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
37+ }
38+ this._図形[0]._ストーリーボード?.Schedule( start );
39+
40+ start += 秒(dコマ秒 * 2);
41+ 図形 = this._図形[ 1 ];
42+ 図形._ストーリーボード = new Storyboard(animation.Manager);
43+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
44+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
45+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
46+
47+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 226, 0.1, 0.9))
48+ {
49+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
50+ }
51+ this._図形[1]._ストーリーボード?.Schedule(start);
52+
53+ start += 秒(dコマ秒 * 2);
54+ 図形 = this._図形[2];
55+ 図形._ストーリーボード = new Storyboard(animation.Manager);
56+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
57+ 図形.var画像中心位置X = new Variable(animation.Manager, -531);
58+ 図形.var画像中心位置Y = new Variable(animation.Manager, 682);
59+
60+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 270, 0.1, 0.9))
61+ {
62+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
63+ }
64+ this._図形[2]._ストーリーボード?.Schedule(start);
65+
66+ start += 秒(dコマ秒 * 2);
67+ 図形 = this._図形[3];
68+ 図形._ストーリーボード = new Storyboard(animation.Manager);
69+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
70+ 図形.var画像中心位置X = new Variable(animation.Manager, 500);
71+ 図形.var画像中心位置Y = new Variable(animation.Manager, -728);
72+
73+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -286, 0.1, 0.9))
74+ {
75+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
76+ }
77+ this._図形[3]._ストーリーボード?.Schedule(start);
4278
79+ start += 秒(dコマ秒 * 2);
80+ 図形 = this._図形[4];
81+ 図形._ストーリーボード = new Storyboard(animation.Manager);
82+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
83+ 図形.var画像中心位置X = new Variable(animation.Manager, -848);
84+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
4385
86+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -498, 0.1, 0.9))
87+ {
88+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
89+ }
90+ this._図形[4]._ストーリーボード?.Schedule(start);
91+
92+ start += 秒(dコマ秒 * 2);
93+ 図形 = this._図形[5];
94+ 図形._ストーリーボード = new Storyboard(animation.Manager);
95+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
96+ 図形.var画像中心位置X = new Variable(animation.Manager, 804);
97+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
98+
99+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 544, 0.1, 0.9))
100+ {
101+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
102+ }
103+ this._図形[5]._ストーリーボード?.Schedule(start);
104+
105+ start += 秒(dコマ秒 * 2);
106+ 図形 = this._図形[6];
107+ 図形._ストーリーボード = new Storyboard(animation.Manager);
108+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
109+ 図形.var画像中心位置X = new Variable(animation.Manager, 1004);
110+ 図形.var画像中心位置Y = new Variable(animation.Manager, -226);
111+
112+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 364, 0.1, 0.9))
113+ {
114+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
115+ }
116+ this._図形[6]._ストーリーボード?.Schedule(start);
117+
118+ start = basetime + 秒(dコマ秒 * 2);
119+ 図形 = this._図形[7];
120+ 図形._ストーリーボード = new Storyboard(animation.Manager);
121+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
122+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
123+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
124+
125+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 10)))
126+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 230, 0.1, 0.9))
127+ {
128+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
129+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
130+ }
131+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
132+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
133+ {
134+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
135+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
136+ }
137+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 172, 0.1, 0.9))
138+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 234, 0.1, 0.9))
139+ {
140+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
141+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
142+ }
143+ this._図形[7]._ストーリーボード?.Schedule(start);
144+
145+ start = basetime + 秒(dコマ秒 * 18);
146+ 図形 = this._図形[8];
147+ 図形._ストーリーボード = new Storyboard(animation.Manager);
148+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
149+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
150+ 図形.var画像中心位置Y = new Variable(animation.Manager, -534);
151+
152+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 9), -413, 0.1, 0.9))
153+ {
154+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
155+ }
156+ this._図形[8]._ストーリーボード?.Schedule(start);
157+
158+ start = basetime + 秒(dコマ秒 * 20);
159+ 図形 = this._図形[9];
160+ 図形._ストーリーボード = new Storyboard(animation.Manager);
161+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
162+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
163+ 図形.var画像中心位置Y = new Variable(animation.Manager, 524);
164+
165+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), 419, 0.1, 0.9))
166+ {
167+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
168+ }
169+ this._図形[9]._ストーリーボード?.Schedule(start);
170+
171+ start = basetime;
172+ 図形 = this._図形[10];
173+ 図形._ストーリーボード = new Storyboard(animation.Manager);
174+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
175+ 図形.var画像中心位置X = new Variable(animation.Manager, -584);
176+ 図形.var画像中心位置Y = new Variable(animation.Manager, -645);
177+
178+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 10)))
179+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -219, 0.1, 0.9))
180+ {
181+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
182+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
183+ }
184+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 12)))
185+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 12)))
186+ {
187+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
188+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
189+ }
190+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -398, 0.1, 0.9))
191+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -115, 0.1, 0.9))
192+ {
193+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
194+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
195+ }
196+ this._図形[10]._ストーリーボード?.Schedule(start);
197+
198+ start = basetime + 秒(dコマ秒 * 4);
199+ 図形 = this._図形[11];
200+ 図形._ストーリーボード = new Storyboard(animation.Manager);
201+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
202+ 図形.var画像中心位置X = new Variable(animation.Manager, -531);
203+ 図形.var画像中心位置Y = new Variable(animation.Manager, 682);
204+
205+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -531, 0.1, 0.9))
206+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 270, 0.1, 0.9))
207+ {
208+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
209+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
210+ }
211+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 8)))
212+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 8)))
213+ {
214+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
215+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
216+ }
217+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -369, 0.1, 0.9))
218+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 71, 0.1, 0.9))
219+ {
220+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
221+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
222+ }
223+ this._図形[11]._ストーリーボード?.Schedule(start);
224+
225+ start = basetime + 秒(dコマ秒 * 8);
226+ 図形 = this._図形[12];
227+ 図形._ストーリーボード = new Storyboard(animation.Manager);
228+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
229+ 図形.var画像中心位置X = new Variable(animation.Manager, -848);
230+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
231+
232+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -498, 0.1, 0.9))
233+ {
234+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
235+ }
236+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 5)))
237+ {
238+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
239+ }
240+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -197, 0.1, 0.9))
241+ {
242+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
243+ }
244+ this._図形[12]._ストーリーボード?.Schedule(start);
245+
246+ start = basetime + 秒(dコマ秒 * 10);
247+ 図形 = this._図形[13];
248+ 図形._ストーリーボード = new Storyboard(animation.Manager);
249+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
250+ 図形.var画像中心位置X = new Variable(animation.Manager, 804);
251+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
252+
253+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 544, 0.1, 0.9))
254+ {
255+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
256+ }
257+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 3)))
258+ {
259+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
260+ }
261+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 13), 125, 0.1, 0.9))
262+ {
263+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
264+ }
265+ this._図形[13]._ストーリーボード?.Schedule(start);
266+
267+ // タイトルロゴ
268+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
269+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 0);
270+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
271+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
272+
273+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 38), 255))
274+ {
275+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
276+ }
277+ _タイトルロゴ._ストーリーボード?.Schedule(basetime);
44278
45279 #endregion
46280 }
47281
282+ public void tフェードイン開始WAM()
283+ {
284+ this.mode = EFIFOモード.フェードイン;
285+
286+ #region[ Storyboardの構築 ]
287+ float f速度倍率 = 1.0f;
288+ double dコマ秒 = 0.016;
289+ double 秒(double v) => ( v / f速度倍率 );
290+ var animation = CDTXMania.AnimationManager;
291+ var basetime = animation.Timer.Time;
292+ var start = basetime;
293+
294+ C図形 図形 = this._図形[13];
295+ 図形._ストーリーボード = new Storyboard(animation.Manager);
296+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
297+ 図形.var画像中心位置X = new Variable(animation.Manager, 125);
298+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
299+
300+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 9), 544, 0.9, 0.1))
301+ {
302+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
303+ }
304+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 6)))
305+ {
306+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
307+ }
308+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 804, 0.9, 0.1))
309+ {
310+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
311+ }
312+ this._図形[13]._ストーリーボード?.Schedule(start);
313+
314+
315+ start = basetime + 秒(dコマ秒 * 2);
316+ 図形 = this._図形[12];
317+ 図形._ストーリーボード = new Storyboard(animation.Manager);
318+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
319+ 図形.var画像中心位置X = new Variable(animation.Manager, -197);
320+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
321+
322+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -498, 0.9, 0.1))
323+ {
324+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
325+ }
326+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 5)))
327+ {
328+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
329+ }
330+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -848, 0.9, 0.1))
331+ {
332+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
333+ }
334+ this._図形[12]._ストーリーボード?.Schedule(start);
335+
336+ start = basetime + 秒(dコマ秒 * 4);
337+ 図形 = this._図形[11];
338+ 図形._ストーリーボード = new Storyboard(animation.Manager);
339+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
340+ 図形.var画像中心位置X = new Variable(animation.Manager, -369);
341+ 図形.var画像中心位置Y = new Variable(animation.Manager, 71);
342+
343+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -531, 0.9, 0.1))
344+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 270, 0.9, 0.1))
345+ {
346+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
347+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
348+ }
349+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 7)))
350+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 7)))
351+ {
352+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
353+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
354+ }
355+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -531, 0.9, 0.1))
356+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 720, 0.9, 0.1))
357+ {
358+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
359+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
360+ }
361+ this._図形[11]._ストーリーボード?.Schedule(start);
362+
363+ start = basetime + 秒(dコマ秒 * 6);
364+ 図形 = this._図形[10];
365+ 図形._ストーリーボード = new Storyboard(animation.Manager);
366+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
367+ 図形.var画像中心位置X = new Variable(animation.Manager, -398);
368+ 図形.var画像中心位置Y = new Variable(animation.Manager, -115);
369+
370+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -584, 0.9, 0.1))
371+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -219, 0.9, 0.1))
372+ {
373+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
374+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
375+ }
376+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 14)))
377+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 14)))
378+ {
379+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
380+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
381+ }
382+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 10)))
383+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -645, 0.9, 0.1))
384+ {
385+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
386+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
387+ }
388+ this._図形[10]._ストーリーボード?.Schedule(start);
389+
390+ start = basetime + 秒(dコマ秒 * 8);
391+ 図形 = this._図形[9];
392+ 図形._ストーリーボード = new Storyboard(animation.Manager);
393+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
394+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
395+ 図形.var画像中心位置Y = new Variable(animation.Manager, 419);
396+
397+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), 524, 0.9, 0.1))
398+ {
399+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
400+ }
401+ this._図形[9]._ストーリーボード?.Schedule(start);
402+
403+ start = basetime + 秒(dコマ秒 * 10);
404+ 図形 = this._図形[8];
405+ 図形._ストーリーボード = new Storyboard(animation.Manager);
406+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
407+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
408+ 図形.var画像中心位置Y = new Variable(animation.Manager, -413);
409+
410+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 9), -534, 0.9, 0.1))
411+ {
412+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
413+ }
414+ this._図形[8]._ストーリーボード?.Schedule(start);
415+
416+ start = basetime + 秒(dコマ秒 * 12);
417+ 図形 = this._図形[7];
418+ 図形._ストーリーボード = new Storyboard(animation.Manager);
419+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
420+ 図形.var画像中心位置X = new Variable(animation.Manager, 172);
421+ 図形.var画像中心位置Y = new Variable(animation.Manager, 234);
422+
423+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 568, 0.9, 0.1))
424+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 230, 0.9, 0.1))
425+ {
426+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
427+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
428+ }
429+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
430+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
431+ {
432+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
433+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
434+ }
435+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 11)))
436+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 662, 0.9, 0.1))
437+ {
438+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
439+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
440+ }
441+ this._図形[7]._ストーリーボード?.Schedule(start);
442+
443+ start = basetime + 秒(dコマ秒 * 14);
444+ 図形 = this._図形[6];
445+ 図形._ストーリーボード = new Storyboard(animation.Manager);
446+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
447+ 図形.var画像中心位置X = new Variable(animation.Manager, 364);
448+ 図形.var画像中心位置Y = new Variable(animation.Manager, -226);
449+
450+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 1004, 0.9, 0.1))
451+ {
452+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
453+ }
454+ this._図形[6]._ストーリーボード?.Schedule(start);
455+
456+ start = basetime + 秒(dコマ秒 * 16);
457+ 図形 = this._図形[5];
458+ 図形._ストーリーボード = new Storyboard(animation.Manager);
459+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
460+ 図形.var画像中心位置X = new Variable(animation.Manager, 544);
461+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
462+
463+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 804, 0.9, 0.1))
464+ {
465+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
466+ }
467+ this._図形[5]._ストーリーボード?.Schedule(start);
468+
469+ start = basetime + 秒(dコマ秒 * 18);
470+ 図形 = this._図形[4];
471+ 図形._ストーリーボード = new Storyboard(animation.Manager);
472+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
473+ 図形.var画像中心位置X = new Variable(animation.Manager, -498);
474+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
475+
476+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -848, 0.9, 0.1))
477+ {
478+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
479+ }
480+ this._図形[4]._ストーリーボード?.Schedule(start);
481+
482+ start = basetime + 秒(dコマ秒 * 20);
483+ 図形 = this._図形[3];
484+ 図形._ストーリーボード = new Storyboard(animation.Manager);
485+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
486+ 図形.var画像中心位置X = new Variable(animation.Manager, 500);
487+ 図形.var画像中心位置Y = new Variable(animation.Manager, -286);
488+
489+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -728, 0.9, 0.1))
490+ {
491+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
492+ }
493+ this._図形[3]._ストーリーボード?.Schedule(start);
494+
495+ start = basetime + 秒(dコマ秒 * 22);
496+ 図形 = this._図形[2];
497+ 図形._ストーリーボード = new Storyboard(animation.Manager);
498+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
499+ 図形.var画像中心位置X = new Variable(animation.Manager, -531);
500+ 図形.var画像中心位置Y = new Variable(animation.Manager, 270);
501+
502+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 720, 0.9, 0.1))
503+ {
504+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
505+ }
506+ this._図形[2]._ストーリーボード?.Schedule(start);
507+
508+ start = basetime + 秒(dコマ秒 * 24);
509+ 図形 = this._図形[1];
510+ 図形._ストーリーボード = new Storyboard(animation.Manager);
511+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
512+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
513+ 図形.var画像中心位置Y = new Variable(animation.Manager, 226);
514+
515+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 662, 0.9, 0.1))
516+ {
517+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
518+ }
519+ this._図形[1]._ストーリーボード?.Schedule(start);
520+
521+ start = basetime + 秒(dコマ秒 * 26);
522+ 図形 = this._図形[ 0 ];
523+ 図形._ストーリーボード = new Storyboard( animation.Manager );
524+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, C変換.DegreeToRadian( -45 ) );
525+ 図形.var画像中心位置X = new Variable( animation.Manager, -584 );
526+ 図形.var画像中心位置Y = new Variable( animation.Manager, -219 );
527+
528+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -645, 0.9, 0.1))
529+ {
530+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
531+ }
532+ this._図形[0]._ストーリーボード?.Schedule( start );
533+
534+
535+ // タイトルロゴ
536+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
537+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 255);
538+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
539+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
540+
541+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 38), 0))
542+ {
543+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
544+ }
545+ _タイトルロゴ._ストーリーボード?.Schedule(basetime);
546+ #endregion
547+ }
548+
48549 // CActivity 実装
550+ public override void On活性化()
551+ {
552+ this._図形 = new C図形[14];
553+ for (int i = 0; i < this._図形.Length; i++)
554+ {
555+ this._図形[i] = new C図形();
556+ }
557+ this._タイトルロゴ = new Cタイトルロゴ();
558+
559+ base.On活性化();
560+ }
49561
50562 public override void On非活性化()
51563 {
52564 if( !base.b活性化してない )
53565 {
54- CDTXMania.tテクスチャの解放( ref this.tx白タイル64x64 );
55-
56566 CDTXMania.tテクスチャの解放( ref this.tx水色 );
57567 CDTXMania.tテクスチャの解放( ref this.tx黒 );
58568 CDTXMania.tテクスチャの解放( ref this.tx青色 );
59569 CDTXMania.tテクスチャの解放( ref this.tx群青 );
570+
571+ CDTXMania.tテクスチャの解放( ref this.txロゴ );
572+
573+ foreach (C図形 s in this._図形)
574+ {
575+ s?.Dispose();
576+ }
577+ this._図形 = null;
578+
579+ this._タイトルロゴ?.Dispose();
580+ this._タイトルロゴ = null;
581+
60582 base.On非活性化();
61583 }
62584 }
@@ -64,207 +586,302 @@ namespace DTXMania
64586 {
65587 if( !base.b活性化してない )
66588 {
67- this.tx白タイル64x64 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile white 64x64.png" ), false );
68-
69589 this.tx水色 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile lightblue.png" ) );
70590 this.tx黒 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile black.png" ) );
71591 this.tx青色 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile blue.png" ) );
72592 this.tx群青 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile darkblue.png" ) );
593+
594+ this.txロゴ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO logo.png" ) );
73595 base.OnManagedリソースの作成();
74596 }
75597 }
76598 public override int On進行描画()
77599 {
78- if( base.b活性化してない || ( this.counter == null ) )
600+ if( base.b活性化してない || ( this._図形[ 0 ]._ストーリーボード == null ) )
79601 {
80602 return 0;
81603 }
82- //this.counter.t進行();
83-
84- if (this.tx白タイル64x64 != null)
85- {
86- this.tx白タイル64x64.n透明度 = ( this.mode == EFIFOモード.フェードイン ) ? ( ( ( 100 - this.counter.n現在の値 ) * 0xff ) / 100 ) : ( ( this.counter.n現在の値 * 0xff ) / 100 );
87- for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size
88- {
89- for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size
90- {
91- //this.tx白タイル64x64.t2D描画( CDTXMania.app.Device, i * 64, j * 64 );
92- }
93- }
94- }
95-
96-
97- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
98- {
99- this.counter.n現在の値--;
100- }
101- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
102- {
103- this.counter.n現在の値++;
104- }
105- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
106- {
107- this.counter.n現在の値 = 0;
108- }
109- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
110- {
111- this.counter.n現在の値 = 50;
112- }
113604
114605 if( this.tx水色 != null && this.tx群青 != null && this.tx青色 != null && this.tx黒 != null )
115606 {
116- //横方向(90):304、斜め方向(45 or -45):427
117- if( this.mode == EFIFOモード.フェードアウト )
607+#if DEBUG
608+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
609+ {
610+ ret--;
611+ }
612+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
613+ {
614+ ret++;
615+ }
616+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
617+ {
618+ ret = ret - 10;
619+ }
620+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
621+ {
622+ ret = ret + 10;
623+ }
624+
625+ if( this.b座標デバッグモード )
118626 {
119- //14 群青(右)
120- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
121- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 88 ? ( 703 - ( ( ( this.counter.n現在の値 - 68 ) * 302 ) / 20 ) ) : 401, 206 ); //最終:401
122-
123- //13 青(左)
124- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
125- this.tx青色.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 86 ? ( -223 + ( ( ( this.counter.n現在の値 - 66 ) * 302 ) / 20 ) ) : 79, 206 ); //最終:79
126-
127- //12 水色(左上)
128- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
129- this.tx水色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 84 ? ( -256 + ( ( ( this.counter.n現在の値 - 64 ) * 304 ) / 20 ) ) : 48 ); //最終:48
130-
131- //11 黒(左下)
132- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
133- this.tx黒.t2D描画( CDTXMania.app.Device, -10, this.counter.n現在の値 <= 80 ? ( 726 - ( ( ( this.counter.n現在の値 - 60 ) * 304 ) / 20 ) ) : 422 ); //最終:422
134-
135- //10 青(上)
136- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 0 );
137- this.tx青色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 69 ? ( -528 + ( ( ( this.counter.n現在の値 - 49 ) * 304 ) / 20 ) ) : -224 ); //最終:-224
138-
139- //9 黒(下)
140- this.tx黒.fZ軸中心回転 = 0;
141- this.tx黒.t2D描画( CDTXMania.app.Device, 300, this.counter.n現在の値 <= 68 ? ( 913 - ( ( ( this.counter.n現在の値 - 48 ) * 304 ) / 20 ) ) : 609 ); //最終:609
142-
143- //8 黒(右上)
144- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
145- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 66 ? ( 892 - ( ( ( this.counter.n現在の値 - 46 ) * 427 ) / 20 ) ) : 465, -23 ); //最終:465
146-
147- //7 水色(右下)
148- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
149- this.tx水色.t2D描画( CDTXMania.app.Device, 646, this.counter.n現在の値 <= 61 ? ( 843 - ( ( ( this.counter.n現在の値 - 41 ) * 427 ) / 20 ) ) : 416 ); //最終:416
150-
151- //6 黒(右)
152- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
153- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 55 ? ( 1124 - ( ( ( this.counter.n現在の値 - 35 ) * 304 ) / 20 ) ) : 820, 206 ); //1079 最終:820
154-
155- //5 群青(左)
156- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
157- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 48 ? ( -527 + ( ( ( this.counter.n現在の値 - 28 ) * 304 ) / 20 ) ) : -223, 196 ); //-527 最終:-223
158-
159- //4 青(右下)
160- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
161- this.tx青色.t2D描画( CDTXMania.app.Device, 836, this.counter.n現在の値 <= 41 ? ( 866 - ( ( ( this.counter.n現在の値 - 21 ) * 427 ) / 20 ) ) : 422 ); //最終座標:422
162-
163- //3 黒(左上)
164- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
165- this.tx黒.t2D描画( CDTXMania.app.Device, -309, this.counter.n現在の値 <= 34 ? ( -457 + ( ( ( this.counter.n現在の値 - 14 ) * 427 ) / 20 ) ) : -23 ); //最終座標:-23
166-
167- //2 群青(右上)
168- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
169- this.tx群青.t2D描画( CDTXMania.app.Device, 854, this.counter.n現在の値 <= 27 ? ( -457 + ( ( (this.counter.n現在の値 - 7 ) * 427 ) / 20 ) ) : -24 ); //-457 最終座標:-24
170-
171- //1 水色(左下)
172- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
173- this.tx水色.t2D描画( CDTXMania.app.Device, -306, this.counter.n現在の値 <= 20 ? ( 843 - ( ( this.counter.n現在の値 * 427 ) / 20 ) ) : 416 ); //427 最終座標:416
627+ this.tx水色.n透明度 = 128;
628+ this.tx群青.n透明度 = 128;
629+ this.tx青色.n透明度 = 128;
630+ this.tx黒.n透明度 = 128;
631+ }
632+#endif
633+
634+ if ( this.mode == EFIFOモード.フェードアウト )
635+ {
636+ Matrix mat;
637+
638+ // 14 群青(右)
639+ mat = Matrix.Identity;
640+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
641+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
642+ mat *= Matrix.Translation((float)this._図形[13].var画像中心位置X.Value, (float)this._図形[13].var画像中心位置Y.Value, 0);
643+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
644+
645+ // 13 青(左)
646+ mat = Matrix.Identity;
647+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
648+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
649+ mat *= Matrix.Translation((float)this._図形[12].var画像中心位置X.Value, (float)this._図形[12].var画像中心位置Y.Value, 0);
650+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
651+
652+ // 12 水色(左上)
653+ mat = Matrix.Identity;
654+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
655+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
656+ mat *= Matrix.Translation((float)this._図形[11].var画像中心位置X.Value, (float)this._図形[11].var画像中心位置Y.Value, 0);
657+ this.tx水色.t3D描画( CDTXMania.app.Device, mat);
658+
659+ // 11 黒(左下)
660+ mat = Matrix.Identity;
661+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
662+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
663+ mat *= Matrix.Translation((float)this._図形[10].var画像中心位置X.Value, (float)this._図形[10].var画像中心位置Y.Value, 0);
664+ this.tx黒.t3D描画( CDTXMania.app.Device, mat);
665+
666+ // 10 青(上)
667+ mat = Matrix.Identity;
668+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
669+ mat *= Matrix.Translation((float)this._図形[9].var画像中心位置X.Value, (float)this._図形[9].var画像中心位置Y.Value, 0);
670+ this.tx青色.t3D描画( CDTXMania.app.Device, mat);
671+
672+ // 9 黒(下)
673+ mat = Matrix.Identity;
674+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
675+ mat *= Matrix.Translation((float)this._図形[8].var画像中心位置X.Value, (float)this._図形[8].var画像中心位置Y.Value, 0);
676+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
677+
678+ // 8 黒(右上)
679+ mat = Matrix.Identity;
680+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
681+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
682+ mat *= Matrix.Translation((float)this._図形[7].var画像中心位置X.Value, (float)this._図形[7].var画像中心位置Y.Value, 0);
683+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
684+
685+ // 7 水色(右下)
686+ mat = Matrix.Identity;
687+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
688+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
689+ mat *= Matrix.Translation((float)this._図形[6].var画像中心位置X.Value, (float)this._図形[6].var画像中心位置Y.Value, 0);
690+ this.tx水色.t3D描画( CDTXMania.app.Device, mat );
691+
692+ // 6 黒(右)
693+ mat = Matrix.Identity;
694+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
695+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
696+ mat *= Matrix.Translation((float)this._図形[5].var画像中心位置X.Value, (float)this._図形[5].var画像中心位置Y.Value, 0);
697+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
698+
699+ // 5 群青(左)
700+ mat = Matrix.Identity;
701+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
702+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
703+ mat *= Matrix.Translation((float)this._図形[4].var画像中心位置X.Value, (float)this._図形[4].var画像中心位置Y.Value, 0);
704+ this.tx群青.t3D描画( CDTXMania.app.Device, mat );
705+
706+ // 4 青(右下)
707+ mat = Matrix.Identity;
708+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
709+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
710+ mat *= Matrix.Translation((float)this._図形[3].var画像中心位置X.Value, (float)this._図形[3].var画像中心位置Y.Value, 0);
711+ this.tx青色.t3D描画( CDTXMania.app.Device, mat );
712+
713+ // 3 黒(左上)
714+ mat = Matrix.Identity;
715+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
716+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
717+ mat *= Matrix.Translation((float)this._図形[2].var画像中心位置X.Value, (float)this._図形[2].var画像中心位置Y.Value, 0);
718+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
719+
720+ // 2 群青(右上)
721+ mat = Matrix.Identity;
722+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
723+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
724+ mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
725+ this.tx群青.t3D描画( CDTXMania.app.Device, mat );
726+
727+ // 1 水色(左下)
728+ mat = Matrix.Identity;
729+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
730+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
731+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
732+ this.tx水色.t3D描画( CDTXMania.app.Device, mat );
733+
734+ // タイトルロゴ
735+ mat = Matrix.Identity;
736+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
737+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
738+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
739+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
174740 }
175741 else
176742 {
177- //14 群青(右)
178- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
179- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 88 ? ( 703 - ( ( ( this.counter.n現在の値 - 68 ) * 302 ) / 20 ) ) : 401, 206 ); //最終:401
180-
181- //13 青(左)
182- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
183- this.tx青色.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 86 ? ( -223 + ( ( ( this.counter.n現在の値 - 66 ) * 302 ) / 20 ) ) : 79, 206 ); //最終:79
184-
185- //12 水色(左上)
186- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
187- this.tx水色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 84 ? ( -256 + ( ( ( this.counter.n現在の値 - 64 ) * 304 ) / 20 ) ) : 48 ); //最終:48
188-
189- //11 黒(左下)
190- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
191- this.tx黒.t2D描画( CDTXMania.app.Device, -10, this.counter.n現在の値 <= 80 ? ( 726 - ( ( ( this.counter.n現在の値 - 60 ) * 304 ) / 20 ) ) : 422 ); //最終:422
192-
193- //10 青(上)
194- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 0 );
195- this.tx青色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 69 ? ( -528 + ( ( ( this.counter.n現在の値 - 49 ) * 304 ) / 20 ) ) : -224 ); //最終:-224
196-
197- //9 黒(下)
198- this.tx黒.fZ軸中心回転 = 0;
199- this.tx黒.t2D描画( CDTXMania.app.Device, 300, this.counter.n現在の値 <= 68 ? ( 913 - ( ( ( this.counter.n現在の値 - 48 ) * 304 ) / 20 ) ) : 609 ); //最終:609
200-
201- //8 黒(右上)
202- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
203- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 66 ? ( 892 - ( ( ( this.counter.n現在の値 - 46 ) * 427 ) / 20 ) ) : 465, -23 ); //最終:465
204-
205- //7 水色(右下)
206- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
207- this.tx水色.t2D描画( CDTXMania.app.Device, 646, this.counter.n現在の値 <= 61 ? ( 843 - ( ( ( this.counter.n現在の値 - 41 ) * 427 ) / 20 ) ) : 416 ); //最終:416
208-
209- //6 黒(右)
210- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
211- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 55 ? ( 1124 - ( ( ( this.counter.n現在の値 - 35 ) * 304 ) / 20 ) ) : 820, 206 ); //1079 最終:820
212-
213- //5 群青(左)
214- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
215- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 48 ? ( -527 + ( ( ( this.counter.n現在の値 - 28 ) * 304 ) / 20 ) ) : -223, 196 ); //-527 最終:-223
216-
217- //4 青(右下)
218- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
219- this.tx青色.t2D描画( CDTXMania.app.Device, 836, this.counter.n現在の値 <= 41 ? ( 866 - ( ( ( this.counter.n現在の値 - 21 ) * 427 ) / 20 ) ) : 422 ); //最終座標:422
220-
221- //3 黒(左上)
222- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
223- this.tx黒.t2D描画( CDTXMania.app.Device, -309, this.counter.n現在の値 <= 34 ? ( -457 + ( ( ( this.counter.n現在の値 - 14 ) * 427 ) / 20 ) ) : -23 ); //最終座標:-23
224-
225- //2 群青(右上)
226- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
227- this.tx群青.t2D描画( CDTXMania.app.Device, 854, this.counter.n現在の値 <= 27 ? ( -457 + ( ( (this.counter.n現在の値 - 7 ) * 427 ) / 20 ) ) : -24 ); //-457 最終座標:-24
228-
229- //1 水色(左下)
230- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
231- this.tx水色.t2D描画( CDTXMania.app.Device, -306, this.counter.n現在の値 <= 20 ? ( 843 - ( ( this.counter.n現在の値 * 427 ) / 20 ) ) : 416 ); //427 最終座標:416
743+ Matrix mat;
744+
745+ // 14 群青(右)
746+ mat = Matrix.Identity;
747+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
748+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
749+ mat *= Matrix.Translation((float)this._図形[13].var画像中心位置X.Value, (float)this._図形[13].var画像中心位置Y.Value, 0);
750+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
751+
752+ // 13 青(左)
753+ mat = Matrix.Identity;
754+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
755+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
756+ mat *= Matrix.Translation((float)this._図形[12].var画像中心位置X.Value, (float)this._図形[12].var画像中心位置Y.Value, 0);
757+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
758+
759+ // 12 水色(左上)
760+ mat = Matrix.Identity;
761+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
762+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
763+ mat *= Matrix.Translation((float)this._図形[11].var画像中心位置X.Value, (float)this._図形[11].var画像中心位置Y.Value, 0);
764+ this.tx水色.t3D描画(CDTXMania.app.Device, mat);
765+
766+ // 11 黒(左下)
767+ mat = Matrix.Identity;
768+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
769+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
770+ mat *= Matrix.Translation((float)this._図形[10].var画像中心位置X.Value, (float)this._図形[10].var画像中心位置Y.Value, 0);
771+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
772+
773+ // 10 青(上)
774+ mat = Matrix.Identity;
775+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
776+ mat *= Matrix.Translation((float)this._図形[9].var画像中心位置X.Value, (float)this._図形[9].var画像中心位置Y.Value, 0);
777+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
778+
779+ // 9 黒(下)
780+ mat = Matrix.Identity;
781+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
782+ mat *= Matrix.Translation((float)this._図形[8].var画像中心位置X.Value, (float)this._図形[8].var画像中心位置Y.Value, 0);
783+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
784+
785+ // 8 黒(右上)
786+ mat = Matrix.Identity;
787+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
788+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
789+ mat *= Matrix.Translation((float)this._図形[7].var画像中心位置X.Value, (float)this._図形[7].var画像中心位置Y.Value, 0);
790+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
791+
792+ // 7 水色(右下)
793+ mat = Matrix.Identity;
794+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
795+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
796+ mat *= Matrix.Translation((float)this._図形[6].var画像中心位置X.Value, (float)this._図形[6].var画像中心位置Y.Value, 0);
797+ this.tx水色.t3D描画(CDTXMania.app.Device, mat);
798+
799+ // 6 黒(右)
800+ mat = Matrix.Identity;
801+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
802+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
803+ mat *= Matrix.Translation((float)this._図形[5].var画像中心位置X.Value, (float)this._図形[5].var画像中心位置Y.Value, 0);
804+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
805+
806+ // 5 群青(左)
807+ mat = Matrix.Identity;
808+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
809+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
810+ mat *= Matrix.Translation((float)this._図形[4].var画像中心位置X.Value, (float)this._図形[4].var画像中心位置Y.Value, 0);
811+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
812+
813+ // 4 青(右下)
814+ mat = Matrix.Identity;
815+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
816+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
817+ mat *= Matrix.Translation((float)this._図形[3].var画像中心位置X.Value, (float)this._図形[3].var画像中心位置Y.Value, 0);
818+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
819+
820+ // 3 黒(左上)
821+ mat = Matrix.Identity;
822+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
823+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
824+ mat *= Matrix.Translation((float)this._図形[2].var画像中心位置X.Value, (float)this._図形[2].var画像中心位置Y.Value, 0);
825+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
826+
827+ // 2 群青(右上)
828+ mat = Matrix.Identity;
829+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
830+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
831+ mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
832+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
833+
834+ // 1 水色(左下)
835+ mat = Matrix.Identity;
836+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
837+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
838+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
839+ this.tx水色.t3D描画(CDTXMania.app.Device, mat);
840+
841+ // タイトルロゴ
842+ mat = Matrix.Identity;
843+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
844+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
845+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
846+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
232847 }
233-
848+#if DEBUG
849+ if( this.b座標デバッグモード )
850+ CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, $"ret:{ret.ToString()}");
851+#endif
234852 }
235- this.counter.t進行();
236853
237- CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, this.counter.n現在の値.ToString() );
854+ if ( this._タイトルロゴ._ストーリーボード.Status != StoryboardStatus.Ready )
855+ {
856+ return 0;
857+ }
238858
239- if ( this.counter.n現在の値 != 100 )
240- {
241- return 0;
242- }
243859 return 1;
244860 }
245861
246862
247863 // その他
248-
249864 #region [ private ]
250865 //-----------------
251- private CCounter counter;
252866 private EFIFOモード mode;
253- private CTexture tx白タイル64x64;
254867 private CTexture txロゴ;
868+ private CTexture tx水色;
869+ private CTexture tx青色;
870+ private CTexture tx群青;
871+ private CTexture tx黒;
872+#if DEBUG
873+ private int ret;
874+ private readonly bool b座標デバッグモード = false;
875+#endif
255876 //-----------------
256877 #endregion
257878
258879 #region[ 図形描画用 ]
259- CTexture tx水色;
260- CTexture tx青色;
261- CTexture tx群青;
262- CTexture tx黒;
263-
264880 protected C図形[] _図形 = new C図形[ 14 ];
265-
881+ protected Cタイトルロゴ _タイトルロゴ;
266882 protected class C図形 : IDisposable
267883 {
884+ public Variable var表示;
268885 public Variable var画像中心位置X;
269886 public Variable var画像中心位置Y;
270887 public Variable var画像Z軸回転度;
@@ -275,6 +892,9 @@ namespace DTXMania
275892 this._ストーリーボード?.Abandon();
276893 this._ストーリーボード = null;
277894
895+ this.var表示?.Dispose();
896+ this.var表示 = null;
897+
278898 this.var画像中心位置X?.Dispose();
279899 this.var画像中心位置X = null;
280900
--- /dev/null
+++ b/DTXManiaプロジェクト/コード/ステージ/CActFIFOSpin.cs
@@ -0,0 +1,357 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Diagnostics;
4+using System.Text;
5+using System.Drawing;
6+using SharpDX.Animation;
7+using FDK;
8+
9+using SlimDXKey = SlimDX.DirectInput.Key;
10+using SharpDX;
11+
12+namespace DTXMania
13+{
14+ // 未完成
15+ // - 黒幕
16+ // 長辺:1280px 短辺(一番短い時):70~72px
17+ // - 短辺は最大で360px
18+ //
19+ // - 背景画像
20+ // 黒幕が画面を覆い尽くしたタイミングで出現or消滅する制御があるのでStoryBoardが要る
21+
22+ internal class CActFIFOSpin : CActivity
23+ {
24+ // メソッド
25+ public void tフェードアウト開始WAM()
26+ {
27+ this.mode = EFIFOモード.フェードアウト;
28+
29+ #region[ Storyboardの構築 ]
30+ float f速度倍率 = 0.3f;
31+ double dコマ秒 = 0.016;
32+ double 秒(double v) => ( v / f速度倍率 );
33+ var animation = CDTXMania.AnimationManager;
34+ var basetime = animation.Timer.Time;
35+ var start = basetime;
36+
37+ C図形 図形 = this._図形[ 0 ];
38+ 図形._ストーリーボード = new Storyboard( animation.Manager );
39+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, -135 );
40+ 図形.var画像中心位置X = new Variable( animation.Manager, -1280 );
41+ 図形.var画像中心位置Y = new Variable( animation.Manager, -180);
42+
43+ // 初期50度 -> 180度
44+
45+ using (var Z回転 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
46+ using (var X移動1 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
47+ //using (var X移動2 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 16), 0))
48+ {
49+ 図形._ストーリーボード.AddTransition(図形.var画像Z軸回転度, Z回転);
50+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動1);
51+ //図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動2);
52+ }
53+ this._図形[0]._ストーリーボード?.Schedule( start );
54+
55+ start += 秒(dコマ秒 * 2);
56+ 図形 = this._図形[ 1 ];
57+ 図形._ストーリーボード = new Storyboard(animation.Manager);
58+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
59+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
60+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
61+
62+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 226, 0.1, 0.9))
63+ {
64+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
65+ }
66+ this._図形[1]._ストーリーボード?.Schedule(start);
67+
68+
69+ // タイトルロゴ
70+ start = basetime + 秒(dコマ秒 * 8);
71+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
72+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 0);
73+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 268);
74+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -240);
75+
76+ // 8コマ待機
77+ // 不透明度変化 12コマ
78+ // X座標移動 20コマ 268 -> 388 (70%/30%)
79+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.1, 0.9))
80+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 255))
81+ {
82+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
83+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
84+ }
85+ _タイトルロゴ._ストーリーボード?.Schedule(start);
86+
87+ #endregion
88+ }
89+
90+ public void tフェードイン開始WAM()
91+ {
92+ this.mode = EFIFOモード.フェードイン;
93+
94+ #region[ Storyboardの構築 ]
95+ float f速度倍率 = 1.0f;
96+ double dコマ秒 = 0.016;
97+ double 秒(double v) => ( v / f速度倍率 );
98+ var animation = CDTXMania.AnimationManager;
99+ var basetime = animation.Timer.Time;
100+ var start = basetime;
101+
102+ // タイトルロゴ
103+ start = basetime + 秒(dコマ秒 * 8);
104+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
105+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 255);
106+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
107+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
108+
109+ // 8コマ待機
110+ // 不透明度変化 12コマ
111+ // X座標移動 20コマ 268 -> 388 (70%/30%)
112+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.7, 0.3))
113+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 0))
114+ {
115+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
116+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
117+ }
118+ _タイトルロゴ._ストーリーボード?.Schedule(start);
119+ #endregion
120+ }
121+
122+ // CActivity 実装
123+ public override void On活性化()
124+ {
125+ this._図形 = new C図形[2];
126+ for (int i = 0; i < this._図形.Length; i++)
127+ {
128+ this._図形[i] = new C図形();
129+ }
130+ this._タイトルロゴ = new Cタイトルロゴ();
131+
132+ base.On活性化();
133+ }
134+
135+ public override void On非活性化()
136+ {
137+ if( !base.b活性化してない )
138+ {
139+ foreach (C図形 s in this._図形)
140+ {
141+ s?.Dispose();
142+ }
143+ this._図形 = null;
144+
145+ this._タイトルロゴ?.Dispose();
146+ this._タイトルロゴ = null;
147+
148+ base.On非活性化();
149+ }
150+ }
151+ public override void OnManagedリソースの作成()
152+ {
153+ if( !base.b活性化してない )
154+ {
155+ // テクスチャ生成
156+ // 黒幕、マスクのテクスチャを生成する。
157+ int textureSizeW = SampleFramework.GameWindowSize.Width;
158+ int textureSizeH = 70;
159+
160+ // 黒幕
161+ Bitmap bmp = new Bitmap(textureSizeW, textureSizeH);
162+ Graphics graphic = Graphics.FromImage(bmp);
163+ graphic?.FillRectangle(Brushes.Black, 0, 0, textureSizeW, textureSizeH);
164+ graphic?.Dispose();
165+
166+ this.tx黒幕 = CDTXMania.tテクスチャの生成(bmp);
167+ bmp?.Dispose();
168+
169+ this.tx背景画像 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO bg.png" ) );
170+
171+ this.txロゴ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO logo.png" ) );
172+ base.OnManagedリソースの作成();
173+ }
174+ }
175+ public override int On進行描画()
176+ {
177+ if( base.b活性化してない || ( this._図形[ 0 ]._ストーリーボード == null ) )
178+ {
179+ return 0;
180+ }
181+
182+ if( this.tx黒幕 != null )
183+ {
184+#if DEBUG
185+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
186+ {
187+ ret--;
188+ }
189+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
190+ {
191+ ret++;
192+ }
193+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
194+ {
195+ ret = ret - 10;
196+ }
197+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
198+ {
199+ ret = ret + 10;
200+ }
201+
202+ if( this.b座標デバッグモード )
203+ {
204+ this.tx黒幕.n透明度 = 128;
205+ }
206+#endif
207+
208+ if ( this.mode == EFIFOモード.フェードアウト )
209+ {
210+ Matrix mat;
211+
212+ // 黒幕(右)
213+ //mat = Matrix.Identity;
214+ //mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
215+ //mat *= Matrix.RotationZ((float)this._図形[0].var画像Z軸回転度.Value);
216+ //mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
217+ //this.tx黒幕.t3D描画( CDTXMania.app.Device, mat );
218+
219+ // 黒幕(左)
220+ // 上辺中央座標
221+ mat = Matrix.Identity;
222+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
223+ mat *= Matrix.RotationZ(C変換.DegreeToRadian((float)this._図形[0].var画像Z軸回転度.Value));
224+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
225+ //mat *= Matrix.RotationZ(C変換.DegreeToRadian(0));
226+ //mat *= Matrix.Translation(0, 0, 0);
227+ //this.tx黒幕.t3D描画(CDTXMania.app.Device, mat, new Vector3(0, -this.tx黒幕.szテクスチャサイズ.Height / 2f, 0));
228+ this.tx黒幕.t3D描画(CDTXMania.app.Device, mat);
229+
230+ //mat = Matrix.Identity;
231+ //mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
232+ //mat *= Matrix.RotationZ(C変換.DegreeToRadian(50));
233+ //mat *= Matrix.Translation(ret, (float)this._図形[0].var画像中心位置Y.Value, 0);
234+ //this.tx黒幕.t3D描画( CDTXMania.app.Device, mat );
235+
236+ // タイトルロゴ
237+ mat = Matrix.Identity;
238+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
239+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
240+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
241+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
242+ }
243+ else
244+ {
245+ Matrix mat;
246+
247+ // タイトルロゴ
248+ mat = Matrix.Identity;
249+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
250+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
251+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
252+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
253+ }
254+#if DEBUG
255+ if( this.b座標デバッグモード )
256+ CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, $"ret:{ret.ToString()}");
257+#endif
258+ }
259+
260+ if ( this._タイトルロゴ._ストーリーボード.Status != StoryboardStatus.Ready )
261+ {
262+ return 0;
263+ }
264+
265+ return 1;
266+ }
267+
268+
269+ // その他
270+ #region [ private ]
271+ //-----------------
272+ private EFIFOモード mode;
273+ private CTexture txロゴ;
274+ private CTexture tx背景画像;
275+ private CTexture tx黒幕;
276+#if DEBUG
277+ private int ret;
278+ private readonly bool b座標デバッグモード = true;
279+#endif
280+ //-----------------
281+ #endregion
282+
283+ #region[ 図形描画用 ]
284+ protected C図形[] _図形 = new C図形[ 2 ];
285+ protected C背景 _背景;
286+ protected Cタイトルロゴ _タイトルロゴ;
287+ protected class C図形 : IDisposable
288+ {
289+ public Variable var表示;
290+ public Variable var画像中心位置X;
291+ public Variable var画像中心位置Y;
292+ public Variable var画像Z軸回転度;
293+ public Variable var画像X拡大率;
294+ public Storyboard _ストーリーボード;
295+
296+ public void Dispose()
297+ {
298+ this._ストーリーボード?.Abandon();
299+ this._ストーリーボード = null;
300+
301+ this.var表示?.Dispose();
302+ this.var表示 = null;
303+
304+ this.var画像中心位置X?.Dispose();
305+ this.var画像中心位置X = null;
306+
307+ this.var画像中心位置Y?.Dispose();
308+ this.var画像中心位置Y = null;
309+
310+ this.var画像Z軸回転度?.Dispose();
311+ this.var画像Z軸回転度 = null;
312+
313+ this.var画像X拡大率?.Dispose();
314+ this.var画像X拡大率 = null;
315+ }
316+ }
317+
318+ protected class C背景 : IDisposable
319+ {
320+ public Variable var画像拡大率;
321+ public Storyboard _ストーリーボード;
322+
323+ public void Dispose()
324+ {
325+ this._ストーリーボード?.Abandon();
326+ this._ストーリーボード = null;
327+
328+ this.var画像拡大率?.Dispose();
329+ this.var画像拡大率 = null;
330+ }
331+ }
332+
333+ protected class Cタイトルロゴ : IDisposable
334+ {
335+ public Variable var画像中心位置X;
336+ public Variable var画像中心位置Y;
337+ public Variable var画像不透明度;
338+ public Storyboard _ストーリーボード;
339+
340+ public void Dispose()
341+ {
342+ this._ストーリーボード?.Abandon();
343+ this._ストーリーボード = null;
344+
345+ this.var画像中心位置X?.Dispose();
346+ this.var画像中心位置X = null;
347+
348+ this.var画像中心位置Y?.Dispose();
349+ this.var画像中心位置Y = null;
350+
351+ this.var画像不透明度?.Dispose();
352+ this.var画像不透明度 = null;
353+ }
354+ }
355+ #endregion
356+ }
357+}
--- a/FDK17プロジェクト/コード/04.グラフィック/CTexture.cs
+++ b/FDK17プロジェクト/コード/04.グラフィック/CTexture.cs
@@ -677,9 +677,68 @@ namespace FDK
677677 device.VertexFormat = PositionColoredTexturedVertex.Format;
678678 device.DrawUserPrimitives( PrimitiveType.TriangleStrip, 2, this.cvPositionColoredVertexies );
679679 }
680+ // 2022.02.16 kairera0467 基準位置指定
681+ public void t3D描画(Device device, Matrix mat, Vector3 center)
682+ {
683+ this.t3D描画(device, mat, center, this.rc全画像);
684+ }
685+ public void t3D描画(Device device, Matrix mat, Vector3 center, Rectangle rc画像内の描画領域)
686+ {
687+ if (this.texture == null)
688+ return;
689+
690+ float x = (((float)rc画像内の描画領域.Width) / 2f) + center.X;
691+ float y = (((float)rc画像内の描画領域.Height) / 2f) + center.Y;
692+ float z = center.Z;
693+ float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width);
694+ float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width);
695+ float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height);
696+ float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height);
697+ this.color4.Alpha = ((float)this._透明度) / 255f;
698+ int color = this.color4.ToRgba();
680699
700+ if (this.cvPositionColoredVertexies == null)
701+ this.cvPositionColoredVertexies = new PositionColoredTexturedVertex[4];
702+
703+ // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。
704+
705+ this.cvPositionColoredVertexies[0].Position.X = -x;
706+ this.cvPositionColoredVertexies[0].Position.Y = y;
707+ this.cvPositionColoredVertexies[0].Position.Z = z;
708+ this.cvPositionColoredVertexies[0].Color = color;
709+ this.cvPositionColoredVertexies[0].TextureCoordinates.X = f左U値;
710+ this.cvPositionColoredVertexies[0].TextureCoordinates.Y = f上V値;
711+
712+ this.cvPositionColoredVertexies[1].Position.X = x;
713+ this.cvPositionColoredVertexies[1].Position.Y = y;
714+ this.cvPositionColoredVertexies[1].Position.Z = z;
715+ this.cvPositionColoredVertexies[1].Color = color;
716+ this.cvPositionColoredVertexies[1].TextureCoordinates.X = f右U値;
717+ this.cvPositionColoredVertexies[1].TextureCoordinates.Y = f上V値;
718+
719+ this.cvPositionColoredVertexies[2].Position.X = -x;
720+ this.cvPositionColoredVertexies[2].Position.Y = -y;
721+ this.cvPositionColoredVertexies[2].Position.Z = z;
722+ this.cvPositionColoredVertexies[2].Color = color;
723+ this.cvPositionColoredVertexies[2].TextureCoordinates.X = f左U値;
724+ this.cvPositionColoredVertexies[2].TextureCoordinates.Y = f下V値;
725+
726+ this.cvPositionColoredVertexies[3].Position.X = x;
727+ this.cvPositionColoredVertexies[3].Position.Y = -y;
728+ this.cvPositionColoredVertexies[3].Position.Z = z;
729+ this.cvPositionColoredVertexies[3].Color = color;
730+ this.cvPositionColoredVertexies[3].TextureCoordinates.X = f右U値;
731+ this.cvPositionColoredVertexies[3].TextureCoordinates.Y = f下V値;
732+
733+ this.tレンダリングステートの設定(device);
734+
735+ device.SetTransform(TransformState.World, mat);
736+ device.SetTexture(0, this.texture);
737+ device.VertexFormat = PositionColoredTexturedVertex.Format;
738+ device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, this.cvPositionColoredVertexies);
739+ }
681740
682- public void t3D上下反転描画( Device device, Matrix mat )
741+ public void t3D上下反転描画( Device device, Matrix mat )
683742 {
684743 this.t3D上下反転描画( device, mat, this.rc全画像 );
685744 }
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
Binary files /dev/null and b/実行時フォルダ/System/Default/Graphics/9_background.png differ
Binary files /dev/null and b/実行時フォルダ/System/DefaultMat/Graphics/7_score numbersGD.png differ
Binary files a/実行時フォルダ/dll/FDK.dll and b/実行時フォルダ/dll/FDK.dll differ
--- a/実行時フォルダ/readme.txt
+++ b/実行時フォルダ/readme.txt
@@ -17,7 +17,7 @@ DTXManiaXG(Ver.K)
1717 ?E?X?L?????܂߂đ傫?ȕύX???N?????Ă??邽?߁AVer3.61?܂ł̊‹??ɏ㏑??????̂͑?ϊ댯?ł??B
1818
1919 ??Ver3.61?܂łƂ̑傫?ȕύX?_
20-?E64bit?Ή?
20+?E64bit?Ή?(32bit?‹??ł̋N?????”\?ł?)
2121 ?E?X?N???[??????x?̕ύX
2222 ?E?t???X?N???[?????̏????ύX
2323 ?E?t?H???_?\???̕ύX
@@ -43,6 +43,7 @@ DTXManiaXG(Ver.K)
4343 ?E[????]KONMAI???\?t?g?o?[?W?????\?????̗p?B?A?b?v?f?[?g???K?p????Ă??邩?̊m?F?A?r???h?ݒ?(DEBUG?ł??ۂ?)?̊m?F???e?Ղɂł???悤?ɂȂ????B(??ɍ?҂???????)
4444 ?E[????]???s???t?H???_??DTXMania??DTXCreater?œ???B4.00?????DTXMania??DTXCreater?̓??ꃊ???[?X?ɂȂ?܂??B
4545 ?E[????]???[???t???b?V???̃e?N?X?`???\?????????????Ƃʼn摜?????̑啝?팸?ɐ????B
46+?E[????]?A?j???[?V?????⏕?V?X?e????WindowsAnimationManager?𓱓??B(SharpDX.Animation)
4647 ?E[XG]?ꕔ?摜??啝??蒼???B
4748 ?E[XG]?Ȍ??肩?牉?t?J?n?܂ł̗????ύX?B(?Ȍ??艉?o???ȓǂݍ??݁????t?J?n)
4849 ?E[XG]?ȈՓI?ɑI?ȉ?ʂŋȕʃX?L????\???ł???悤?ɂ????B
Show on old repository browser