冒险解谜游戏中文网 ChinaAVG

标题: TGA图片字库制作 [打印本页]

作者: rinat    时间: 2011-7-4 17:53
标题: TGA图片字库制作
我很想加入这个行业,而且有足够的时间、耐心。最近我拿个小游戏学学,先分析了一下。显示文字是TGA图片字库,已经得到这个字库了,现在该到制作新字库TGA了。网上搜了一下,找到了Bitmap工具,这个工具确实很不错。
9 S6 R" S+ ^# {8 w我想知道的是,能不能原字库图片的宽度和字母的各类参数不变的情况下,再加新的字符?首先新加字符然后得到字符参数还是按预设的参数来新加字符?是PS来实现?(我估计PS定坐标很麻烦)
' p. @' Y: O' m0 }那位热情的大侠请教一下小弟。谢谢~
作者: 魔鸢    时间: 2011-7-4 18:20
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
作者: 魔鸢    时间: 2011-7-4 18:21
如果你有兴趣可以进考核群跟大家一起发展啊[s:101]
作者: rinat    时间: 2011-7-4 18:35
魔鸢 发表于 2011-7-4 18:20 + @1 Y* s% {) ~0 Y( `
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
: `2 O9 N9 C% m6 _; q  B
搞错方向?我只是想首先把字库和定义准备好。不管是美工还是技术、翻译,都是汉化工作的内容吧~多嘴了
作者: rinat    时间: 2011-7-4 18:36
魔鸢 发表于 2011-7-4 18:21 % t/ A" X3 i. K
如果你有兴趣可以进考核群跟大家一起发展啊
. v( n& `8 y# [2 _
能否提供个群号?谢谢
作者: 沉睡的绵羊    时间: 2011-7-5 09:06
https://www.chinaavg.com/thread-28475-1-1.html# l+ Q0 Z0 ]6 W( C" p9 h% _
这是招人简章。1 ~5 }' S+ H- a, Y7 s8 j
楼上的,你的想法很好。我是技术 鈂緦 , QQ 号码是 11203768 , 欢迎一起交流。0 u; V4 @' Y9 v$ `! N
你说的想法非常好,不过TGA的文件格式你得非常熟悉才能用软件用。
作者: caesarzx    时间: 2011-7-5 10:02
要命,民间汉化成行业了。
作者: rinat    时间: 2011-7-5 10:14
caesarzx 发表于 2011-7-5 10:02 & f  d. x3 ~9 u
要命,民间汉化成行业了。

+ C; q. x/ M6 K% ~恩,就是贡献性的民间行业,呵呵~
作者: rinat    时间: 2011-7-5 10:16
沉睡的绵羊 发表于 2011-7-5 09:06 9 Q7 S# [+ a. O9 ~
https://www.chinaavg.com/thread-28475-1-1.html( x* F* V3 g7 M( ^& l  J7 q+ x# p$ t
这是招人简章。  E" o: Y& a* V8 j9 H4 H, w
楼上的,你的想法很好。我是技术 鈂緦 , ...

" D2 ~. J: O! C6 \# F3 k0 {% u  @果然是,这个光操纵PS就不行了,修改原TGA遇到了些小问题,要得自己好好研究TGA了。
作者: canmover    时间: 2011-7-5 12:12
回复 rinat 的帖子
9 G8 f  j  @1 o2 }* n( w! w0 b. |6 E6 e8 v2 [7 U9 q" j
重新做一个新的不行吗?: f; w; J/ a* J9 F! j
在原图片上添加字符,理论上是可以的,但应该不会有专门的软件,因为这个功能基本没人会用到。除非自己写一个,否则只有PS了。
作者: solidji    时间: 2011-7-5 14:52
本帖最后由 solidji 于 2011-7-5 14:52 编辑
. c) F2 \, h5 ]% C
- t0 D7 ?- d4 h3 k$ X  j4 h重新做一张更方便
2 m8 e/ D- S% ^" @% y8 {0 k如果非要加在后面,也可以自己实现
! L, U! [$ m5 ]6 z* P9 r4 A; ^7 B我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库( v! G0 A; R" Y/ `/ y: Y
首先4 v! n9 q& m; e) {5 y8 w: j
CreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存
1 q( z/ a& `- ]" n7 s, A: g+ K& s6 M                g_pFontVertexBuffer = *ppVertexBuffer;. l/ N( t" v' _, F7 g
                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);, t! n2 }' N' B8 b2 m1 r
                g_pFontVertexBuffer->Unlock();# l- B3 P1 u6 {) i: q$ x

! y: P2 t( N- g& o. s1 pCString font = _T(".\\font.bmp");//这个是自己要添加的新的字库4 J% o1 O  u+ Z
                        D3DXCreateTextureFromFileEx(
, @1 L0 d. ]' s* ~& g7 y* o                        m_device,: o% L& G9 N/ f3 c; C
                        font,
# {# y& k0 @: r8 y0 s4 Z( H                        D3DX_DEFAULT,! n/ Y1 K  R( @  V$ _$ L0 e$ C
                        D3DX_DEFAULT,3 t* `& z- [3 U$ t6 [9 I8 I
                        D3DX_DEFAULT,$ ^7 H+ P$ {' d- H
                        0,! W- K4 @, X4 a! L
                        D3DFMT_A1R5G5B5,9 Z1 r( B" Y0 s$ V: F  C  V$ }
                        D3DPOOL_MANAGED,
* v" n9 O  ?0 a" Y  s) Y                        D3DX_FILTER_TRIANGLE,6 t: E# v. {* o: {* \
                        D3DX_FILTER_TRIANGLE, $ @' _) T9 C  p, [& [
                        D3DCOLOR_RGBA(0, 0, 0, 255),
* O# O$ n* E1 \" A                        NULL,3 M; g0 E! h+ _
                        NULL,
  n. `  o& c/ j% ^0 m                        &Tex);3 @4 ~- ~, s5 @7 Y: r1 h/ O
8 ~$ y! @# ~+ D% e. C6 n* J7 v1 K+ \
IDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);9 a9 P. L1 z* D) u: P5 p4 Q# c1 b- J6 B
把Tex里的数据lock到pbData0 y" {9 n2 b$ A$ X3 ~4 w
然后把pbData里的数据copy到mem接在原本的字库后面% M3 d; s3 R: O% i: z, v0 q) M
g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);
) c2 ~! d5 ^  Q" O5 ymemcpy(pbData,mem,len);6 |5 ]% i8 T$ i9 t% O) X2 q* W
g_pFontVertexBuffer->Unlock();6 d9 o# t8 ~1 @3 u2 ^
  r" U, N% W6 }- U+ r' Z& A7 ^
最后保存成TGA" G: W3 E; ~- \9 ?9 V/ Q8 Q3 S( \) K
D3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);
( h# v* X$ n2 E' I  `- G
( O/ v) M, a% q! I这个代码我没调试随手写的,表达下思路而已,不可照搬
作者: firendless    时间: 2011-7-5 16:33
魔鸢 发表于 2011-7-4 18:20
" ?1 d/ g6 z  E" w/ d( C6 }6 KTGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~

. Q. j, d* v: v, K' l8 J3 A生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
作者: firendless    时间: 2011-7-5 16:39
回复 rinat 的帖子1 P% c. @* a& o# \. z1 S+ V( V; ~! r( [" i
1 A  D$ m) f, J1 a% c& O3 s& D% t
http://www.game798.com/html/2007-03/3147.htm3 O) f% |& c# x% u/ Z2 o) b
7 a; h! v, @/ n8 s4 P- R
希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.
7 c4 J8 m5 I; S" O
: E' V5 e( H% V8 W还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来..( x: w* H  U0 I! w
+ n+ P, @5 @( K
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。1 H: F& i) D2 h4 ~

/ C4 z" W; i1 p  b8 W# U8 P$ ?或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.4 S+ C6 Y1 ^$ R4 J
+ S* K' ?% n0 D% W
最后一条路就是放弃.




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2